From 5dbf3297eb3d9768b057dbbba15203cc155b8627 Mon Sep 17 00:00:00 2001 From: Niksac Date: Fri, 4 Mar 2022 10:00:22 +0100 Subject: [PATCH 01/83] Prevent sidebar from throwing errors when there is no active item --- src/assets/js/components/sidebar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/js/components/sidebar.js b/src/assets/js/components/sidebar.js index f1b5fc6a1..49d68add7 100644 --- a/src/assets/js/components/sidebar.js +++ b/src/assets/js/components/sidebar.js @@ -46,7 +46,7 @@ class Sidebar { } // Scroll into active sidebar - setTimeout(() => document.querySelector('.sidebar-item.active').scrollIntoView(false), 100); + setTimeout(() => document.querySelector('.sidebar-item.active')?.scrollIntoView(false), 100); // check responsive this.onFirstLoad(); From 156e8982ba44d58cb7922d9eddf42dcae9cc80d6 Mon Sep 17 00:00:00 2001 From: Nik Date: Sat, 5 Mar 2022 22:56:40 +0100 Subject: [PATCH 02/83] Use !default for all SCSS variables to allow overwriting --- src/assets/scss/_variables.scss | 1844 +++++++++++++++---------------- 1 file changed, 922 insertions(+), 922 deletions(-) diff --git a/src/assets/scss/_variables.scss b/src/assets/scss/_variables.scss index e3fbd8ef2..cce5983de 100644 --- a/src/assets/scss/_variables.scss +++ b/src/assets/scss/_variables.scss @@ -17,7 +17,7 @@ $theme-colors-light: ( 'danger': #FFDEDE, 'warning': #fffdd8, 'info': #e6fdff, -); +) !default; $alert-colors: ( primary: ( @@ -52,23 +52,23 @@ $alert-colors: ( text-color: #fff, background-color: #56b6f7, ), -); -$card-box-shadow: -8px 12px 18px 0 rgba(25,42,70,.13); -$card-title-font-size: 1.2rem; -$modal-header-font-size: 1.1rem; +) !default; +$card-box-shadow: -8px 12px 18px 0 rgba(25,42,70,.13) !default; +$card-title-font-size: 1.2rem !default; +$modal-header-font-size: 1.1rem !default; // Bootstrap Variables -$white: #fff; -$gray-100: #f8f9fa; -$gray-200: #e9ecef; -$gray-300: #dee2e6; -$gray-400: #ced4da; -$gray-500: #adb5bd; -$gray-600: #6c757d; -$gray-700: #495057; -$gray-800: #343a40; -$gray-900: #212529; -$black: #000; +$white: #fff !default; +$gray-100: #f8f9fa !default; +$gray-200: #e9ecef !default; +$gray-300: #dee2e6 !default; +$gray-400: #ced4da !default; +$gray-500: #adb5bd !default; +$gray-600: #6c757d !default; +$gray-700: #495057 !default; +$gray-800: #343a40 !default; +$gray-900: #212529 !default; +$black: #000 !default; // fusv-disable $grays: ( @@ -81,19 +81,19 @@ $grays: ( "700": $gray-700, "800": $gray-800, "900": $gray-900 -); +) !default; // fusv-enable -$blue: #435ebe; -$indigo: #6610f2; -$purple: #6f42c1; -$pink: #d63384; -$red: #dc3545; -$orange: #fd7e14; -$yellow: #ffc107; -$green: #198754; -$teal: #20c997; -$cyan: #0dcaf0; +$blue: #435ebe !default; +$indigo: #6610f2 !default; +$purple: #6f42c1 !default; +$pink: #d63384 !default; +$red: #dc3545 !default; +$orange: #fd7e14 !default; +$yellow: #ffc107 !default; +$green: #198754 !default; +$teal: #20c997 !default; +$cyan: #0dcaf0 !default; // scss-docs-start colors-map $colors: ( @@ -110,17 +110,17 @@ $colors: ( "white": $white, "gray": $gray-600, "gray-dark": $gray-800 -); +) !default; // scss-docs-end colors-map -$primary: $blue; -$secondary: $gray-600; -$success: $green; -$info: $cyan; -$warning: $yellow; -$danger: $red; -$light: $gray-100; -$dark: $gray-900; +$primary: $blue !default; +$secondary: $gray-600 !default; +$success: $green !default; +$info: $cyan !default; +$warning: $yellow !default; +$danger: $red !default; +$light: $gray-100 !default; +$dark: $gray-900 !default; // scss-docs-start theme-colors-map $theme-colors: ( @@ -132,121 +132,121 @@ $theme-colors: ( "danger": $danger, "light": $light, "dark": $dark -); +) !default; // scss-docs-end theme-colors-map // scss-docs-start theme-colors-rgb -$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default; +$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default !default; // scss-docs-end theme-colors-rgb // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7. // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast -$min-contrast-ratio: 4.5; +$min-contrast-ratio: 4.5 !default; // Customize the light and dark text colors for use in our color contrast function. -$color-contrast-dark: $black; -$color-contrast-light: $white; +$color-contrast-dark: $black !default; +$color-contrast-light: $white !default; // fusv-disable -$blue-100: tint-color($blue, 80%); -$blue-200: tint-color($blue, 60%); -$blue-300: tint-color($blue, 40%); -$blue-400: tint-color($blue, 20%); -$blue-500: $blue; -$blue-600: shade-color($blue, 20%); -$blue-700: shade-color($blue, 40%); -$blue-800: shade-color($blue, 60%); -$blue-900: shade-color($blue, 80%); - -$indigo-100: tint-color($indigo, 80%); -$indigo-200: tint-color($indigo, 60%); -$indigo-300: tint-color($indigo, 40%); -$indigo-400: tint-color($indigo, 20%); -$indigo-500: $indigo; -$indigo-600: shade-color($indigo, 20%); -$indigo-700: shade-color($indigo, 40%); -$indigo-800: shade-color($indigo, 60%); -$indigo-900: shade-color($indigo, 80%); - -$purple-100: tint-color($purple, 80%); -$purple-200: tint-color($purple, 60%); -$purple-300: tint-color($purple, 40%); -$purple-400: tint-color($purple, 20%); -$purple-500: $purple; -$purple-600: shade-color($purple, 20%); -$purple-700: shade-color($purple, 40%); -$purple-800: shade-color($purple, 60%); -$purple-900: shade-color($purple, 80%); - -$pink-100: tint-color($pink, 80%); -$pink-200: tint-color($pink, 60%); -$pink-300: tint-color($pink, 40%); -$pink-400: tint-color($pink, 20%); -$pink-500: $pink; -$pink-600: shade-color($pink, 20%); -$pink-700: shade-color($pink, 40%); -$pink-800: shade-color($pink, 60%); -$pink-900: shade-color($pink, 80%); - -$red-100: tint-color($red, 80%); -$red-200: tint-color($red, 60%); -$red-300: tint-color($red, 40%); -$red-400: tint-color($red, 20%); -$red-500: $red; -$red-600: shade-color($red, 20%); -$red-700: shade-color($red, 40%); -$red-800: shade-color($red, 60%); -$red-900: shade-color($red, 80%); - -$orange-100: tint-color($orange, 80%); -$orange-200: tint-color($orange, 60%); -$orange-300: tint-color($orange, 40%); -$orange-400: tint-color($orange, 20%); -$orange-500: $orange; -$orange-600: shade-color($orange, 20%); -$orange-700: shade-color($orange, 40%); -$orange-800: shade-color($orange, 60%); -$orange-900: shade-color($orange, 80%); - -$yellow-100: tint-color($yellow, 80%); -$yellow-200: tint-color($yellow, 60%); -$yellow-300: tint-color($yellow, 40%); -$yellow-400: tint-color($yellow, 20%); -$yellow-500: $yellow; -$yellow-600: shade-color($yellow, 20%); -$yellow-700: shade-color($yellow, 40%); -$yellow-800: shade-color($yellow, 60%); -$yellow-900: shade-color($yellow, 80%); - -$green-100: tint-color($green, 80%); -$green-200: tint-color($green, 60%); -$green-300: tint-color($green, 40%); -$green-400: tint-color($green, 20%); -$green-500: $green; -$green-600: shade-color($green, 20%); -$green-700: shade-color($green, 40%); -$green-800: shade-color($green, 60%); -$green-900: shade-color($green, 80%); - -$teal-100: tint-color($teal, 80%); -$teal-200: tint-color($teal, 60%); -$teal-300: tint-color($teal, 40%); -$teal-400: tint-color($teal, 20%); -$teal-500: $teal; -$teal-600: shade-color($teal, 20%); -$teal-700: shade-color($teal, 40%); -$teal-800: shade-color($teal, 60%); -$teal-900: shade-color($teal, 80%); - -$cyan-100: tint-color($cyan, 80%); -$cyan-200: tint-color($cyan, 60%); -$cyan-300: tint-color($cyan, 40%); -$cyan-400: tint-color($cyan, 20%); -$cyan-500: $cyan; -$cyan-600: shade-color($cyan, 20%); -$cyan-700: shade-color($cyan, 40%); -$cyan-800: shade-color($cyan, 60%); -$cyan-900: shade-color($cyan, 80%); +$blue-100: tint-color($blue, 80%) !default; +$blue-200: tint-color($blue, 60%) !default; +$blue-300: tint-color($blue, 40%) !default; +$blue-400: tint-color($blue, 20%) !default; +$blue-500: $blue !default; +$blue-600: shade-color($blue, 20%) !default; +$blue-700: shade-color($blue, 40%) !default; +$blue-800: shade-color($blue, 60%) !default; +$blue-900: shade-color($blue, 80%) !default; + +$indigo-100: tint-color($indigo, 80%) !default; +$indigo-200: tint-color($indigo, 60%) !default; +$indigo-300: tint-color($indigo, 40%) !default; +$indigo-400: tint-color($indigo, 20%) !default; +$indigo-500: $indigo !default; +$indigo-600: shade-color($indigo, 20%) !default; +$indigo-700: shade-color($indigo, 40%) !default; +$indigo-800: shade-color($indigo, 60%) !default; +$indigo-900: shade-color($indigo, 80%) !default; + +$purple-100: tint-color($purple, 80%) !default; +$purple-200: tint-color($purple, 60%) !default; +$purple-300: tint-color($purple, 40%) !default; +$purple-400: tint-color($purple, 20%) !default; +$purple-500: $purple !default; +$purple-600: shade-color($purple, 20%) !default; +$purple-700: shade-color($purple, 40%) !default; +$purple-800: shade-color($purple, 60%) !default; +$purple-900: shade-color($purple, 80%) !default; + +$pink-100: tint-color($pink, 80%) !default; +$pink-200: tint-color($pink, 60%) !default; +$pink-300: tint-color($pink, 40%) !default; +$pink-400: tint-color($pink, 20%) !default; +$pink-500: $pink !default; +$pink-600: shade-color($pink, 20%) !default; +$pink-700: shade-color($pink, 40%) !default; +$pink-800: shade-color($pink, 60%) !default; +$pink-900: shade-color($pink, 80%) !default; + +$red-100: tint-color($red, 80%) !default; +$red-200: tint-color($red, 60%) !default; +$red-300: tint-color($red, 40%) !default; +$red-400: tint-color($red, 20%) !default; +$red-500: $red !default; +$red-600: shade-color($red, 20%) !default; +$red-700: shade-color($red, 40%) !default; +$red-800: shade-color($red, 60%) !default; +$red-900: shade-color($red, 80%) !default; + +$orange-100: tint-color($orange, 80%) !default; +$orange-200: tint-color($orange, 60%) !default; +$orange-300: tint-color($orange, 40%) !default; +$orange-400: tint-color($orange, 20%) !default; +$orange-500: $orange !default; +$orange-600: shade-color($orange, 20%) !default; +$orange-700: shade-color($orange, 40%) !default; +$orange-800: shade-color($orange, 60%) !default; +$orange-900: shade-color($orange, 80%) !default; + +$yellow-100: tint-color($yellow, 80%) !default; +$yellow-200: tint-color($yellow, 60%) !default; +$yellow-300: tint-color($yellow, 40%) !default; +$yellow-400: tint-color($yellow, 20%) !default; +$yellow-500: $yellow !default; +$yellow-600: shade-color($yellow, 20%) !default; +$yellow-700: shade-color($yellow, 40%) !default; +$yellow-800: shade-color($yellow, 60%) !default; +$yellow-900: shade-color($yellow, 80%) !default; + +$green-100: tint-color($green, 80%) !default; +$green-200: tint-color($green, 60%) !default; +$green-300: tint-color($green, 40%) !default; +$green-400: tint-color($green, 20%) !default; +$green-500: $green !default; +$green-600: shade-color($green, 20%) !default; +$green-700: shade-color($green, 40%) !default; +$green-800: shade-color($green, 60%) !default; +$green-900: shade-color($green, 80%) !default; + +$teal-100: tint-color($teal, 80%) !default; +$teal-200: tint-color($teal, 60%) !default; +$teal-300: tint-color($teal, 40%) !default; +$teal-400: tint-color($teal, 20%) !default; +$teal-500: $teal !default; +$teal-600: shade-color($teal, 20%) !default; +$teal-700: shade-color($teal, 40%) !default; +$teal-800: shade-color($teal, 60%) !default; +$teal-900: shade-color($teal, 80%) !default; + +$cyan-100: tint-color($cyan, 80%) !default; +$cyan-200: tint-color($cyan, 60%) !default; +$cyan-300: tint-color($cyan, 40%) !default; +$cyan-400: tint-color($cyan, 20%) !default; +$cyan-500: $cyan !default; +$cyan-600: shade-color($cyan, 20%) !default; +$cyan-700: shade-color($cyan, 40%) !default; +$cyan-800: shade-color($cyan, 60%) !default; +$cyan-900: shade-color($cyan, 80%) !default; // fusv-enable // Characters which are escaped by the escape-svg function @@ -256,36 +256,36 @@ $escaped-characters: ( ("#", "%23"), ("(", "%28"), (")", "%29"), -); +) !default; // Options // // Quickly modify global styling by enabling or disabling optional features. -$enable-caret: true; -$enable-rounded: true; -$enable-shadows: false; -$enable-gradients: false; -$enable-transitions: true; -$enable-reduced-motion: true; -$enable-smooth-scroll: true; -$enable-grid-classes: true; -$enable-button-pointers: true; -$enable-rfs: true; -$enable-validation-icons: true; -$enable-negative-margins: false; -$enable-deprecation-messages: true; -$enable-important-utilities: true; +$enable-caret: true !default; +$enable-rounded: true !default; +$enable-shadows: false !default; +$enable-gradients: false !default; +$enable-transitions: true !default; +$enable-reduced-motion: true !default; +$enable-smooth-scroll: true !default; +$enable-grid-classes: true !default; +$enable-button-pointers: true !default; +$enable-rfs: true !default; +$enable-validation-icons: true !default; +$enable-negative-margins: false !default; +$enable-deprecation-messages: true !default; +$enable-important-utilities: true !default; // Prefix for :root CSS variables -$variable-prefix: bs-; +$variable-prefix: bs- !default; // Gradient // // The gradient which is added to components if `$enable-gradients` is `true` // This gradient is also added to elements with `.bg-gradient` -$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)); +$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default; // Spacing // @@ -293,7 +293,7 @@ $gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)); // variables. Mostly focused on spacing. // You can add more entries to the $spacers map, should you need more variation. -$spacer: 1rem; +$spacer: 1rem !default; $spacers: ( 0: 0, 1: math.div($spacer, 4), @@ -301,9 +301,9 @@ $spacers: ( 3: $spacer, 4: $spacer * 1.5, 5: $spacer * 3, -); +) !default; -$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null); +$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default; // Position // @@ -313,36 +313,36 @@ $position-values: ( 0: 0, 50: 50%, 100: 100% -); +) !default; // Body // // Settings for the `` element. -$body-bg: #f2f7ff; -$body-color: #607080; -$body-text-align: null; +$body-bg: #f2f7ff !default; +$body-color: #607080 !default; +$body-text-align: null !default; // Links // // Style anchor elements. -$link-color: $primary; -$link-decoration: underline; -$link-shade-percentage: 20%; -$link-hover-color: shift-color($link-color, $link-shade-percentage); -$link-hover-decoration: null; +$link-color: $primary !default; +$link-decoration: underline !default; +$link-shade-percentage: 20% !default; +$link-hover-color: shift-color($link-color, $link-shade-percentage) !default; +$link-hover-decoration: null !default; -$stretched-link-pseudo-element: after; -$stretched-link-z-index: 1; +$stretched-link-pseudo-element: after !default; +$stretched-link-z-index: 1 !default; // Paragraphs // // Style p element. -$paragraph-margin-bottom: 1rem; +$paragraph-margin-bottom: 1rem !default; // Grid breakpoints @@ -358,7 +358,7 @@ $grid-breakpoints: ( lg: 992px, xl: 1200px, xxl: 1400px -); +) !default; // scss-docs-end grid-breakpoints @include _assert-ascending($grid-breakpoints, "$grid-breakpoints"); @@ -376,7 +376,7 @@ $container-max-widths: ( lg: 960px, xl: 1140px, xxl: 1320px -); +) !default; // scss-docs-end container-max-widths @include _assert-ascending($container-max-widths, "$container-max-widths"); @@ -386,22 +386,22 @@ $container-max-widths: ( // // Set the number of columns and specify the width of the gutters. -$grid-columns: 12; -$grid-gutter-width: 1.5rem; -$grid-row-columns: 6; +$grid-columns: 12 !default; +$grid-gutter-width: 1.5rem !default; +$grid-row-columns: 6 !default; -$gutters: $spacers; +$gutters: $spacers !default; // Container padding -$container-padding-x: math.div($grid-gutter-width, 2); +$container-padding-x: math.div($grid-gutter-width, 2) !default; // Components // // Define common padding and border radius sizes and more. -$border-width: 1px; +$border-width: 1px !default; $border-widths: ( 0: 0, 1: 1px, @@ -409,30 +409,30 @@ $border-widths: ( 3: 3px, 4: 4px, 5: 5px -); +) !default; -$border-color: $gray-300; +$border-color: $gray-300 !default; -$border-radius: .25rem; -$border-radius-sm: .2rem; -$border-radius-lg: .3rem; -$border-radius-pill: 50rem; +$border-radius: .25rem !default; +$border-radius-sm: .2rem !default; +$border-radius-lg: .3rem !default; +$border-radius-pill: 50rem !default; -$box-shadow: 0 .5rem 1rem rgba($black, .15); -$box-shadow-sm: 0 .125rem .25rem rgba($black, .075); -$box-shadow-lg: 0 1rem 3rem rgba($black, .175); -$box-shadow-inset: inset 0 1px 2px rgba($black, .075); +$box-shadow: 0 .5rem 1rem rgba($black, .15) !default; +$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default; +$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default; +$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default; -$component-active-color: $white; -$component-active-bg: $primary; +$component-active-color: $white !default; +$component-active-bg: $primary !default; -$caret-width: .3em; -$caret-vertical-align: $caret-width * .85; -$caret-spacing: $caret-width * .85; +$caret-width: .3em !default; +$caret-vertical-align: $caret-width * .85 !default; +$caret-spacing: $caret-width * .85 !default; -$transition-base: all .2s ease-in-out; -$transition-fade: opacity .15s linear; -$transition-collapse: height .35s ease; +$transition-base: all .2s ease-in-out !default; +$transition-fade: opacity .15s linear !default; +$transition-collapse: height .35s ease !default; // stylelint-disable function-disallowed-list // scss-docs-start aspect-ratios @@ -441,7 +441,7 @@ $aspect-ratios: ( "4x3": calc(3 / 4 * 100%), "16x9": calc(9 / 16 * 100%), "21x9": calc(9 / 21 * 100%) -); +) !default; // scss-docs-end aspect-ratios // stylelint-enable function-disallowed-list @@ -450,37 +450,37 @@ $aspect-ratios: ( // Font, line-height, and color for body text, headings, and more. // stylelint-disable value-keyword-case -$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; -$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; +$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; // stylelint-enable value-keyword-case -$font-family-base: "Nunito"; -$font-family-code: var(--#{$variable-prefix}font-monospace); +$font-family-base: "Nunito" !default; +$font-family-code: var(--#{$variable-prefix}font-monospace) !default; // $font-size-root effects the value of `rem`, which is used for as well font sizes, paddings and margins // $font-size-base effects the font size of the body text -$font-size-root: null; -$font-size-base: 1rem; // Assumes the browser default, typically `16px` -$font-size-sm: $font-size-base * .875; -$font-size-lg: $font-size-base * 1.25; - -$font-weight-lighter: lighter; -$font-weight-light: 300; -$font-weight-normal: 400; -$font-weight-bold: 700; -$font-weight-bolder: bolder; - -$font-weight-base: $font-weight-normal; - -$line-height-base: 1.5; -$line-height-sm: 1.25; -$line-height-lg: 2; - -$h1-font-size: $font-size-base * 2.5; -$h2-font-size: $font-size-base * 2; -$h3-font-size: $font-size-base * 1.75; -$h4-font-size: $font-size-base * 1.5; -$h5-font-size: $font-size-base * 1.25; -$h6-font-size: $font-size-base; +$font-size-root: null !default; +$font-size-base: 1rem !default; // Assumes the browser default, typically `16px` +$font-size-sm: $font-size-base * .875 !default; +$font-size-lg: $font-size-base * 1.25 !default; + +$font-weight-lighter: lighter !default; +$font-weight-light: 300 !default; +$font-weight-normal: 400 !default; +$font-weight-bold: 700 !default; +$font-weight-bolder: bolder !default; + +$font-weight-base: $font-weight-normal !default; + +$line-height-base: 1.5 !default; +$line-height-sm: 1.25 !default; +$line-height-lg: 2 !default; + +$h1-font-size: $font-size-base * 2.5 !default; +$h2-font-size: $font-size-base * 2 !default; +$h3-font-size: $font-size-base * 1.75 !default; +$h4-font-size: $font-size-base * 1.5 !default; +$h5-font-size: $font-size-base * 1.25 !default; +$h6-font-size: $font-size-base !default; // scss-docs-start font-sizes $font-sizes: ( @@ -490,15 +490,15 @@ $font-sizes: ( 4: $h4-font-size, 5: $h5-font-size, 6: $h6-font-size -); +) !default; // scss-docs-end font-sizes -$headings-margin-bottom: math.div($spacer, 2); -$headings-font-family: null; -$headings-font-style: null; -$headings-font-weight: 700; -$headings-line-height: 1.2; -$headings-color: #25396f; +$headings-margin-bottom: math.div($spacer, 2) !default; +$headings-font-family: null !default; +$headings-font-style: null !default; +$headings-font-weight: 700 !default; +$headings-line-height: 1.2 !default; +$headings-color: #25396f !default; // scss-docs-start display-headings $display-font-sizes: ( @@ -508,46 +508,46 @@ $display-font-sizes: ( 4: 3.5rem, 5: 3rem, 6: 2.5rem -); +) !default; -$display-font-weight: 300; -$display-line-height: $headings-line-height; +$display-font-weight: 300 !default; +$display-line-height: $headings-line-height !default; // scss-docs-end display-headings -$lead-font-size: $font-size-base * 1.25; -$lead-font-weight: 300; +$lead-font-size: $font-size-base * 1.25 !default; +$lead-font-weight: 300 !default; -$small-font-size: .875em; +$small-font-size: .875em !default; -$sub-sup-font-size: .75em; +$sub-sup-font-size: .75em !default; -$text-muted: #7c8db5; +$text-muted: #7c8db5 !default; -$initialism-font-size: $small-font-size; +$initialism-font-size: $small-font-size !default; -$blockquote-margin-y: $spacer; -$blockquote-font-size: $font-size-base * 1.25; -$blockquote-footer-color: $gray-600; -$blockquote-footer-font-size: $small-font-size; +$blockquote-margin-y: $spacer !default; +$blockquote-font-size: $font-size-base * 1.25 !default; +$blockquote-footer-color: $gray-600 !default; +$blockquote-footer-font-size: $small-font-size !default; -$hr-margin-y: $spacer; -$hr-color: inherit; -$hr-height: $border-width; -$hr-opacity: .25; +$hr-margin-y: $spacer !default; +$hr-color: inherit !default; +$hr-height: $border-width !default; +$hr-opacity: .25 !default; -$legend-margin-bottom: .5rem; -$legend-font-size: 1.5rem; -$legend-font-weight: null; +$legend-margin-bottom: .5rem !default; +$legend-font-size: 1.5rem !default; +$legend-font-weight: null !default; -$mark-padding: .2em; +$mark-padding: .2em !default; -$dt-font-weight: $font-weight-bold; +$dt-font-weight: $font-weight-bold !default; -$nested-kbd-font-weight: $font-weight-bold; +$nested-kbd-font-weight: $font-weight-bold !default; -$list-inline-padding: .5rem; +$list-inline-padding: .5rem !default; -$mark-bg: #fcf8e3; +$mark-bg: #fcf8e3 !default; // Tables @@ -555,42 +555,42 @@ $mark-bg: #fcf8e3; // Customizes the `.table` component with basic values, each used across all table variations. // scss-docs-start table-variables -$table-cell-padding-y: .5rem; -$table-cell-padding-x: .5rem; -$table-cell-padding-y-sm: .25rem; -$table-cell-padding-x-sm: .25rem; +$table-cell-padding-y: .5rem !default; +$table-cell-padding-x: .5rem !default; +$table-cell-padding-y-sm: .25rem !default; +$table-cell-padding-x-sm: .25rem !default; -$table-cell-vertical-align: top; +$table-cell-vertical-align: top !default; -$table-color: $body-color; -$table-bg: transparent; -$table-accent-bg: transparent; +$table-color: $body-color !default; +$table-bg: transparent !default; +$table-accent-bg: transparent !default; -$table-th-font-weight: null; +$table-th-font-weight: null !default; -$table-striped-color: $table-color; -$table-striped-bg-factor: .05; -$table-striped-bg: rgba($black, $table-striped-bg-factor); +$table-striped-color: $table-color !default; +$table-striped-bg-factor: .05 !default; +$table-striped-bg: rgba($black, $table-striped-bg-factor) !default; -$table-active-color: $table-color; -$table-active-bg-factor: .1; -$table-active-bg: rgba($black, $table-active-bg-factor); +$table-active-color: $table-color !default; +$table-active-bg-factor: .1 !default; +$table-active-bg: rgba($black, $table-active-bg-factor) !default; -$table-hover-color: $table-color; -$table-hover-bg-factor: .075; -$table-hover-bg: rgba($black, $table-hover-bg-factor); +$table-hover-color: $table-color !default; +$table-hover-bg-factor: .075 !default; +$table-hover-bg: rgba($black, $table-hover-bg-factor) !default; -$table-border-factor: .1; -$table-border-width: $border-width; -$table-border-color: #eee; +$table-border-factor: .1 !default; +$table-border-width: $border-width !default; +$table-border-color: #eee !default; -$table-striped-order: odd; +$table-striped-order: odd !default; -$table-group-separator-color: #dedede; +$table-group-separator-color: #dedede !default; -$table-caption-color: $text-muted; +$table-caption-color: $text-muted !default; -$table-bg-scale: -80%; +$table-bg-scale: -80% !default; $table-variants: ( "primary": shift-color($primary, $table-bg-scale), @@ -601,7 +601,7 @@ $table-variants: ( "danger": shift-color($danger, $table-bg-scale), "light": $light, "dark": $dark, -); +) !default; // scss-docs-end table-variables @@ -609,282 +609,282 @@ $table-variants: ( // // Shared variables that are reassigned to `$input-` and `$btn-` specific variables. -$input-btn-padding-y: .375rem; -$input-btn-padding-x: .75rem; -$input-btn-font-family: null; -$input-btn-font-size: $font-size-base; -$input-btn-line-height: $line-height-base; +$input-btn-padding-y: .375rem !default; +$input-btn-padding-x: .75rem !default; +$input-btn-font-family: null !default; +$input-btn-font-size: $font-size-base !default; +$input-btn-line-height: $line-height-base !default; -$input-btn-focus-width: .25rem; -$input-btn-focus-color-opacity: .25; -$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity); -$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color; -$input-btn-focus-blur: 0; -$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color; +$input-btn-focus-width: .25rem !default; +$input-btn-focus-color-opacity: .25 !default; +$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default; +$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default; +$input-btn-focus-blur: 0 !default; +$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default; -$input-btn-padding-y-sm: .25rem; -$input-btn-padding-x-sm: .5rem; -$input-btn-font-size-sm: $font-size-sm; +$input-btn-padding-y-sm: .25rem !default; +$input-btn-padding-x-sm: .5rem !default; +$input-btn-font-size-sm: $font-size-sm !default; -$input-btn-padding-y-lg: .5rem; -$input-btn-padding-x-lg: 1rem; -$input-btn-font-size-lg: $font-size-lg; +$input-btn-padding-y-lg: .5rem !default; +$input-btn-padding-x-lg: 1rem !default; +$input-btn-font-size-lg: $font-size-lg !default; -$input-btn-border-width: $border-width; +$input-btn-border-width: $border-width !default; // Buttons // // For each of Bootstrap's buttons, define text, background, and border color. -$btn-padding-y: $input-btn-padding-y; -$btn-padding-x: $input-btn-padding-x; -$btn-font-family: $input-btn-font-family; -$btn-font-size: $input-btn-font-size; -$btn-line-height: $input-btn-line-height; -$btn-white-space: null; // Set to `nowrap` to prevent text wrapping +$btn-padding-y: $input-btn-padding-y !default; +$btn-padding-x: $input-btn-padding-x !default; +$btn-font-family: $input-btn-font-family !default; +$btn-font-size: $input-btn-font-size !default; +$btn-line-height: $input-btn-line-height !default; +$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping -$btn-padding-y-sm: $input-btn-padding-y-sm; -$btn-padding-x-sm: $input-btn-padding-x-sm; -$btn-font-size-sm: $input-btn-font-size-sm; +$btn-padding-y-sm: $input-btn-padding-y-sm !default; +$btn-padding-x-sm: $input-btn-padding-x-sm !default; +$btn-font-size-sm: $input-btn-font-size-sm !default; -$btn-padding-y-lg: $input-btn-padding-y-lg; -$btn-padding-x-lg: $input-btn-padding-x-lg; -$btn-font-size-lg: $input-btn-font-size-lg; +$btn-padding-y-lg: $input-btn-padding-y-lg !default; +$btn-padding-x-lg: $input-btn-padding-x-lg !default; +$btn-font-size-lg: $input-btn-font-size-lg !default; -$btn-border-width: $input-btn-border-width; +$btn-border-width: $input-btn-border-width !default; -$btn-font-weight: $font-weight-normal; -$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075); -$btn-focus-width: $input-btn-focus-width; -$btn-focus-box-shadow: $input-btn-focus-box-shadow; -$btn-disabled-opacity: .65; -$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125); +$btn-font-weight: $font-weight-normal !default; +$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default; +$btn-focus-width: $input-btn-focus-width !default; +$btn-focus-box-shadow: $input-btn-focus-box-shadow !default; +$btn-disabled-opacity: .65 !default; +$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default; -$btn-link-color: $link-color; -$btn-link-hover-color: $link-hover-color; -$btn-link-disabled-color: $gray-600; +$btn-link-color: $link-color !default; +$btn-link-hover-color: $link-hover-color !default; +$btn-link-disabled-color: $gray-600 !default; // Allows for customizing button radius independently from global border radius -$btn-border-radius: $border-radius; -$btn-border-radius-sm: $border-radius-sm; -$btn-border-radius-lg: $border-radius-lg; +$btn-border-radius: $border-radius !default; +$btn-border-radius-sm: $border-radius-sm !default; +$btn-border-radius-lg: $border-radius-lg !default; -$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; +$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; -$btn-hover-bg-shade-amount: 15%; -$btn-hover-bg-tint-amount: 15%; -$btn-hover-border-shade-amount: 20%; -$btn-hover-border-tint-amount: 10%; -$btn-active-bg-shade-amount: 20%; -$btn-active-bg-tint-amount: 20%; -$btn-active-border-shade-amount: 25%; -$btn-active-border-tint-amount: 10%; +$btn-hover-bg-shade-amount: 15% !default; +$btn-hover-bg-tint-amount: 15% !default; +$btn-hover-border-shade-amount: 20% !default; +$btn-hover-border-tint-amount: 10% !default; +$btn-active-bg-shade-amount: 20% !default; +$btn-active-bg-tint-amount: 20% !default; +$btn-active-border-shade-amount: 25% !default; +$btn-active-border-tint-amount: 10% !default; // Forms -$form-text-margin-top: .25rem; -$form-text-font-size: $small-font-size; -$form-text-font-style: null; -$form-text-font-weight: null; -$form-text-color: $text-muted; - -$form-label-margin-bottom: .5rem; -$form-label-font-size: null; -$form-label-font-style: null; -$form-label-font-weight: null; -$form-label-color: null; - -$input-padding-y: $input-btn-padding-y; -$input-padding-x: $input-btn-padding-x; -$input-font-family: $input-btn-font-family; -$input-font-size: $input-btn-font-size; -$input-font-weight: $font-weight-base; -$input-line-height: $input-btn-line-height; - -$input-padding-y-sm: $input-btn-padding-y-sm; -$input-padding-x-sm: $input-btn-padding-x-sm; -$input-font-size-sm: $input-btn-font-size-sm; - -$input-padding-y-lg: $input-btn-padding-y-lg; -$input-padding-x-lg: $input-btn-padding-x-lg; -$input-font-size-lg: $input-btn-font-size-lg; - -$input-bg: $white; -$input-disabled-bg: $gray-200; -$input-disabled-border-color: null; - -$input-color: $body-color; -$input-border-color: #dce7f1; -$input-border-width: $input-btn-border-width; -$input-box-shadow: $box-shadow-inset; - -$input-border-radius: $border-radius; -$input-border-radius-sm: $border-radius-sm; -$input-border-radius-lg: $border-radius-lg; - -$input-focus-bg: $input-bg; -$input-focus-border-color: tint-color($component-active-bg, 50%); -$input-focus-color: $input-color; -$input-focus-width: $input-btn-focus-width; -$input-focus-box-shadow: $input-btn-focus-box-shadow; - -$input-placeholder-color: $gray-500; -$input-plaintext-color: $body-color; - -$input-height-border: $input-border-width * 2; - -$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2); -$input-height-inner-half: add($input-line-height * .5em, $input-padding-y); -$input-height-inner-quarter: add($input-line-height * .25em, math.div($input-padding-y, 2)); - -$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)); -$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)); -$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)); - -$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out; - - -$form-check-input-width: 1.2em; -$form-check-min-height: $font-size-base * $line-height-base; -$form-check-padding-start: $form-check-input-width + .5em; -$form-check-margin-bottom: .125rem; -$form-check-label-color: null; -$form-check-label-cursor: null; -$form-check-transition: background-color .15s ease-in-out, background-position .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; - -$form-check-input-active-filter: brightness(90%); - -$form-check-input-bg: #fff; -$form-check-input-border: 3px solid #e1e3ea; -$form-check-input-border-radius: .3em; -$form-check-radio-border-radius: 50%; -$form-check-input-focus-border: $input-focus-border-color; -$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow; - -$form-check-input-checked-color: $component-active-color; -$form-check-input-checked-bg-color: $component-active-bg; -$form-check-input-checked-border-color: $form-check-input-checked-bg-color; -$form-check-input-checked-bg-image: url("data:image/svg+xml,"); -$form-check-radio-checked-bg-image: url("data:image/svg+xml,"); - -$form-check-input-indeterminate-color: $component-active-color; -$form-check-input-indeterminate-bg-color: $component-active-bg; -$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color; -$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,"); - -$form-check-input-disabled-opacity: .5; -$form-check-label-disabled-opacity: $form-check-input-disabled-opacity; -$form-check-btn-check-disabled-opacity: $btn-disabled-opacity; - -$form-switch-color: rgba(0, 0, 0, .25); -$form-switch-width: 2em; -$form-switch-padding-start: $form-switch-width + .5em; -$form-switch-bg-image: url("data:image/svg+xml,"); -$form-switch-border-radius: $form-switch-width; -$form-switch-transition: background-position .15s ease-in-out; - -$form-switch-focus-color: $input-focus-border-color; -$form-switch-focus-bg-image: url("data:image/svg+xml,"); - -$form-switch-checked-color: $component-active-color; -$form-switch-checked-bg-image: url("data:image/svg+xml,"); -$form-switch-checked-bg-position: right center; - -$form-check-inline-margin-end: 1rem; - -$input-group-addon-padding-y: $input-padding-y; -$input-group-addon-padding-x: $input-padding-x; -$input-group-addon-font-weight: $input-font-weight; -$input-group-addon-color: #526e8a ; -$input-group-addon-bg: #e6eef5; -$input-group-addon-border-color: #dce7f1; - -$form-select-padding-y: $input-padding-y; -$form-select-padding-x: $input-padding-x; -$form-select-font-family: $input-font-family; -$form-select-font-size: $input-font-size; -$form-select-indicator-padding: 1.75rem; // Extra padding to account for the presence of the background-image based indicator -$form-select-font-weight: $input-font-weight; -$form-select-line-height: $input-line-height; -$form-select-color: $input-color; -$form-select-disabled-color: $gray-600; -$form-select-bg: $input-bg; -$form-select-disabled-bg: $gray-200; -$form-select-disabled-border-color: $input-disabled-border-color; -$form-select-bg-position: right $form-select-padding-x center; -$form-select-bg-size: 16px 12px; // In pixels because image dimensions -$form-select-indicator-color: $gray-800; -$form-select-indicator: url("data:image/svg+xml,"); -$form-select-transition: $input-transition; - -$form-select-feedback-icon-padding-end: add(1em * .75, (2 * $form-select-padding-y * .75) + $form-select-padding-x + $form-select-indicator-padding); -$form-select-feedback-icon-position: center right ($form-select-padding-x + $form-select-indicator-padding); -$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half; - -$form-select-border-width: $input-border-width; -$form-select-border-color: $input-border-color; -$form-select-border-radius: $border-radius; -$form-select-box-shadow: $box-shadow-inset; - -$form-select-focus-border-color: $input-focus-border-color; -$form-select-focus-width: $input-focus-width; -$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color; - -$form-select-padding-y-sm: $input-padding-y-sm; -$form-select-padding-x-sm: $input-padding-x-sm; -$form-select-font-size-sm: $input-font-size-sm; - -$form-select-padding-y-lg: $input-padding-y-lg; -$form-select-padding-x-lg: $input-padding-x-lg; -$form-select-font-size-lg: $input-font-size-lg; - -$form-range-track-width: 100%; -$form-range-track-height: .5rem; -$form-range-track-cursor: pointer; -$form-range-track-bg: $gray-300; -$form-range-track-border-radius: 1rem; -$form-range-track-box-shadow: $box-shadow-inset; - -$form-range-thumb-width: 1rem; -$form-range-thumb-height: $form-range-thumb-width; -$form-range-thumb-bg: $component-active-bg; -$form-range-thumb-border: 0; -$form-range-thumb-border-radius: 1rem; -$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1); -$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow; -$form-range-thumb-focus-box-shadow-width: $input-focus-width; // For focus box shadow issue in Edge -$form-range-thumb-active-bg: tint-color($component-active-bg, 70%); -$form-range-thumb-disabled-bg: $gray-500; -$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; - -$form-file-button-color: $input-color; -$form-file-button-bg: $input-group-addon-bg; -$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%); - -$form-floating-height: add(3.5rem, $input-height-border); -$form-floating-line-height: 1.25; -$form-floating-padding-x: $input-padding-x; -$form-floating-padding-y: 1rem; -$form-floating-input-padding-t: 1.625rem; -$form-floating-input-padding-b: .625rem; -$form-floating-label-opacity: .65; -$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem); -$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out; +$form-text-margin-top: .25rem !default; +$form-text-font-size: $small-font-size !default; +$form-text-font-style: null !default; +$form-text-font-weight: null !default; +$form-text-color: $text-muted !default; + +$form-label-margin-bottom: .5rem !default; +$form-label-font-size: null !default; +$form-label-font-style: null !default; +$form-label-font-weight: null !default; +$form-label-color: null !default; + +$input-padding-y: $input-btn-padding-y !default; +$input-padding-x: $input-btn-padding-x !default; +$input-font-family: $input-btn-font-family !default; +$input-font-size: $input-btn-font-size !default; +$input-font-weight: $font-weight-base !default; +$input-line-height: $input-btn-line-height !default; + +$input-padding-y-sm: $input-btn-padding-y-sm !default; +$input-padding-x-sm: $input-btn-padding-x-sm !default; +$input-font-size-sm: $input-btn-font-size-sm !default; + +$input-padding-y-lg: $input-btn-padding-y-lg !default; +$input-padding-x-lg: $input-btn-padding-x-lg !default; +$input-font-size-lg: $input-btn-font-size-lg !default; + +$input-bg: $white !default; +$input-disabled-bg: $gray-200 !default; +$input-disabled-border-color: null !default; + +$input-color: $body-color !default; +$input-border-color: #dce7f1 !default; +$input-border-width: $input-btn-border-width !default; +$input-box-shadow: $box-shadow-inset !default; + +$input-border-radius: $border-radius !default; +$input-border-radius-sm: $border-radius-sm !default; +$input-border-radius-lg: $border-radius-lg !default; + +$input-focus-bg: $input-bg !default; +$input-focus-border-color: tint-color($component-active-bg, 50%) !default; +$input-focus-color: $input-color !default; +$input-focus-width: $input-btn-focus-width !default; +$input-focus-box-shadow: $input-btn-focus-box-shadow !default; + +$input-placeholder-color: $gray-500 !default; +$input-plaintext-color: $body-color !default; + +$input-height-border: $input-border-width * 2 !default; + +$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default; +$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default; +$input-height-inner-quarter: add($input-line-height * .25em, math.div($input-padding-y, 2)) !default; + +$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default; +$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default; +$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default; + +$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; + + +$form-check-input-width: 1.2em !default; +$form-check-min-height: $font-size-base * $line-height-base !default; +$form-check-padding-start: $form-check-input-width + .5em !default; +$form-check-margin-bottom: .125rem !default; +$form-check-label-color: null !default; +$form-check-label-cursor: null !default; +$form-check-transition: background-color .15s ease-in-out, background-position .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; + +$form-check-input-active-filter: brightness(90%) !default; + +$form-check-input-bg: #fff !default; +$form-check-input-border: 3px solid #e1e3ea !default; +$form-check-input-border-radius: .3em !default; +$form-check-radio-border-radius: 50% !default; +$form-check-input-focus-border: $input-focus-border-color !default; +$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default; + +$form-check-input-checked-color: $component-active-color !default; +$form-check-input-checked-bg-color: $component-active-bg !default; +$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default; +$form-check-input-checked-bg-image: url("data:image/svg+xml,") !default; +$form-check-radio-checked-bg-image: url("data:image/svg+xml,") !default; + +$form-check-input-indeterminate-color: $component-active-color !default; +$form-check-input-indeterminate-bg-color: $component-active-bg !default; +$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default; +$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,") !default; + +$form-check-input-disabled-opacity: .5 !default; +$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default; +$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default; + +$form-switch-color: rgba(0, 0, 0, .25) !default; +$form-switch-width: 2em !default; +$form-switch-padding-start: $form-switch-width + .5em !default; +$form-switch-bg-image: url("data:image/svg+xml,") !default; +$form-switch-border-radius: $form-switch-width !default; +$form-switch-transition: background-position .15s ease-in-out !default; + +$form-switch-focus-color: $input-focus-border-color !default; +$form-switch-focus-bg-image: url("data:image/svg+xml,") !default; + +$form-switch-checked-color: $component-active-color !default; +$form-switch-checked-bg-image: url("data:image/svg+xml,") !default; +$form-switch-checked-bg-position: right center !default; + +$form-check-inline-margin-end: 1rem !default; + +$input-group-addon-padding-y: $input-padding-y !default; +$input-group-addon-padding-x: $input-padding-x !default; +$input-group-addon-font-weight: $input-font-weight !default; +$input-group-addon-color: #526e8a !default; +$input-group-addon-bg: #e6eef5 !default; +$input-group-addon-border-color: #dce7f1 !default; + +$form-select-padding-y: $input-padding-y !default; +$form-select-padding-x: $input-padding-x !default; +$form-select-font-family: $input-font-family !default; +$form-select-font-size: $input-font-size !default; +$form-select-indicator-padding: 1.75rem !default; // Extra padding to account for the presence of the background-image based indicator +$form-select-font-weight: $input-font-weight !default; +$form-select-line-height: $input-line-height !default; +$form-select-color: $input-color !default; +$form-select-disabled-color: $gray-600 !default; +$form-select-bg: $input-bg !default; +$form-select-disabled-bg: $gray-200 !default; +$form-select-disabled-border-color: $input-disabled-border-color !default; +$form-select-bg-position: right $form-select-padding-x center !default; +$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions +$form-select-indicator-color: $gray-800 !default; +$form-select-indicator: url("data:image/svg+xml,") !default; +$form-select-transition: $input-transition !default; + +$form-select-feedback-icon-padding-end: add(1em * .75, (2 * $form-select-padding-y * .75) + $form-select-padding-x + $form-select-indicator-padding) !default; +$form-select-feedback-icon-position: center right ($form-select-padding-x + $form-select-indicator-padding) !default; +$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default; + +$form-select-border-width: $input-border-width !default; +$form-select-border-color: $input-border-color !default; +$form-select-border-radius: $border-radius !default; +$form-select-box-shadow: $box-shadow-inset !default; + +$form-select-focus-border-color: $input-focus-border-color !default; +$form-select-focus-width: $input-focus-width !default; +$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default; + +$form-select-padding-y-sm: $input-padding-y-sm !default; +$form-select-padding-x-sm: $input-padding-x-sm !default; +$form-select-font-size-sm: $input-font-size-sm !default; + +$form-select-padding-y-lg: $input-padding-y-lg !default; +$form-select-padding-x-lg: $input-padding-x-lg !default; +$form-select-font-size-lg: $input-font-size-lg !default; + +$form-range-track-width: 100% !default; +$form-range-track-height: .5rem !default; +$form-range-track-cursor: pointer !default; +$form-range-track-bg: $gray-300 !default; +$form-range-track-border-radius: 1rem !default; +$form-range-track-box-shadow: $box-shadow-inset !default; + +$form-range-thumb-width: 1rem !default; +$form-range-thumb-height: $form-range-thumb-width !default; +$form-range-thumb-bg: $component-active-bg !default; +$form-range-thumb-border: 0 !default; +$form-range-thumb-border-radius: 1rem !default; +$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default; +$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default; +$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge +$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default; +$form-range-thumb-disabled-bg: $gray-500 !default; +$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; + +$form-file-button-color: $input-color !default; +$form-file-button-bg: $input-group-addon-bg !default; +$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default; + +$form-floating-height: add(3.5rem, $input-height-border) !default; +$form-floating-line-height: 1.25 !default; +$form-floating-padding-x: $input-padding-x !default; +$form-floating-padding-y: 1rem !default; +$form-floating-input-padding-t: 1.625rem !default; +$form-floating-input-padding-b: .625rem !default; +$form-floating-label-opacity: .65 !default; +$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default; +$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default; // Form validation -$form-feedback-margin-top: $form-text-margin-top; -$form-feedback-font-size: $form-text-font-size; -$form-feedback-font-style: $form-text-font-style; -$form-feedback-valid-color: $success; -$form-feedback-invalid-color: $danger; +$form-feedback-margin-top: $form-text-margin-top !default; +$form-feedback-font-size: $form-text-font-size !default; +$form-feedback-font-style: $form-text-font-style !default; +$form-feedback-valid-color: $success !default; +$form-feedback-invalid-color: $danger !default; -$form-feedback-icon-valid-color: $form-feedback-valid-color; -$form-feedback-icon-valid: url("data:image/svg+xml,"); -$form-feedback-icon-invalid-color: $form-feedback-invalid-color; -$form-feedback-icon-invalid: url("data:image/svg+xml,"); +$form-feedback-icon-valid-color: $form-feedback-valid-color !default; +$form-feedback-icon-valid: url("data:image/svg+xml,") !default; +$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; +$form-feedback-icon-invalid: url("data:image/svg+xml,") !default; // scss-docs-start form-validation-states $form-validation-states: ( @@ -896,7 +896,7 @@ $form-validation-states: ( "color": $form-feedback-invalid-color, "icon": $form-feedback-icon-invalid ) -); +) !default; // scss-docs-end form-validation-states // Z-index master list @@ -905,505 +905,505 @@ $form-validation-states: ( // of components dependent on the z-axis and are designed to all work together. // scss-docs-start zindex-stack -$zindex-dropdown: 1000; -$zindex-sticky: 1020; -$zindex-fixed: 1030; -$zindex-modal-backdrop: 1040; -$zindex-modal: 1050; -$zindex-popover: 1060; -$zindex-tooltip: 1070; +$zindex-dropdown: 1000 !default; +$zindex-sticky: 1020 !default; +$zindex-fixed: 1030 !default; +$zindex-modal-backdrop: 1040 !default; +$zindex-modal: 1050 !default; +$zindex-popover: 1060 !default; +$zindex-tooltip: 1070 !default; // scss-docs-end zindex-stack // Navs -$nav-link-padding-y: .5rem; -$nav-link-padding-x: 1rem; -$nav-link-font-size: null; -$nav-link-font-weight: null; -$nav-link-color: null; -$nav-link-hover-color: null; -$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out; -$nav-link-disabled-color: $gray-600; +$nav-link-padding-y: .5rem !default; +$nav-link-padding-x: 1rem !default; +$nav-link-font-size: null !default; +$nav-link-font-weight: null !default; +$nav-link-color: null !default; +$nav-link-hover-color: null !default; +$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default; +$nav-link-disabled-color: $gray-600 !default; -$nav-tabs-border-color: $gray-300; -$nav-tabs-border-width: $border-width; -$nav-tabs-border-radius: $border-radius; -$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color; -$nav-tabs-link-active-color: $gray-700; -$nav-tabs-link-active-bg: $body-bg; -$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg; +$nav-tabs-border-color: $gray-300 !default; +$nav-tabs-border-width: $border-width !default; +$nav-tabs-border-radius: $border-radius !default; +$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default; +$nav-tabs-link-active-color: $gray-700 !default; +$nav-tabs-link-active-bg: $body-bg !default; +$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default; -$nav-pills-border-radius: $border-radius; -$nav-pills-link-active-color: $component-active-color; -$nav-pills-link-active-bg: $component-active-bg; +$nav-pills-border-radius: $border-radius !default; +$nav-pills-link-active-color: $component-active-color !default; +$nav-pills-link-active-bg: $component-active-bg !default; // Navbar -$navbar-padding-y: math.div($spacer, 2); -$navbar-padding-x: null; +$navbar-padding-y: math.div($spacer, 2) !default; +$navbar-padding-x: null !default; -$navbar-nav-link-padding-x: .5rem; +$navbar-nav-link-padding-x: .5rem !default; -$navbar-brand-font-size: $font-size-lg; +$navbar-brand-font-size: $font-size-lg !default; // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link -$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2; -$navbar-brand-height: $navbar-brand-font-size * $line-height-base; -$navbar-brand-padding-y: math.div(($nav-link-height - $navbar-brand-height), 2); -$navbar-brand-margin-end: 1rem; - -$navbar-toggler-padding-y: .25rem; -$navbar-toggler-padding-x: .75rem; -$navbar-toggler-font-size: $font-size-lg; -$navbar-toggler-border-radius: $btn-border-radius; -$navbar-toggler-focus-width: $btn-focus-width; -$navbar-toggler-transition: box-shadow .15s ease-in-out; - -$navbar-dark-color: rgba($white, .55); -$navbar-dark-hover-color: rgba($white, .75); -$navbar-dark-active-color: $white; -$navbar-dark-disabled-color: rgba($white, .25); -$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,"); -$navbar-dark-toggler-border-color: rgba($white, .1); - -$navbar-light-color: rgba($black, .55); -$navbar-light-hover-color: rgba($black, .7); -$navbar-light-active-color: rgba($black, .9); -$navbar-light-disabled-color: rgba($black, .3); -$navbar-light-toggler-icon-bg: url("data:image/svg+xml,"); -$navbar-light-toggler-border-color: rgba($black, .1); - -$navbar-light-brand-color: $navbar-light-active-color; -$navbar-light-brand-hover-color: $navbar-light-active-color; -$navbar-dark-brand-color: $navbar-dark-active-color; -$navbar-dark-brand-hover-color: $navbar-dark-active-color; +$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default; +$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default; +$navbar-brand-padding-y: math.div(($nav-link-height - $navbar-brand-height), 2) !default; +$navbar-brand-margin-end: 1rem !default; + +$navbar-toggler-padding-y: .25rem !default; +$navbar-toggler-padding-x: .75rem !default; +$navbar-toggler-font-size: $font-size-lg !default; +$navbar-toggler-border-radius: $btn-border-radius !default; +$navbar-toggler-focus-width: $btn-focus-width !default; +$navbar-toggler-transition: box-shadow .15s ease-in-out !default; + +$navbar-dark-color: rgba($white, .55) !default; +$navbar-dark-hover-color: rgba($white, .75) !default; +$navbar-dark-active-color: $white !default; +$navbar-dark-disabled-color: rgba($white, .25) !default; +$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,") !default; +$navbar-dark-toggler-border-color: rgba($white, .1) !default; + +$navbar-light-color: rgba($black, .55) !default; +$navbar-light-hover-color: rgba($black, .7) !default; +$navbar-light-active-color: rgba($black, .9) !default; +$navbar-light-disabled-color: rgba($black, .3) !default; +$navbar-light-toggler-icon-bg: url("data:image/svg+xml,") !default; +$navbar-light-toggler-border-color: rgba($black, .1) !default; + +$navbar-light-brand-color: $navbar-light-active-color !default; +$navbar-light-brand-hover-color: $navbar-light-active-color !default; +$navbar-dark-brand-color: $navbar-dark-active-color !default; +$navbar-dark-brand-hover-color: $navbar-dark-active-color !default; // Dropdowns // // Dropdown menu container and contents. -$dropdown-min-width: 15rem; -$dropdown-padding-x: 0; -$dropdown-padding-y: .5rem; -$dropdown-spacer: .125rem; -$dropdown-font-size: $font-size-base; -$dropdown-color: $body-color; -$dropdown-bg: $white; -$dropdown-border-color: rgba($black, .15); -$dropdown-border-radius: $border-radius; -$dropdown-border-width: 0; -$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width); -$dropdown-divider-bg: rgb(189, 199, 209); -$dropdown-divider-margin-y: math.div($spacer, 2); -$dropdown-box-shadow: 1px 4px 15px #f4f5f9; - -$dropdown-link-color: $gray-900; -$dropdown-link-hover-color: shade-color($gray-900, 10%); -$dropdown-link-hover-bg: $gray-100; - -$dropdown-link-active-color: $component-active-color; -$dropdown-link-active-bg: $component-active-bg; - -$dropdown-link-disabled-color: $gray-600; - -$dropdown-item-padding-y: .45rem; -$dropdown-item-padding-x: 1.5rem; - -$dropdown-header-color: $gray-600; -$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x; - -$dropdown-dark-color: $gray-300; -$dropdown-dark-bg: $gray-800; -$dropdown-dark-border-color: $dropdown-border-color; -$dropdown-dark-divider-bg: $dropdown-divider-bg; -$dropdown-dark-box-shadow: null; -$dropdown-dark-link-color: $dropdown-dark-color; -$dropdown-dark-link-hover-color: $white; -$dropdown-dark-link-hover-bg: rgba($white, .15); -$dropdown-dark-link-active-color: $dropdown-link-active-color; -$dropdown-dark-link-active-bg: $dropdown-link-active-bg; -$dropdown-dark-link-disabled-color: $gray-500; -$dropdown-dark-header-color: $gray-500; +$dropdown-min-width: 15rem !default; +$dropdown-padding-x: 0 !default; +$dropdown-padding-y: .5rem !default; +$dropdown-spacer: .125rem !default; +$dropdown-font-size: $font-size-base !default; +$dropdown-color: $body-color !default; +$dropdown-bg: $white !default; +$dropdown-border-color: rgba($black, .15) !default; +$dropdown-border-radius: $border-radius !default; +$dropdown-border-width: 0 !default; +$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default; +$dropdown-divider-bg: rgb(189, 199, 209) !default; +$dropdown-divider-margin-y: math.div($spacer, 2) !default; +$dropdown-box-shadow: 1px 4px 15px #f4f5f9 !default; + +$dropdown-link-color: $gray-900 !default; +$dropdown-link-hover-color: shade-color($gray-900, 10%) !default; +$dropdown-link-hover-bg: $gray-100 !default; + +$dropdown-link-active-color: $component-active-color !default; +$dropdown-link-active-bg: $component-active-bg !default; + +$dropdown-link-disabled-color: $gray-600 !default; + +$dropdown-item-padding-y: .45rem !default; +$dropdown-item-padding-x: 1.5rem !default; + +$dropdown-header-color: $gray-600 !default; +$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default; + +$dropdown-dark-color: $gray-300 !default; +$dropdown-dark-bg: $gray-800 !default; +$dropdown-dark-border-color: $dropdown-border-color !default; +$dropdown-dark-divider-bg: $dropdown-divider-bg !default; +$dropdown-dark-box-shadow: null !default; +$dropdown-dark-link-color: $dropdown-dark-color !default; +$dropdown-dark-link-hover-color: $white !default; +$dropdown-dark-link-hover-bg: rgba($white, .15) !default; +$dropdown-dark-link-active-color: $dropdown-link-active-color !default; +$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default; +$dropdown-dark-link-disabled-color: $gray-500 !default; +$dropdown-dark-header-color: $gray-500 !default; // Pagination -$pagination-padding-y: .375rem; -$pagination-padding-x: .75rem; -$pagination-padding-y-sm: .25rem; -$pagination-padding-x-sm: .5rem; -$pagination-padding-y-lg: .75rem; -$pagination-padding-x-lg: 1.5rem; - -$pagination-color: $link-color; -$pagination-bg: $white; -$pagination-border-width: $border-width; -$pagination-border-radius: $border-radius; -$pagination-margin-start: -$pagination-border-width; -$pagination-border-color: $gray-300; - -$pagination-focus-color: $link-hover-color; -$pagination-focus-bg: $gray-200; -$pagination-focus-box-shadow: $input-btn-focus-box-shadow; -$pagination-focus-outline: 0; - -$pagination-hover-color: $link-hover-color; -$pagination-hover-bg: $gray-200; -$pagination-hover-border-color: $gray-300; - -$pagination-active-color: $component-active-color; -$pagination-active-bg: $component-active-bg; -$pagination-active-border-color: $pagination-active-bg; - -$pagination-disabled-color: $gray-600; -$pagination-disabled-bg: $white; -$pagination-disabled-border-color: $gray-300; - -$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; - -$pagination-border-radius-sm: $border-radius-sm; -$pagination-border-radius-lg: $border-radius-lg; +$pagination-padding-y: .375rem !default; +$pagination-padding-x: .75rem !default; +$pagination-padding-y-sm: .25rem !default; +$pagination-padding-x-sm: .5rem !default; +$pagination-padding-y-lg: .75rem !default; +$pagination-padding-x-lg: 1.5rem !default; + +$pagination-color: $link-color !default; +$pagination-bg: $white !default; +$pagination-border-width: $border-width !default; +$pagination-border-radius: $border-radius !default; +$pagination-margin-start: -$pagination-border-width !default; +$pagination-border-color: $gray-300 !default; + +$pagination-focus-color: $link-hover-color !default; +$pagination-focus-bg: $gray-200 !default; +$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default; +$pagination-focus-outline: 0 !default; + +$pagination-hover-color: $link-hover-color !default; +$pagination-hover-bg: $gray-200 !default; +$pagination-hover-border-color: $gray-300 !default; + +$pagination-active-color: $component-active-color !default; +$pagination-active-bg: $component-active-bg !default; +$pagination-active-border-color: $pagination-active-bg !default; + +$pagination-disabled-color: $gray-600 !default; +$pagination-disabled-bg: $white !default; +$pagination-disabled-border-color: $gray-300 !default; + +$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; + +$pagination-border-radius-sm: $border-radius-sm !default; +$pagination-border-radius-lg: $border-radius-lg !default; // Cards -$card-spacer-y: $spacer; -$card-spacer-x: $spacer; -$card-title-spacer-y: math.div($spacer, 2); -$card-border-width: $border-width; -$card-border-radius: .7rem; -$card-border-color: rgba($black, .125); -$card-inner-border-radius: subtract($card-border-radius, $card-border-width); -$card-cap-padding-y: 1.5rem; -$card-cap-padding-x: 1.5rem; -$card-cap-bg: white; -$card-cap-color: null; -$card-height: null; -$card-color: null; -$card-bg: $white; - -$card-img-overlay-padding: $spacer; - -$card-group-margin: math.div($grid-gutter-width, 2); +$card-spacer-y: $spacer !default; +$card-spacer-x: $spacer !default; +$card-title-spacer-y: math.div($spacer, 2) !default; +$card-border-width: $border-width !default; +$card-border-radius: .7rem !default; +$card-border-color: rgba($black, .125) !default; +$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default; +$card-cap-padding-y: 1.5rem !default; +$card-cap-padding-x: 1.5rem !default; +$card-cap-bg: white !default; +$card-cap-color: null !default; +$card-height: null !default; +$card-color: null !default; +$card-bg: $white !default; + +$card-img-overlay-padding: $spacer !default; + +$card-group-margin: math.div($grid-gutter-width, 2) !default; // Accordion -$accordion-padding-y: 1rem; -$accordion-padding-x: 1.25rem; -$accordion-color: $body-color; -$accordion-bg: transparent; -$accordion-border-width: $border-width; -$accordion-border-color: rgba($black, .125); -$accordion-border-radius: $border-radius; - -$accordion-body-padding-y: $accordion-padding-y; -$accordion-body-padding-x: $accordion-padding-x; - -$accordion-button-padding-y: $accordion-padding-y; -$accordion-button-padding-x: $accordion-padding-x; -$accordion-button-color: $accordion-color; -$accordion-button-bg: $accordion-bg; -$accordion-transition: $btn-transition, border-radius .15s ease; -$accordion-button-active-bg: tint-color($component-active-bg, 90%); -$accordion-button-active-color: shade-color($primary, 10%); - -$accordion-button-focus-border-color: $input-focus-border-color; -$accordion-button-focus-box-shadow: $btn-focus-box-shadow; - -$accordion-icon-width: 1.25rem; -$accordion-icon-color: $accordion-color; -$accordion-icon-active-color: $accordion-button-active-color; -$accordion-icon-transition: transform .2s ease-in-out; -$accordion-icon-transform: rotate(180deg); - -$accordion-button-icon: url("data:image/svg+xml,"); -$accordion-button-active-icon: url("data:image/svg+xml,"); +$accordion-padding-y: 1rem !default; +$accordion-padding-x: 1.25rem !default; +$accordion-color: $body-color !default; +$accordion-bg: transparent !default; +$accordion-border-width: $border-width !default; +$accordion-border-color: rgba($black, .125) !default; +$accordion-border-radius: $border-radius !default; + +$accordion-body-padding-y: $accordion-padding-y !default; +$accordion-body-padding-x: $accordion-padding-x !default; + +$accordion-button-padding-y: $accordion-padding-y !default; +$accordion-button-padding-x: $accordion-padding-x !default; +$accordion-button-color: $accordion-color !default; +$accordion-button-bg: $accordion-bg !default; +$accordion-transition: $btn-transition, border-radius .15s ease !default; +$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default; +$accordion-button-active-color: shade-color($primary, 10%) !default; + +$accordion-button-focus-border-color: $input-focus-border-color !default; +$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default; + +$accordion-icon-width: 1.25rem !default; +$accordion-icon-color: $accordion-color !default; +$accordion-icon-active-color: $accordion-button-active-color !default; +$accordion-icon-transition: transform .2s ease-in-out !default; +$accordion-icon-transform: rotate(180deg) !default; + +$accordion-button-icon: url("data:image/svg+xml,") !default; +$accordion-button-active-icon: url("data:image/svg+xml,") !default; // Tooltips -$tooltip-font-size: $font-size-sm; -$tooltip-max-width: 200px; -$tooltip-color: $white; -$tooltip-bg: $black; -$tooltip-border-radius: $border-radius; -$tooltip-opacity: .9; -$tooltip-padding-y: math.div($spacer, 4); -$tooltip-padding-x: math.div($spacer, 2); -$tooltip-margin: 0; +$tooltip-font-size: $font-size-sm !default; +$tooltip-max-width: 200px !default; +$tooltip-color: $white !default; +$tooltip-bg: $black !default; +$tooltip-border-radius: $border-radius !default; +$tooltip-opacity: .9 !default; +$tooltip-padding-y: math.div($spacer, 4) !default; +$tooltip-padding-x: math.div($spacer, 2) !default; +$tooltip-margin: 0 !default; -$tooltip-arrow-width: .8rem; -$tooltip-arrow-height: .4rem; -$tooltip-arrow-color: $tooltip-bg; +$tooltip-arrow-width: .8rem !default; +$tooltip-arrow-height: .4rem !default; +$tooltip-arrow-color: $tooltip-bg !default; // Form tooltips must come after regular tooltips -$form-feedback-tooltip-padding-y: $tooltip-padding-y; -$form-feedback-tooltip-padding-x: $tooltip-padding-x; -$form-feedback-tooltip-font-size: $tooltip-font-size; -$form-feedback-tooltip-line-height: null; -$form-feedback-tooltip-opacity: $tooltip-opacity; -$form-feedback-tooltip-border-radius: $tooltip-border-radius; +$form-feedback-tooltip-padding-y: $tooltip-padding-y !default; +$form-feedback-tooltip-padding-x: $tooltip-padding-x !default; +$form-feedback-tooltip-font-size: $tooltip-font-size !default; +$form-feedback-tooltip-line-height: null !default; +$form-feedback-tooltip-opacity: $tooltip-opacity !default; +$form-feedback-tooltip-border-radius: $tooltip-border-radius !default; // Popovers -$popover-font-size: $font-size-sm; -$popover-bg: $white; -$popover-max-width: 276px; -$popover-border-width: $border-width; -$popover-border-color: rgba($black, .2); -$popover-border-radius: $border-radius-lg; -$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width); -$popover-box-shadow: $box-shadow; +$popover-font-size: $font-size-sm !default; +$popover-bg: $white !default; +$popover-max-width: 276px !default; +$popover-border-width: $border-width !default; +$popover-border-color: rgba($black, .2) !default; +$popover-border-radius: $border-radius-lg !default; +$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default; +$popover-box-shadow: $box-shadow !default; -$popover-header-bg: shade-color($popover-bg, 6%); -$popover-header-color: $headings-color; -$popover-header-padding-y: .5rem; -$popover-header-padding-x: $spacer; +$popover-header-bg: shade-color($popover-bg, 6%) !default; +$popover-header-color: $headings-color !default; +$popover-header-padding-y: .5rem !default; +$popover-header-padding-x: $spacer !default; -$popover-body-color: $body-color; -$popover-body-padding-y: $spacer; -$popover-body-padding-x: $spacer; +$popover-body-color: $body-color !default; +$popover-body-padding-y: $spacer !default; +$popover-body-padding-x: $spacer !default; -$popover-arrow-width: 1rem; -$popover-arrow-height: .5rem; -$popover-arrow-color: $popover-bg; +$popover-arrow-width: 1rem !default; +$popover-arrow-height: .5rem !default; +$popover-arrow-color: $popover-bg !default; -$popover-arrow-outer-color: fade-in($popover-border-color, .05); +$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default; // Toasts -$toast-max-width: 350px; -$toast-padding-x: .75rem; -$toast-padding-y: .5rem; -$toast-font-size: .875rem; -$toast-color: null; -$toast-background-color: rgba($white, .85); -$toast-border-width: 1px; -$toast-border-color: rgba(0, 0, 0, .1); -$toast-border-radius: $border-radius; -$toast-box-shadow: $box-shadow; -$toast-spacing: $container-padding-x; +$toast-max-width: 350px !default; +$toast-padding-x: .75rem !default; +$toast-padding-y: .5rem !default; +$toast-font-size: .875rem !default; +$toast-color: null !default; +$toast-background-color: rgba($white, .85) !default; +$toast-border-width: 1px !default; +$toast-border-color: rgba(0, 0, 0, .1) !default; +$toast-border-radius: $border-radius !default; +$toast-box-shadow: $box-shadow !default; +$toast-spacing: $container-padding-x !default; -$toast-header-color: $gray-600; -$toast-header-background-color: rgba($white, .85); -$toast-header-border-color: rgba(0, 0, 0, .05); +$toast-header-color: $gray-600 !default; +$toast-header-background-color: rgba($white, .85) !default; +$toast-header-border-color: rgba(0, 0, 0, .05) !default; // Badges -$badge-font-size: .85em; -$badge-font-weight: $font-weight-bold; -$badge-color: $white; -$badge-padding-y: .35em; -$badge-padding-x: .65em; -$badge-border-radius: $border-radius; +$badge-font-size: .85em !default; +$badge-font-weight: $font-weight-bold !default; +$badge-color: $white !default; +$badge-padding-y: .35em !default; +$badge-padding-x: .65em !default; +$badge-border-radius: $border-radius !default; // Modals // Padding applied to the modal body -$modal-inner-padding: $spacer; +$modal-inner-padding: $spacer !default; // Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding -$modal-footer-margin-between: .5rem; - -$modal-dialog-margin: .5rem; -$modal-dialog-margin-y-sm-up: 1.75rem; - -$modal-title-line-height: $line-height-base; - -$modal-content-color: null; -$modal-content-bg: $white; -$modal-content-border-color: rgba($black, .2); -$modal-content-border-width: $border-width; -$modal-content-border-radius: $border-radius-lg; -$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width); -$modal-content-box-shadow-xs: $box-shadow-sm; -$modal-content-box-shadow-sm-up: $box-shadow; - -$modal-backdrop-bg: $black; -$modal-backdrop-opacity: .5; -$modal-header-border-color: $border-color; -$modal-footer-border-color: $modal-header-border-color; -$modal-header-border-width: $modal-content-border-width; -$modal-footer-border-width: $modal-header-border-width; -$modal-header-padding-y: $modal-inner-padding; -$modal-header-padding-x: $modal-inner-padding; -$modal-header-padding: $modal-header-padding-y $modal-header-padding-x; // Keep this for backwards compatibility - -$modal-sm: 300px; -$modal-md: 500px; -$modal-lg: 800px; -$modal-xl: 1140px; - -$modal-fade-transform: translate(0, -50px); -$modal-show-transform: none; -$modal-transition: transform .3s ease-out; -$modal-scale-transform: scale(1.02); +$modal-footer-margin-between: .5rem !default; + +$modal-dialog-margin: .5rem !default; +$modal-dialog-margin-y-sm-up: 1.75rem !default; + +$modal-title-line-height: $line-height-base !default; + +$modal-content-color: null !default; +$modal-content-bg: $white !default; +$modal-content-border-color: rgba($black, .2) !default; +$modal-content-border-width: $border-width !default; +$modal-content-border-radius: $border-radius-lg !default; +$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default; +$modal-content-box-shadow-xs: $box-shadow-sm !default; +$modal-content-box-shadow-sm-up: $box-shadow !default; + +$modal-backdrop-bg: $black !default; +$modal-backdrop-opacity: .5 !default; +$modal-header-border-color: $border-color !default; +$modal-footer-border-color: $modal-header-border-color !default; +$modal-header-border-width: $modal-content-border-width !default; +$modal-footer-border-width: $modal-header-border-width !default; +$modal-header-padding-y: $modal-inner-padding !default; +$modal-header-padding-x: $modal-inner-padding !default; +$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility + +$modal-sm: 300px !default; +$modal-md: 500px !default; +$modal-lg: 800px !default; +$modal-xl: 1140px !default; + +$modal-fade-transform: translate(0, -50px) !default; +$modal-show-transform: none !default; +$modal-transition: transform .3s ease-out !default; +$modal-scale-transform: scale(1.02) !default; // Alerts // // Define alert colors, border radius, and padding. -$alert-padding-y: $spacer; -$alert-padding-x: $spacer; -$alert-margin-bottom: 1rem; -$alert-border-radius: $border-radius; -$alert-link-font-weight: $font-weight-bold; -$alert-border-width: $border-width; +$alert-padding-y: $spacer !default; +$alert-padding-x: $spacer !default; +$alert-margin-bottom: 1rem !default; +$alert-border-radius: $border-radius !default; +$alert-link-font-weight: $font-weight-bold !default; +$alert-border-width: $border-width !default; -$alert-bg-scale: -80%; -$alert-border-scale: -70%; -$alert-color-scale: 40%; +$alert-bg-scale: -80% !default; +$alert-border-scale: -70% !default; +$alert-color-scale: 40% !default; -$alert-dismissible-padding-r: $alert-padding-x * 3; // 3x covers width of x plus default padding on either side +$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side // Progress bars -$progress-height: 1rem; -$progress-font-size: $font-size-base * .75; -$progress-bg: $gray-200; -$progress-border-radius: $border-radius; -$progress-box-shadow: $box-shadow-inset; -$progress-bar-color: $white; -$progress-bar-bg: $primary; -$progress-bar-animation-timing: 1s linear infinite; -$progress-bar-transition: width .6s ease; +$progress-height: 1rem !default; +$progress-font-size: $font-size-base * .75 !default; +$progress-bg: $gray-200 !default; +$progress-border-radius: $border-radius !default; +$progress-box-shadow: $box-shadow-inset !default; +$progress-bar-color: $white !default; +$progress-bar-bg: $primary !default; +$progress-bar-animation-timing: 1s linear infinite !default; +$progress-bar-transition: width .6s ease !default; // List group -$list-group-color: null; -$list-group-bg: $white; -$list-group-border-color: rgba($black, .125); -$list-group-border-width: $border-width; -$list-group-border-radius: $border-radius; +$list-group-color: null !default; +$list-group-bg: $white !default; +$list-group-border-color: rgba($black, .125) !default; +$list-group-border-width: $border-width !default; +$list-group-border-radius: $border-radius !default; -$list-group-item-padding-y: math.div($spacer, 2); -$list-group-item-padding-x: $spacer; -$list-group-item-bg-scale: -80%; -$list-group-item-color-scale: 40%; +$list-group-item-padding-y: math.div($spacer, 2) !default; +$list-group-item-padding-x: $spacer !default; +$list-group-item-bg-scale: -80% !default; +$list-group-item-color-scale: 40% !default; -$list-group-hover-bg: $gray-100; -$list-group-active-color: $component-active-color; -$list-group-active-bg: $component-active-bg; -$list-group-active-border-color: $list-group-active-bg; +$list-group-hover-bg: $gray-100 !default; +$list-group-active-color: $component-active-color !default; +$list-group-active-bg: $component-active-bg !default; +$list-group-active-border-color: $list-group-active-bg !default; -$list-group-disabled-color: $gray-600; -$list-group-disabled-bg: $list-group-bg; +$list-group-disabled-color: $gray-600 !default; +$list-group-disabled-bg: $list-group-bg !default; -$list-group-action-color: $gray-700; -$list-group-action-hover-color: $list-group-action-color; +$list-group-action-color: $gray-700 !default; +$list-group-action-hover-color: $list-group-action-color !default; -$list-group-action-active-color: $body-color; -$list-group-action-active-bg: $gray-200; +$list-group-action-active-color: $body-color !default; +$list-group-action-active-bg: $gray-200 !default; // Image thumbnails -$thumbnail-padding: .25rem; -$thumbnail-bg: $body-bg; -$thumbnail-border-width: $border-width; -$thumbnail-border-color: $gray-300; -$thumbnail-border-radius: $border-radius; -$thumbnail-box-shadow: $box-shadow-sm; +$thumbnail-padding: .25rem !default; +$thumbnail-bg: $body-bg !default; +$thumbnail-border-width: $border-width !default; +$thumbnail-border-color: $gray-300 !default; +$thumbnail-border-radius: $border-radius !default; +$thumbnail-box-shadow: $box-shadow-sm !default; // Figures -$figure-caption-font-size: $small-font-size; -$figure-caption-color: $gray-600; +$figure-caption-font-size: $small-font-size !default; +$figure-caption-color: $gray-600 !default; // Breadcrumbs -$breadcrumb-font-size: null; -$breadcrumb-padding-y: 0; -$breadcrumb-padding-x: 0; -$breadcrumb-item-padding-x: .5rem; -$breadcrumb-margin-bottom: 1rem; -$breadcrumb-margin-top: 1rem; // Mazer Variables -$breadcrumb-bg: null; -$breadcrumb-divider-color: $gray-600; -$breadcrumb-active-color: $gray-600; -$breadcrumb-divider: quote("/"); -$breadcrumb-divider-flipped: $breadcrumb-divider; -$breadcrumb-border-radius: null; +$breadcrumb-font-size: null !default; +$breadcrumb-padding-y: 0 !default; +$breadcrumb-padding-x: 0 !default; +$breadcrumb-item-padding-x: .5rem !default; +$breadcrumb-margin-bottom: 1rem !default; +$breadcrumb-margin-top: 1rem !default; // Mazer Variables +$breadcrumb-bg: null !default; +$breadcrumb-divider-color: $gray-600 !default; +$breadcrumb-active-color: $gray-600 !default; +$breadcrumb-divider: quote("/") !default; +$breadcrumb-divider-flipped: $breadcrumb-divider !default; +$breadcrumb-border-radius: null !default; // Carousel -$carousel-control-color: $white; -$carousel-control-width: 15%; -$carousel-control-opacity: .5; -$carousel-control-hover-opacity: .9; -$carousel-control-transition: opacity .15s ease; +$carousel-control-color: $white !default; +$carousel-control-width: 15% !default; +$carousel-control-opacity: .5 !default; +$carousel-control-hover-opacity: .9 !default; +$carousel-control-transition: opacity .15s ease !default; -$carousel-indicator-width: 30px; -$carousel-indicator-height: 3px; -$carousel-indicator-hit-area-height: 10px; -$carousel-indicator-spacer: 3px; -$carousel-indicator-opacity: .5; -$carousel-indicator-active-bg: $white; -$carousel-indicator-active-opacity: 1; -$carousel-indicator-transition: opacity .6s ease; +$carousel-indicator-width: 30px !default; +$carousel-indicator-height: 3px !default; +$carousel-indicator-hit-area-height: 10px !default; +$carousel-indicator-spacer: 3px !default; +$carousel-indicator-opacity: .5 !default; +$carousel-indicator-active-bg: $white !default; +$carousel-indicator-active-opacity: 1 !default; +$carousel-indicator-transition: opacity .6s ease !default; -$carousel-caption-width: 70%; -$carousel-caption-color: $white; -$carousel-caption-padding-y: 1.25rem; -$carousel-caption-spacer: 1.25rem; +$carousel-caption-width: 70% !default; +$carousel-caption-color: $white !default; +$carousel-caption-padding-y: 1.25rem !default; +$carousel-caption-spacer: 1.25rem !default; -$carousel-control-icon-width: 2rem; +$carousel-control-icon-width: 2rem !default; -$carousel-control-prev-icon-bg: url("data:image/svg+xml,"); -$carousel-control-next-icon-bg: url("data:image/svg+xml,"); +$carousel-control-prev-icon-bg: url("data:image/svg+xml,") !default; +$carousel-control-next-icon-bg: url("data:image/svg+xml,") !default; -$carousel-transition-duration: .6s; -$carousel-transition: transform $carousel-transition-duration ease-in-out; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) +$carousel-transition-duration: .6s !default; +$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) -$carousel-dark-indicator-active-bg: $black; -$carousel-dark-caption-color: $black; -$carousel-dark-control-icon-filter: invert(1) grayscale(100); +$carousel-dark-indicator-active-bg: $black !default; +$carousel-dark-caption-color: $black !default; +$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Spinners -$spinner-width: 2rem; -$spinner-height: $spinner-width; -$spinner-vertical-align: -.125em; -$spinner-border-width: .25em; -$spinner-animation-speed: .75s; +$spinner-width: 2rem !default; +$spinner-height: $spinner-width !default; +$spinner-vertical-align: -.125em !default; +$spinner-border-width: .25em !default; +$spinner-animation-speed: .75s !default; -$spinner-width-sm: 1rem; -$spinner-height-sm: $spinner-width-sm; -$spinner-border-width-sm: .2em; +$spinner-width-sm: 1rem !default; +$spinner-height-sm: $spinner-width-sm !default; +$spinner-border-width-sm: .2em !default; // Close -$btn-close-width: 1em; -$btn-close-height: $btn-close-width; -$btn-close-padding-x: .25em; -$btn-close-padding-y: $btn-close-padding-x; -$btn-close-color: $black; -$btn-close-bg: url("data:image/svg+xml,"); -$btn-close-focus-shadow: $input-btn-focus-box-shadow; -$btn-close-opacity: .5; -$btn-close-hover-opacity: .75; -$btn-close-focus-opacity: 1; -$btn-close-disabled-opacity: .25; -$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); +$btn-close-width: 1em !default; +$btn-close-height: $btn-close-width !default; +$btn-close-padding-x: .25em !default; +$btn-close-padding-y: $btn-close-padding-x !default; +$btn-close-color: $black !default; +$btn-close-bg: url("data:image/svg+xml,") !default; +$btn-close-focus-shadow: $input-btn-focus-box-shadow !default; +$btn-close-opacity: .5 !default; +$btn-close-hover-opacity: .75 !default; +$btn-close-focus-opacity: 1 !default; +$btn-close-disabled-opacity: .25 !default; +$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default; // Code -$code-font-size: $small-font-size; -$code-color: $pink; +$code-font-size: $small-font-size !default; +$code-color: $pink !default; -$kbd-padding-y: .2rem; -$kbd-padding-x: .4rem; -$kbd-font-size: $code-font-size; -$kbd-color: $white; -$kbd-bg: $gray-900; +$kbd-padding-y: .2rem !default; +$kbd-padding-x: .4rem !default; +$kbd-font-size: $code-font-size !default; +$kbd-color: $white !default; +$kbd-bg: $gray-900 !default; -$pre-color: null; +$pre-color: null !default; From 69153c39c1d604d4e8899081f8070f9ab88cc3a0 Mon Sep 17 00:00:00 2001 From: Nik Date: Tue, 8 Mar 2022 12:47:16 +0100 Subject: [PATCH 03/83] Reorganize build system --- package-lock.json | 73 +- package.json | 2 + {dist => src}/assets/images/bg/4853433.jpg | Bin src/assets/scss/_fonts.scss | 5 + src/assets/scss/app.scss | 111 +- src/assets/scss/mazer.scss | 101 + src/layouts/auth.html | 3 - src/layouts/error.html | 3 - src/layouts/horizontal.html | 4 - src/layouts/master.html | 4 - src/layouts/rtl.html | 4 - src/layouts/vertical-1-column.html | 4 - src/layouts/vertical-navbar.html | 6 +- webpack.mix.js | 6 +- yarn.lock | 11611 ++++++++++--------- 15 files changed, 6047 insertions(+), 5890 deletions(-) rename {dist => src}/assets/images/bg/4853433.jpg (100%) create mode 100644 src/assets/scss/_fonts.scss create mode 100644 src/assets/scss/mazer.scss diff --git a/package-lock.json b/package-lock.json index 9d35046e8..c9bc5ae83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mazer", - "version": "1.2.0", + "version": "1.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mazer", - "version": "1.2.0", + "version": "1.3.0", "license": "MIT", "dependencies": { "@popperjs/core": "^2.9.2", @@ -31,7 +31,9 @@ "webpack": "^5.40.0" }, "devDependencies": { - "bootstrap": "^5.0.2", + "@fontsource/nunito": "^4.5.4", + "bootstrap": "5.1.3", + "bootstrap-icons": "^1.8.1", "browser-sync": "^2.27.3", "browser-sync-webpack-plugin": "^2.0.1", "laravel-mix-nunjucks": "^1.1.0", @@ -1370,6 +1372,12 @@ "node": ">=10.0.0" } }, + "node_modules/@fontsource/nunito": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/@fontsource/nunito/-/nunito-4.5.4.tgz", + "integrity": "sha512-pD5tXcQ7SM2oHvZuYOypOD/kfs76HPTBHUGa/7lARkpW6K3LJckycwr8gz9ykmmQACEwFYjcxJt/kM9qaAwnYQ==", + "dev": true + }, "node_modules/@fullhuman/postcss-purgecss": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz", @@ -1412,9 +1420,13 @@ } }, "node_modules/@popperjs/core": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.2.tgz", - "integrity": "sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==" + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", + "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } }, "node_modules/@trysound/sax": { "version": "0.1.1", @@ -2217,10 +2229,26 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "node_modules/bootstrap": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.0.2.tgz", - "integrity": "sha512-1Ge963tyEQWJJ+8qtXFU6wgmAVj9gweEjibUdbmcCEYsn38tVwRk8107rk2vzt6cfQcRr3SlZ8aQBqaD8aqf+Q==", - "dev": true + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "@popperjs/core": "^2.10.2" + } + }, + "node_modules/bootstrap-icons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -10767,6 +10795,12 @@ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==" }, + "@fontsource/nunito": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/@fontsource/nunito/-/nunito-4.5.4.tgz", + "integrity": "sha512-pD5tXcQ7SM2oHvZuYOypOD/kfs76HPTBHUGa/7lARkpW6K3LJckycwr8gz9ykmmQACEwFYjcxJt/kM9qaAwnYQ==", + "dev": true + }, "@fullhuman/postcss-purgecss": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz", @@ -10800,9 +10834,9 @@ } }, "@popperjs/core": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.2.tgz", - "integrity": "sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==" + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", + "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==" }, "@trysound/sax": { "version": "0.1.1", @@ -11533,9 +11567,16 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "bootstrap": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.0.2.tgz", - "integrity": "sha512-1Ge963tyEQWJJ+8qtXFU6wgmAVj9gweEjibUdbmcCEYsn38tVwRk8107rk2vzt6cfQcRr3SlZ8aQBqaD8aqf+Q==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "dev": true, + "requires": {} + }, + "bootstrap-icons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==", "dev": true }, "brace-expansion": { diff --git a/package.json b/package.json index 870cdf942..2511530ae 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,9 @@ "webpack": "^5.40.0" }, "devDependencies": { + "@fontsource/nunito": "^4.5.4", "bootstrap": "5.1.3", + "bootstrap-icons": "^1.8.1", "browser-sync": "^2.27.3", "browser-sync-webpack-plugin": "^2.0.1", "laravel-mix-nunjucks": "^1.1.0", diff --git a/dist/assets/images/bg/4853433.jpg b/src/assets/images/bg/4853433.jpg similarity index 100% rename from dist/assets/images/bg/4853433.jpg rename to src/assets/images/bg/4853433.jpg diff --git a/src/assets/scss/_fonts.scss b/src/assets/scss/_fonts.scss new file mode 100644 index 000000000..948291870 --- /dev/null +++ b/src/assets/scss/_fonts.scss @@ -0,0 +1,5 @@ +@import "~@fontsource/nunito/300.css"; +@import "~@fontsource/nunito/400.css"; +@import "~@fontsource/nunito/600.css"; +@import "~@fontsource/nunito/700.css"; +@import "~@fontsource/nunito/800.css"; \ No newline at end of file diff --git a/src/assets/scss/app.scss b/src/assets/scss/app.scss index 6727ac646..dffe6907e 100644 --- a/src/assets/scss/app.scss +++ b/src/assets/scss/app.scss @@ -1,104 +1,15 @@ -/* -* Mazer, Technology Innovations Bootstrap HTML5 Landing Page -* -* File: app.scss -* -* If you want to edit the components, just go to _variables.scss -*/ - -/** - -====== TABLE OF CONTENTS ======= -1. Bootstrap & Variables Inside -2. Bootstrap Components Override - 2.1 Alert - 2.2 Avatar - 2.3 Badge - 2.4 Buttons - 2.5 Breadcrumb - 2.6 Carousel - 2.7 Card - 2.8 Divider - 2.9 Dropdowns - 2.10 Forms - 2.11 Modal - 2.12 Sidebar - 2.13 Navs - 2.14 Navbar - 2.15 Pagination - 2.16 Table - 2.17 Progress -4. Pages - 4.0 Layout - 4.1 Auth - 4.2 Error -5. Utilities - - -*/ - -// 0. Mixins -@import "./mixins/navbar"; - -// 1. Variables +// Import mazer Variables @import "./variables"; -// 2. Bootstrap Components Override - -// - 2.1. Alert -@import "./components/alert"; - -// - 2.2. Avatar -@import "./components/avatar"; - -// - 2.3. Badge -@import "./components/badge"; - -// - 2.4. Buttons -@import "./components/buttons"; - -// - 2.5. breadcrumb -@import "./components/breadcrumb"; - -// - 2.6. carousel -@import "./components/carousel"; - -// - 2.7. card -@import "./components/card"; - -// - 2.8. divider -@import "./components/divider"; - -// - 2.9. dropdowns -@import "./components/dropdowns"; - -// - 2.10. forms -@import "./components/forms"; - -// - 2.11. modal -@import "./components/modal"; - -// - 2.12. sidebar -@import "./components/sidebar"; - -// - 2.13. navs -@import "./components/navs"; - -// - 2.14. navbar -@import "./components/navbar"; - -// - 2.15. pagination -@import "./components/pagination"; - -// - 2.16. table -@import "./components/table"; - -// - 2.17. progress -@import "./components/progress"; +// Bootstrap + Icons +@import "~bootstrap/scss/bootstrap"; +@import "~bootstrap-icons/font/bootstrap-icons"; +// Fix icon placement +body .bi::before, [class^=bi-]::before, [class*=" bi-"]::before { + vertical-align: baseline; +} -// - 2.18. icons -@import "./components/icons"; +// Import fonts +@import "./fonts"; -// 4.0 Layout -@import "./layouts/main.scss"; -@import "./utilities" \ No newline at end of file +@import "./mazer.scss" \ No newline at end of file diff --git a/src/assets/scss/mazer.scss b/src/assets/scss/mazer.scss new file mode 100644 index 000000000..847d842a9 --- /dev/null +++ b/src/assets/scss/mazer.scss @@ -0,0 +1,101 @@ +/* +* Mazer, Technology Innovations Bootstrap HTML5 Landing Page +* +* File: app.scss +* +* If you want to edit the components, just go to _variables.scss +*/ + +/** + +====== TABLE OF CONTENTS ======= +1. Mixins +2. Bootstrap Components Override + 2.1 Alert + 2.2 Avatar + 2.3 Badge + 2.4 Buttons + 2.5 Breadcrumb + 2.6 Carousel + 2.7 Card + 2.8 Divider + 2.9 Dropdowns + 2.10 Forms + 2.11 Modal + 2.12 Sidebar + 2.13 Navs + 2.14 Navbar + 2.15 Pagination + 2.16 Table + 2.17 Progress +4. Pages + 4.0 Layout + 4.1 Auth + 4.2 Error +5. Utilities + + +*/ + +// 1. Mixins +@import "./mixins/navbar"; + +// 2. Bootstrap Components Override + +// - 2.1. Alert +@import "./components/alert"; + +// - 2.2. Avatar +@import "./components/avatar"; + +// - 2.3. Badge +@import "./components/badge"; + +// - 2.4. Buttons +@import "./components/buttons"; + +// - 2.5. breadcrumb +@import "./components/breadcrumb"; + +// - 2.6. carousel +@import "./components/carousel"; + +// - 2.7. card +@import "./components/card"; + +// - 2.8. divider +@import "./components/divider"; + +// - 2.9. dropdowns +@import "./components/dropdowns"; + +// - 2.10. forms +@import "./components/forms"; + +// - 2.11. modal +@import "./components/modal"; + +// - 2.12. sidebar +@import "./components/sidebar"; + +// - 2.13. navs +@import "./components/navs"; + +// - 2.14. navbar +@import "./components/navbar"; + +// - 2.15. pagination +@import "./components/pagination"; + +// - 2.16. table +@import "./components/table"; + +// - 2.17. progress +@import "./components/progress"; + +// - 2.18. icons +@import "./components/icons"; + +// 4.0 Layout +@import "./layouts/main.scss"; +@import "./utilities" \ No newline at end of file diff --git a/src/layouts/auth.html b/src/layouts/auth.html index a57208f01..0ad149382 100644 --- a/src/layouts/auth.html +++ b/src/layouts/auth.html @@ -5,9 +5,6 @@ {{ title }} - {{ web_title }} - - - diff --git a/src/layouts/error.html b/src/layouts/error.html index 44bbf8d95..472ac7c05 100644 --- a/src/layouts/error.html +++ b/src/layouts/error.html @@ -5,9 +5,6 @@ {{ title }} - {{ web_title }} - - - diff --git a/src/layouts/horizontal.html b/src/layouts/horizontal.html index 510060d3e..bd82a170a 100644 --- a/src/layouts/horizontal.html +++ b/src/layouts/horizontal.html @@ -6,12 +6,8 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - - - {% block styles %}{% endblock %} - diff --git a/src/layouts/master.html b/src/layouts/master.html index 0c2fee4c0..d9484749f 100644 --- a/src/layouts/master.html +++ b/src/layouts/master.html @@ -6,12 +6,8 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - - - {% block styles %}{% endblock %} - diff --git a/src/layouts/rtl.html b/src/layouts/rtl.html index 6b2cb51c3..9c3ab2eac 100644 --- a/src/layouts/rtl.html +++ b/src/layouts/rtl.html @@ -6,12 +6,8 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - - - {% block styles %}{% endblock %} - diff --git a/src/layouts/vertical-1-column.html b/src/layouts/vertical-1-column.html index ade643394..0add6f73a 100644 --- a/src/layouts/vertical-1-column.html +++ b/src/layouts/vertical-1-column.html @@ -5,10 +5,6 @@ Layout Vertical 1 Column - Mazer - - - - diff --git a/src/layouts/vertical-navbar.html b/src/layouts/vertical-navbar.html index 43e27deef..13580d82d 100644 --- a/src/layouts/vertical-navbar.html +++ b/src/layouts/vertical-navbar.html @@ -6,13 +6,9 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - - - - {% block styles %}{% endblock %} - + {% block styles %}{% endblock %} diff --git a/webpack.mix.js b/webpack.mix.js index 53f33c370..4b6085969 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -6,7 +6,6 @@ require("laravel-mix-nunjucks"); const assetsPath = "src/assets/"; mix .sass(`${assetsPath}scss/app.scss`, "assets/css") - .sass(`${assetsPath}scss/bootstrap.scss`, "assets/css") .sass(`${assetsPath}scss/pages/auth.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/error.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/email.scss`, "assets/css/pages") @@ -15,10 +14,7 @@ mix .sass(`${assetsPath}scss/widgets/todo.scss`, "assets/css/widgets") .js(`${assetsPath}js/mazer.js`, "assets/js") .minify("dist/assets/js/mazer.js") - .setPublicPath("dist") - .options({ - processCssUrls: false, - }); + .setPublicPath("dist"); // mix.browserSync({ // proxy: 'mazer.test', diff --git a/yarn.lock b/yarn.lock index fbdb6bc01..d17711dc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,21 +3,21 @@ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + "integrity" "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz" - integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== + "integrity" "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz" + "version" "7.14.7" "@babel/core@^7.14.5": - version "7.14.6" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz" - integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== + "integrity" "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz" + "version" "7.14.6" dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.14.5" @@ -28,51 +28,51 @@ "@babel/template" "^7.14.5" "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.1.2" + "semver" "^6.3.0" + "source-map" "^0.5.0" "@babel/generator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz" - integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== + "integrity" "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" - jsesc "^2.5.1" - source-map "^0.5.0" + "jsesc" "^2.5.1" + "source-map" "^0.5.0" "@babel/helper-annotate-as-pure@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz" - integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== + "integrity" "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==" + "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz" - integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + "integrity" "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz" - integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== + "integrity" "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/compat-data" "^7.14.5" "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" + "browserslist" "^4.16.6" + "semver" "^6.3.0" "@babel/helper-create-class-features-plugin@^7.14.5": - version "7.14.6" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz" - integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== + "integrity" "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz" + "version" "7.14.6" dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" @@ -82,75 +82,75 @@ "@babel/helper-split-export-declaration" "^7.14.5" "@babel/helper-create-regexp-features-plugin@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" - integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + "integrity" "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" - regexpu-core "^4.7.1" + "regexpu-core" "^4.7.1" "@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + "integrity" "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" + "version" "0.2.3" 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" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" + "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.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz" - integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + "integrity" "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + "integrity" "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-get-function-arity" "^7.14.5" "@babel/template" "^7.14.5" "@babel/types" "^7.14.5" "@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + "integrity" "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==" + "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + "integrity" "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-member-expression-to-functions@^7.14.5": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz" - integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== + "integrity" "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/types" "^7.14.5" "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + "integrity" "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-module-transforms@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz" - integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== + "integrity" "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-imports" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" @@ -162,30 +162,30 @@ "@babel/types" "^7.14.5" "@babel/helper-optimise-call-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz" - integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + "integrity" "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.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": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + "integrity" "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" + "version" "7.14.5" "@babel/helper-remap-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz" - integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + "integrity" "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==" + "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-wrap-function" "^7.14.5" "@babel/types" "^7.14.5" "@babel/helper-replace-supers@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz" - integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + "integrity" "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-member-expression-to-functions" "^7.14.5" "@babel/helper-optimise-call-expression" "^7.14.5" @@ -193,40 +193,40 @@ "@babel/types" "^7.14.5" "@babel/helper-simple-access@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz" - integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + "integrity" "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz" - integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + "integrity" "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + "integrity" "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/types" "^7.14.5" "@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + "integrity" "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz" + "version" "7.14.5" "@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + "integrity" "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" + "version" "7.14.5" "@babel/helper-wrap-function@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz" - integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + "integrity" "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-function-name" "^7.14.5" "@babel/template" "^7.14.5" @@ -234,115 +234,115 @@ "@babel/types" "^7.14.5" "@babel/helpers@^7.14.6": - version "7.14.6" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz" - integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== + "integrity" "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz" + "version" "7.14.6" dependencies: "@babel/template" "^7.14.5" "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" "@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + "integrity" "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz" - integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== + "integrity" "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz" + "version" "7.14.7" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz" - integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + "integrity" "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz" - integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q== + "integrity" "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz" + "version" "7.14.7" 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.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" - integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + "integrity" "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz" - integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== + "integrity" "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" - integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + "integrity" "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" - integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + "integrity" "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" - integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + "integrity" "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" - integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + "integrity" "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" - integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + "integrity" "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" + "version" "7.14.5" 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.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" - integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + "integrity" "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.14.5", "@babel/plugin-proposal-object-rest-spread@^7.14.7": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz" - integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== + "integrity" "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/compat-data" "^7.14.7" "@babel/helper-compilation-targets" "^7.14.5" @@ -351,34 +351,34 @@ "@babel/plugin-transform-parameters" "^7.14.5" "@babel/plugin-proposal-optional-catch-binding@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" - integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + "integrity" "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" - integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + "integrity" "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" + "version" "7.14.5" 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/plugin-proposal-private-methods@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" - integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + "integrity" "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz" - integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + "integrity" "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-create-class-features-plugin" "^7.14.5" @@ -386,145 +386,145 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.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.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" - integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + "integrity" "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-arrow-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + "integrity" "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + "integrity" "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" + "version" "7.14.5" 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/plugin-transform-block-scoped-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + "integrity" "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-block-scoping@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz" - integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + "integrity" "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-classes@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz" - integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== + "integrity" "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" @@ -532,229 +532,229 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - globals "^11.1.0" + "globals" "^11.1.0" "@babel/plugin-transform-computed-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" - integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + "integrity" "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-destructuring@^7.14.7": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" - integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== + "integrity" "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" - integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + "integrity" "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-duplicate-keys@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" - integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + "integrity" "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-exponentiation-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" - integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + "integrity" "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-for-of@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz" - integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + "integrity" "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" - integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + "integrity" "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" - integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + "integrity" "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-member-expression-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" - integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + "integrity" "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-modules-amd@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" - integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + "integrity" "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz" - integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== + "integrity" "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz" + "version" "7.14.5" 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-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz" - integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + "integrity" "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz" + "version" "7.14.5" 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-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-umd@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" - integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + "integrity" "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.14.7": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz" - integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg== + "integrity" "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/plugin-transform-new-target@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" - integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + "integrity" "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-object-super@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" - integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + "integrity" "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" "@babel/plugin-transform-parameters@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz" - integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + "integrity" "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-property-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" - integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + "integrity" "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-regenerator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" - integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + "integrity" "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" + "version" "7.14.5" dependencies: - regenerator-transform "^0.14.2" + "regenerator-transform" "^0.14.2" "@babel/plugin-transform-reserved-words@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" - integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + "integrity" "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-runtime@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz" - integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg== + "integrity" "sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-imports" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - semver "^6.3.0" + "babel-plugin-polyfill-corejs2" "^0.2.2" + "babel-plugin-polyfill-corejs3" "^0.2.2" + "babel-plugin-polyfill-regenerator" "^0.2.2" + "semver" "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" - integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + "integrity" "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-spread@^7.14.6": - version "7.14.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" - integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + "integrity" "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" + "version" "7.14.6" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-transform-sticky-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" - integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + "integrity" "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-template-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" - integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + "integrity" "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-typeof-symbol@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" - integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + "integrity" "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-unicode-escapes@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" - integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + "integrity" "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-unicode-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" - integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + "integrity" "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/preset-env@^7.14.5": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz" - integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA== + "integrity" "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/compat-data" "^7.14.7" "@babel/helper-compilation-targets" "^7.14.5" @@ -824,43 +824,43 @@ "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" "@babel/types" "^7.14.5" - 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-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.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + "integrity" "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==" + "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" + "version" "0.1.4" 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" + "esutils" "^2.0.2" "@babel/runtime@^7.14.5", "@babel/runtime@^7.8.4": - version "7.14.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz" - integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== + "integrity" "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz" + "version" "7.14.6" dependencies: - regenerator-runtime "^0.13.4" + "regenerator-runtime" "^0.13.4" "@babel/template@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + "integrity" "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz" + "version" "7.14.5" 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": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz" - integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== + "integrity" "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.14.5" @@ -869,64 +869,69 @@ "@babel/helper-split-export-declaration" "^7.14.5" "@babel/parser" "^7.14.7" "@babel/types" "^7.14.5" - debug "^4.1.0" - globals "^11.1.0" + "debug" "^4.1.0" + "globals" "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== + "integrity" "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-validator-identifier" "^7.14.5" - to-fast-properties "^2.0.0" + "to-fast-properties" "^2.0.0" "@discoveryjs/json-ext@^0.5.0": - version "0.5.3" - resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz" - integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== + "integrity" "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==" + "resolved" "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz" + "version" "0.5.3" + +"@fontsource/nunito@^4.5.4": + "integrity" "sha512-pD5tXcQ7SM2oHvZuYOypOD/kfs76HPTBHUGa/7lARkpW6K3LJckycwr8gz9ykmmQACEwFYjcxJt/kM9qaAwnYQ==" + "resolved" "https://registry.npmjs.org/@fontsource/nunito/-/nunito-4.5.4.tgz" + "version" "4.5.4" "@fullhuman/postcss-purgecss@^3.0.0": - version "3.1.3" - resolved "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz" - integrity sha512-kwOXw8fZ0Lt1QmeOOrd+o4Ibvp4UTEBFQbzvWldjlKv5n+G9sXfIPn1hh63IQIL8K8vbvv1oYMJiIUbuy9bGaA== + "integrity" "sha512-kwOXw8fZ0Lt1QmeOOrd+o4Ibvp4UTEBFQbzvWldjlKv5n+G9sXfIPn1hh63IQIL8K8vbvv1oYMJiIUbuy9bGaA==" + "resolved" "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz" + "version" "3.1.3" dependencies: - purgecss "^3.1.3" + "purgecss" "^3.1.3" "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" dependencies: "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" + "run-parallel" "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" "@nodelib/fs.walk@^1.2.3": - version "1.2.7" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz" - integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== + "integrity" "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz" + "version" "1.2.7" dependencies: "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "fastq" "^1.6.0" -"@popperjs/core@^2.9.2": - version "2.9.2" - resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.9.2.tgz" - integrity sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q== +"@popperjs/core@^2.10.2", "@popperjs/core@^2.9.2": + "integrity" "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==" + "resolved" "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz" + "version" "2.11.2" "@trysound/sax@0.1.1": - version "0.1.1" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz" - integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + "integrity" "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==" + "resolved" "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz" + "version" "0.1.1" "@types/babel__core@^7.1.14": - version "7.1.14" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + "integrity" "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz" + "version" "7.1.14" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -935,178 +940,178 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + "integrity" "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz" + "version" "7.6.2" dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.0" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + "integrity" "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz" + "version" "7.4.0" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.14.0" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz" - integrity sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w== + "integrity" "sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz" + "version" "7.14.0" dependencies: "@babel/types" "^7.3.0" "@types/clean-css@^4.2.4": - version "4.2.4" - resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.4.tgz" - integrity sha512-x8xEbfTtcv5uyQDrBXKg9Beo5QhTPqO4vM0uq4iU27/nhyRRWNEMKHjxvAb0WDvp2Mnt4Sw0jKmIi5yQF/k2Ag== + "integrity" "sha512-x8xEbfTtcv5uyQDrBXKg9Beo5QhTPqO4vM0uq4iU27/nhyRRWNEMKHjxvAb0WDvp2Mnt4Sw0jKmIi5yQF/k2Ag==" + "resolved" "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.4.tgz" + "version" "4.2.4" dependencies: "@types/node" "*" - source-map "^0.6.0" + "source-map" "^0.6.0" "@types/eslint-scope@^3.7.0": - version "3.7.0" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz" - integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + "integrity" "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==" + "resolved" "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz" + "version" "3.7.0" dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "7.2.13" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz" - integrity sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg== + "integrity" "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==" + "resolved" "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz" + "version" "7.2.13" dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^0.0.47": - version "0.0.47" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz" - integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== + "integrity" "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==" + "resolved" "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz" + "version" "0.0.47" "@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + "integrity" "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==" + "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz" + "version" "7.1.3" dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/http-proxy@^1.17.5": - version "1.17.6" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.6.tgz" - integrity sha512-+qsjqR75S/ib0ig0R9WN+CDoZeOBU6F2XLewgC4KVgdXiNHiKKHFEMRHOrs5PbYE97D5vataw5wPj4KLYfUkuQ== + "integrity" "sha512-+qsjqR75S/ib0ig0R9WN+CDoZeOBU6F2XLewgC4KVgdXiNHiKKHFEMRHOrs5PbYE97D5vataw5wPj4KLYfUkuQ==" + "resolved" "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.6.tgz" + "version" "1.17.6" dependencies: "@types/node" "*" "@types/imagemin-gifsicle@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz" - integrity sha512-RVFQZhPm/6vLC8wDvzHa34ZDrJECqmDV4XBS99AEk2ObyV4pcLQwObGYlmBv6fi9AtRLHf8mnKGczIHtF77u7w== + "integrity" "sha512-RVFQZhPm/6vLC8wDvzHa34ZDrJECqmDV4XBS99AEk2ObyV4pcLQwObGYlmBv6fi9AtRLHf8mnKGczIHtF77u7w==" + "resolved" "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz" + "version" "7.0.0" dependencies: "@types/imagemin" "*" "@types/imagemin-mozjpeg@^8.0.0": - version "8.0.0" - resolved "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz" - integrity sha512-sR2nEZOrlbgnmVgG+lXetZOvhgtctLe1hBfvySnPnxDd2pOon9mMPq7SHFI89VZT1AXvFgRs8w6X8ik8potpgA== + "integrity" "sha512-sR2nEZOrlbgnmVgG+lXetZOvhgtctLe1hBfvySnPnxDd2pOon9mMPq7SHFI89VZT1AXvFgRs8w6X8ik8potpgA==" + "resolved" "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz" + "version" "8.0.0" dependencies: "@types/imagemin" "*" "@types/imagemin-optipng@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.0.tgz" - integrity sha512-Qn4gTV1fpPG2WIsUIl10yi2prudOuDIx+D+O0H3aKZRcTCwpMjszBVeRWUqkhG5wADhWO4giLut1sFNr3H2XIQ== + "integrity" "sha512-Qn4gTV1fpPG2WIsUIl10yi2prudOuDIx+D+O0H3aKZRcTCwpMjszBVeRWUqkhG5wADhWO4giLut1sFNr3H2XIQ==" + "resolved" "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.0.tgz" + "version" "5.2.0" dependencies: "@types/imagemin" "*" "@types/imagemin-svgo@^8.0.0": - version "8.0.1" - resolved "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-8.0.1.tgz" - integrity sha512-YafkdrVAcr38U0Ln1C+L1n4SIZqC47VBHTyxCq7gTUSd1R9MdIvMcrljWlgU1M9O68WZDeQWUrKipKYfEOCOvQ== + "integrity" "sha512-YafkdrVAcr38U0Ln1C+L1n4SIZqC47VBHTyxCq7gTUSd1R9MdIvMcrljWlgU1M9O68WZDeQWUrKipKYfEOCOvQ==" + "resolved" "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-8.0.1.tgz" + "version" "8.0.1" dependencies: "@types/imagemin" "*" "@types/svgo" "^1" "@types/imagemin@*": - version "7.0.0" - resolved "https://registry.npmjs.org/@types/imagemin/-/imagemin-7.0.0.tgz" - integrity sha512-BiNd5FazD5ZmJUYD9txsbrttL0P0welrb9yAPn6ykKK3kWufwFsxYqw5KdggfZQDjiNYwsBrX+Fwei0Xsw4oAw== + "integrity" "sha512-BiNd5FazD5ZmJUYD9txsbrttL0P0welrb9yAPn6ykKK3kWufwFsxYqw5KdggfZQDjiNYwsBrX+Fwei0Xsw4oAw==" + "resolved" "https://registry.npmjs.org/@types/imagemin/-/imagemin-7.0.0.tgz" + "version" "7.0.0" dependencies: "@types/node" "*" "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.6" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + "integrity" "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz" + "version" "7.0.6" "@types/minimatch@*": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + "integrity" "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" + "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" "@types/node@*": - version "15.12.5" - resolved "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz" - integrity sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg== + "integrity" "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz" + "version" "15.12.5" "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" "@types/retry@^0.12.0": - version "0.12.0" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + "integrity" "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + "resolved" "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" + "version" "0.12.0" "@types/svgo@^1": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.5.tgz" - integrity sha512-y9Pw8IK50OqFRDpdI9Is29KlWiENVW9FDvlTmGHelvTfR2brYFJbsClvulZfeq6YKacFrDsG9a39w0kJZdHLaw== + "integrity" "sha512-y9Pw8IK50OqFRDpdI9Is29KlWiENVW9FDvlTmGHelvTfR2brYFJbsClvulZfeq6YKacFrDsG9a39w0kJZdHLaw==" + "resolved" "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.5.tgz" + "version" "1.3.5" "@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== + "integrity" "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/helper-numbers" "1.11.0" "@webassemblyjs/helper-wasm-bytecode" "1.11.0" "@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== + "integrity" "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz" + "version" "1.11.0" "@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== + "integrity" "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz" + "version" "1.11.0" "@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== + "integrity" "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz" + "version" "1.11.0" "@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== + "integrity" "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/floating-point-hex-parser" "1.11.0" "@webassemblyjs/helper-api-error" "1.11.0" "@xtuc/long" "4.2.2" "@webassemblyjs/helper-wasm-bytecode@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== + "integrity" "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz" + "version" "1.11.0" "@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== + "integrity" "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/helper-buffer" "1.11.0" @@ -1114,28 +1119,28 @@ "@webassemblyjs/wasm-gen" "1.11.0" "@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== + "integrity" "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz" + "version" "1.11.0" dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== + "integrity" "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz" + "version" "1.11.0" dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== + "integrity" "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz" + "version" "1.11.0" "@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== + "integrity" "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/helper-buffer" "1.11.0" @@ -1147,9 +1152,9 @@ "@webassemblyjs/wast-printer" "1.11.0" "@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== + "integrity" "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/helper-wasm-bytecode" "1.11.0" @@ -1158,9 +1163,9 @@ "@webassemblyjs/utf8" "1.11.0" "@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== + "integrity" "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/helper-buffer" "1.11.0" @@ -1168,9 +1173,9 @@ "@webassemblyjs/wasm-parser" "1.11.0" "@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== + "integrity" "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/helper-api-error" "1.11.0" @@ -1180,2735 +1185,2801 @@ "@webassemblyjs/utf8" "1.11.0" "@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== + "integrity" "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz" + "version" "1.11.0" dependencies: "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz" - integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ== + "integrity" "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==" + "resolved" "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz" + "version" "1.0.4" "@webpack-cli/info@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz" - integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w== + "integrity" "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==" + "resolved" "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz" + "version" "1.3.0" dependencies: - envinfo "^7.7.3" + "envinfo" "^7.7.3" "@webpack-cli/serve@^1.5.1": - version "1.5.1" - resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz" - integrity sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw== + "integrity" "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==" + "resolved" "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz" + "version" "1.5.1" "@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + "integrity" "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "resolved" "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + "version" "1.2.0" "@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -a-sync-waterfall@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz" - integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn@^8.2.1: - version "8.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== - -adjust-sourcemap-loader@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz" - integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -after@0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.12.4, ajv@^6.12.5: - version "6.12.5" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-escapes@^4.3.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -apexcharts@^3.27.1: - version "3.27.1" - resolved "https://registry.npmjs.org/apexcharts/-/apexcharts-3.27.1.tgz" - integrity sha512-2pfw3pxeWhI0ap5lfxyfGNGoGScfEwfc8XnTpbnzgRdr1AOH5JJN9hh3MvfwrC9TQQfJYC2TZc8P/q9qXUj1bQ== - dependencies: - svg.draggable.js "^2.2.2" - svg.easing.js "^2.0.0" - svg.filter.js "^2.0.2" - svg.pathmorphing.js "^0.1.3" - svg.resize.js "^1.4.3" - svg.select.js "^3.0.1" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arity-n@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz" - integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -asap@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -async-each-series@0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz" - integrity sha1-dhfBkXQB/Yykooqtzj266Yr+tDI= - -async@1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -atoa@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/atoa/-/atoa-1.0.0.tgz" - integrity sha1-DMDpGkgOc4+SPrwQNnZHF3mzSkk= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^10.2.6: - version "10.2.6" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz" - integrity sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg== - dependencies: - browserslist "^4.16.6" - caniuse-lite "^1.0.30001230" - colorette "^1.2.2" - fraction.js "^4.1.1" - normalize-range "^0.1.2" - postcss-value-parser "^4.1.0" - -axios@0.21.1: - version "0.21.1" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - -babel-loader@^8.2.2: - version "8.2.2" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + "integrity" "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "resolved" "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + "version" "4.2.2" + +"a-sync-waterfall@^1.0.0": + "integrity" "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" + "resolved" "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz" + "version" "1.0.1" + +"accepts@~1.3.4", "accepts@~1.3.5", "accepts@~1.3.7": + "integrity" "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" + "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + "version" "1.3.7" + dependencies: + "mime-types" "~2.1.24" + "negotiator" "0.6.2" + +"acorn@^8.2.1": + "integrity" "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz" + "version" "8.4.1" + +"adjust-sourcemap-loader@3.0.0": + "integrity" "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==" + "resolved" "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "loader-utils" "^2.0.0" + "regex-parser" "^2.2.11" + +"after@0.8.2": + "integrity" "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + "resolved" "https://registry.npmjs.org/after/-/after-0.8.2.tgz" + "version" "0.8.2" + +"aggregate-error@^3.0.0": + "integrity" "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==" + "resolved" "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "clean-stack" "^2.0.0" + "indent-string" "^4.0.0" + +"ajv-keywords@^3.5.2": + "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + "version" "3.5.2" + +"ajv@^6.12.4", "ajv@^6.12.5": + "integrity" "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz" + "version" "6.12.5" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"alphanum-sort@^1.0.2": + "integrity" "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + "resolved" "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + "version" "1.0.2" + +"ansi-escapes@^4.3.1": + "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "type-fest" "^0.21.3" + +"ansi-html@^0.0.7": + "integrity" "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + "resolved" "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz" + "version" "0.0.7" + +"ansi-regex@^2.0.0": + "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "version" "2.1.1" + +"ansi-regex@^5.0.0": + "integrity" "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" + "version" "5.0.0" + +"ansi-styles@^2.2.1": + "integrity" "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + "version" "2.2.1" + +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"anymatch@~3.1.2": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"apexcharts@^3.27.1": + "integrity" "sha512-2pfw3pxeWhI0ap5lfxyfGNGoGScfEwfc8XnTpbnzgRdr1AOH5JJN9hh3MvfwrC9TQQfJYC2TZc8P/q9qXUj1bQ==" + "resolved" "https://registry.npmjs.org/apexcharts/-/apexcharts-3.27.1.tgz" + "version" "3.27.1" + dependencies: + "svg.draggable.js" "^2.2.2" + "svg.easing.js" "^2.0.0" + "svg.filter.js" "^2.0.2" + "svg.pathmorphing.js" "^0.1.3" + "svg.resize.js" "^1.4.3" + "svg.select.js" "^3.0.1" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"arity-n@^1.0.4": + "integrity" "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" + "resolved" "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz" + "version" "1.0.4" + +"array-flatten@^2.1.0": + "integrity" "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" + "version" "2.1.2" + +"array-flatten@1.1.1": + "integrity" "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + "version" "1.1.1" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"arraybuffer.slice@~0.0.7": + "integrity" "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + "resolved" "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" + "version" "0.0.7" + +"asap@^2.0.3": + "integrity" "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + "version" "2.0.6" + +"asn1.js@^5.2.0": + "integrity" "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==" + "resolved" "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "bn.js" "^4.0.0" + "inherits" "^2.0.1" + "minimalistic-assert" "^1.0.0" + "safer-buffer" "^2.1.0" + +"assert@^1.1.1": + "integrity" "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==" + "resolved" "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "object-assign" "^4.1.1" + "util" "0.10.3" + +"async-each-series@0.1.1": + "integrity" "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=" + "resolved" "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz" + "version" "0.1.1" + +"async@^2.6.2": + "integrity" "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==" + "resolved" "https://registry.npmjs.org/async/-/async-2.6.3.tgz" + "version" "2.6.3" + dependencies: + "lodash" "^4.17.14" + +"async@1.5.2": + "integrity" "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "resolved" "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + "version" "1.5.2" + +"atoa@1.0.0": + "integrity" "sha1-DMDpGkgOc4+SPrwQNnZHF3mzSkk=" + "resolved" "https://registry.npmjs.org/atoa/-/atoa-1.0.0.tgz" + "version" "1.0.0" + +"atob@^2.1.2": + "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + "version" "2.1.2" + +"autoprefixer@^10.2.6": + "integrity" "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==" + "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz" + "version" "10.2.6" + dependencies: + "browserslist" "^4.16.6" + "caniuse-lite" "^1.0.30001230" + "colorette" "^1.2.2" + "fraction.js" "^4.1.1" + "normalize-range" "^0.1.2" + "postcss-value-parser" "^4.1.0" + +"axios@0.21.1": + "integrity" "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==" + "resolved" "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" + "version" "0.21.1" + dependencies: + "follow-redirects" "^1.10.0" + +"babel-loader@^8.2.2": + "integrity" "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==" + "resolved" "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz" + "version" "8.2.2" + dependencies: + "find-cache-dir" "^3.3.1" + "loader-utils" "^1.4.0" + "make-dir" "^3.1.0" + "schema-utils" "^2.6.5" + +"babel-plugin-dynamic-import-node@^2.3.3": + "integrity" "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "object.assign" "^4.1.0" + +"babel-plugin-polyfill-corejs2@^0.2.2": + "integrity" "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" + "version" "0.2.2" dependencies: "@babel/compat-data" "^7.13.11" "@babel/helper-define-polyfill-provider" "^0.2.2" - semver "^6.1.1" + "semver" "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.3" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz" - integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== +"babel-plugin-polyfill-corejs3@^0.2.2": + "integrity" "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz" + "version" "0.2.3" dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" + "core-js-compat" "^3.14.0" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== +"babel-plugin-polyfill-regenerator@^0.2.2": + "integrity" "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" + "version" "0.2.2" dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -bootstrap@5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" - integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-sync-client@^2.27.3: - version "2.27.3" - resolved "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.3.tgz" - integrity sha512-GaadUAfO0hmueUi5hikJQhv1Qdak4qc62WFWl+0MQcqWTKDFG4fFbjnXs/W/sDpcOHclXVbNZqx2l+LLwuNz5Q== - dependencies: - etag "1.8.1" - fresh "0.5.2" - mitt "^1.1.3" - rxjs "^5.5.6" - -browser-sync-ui@^2.27.3: - version "2.27.3" - resolved "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.3.tgz" - integrity sha512-va7dNwF+BC9gBVuVYa07wZPWEp4mTgi8/08oXiAzH0aSXOciu7II/Pu0V1fOFhRWcoFQxP8EzRJ4JP9Drx8evQ== - dependencies: - async-each-series "0.1.1" - connect-history-api-fallback "^1" - immutable "^3" - server-destroy "1.0.1" - socket.io-client "^2.4.0" - stream-throttle "^0.1.3" - -browser-sync-webpack-plugin@^2.0.1: - version "2.2.2" - resolved "https://registry.npmjs.org/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-2.2.2.tgz" - integrity sha512-x92kl8LdBi4dp6YVXYqrSoDkOCOLCeBOrYSY0h9Sk1VcCDSoZC1Vc62eae6TfC2ljN4/L+aYlkzE46kirHzbgA== - dependencies: - lodash "^4" - -browser-sync@^2.27.3: - version "2.27.3" - resolved "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.3.tgz" - integrity sha512-kyU5t5Sbm0lwCZTM4r2TKO9opznOT/P8eorkwWF4leZkbIZGyZohbSBiifYEWWlElM/vCRRhN/AqBH/3sSfOUw== - dependencies: - browser-sync-client "^2.27.3" - browser-sync-ui "^2.27.3" - bs-recipes "1.3.4" - bs-snippet-injector "^2.0.1" - chokidar "^3.5.1" - connect "3.6.6" - connect-history-api-fallback "^1" - dev-ip "^1.0.1" - easy-extender "^2.3.4" - eazy-logger "3.1.0" - etag "^1.8.1" - fresh "^0.5.2" - fs-extra "3.0.1" - http-proxy "^1.18.1" - immutable "^3" - localtunnel "^2.0.1" - micromatch "^4.0.2" - opn "5.3.0" - portscanner "2.1.1" - qs "6.2.3" - raw-body "^2.3.2" - resp-modifier "6.0.2" - rx "4.1.0" - send "0.16.2" - serve-index "1.9.1" - serve-static "1.13.2" - server-destroy "1.0.1" - socket.io "2.4.0" - ua-parser-js "^0.7.18" - yargs "^15.4.1" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.16.6" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== - 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" - -bs-recipes@1.3.4: - version "1.3.4" - resolved "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz" - integrity sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU= - -bs-snippet-injector@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz" - integrity sha1-YbU5PxH1JVntEgaTEANDtu2wTdU= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase@5.3.1, camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001230: - version "1.0.30001240" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz" - integrity sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w== - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.1.0, chalk@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -chart.js@^2.9.3: - version "2.9.4" - resolved "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz" - integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== - dependencies: - chartjs-color "^2.1.0" - moment "^2.10.2" - -chartjs-color-string@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz" - integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== - dependencies: - color-name "^1.0.0" - -chartjs-color@^2.1.0: - version "2.4.1" - resolved "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz" - integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== - dependencies: - chartjs-color-string "^0.6.0" - color-convert "^1.9.3" - -choices.js@^9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/choices.js/-/choices.js-9.0.1.tgz" - integrity sha512-JgpeDY0Tmg7tqY6jaW/druSklJSt7W68tXFJIw0GSGWmO37SDAL8o60eICNGbzIODjj02VNNtf5h6TgoHDtCsA== - dependencies: - deepmerge "^4.2.0" - fuse.js "^3.4.5" - redux "^4.0.4" - -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" +"backo2@1.0.2": + "integrity" "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + "resolved" "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + "version" "1.0.2" + +"balanced-match@^1.0.0": + "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + "version" "1.0.0" + +"base64-arraybuffer@0.1.4": + "integrity" "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" + "resolved" "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz" + "version" "0.1.4" + +"base64-js@^1.0.2": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" + +"base64id@2.0.0": + "integrity" "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + "resolved" "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + "version" "2.0.0" + +"batch@0.6.1": + "integrity" "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "resolved" "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + "version" "0.6.1" + +"big.js@^5.2.2": + "integrity" "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "resolved" "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + "version" "5.2.2" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"blob@0.0.5": + "integrity" "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + "resolved" "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" + "version" "0.0.5" + +"bn.js@^4.0.0": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^4.1.0": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^4.11.9": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^5.0.0", "bn.js@^5.1.1": + "integrity" "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" + "version" "5.2.0" + +"body-parser@1.19.0": + "integrity" "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==" + "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" + "version" "1.19.0" + dependencies: + "bytes" "3.1.0" + "content-type" "~1.0.4" + "debug" "2.6.9" + "depd" "~1.1.2" + "http-errors" "1.7.2" + "iconv-lite" "0.4.24" + "on-finished" "~2.3.0" + "qs" "6.7.0" + "raw-body" "2.4.0" + "type-is" "~1.6.17" + +"bonjour@^3.5.0": + "integrity" "sha1-jokKGD2O6aI5OzhExpGkK897yfU=" + "resolved" "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" + "version" "3.5.0" + dependencies: + "array-flatten" "^2.1.0" + "deep-equal" "^1.0.1" + "dns-equal" "^1.0.0" + "dns-txt" "^2.0.2" + "multicast-dns" "^6.0.1" + "multicast-dns-service-types" "^1.1.0" + +"boolbase@^1.0.0": + "integrity" "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "resolved" "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + "version" "1.0.0" + +"bootstrap-icons@^1.8.1": + "integrity" "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==" + "resolved" "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz" + "version" "1.8.1" + +"bootstrap@5.1.3": + "integrity" "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==" + "resolved" "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz" + "version" "5.1.3" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@^3.0.1", "braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"brorand@^1.0.1", "brorand@^1.1.0": + "integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + "version" "1.1.0" + +"browser-sync-client@^2.27.3": + "integrity" "sha512-GaadUAfO0hmueUi5hikJQhv1Qdak4qc62WFWl+0MQcqWTKDFG4fFbjnXs/W/sDpcOHclXVbNZqx2l+LLwuNz5Q==" + "resolved" "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.3.tgz" + "version" "2.27.3" + dependencies: + "etag" "1.8.1" + "fresh" "0.5.2" + "mitt" "^1.1.3" + "rxjs" "^5.5.6" + +"browser-sync-ui@^2.27.3": + "integrity" "sha512-va7dNwF+BC9gBVuVYa07wZPWEp4mTgi8/08oXiAzH0aSXOciu7II/Pu0V1fOFhRWcoFQxP8EzRJ4JP9Drx8evQ==" + "resolved" "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.3.tgz" + "version" "2.27.3" + dependencies: + "async-each-series" "0.1.1" + "connect-history-api-fallback" "^1" + "immutable" "^3" + "server-destroy" "1.0.1" + "socket.io-client" "^2.4.0" + "stream-throttle" "^0.1.3" + +"browser-sync-webpack-plugin@^2.0.1": + "integrity" "sha512-x92kl8LdBi4dp6YVXYqrSoDkOCOLCeBOrYSY0h9Sk1VcCDSoZC1Vc62eae6TfC2ljN4/L+aYlkzE46kirHzbgA==" + "resolved" "https://registry.npmjs.org/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-2.2.2.tgz" + "version" "2.2.2" + dependencies: + "lodash" "^4" + +"browser-sync@^2.27.3": + "integrity" "sha512-kyU5t5Sbm0lwCZTM4r2TKO9opznOT/P8eorkwWF4leZkbIZGyZohbSBiifYEWWlElM/vCRRhN/AqBH/3sSfOUw==" + "resolved" "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.3.tgz" + "version" "2.27.3" + dependencies: + "browser-sync-client" "^2.27.3" + "browser-sync-ui" "^2.27.3" + "bs-recipes" "1.3.4" + "bs-snippet-injector" "^2.0.1" + "chokidar" "^3.5.1" + "connect" "3.6.6" + "connect-history-api-fallback" "^1" + "dev-ip" "^1.0.1" + "easy-extender" "^2.3.4" + "eazy-logger" "3.1.0" + "etag" "^1.8.1" + "fresh" "^0.5.2" + "fs-extra" "3.0.1" + "http-proxy" "^1.18.1" + "immutable" "^3" + "localtunnel" "^2.0.1" + "micromatch" "^4.0.2" + "opn" "5.3.0" + "portscanner" "2.1.1" + "qs" "6.2.3" + "raw-body" "^2.3.2" + "resp-modifier" "6.0.2" + "rx" "4.1.0" + "send" "0.16.2" + "serve-index" "1.9.1" + "serve-static" "1.13.2" + "server-destroy" "1.0.1" + "socket.io" "2.4.0" + "ua-parser-js" "^0.7.18" + "yargs" "^15.4.1" + +"browserify-aes@^1.0.0", "browserify-aes@^1.0.4": + "integrity" "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==" + "resolved" "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "buffer-xor" "^1.0.3" + "cipher-base" "^1.0.0" + "create-hash" "^1.1.0" + "evp_bytestokey" "^1.0.3" + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"browserify-cipher@^1.0.0": + "integrity" "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==" + "resolved" "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "browserify-aes" "^1.0.4" + "browserify-des" "^1.0.0" + "evp_bytestokey" "^1.0.0" + +"browserify-des@^1.0.0": + "integrity" "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==" + "resolved" "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "cipher-base" "^1.0.1" + "des.js" "^1.0.0" + "inherits" "^2.0.1" + "safe-buffer" "^5.1.2" + +"browserify-rsa@^4.0.0", "browserify-rsa@^4.0.1": + "integrity" "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==" + "resolved" "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "bn.js" "^5.0.0" + "randombytes" "^2.0.1" + +"browserify-sign@^4.0.0": + "integrity" "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==" + "resolved" "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "bn.js" "^5.1.1" + "browserify-rsa" "^4.0.1" + "create-hash" "^1.2.0" + "create-hmac" "^1.1.7" + "elliptic" "^6.5.3" + "inherits" "^2.0.4" + "parse-asn1" "^5.1.5" + "readable-stream" "^3.6.0" + "safe-buffer" "^5.2.0" + +"browserify-zlib@^0.2.0": + "integrity" "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==" + "resolved" "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + "version" "0.2.0" + dependencies: + "pako" "~1.0.5" + +"browserslist@^4.0.0", "browserslist@^4.14.5", "browserslist@^4.16.0", "browserslist@^4.16.6": + "integrity" "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz" + "version" "4.16.6" + 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" + +"bs-recipes@1.3.4": + "integrity" "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=" + "resolved" "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz" + "version" "1.3.4" + +"bs-snippet-injector@^2.0.1": + "integrity" "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=" + "resolved" "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz" + "version" "2.0.1" + +"buffer-from@^1.0.0": + "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + "version" "1.1.1" + +"buffer-indexof@^1.0.0": + "integrity" "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + "resolved" "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" + "version" "1.1.1" + +"buffer-xor@^1.0.3": + "integrity" "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "resolved" "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + "version" "1.0.3" + +"buffer@^4.3.0": + "integrity" "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + "version" "4.9.2" + dependencies: + "base64-js" "^1.0.2" + "ieee754" "^1.1.4" + "isarray" "^1.0.0" + +"builtin-status-codes@^3.0.0": + "integrity" "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + "resolved" "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + "version" "3.0.0" + +"bytes@3.0.0": + "integrity" "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + "version" "3.0.0" + +"bytes@3.1.0": + "integrity" "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + "version" "3.1.0" + +"call-bind@^1.0.0", "call-bind@^1.0.2": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camel-case@^4.1.1": + "integrity" "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==" + "resolved" "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "pascal-case" "^3.1.2" + "tslib" "^2.0.3" + +"camelcase@^5.0.0", "camelcase@5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"caniuse-api@^3.0.0": + "integrity" "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" + "resolved" "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "browserslist" "^4.0.0" + "caniuse-lite" "^1.0.0" + "lodash.memoize" "^4.1.2" + "lodash.uniq" "^4.5.0" + +"caniuse-lite@^1.0.0", "caniuse-lite@^1.0.30001219", "caniuse-lite@^1.0.30001230": + "integrity" "sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz" + "version" "1.0.30001240" + +"chalk@^1.1.3": + "integrity" "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "ansi-styles" "^2.2.1" + "escape-string-regexp" "^1.0.2" + "has-ansi" "^2.0.0" + "strip-ansi" "^3.0.0" + "supports-color" "^2.0.0" + +"chalk@^2.0.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.1.0", "chalk@^4.1.1": + "integrity" "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"charenc@0.0.2": + "integrity" "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + "resolved" "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" + "version" "0.0.2" + +"chart.js@^2.9.3": + "integrity" "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==" + "resolved" "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz" + "version" "2.9.4" + dependencies: + "chartjs-color" "^2.1.0" + "moment" "^2.10.2" + +"chartjs-color-string@^0.6.0": + "integrity" "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==" + "resolved" "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "color-name" "^1.0.0" + +"chartjs-color@^2.1.0": + "integrity" "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==" + "resolved" "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "chartjs-color-string" "^0.6.0" + "color-convert" "^1.9.3" + +"choices.js@^9.0.1": + "integrity" "sha512-JgpeDY0Tmg7tqY6jaW/druSklJSt7W68tXFJIw0GSGWmO37SDAL8o60eICNGbzIODjj02VNNtf5h6TgoHDtCsA==" + "resolved" "https://registry.npmjs.org/choices.js/-/choices.js-9.0.1.tgz" + "version" "9.0.1" + dependencies: + "deepmerge" "^4.2.0" + "fuse.js" "^3.4.5" + "redux" "^4.0.4" + +"chokidar@^3.5.1", "chokidar@>=3.0.0 <4.0.0": + "integrity" "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" + "version" "3.5.2" + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" optionalDependencies: - fsevents "~2.3.2" + "fsevents" "~2.3.2" -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +"chrome-trace-event@^1.0.2": + "integrity" "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + "resolved" "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + "version" "1.0.3" -ci-info@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== +"ci-info@^3.0.0": + "integrity" "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" + "version" "3.2.0" -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== +"cipher-base@^1.0.0", "cipher-base@^1.0.1", "cipher-base@^1.0.3": + "integrity" "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" + "resolved" "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + "version" "1.0.4" dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" -classnames@^2.2.5: - version "2.2.6" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +"classnames@^2.2.5": + "integrity" "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "resolved" "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz" + "version" "2.2.6" -clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== +"clean-css@^4.2.3 || ^5.1.2": + "integrity" "sha512-qGXzUCDpLwAlPx0kYeU4QXjzQIcIYZbJjD4FNm7NnSjoP0hYMVZhHOpUYJ6AwfkMX2cceLRq54MeCgHy/va1cA==" + "resolved" "https://registry.npmjs.org/clean-css/-/clean-css-5.1.3.tgz" + "version" "5.1.3" dependencies: - source-map "~0.6.0" + "source-map" "~0.6.0" -"clean-css@^4.2.3 || ^5.1.2": - version "5.1.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.1.3.tgz" - integrity sha512-qGXzUCDpLwAlPx0kYeU4QXjzQIcIYZbJjD4FNm7NnSjoP0hYMVZhHOpUYJ6AwfkMX2cceLRq54MeCgHy/va1cA== +"clean-css@^4.2.3": + "integrity" "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==" + "resolved" "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" + "version" "4.2.3" dependencies: - source-map "~0.6.0" + "source-map" "~0.6.0" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +"clean-stack@^2.0.0": + "integrity" "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + "resolved" "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + "version" "2.2.0" -cli-table3@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz" - integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== +"cli-table3@^0.6.0": + "integrity" "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==" + "resolved" "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz" + "version" "0.6.0" dependencies: - object-assign "^4.1.0" - string-width "^4.2.0" + "object-assign" "^4.1.0" + "string-width" "^4.2.0" optionalDependencies: - colors "^1.1.2" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -collect.js@^4.28.5: - version "4.28.6" - resolved "https://registry.npmjs.org/collect.js/-/collect.js-4.28.6.tgz" - integrity sha512-NAyuk1DnCotRaDZIS5kJ4sptgkwOeYqElird10yziN5JBuwYOGkOTguhNcPn5g344IfylZecxNYZAVXgv19p5Q== - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colord@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/colord/-/colord-2.0.1.tgz" - integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== - -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -colors@^1.1.2: - version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -commander@^2.2.0, commander@^2.20.0, commander@^2.9.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commander@^7.0.0, commander@^7.1.0, commander@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -compose-function@3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz" - integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= - dependencies: - arity-n "^1.0.4" - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz" - integrity sha1-QPM1MInWVGdpXLGIa0Xt1jfYzKg= - dependencies: - commander "^2.9.0" - -connect-history-api-fallback@^1, connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -connect@3.6.6: - version "3.6.6" - resolved "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - -consola@^2.15.0: - version "2.15.3" - resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -contra@1.9.4: - version "1.9.4" - resolved "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz" - integrity sha1-9TveQtfltZhcrk2ZqNYQUm3o8o0= - dependencies: - atoa "1.0.0" - ticky "1.0.1" - -convert-source-map@1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^0.3.3: - version "0.3.5" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz" - integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= - -convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -core-js-compat@^3.14.0, core-js-compat@^3.15.0: - version "3.15.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.1.tgz" - integrity sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww== - dependencies: - browserslist "^4.16.6" - semver "7.0.0" - -core-js@^3.1.3: - version "3.8.3" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz" - integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + "colors" "^1.1.2" + +"cliui@^6.0.0": + "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^6.2.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"clone-deep@^4.0.1": + "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" + "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-plain-object" "^2.0.4" + "kind-of" "^6.0.2" + "shallow-clone" "^3.0.0" + +"clone@^2.1.1": + "integrity" "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + "version" "2.1.2" + +"collect.js@^4.28.5": + "integrity" "sha512-NAyuk1DnCotRaDZIS5kJ4sptgkwOeYqElird10yziN5JBuwYOGkOTguhNcPn5g344IfylZecxNYZAVXgv19p5Q==" + "resolved" "https://registry.npmjs.org/collect.js/-/collect.js-4.28.6.tgz" + "version" "4.28.6" + +"color-convert@^1.9.0", "color-convert@^1.9.3": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@^1.0.0", "color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"colord@^2.0.1": + "integrity" "sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA==" + "resolved" "https://registry.npmjs.org/colord/-/colord-2.0.1.tgz" + "version" "2.0.1" + +"colorette@^1.2.1", "colorette@^1.2.2": + "integrity" "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + "resolved" "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" + "version" "1.2.2" + +"colors@^1.1.2": + "integrity" "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "resolved" "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + "version" "1.4.0" + +"commander@^2.2.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^2.20.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^2.9.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^4.1.1": + "integrity" "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + "version" "4.1.1" + +"commander@^5.1.0": + "integrity" "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + "resolved" "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + "version" "5.1.0" + +"commander@^6.0.0": + "integrity" "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" + "version" "6.2.1" + +"commander@^7.0.0", "commander@^7.1.0", "commander@^7.2.0": + "integrity" "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + "resolved" "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + "version" "7.2.0" + +"commondir@^1.0.1": + "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + "version" "1.0.1" + +"component-bind@1.0.0": + "integrity" "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + "resolved" "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" + "version" "1.0.0" + +"component-emitter@~1.3.0": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"component-emitter@1.2.1": + "integrity" "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" + "version" "1.2.1" + +"component-inherit@0.0.3": + "integrity" "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + "resolved" "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" + "version" "0.0.3" + +"compose-function@3.0.3": + "integrity" "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=" + "resolved" "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "arity-n" "^1.0.4" + +"compressible@~2.0.16": + "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==" + "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + "version" "2.0.18" + dependencies: + "mime-db" ">= 1.43.0 < 2" + +"compression@^1.7.4": + "integrity" "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==" + "resolved" "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + "version" "1.7.4" + dependencies: + "accepts" "~1.3.5" + "bytes" "3.0.0" + "compressible" "~2.0.16" + "debug" "2.6.9" + "on-headers" "~1.0.2" + "safe-buffer" "5.1.2" + "vary" "~1.1.2" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"concat@^1.0.3": + "integrity" "sha1-QPM1MInWVGdpXLGIa0Xt1jfYzKg=" + "resolved" "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "commander" "^2.9.0" + +"connect-history-api-fallback@^1", "connect-history-api-fallback@^1.6.0": + "integrity" "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + "resolved" "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + "version" "1.6.0" + +"connect@3.6.6": + "integrity" "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=" + "resolved" "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz" + "version" "3.6.6" + dependencies: + "debug" "2.6.9" + "finalhandler" "1.1.0" + "parseurl" "~1.3.2" + "utils-merge" "1.0.1" + +"consola@^2.15.0": + "integrity" "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + "resolved" "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" + "version" "2.15.3" + +"console-browserify@^1.1.0": + "integrity" "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + "resolved" "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" + "version" "1.2.0" + +"constants-browserify@^1.0.0": + "integrity" "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + "resolved" "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + "version" "1.0.0" + +"content-disposition@0.5.3": + "integrity" "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==" + "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "safe-buffer" "5.1.2" + +"content-type@~1.0.4": + "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + "version" "1.0.4" + +"contra@1.9.4": + "integrity" "sha1-9TveQtfltZhcrk2ZqNYQUm3o8o0=" + "resolved" "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz" + "version" "1.9.4" + dependencies: + "atoa" "1.0.0" + "ticky" "1.0.1" + +"convert-source-map@^0.3.3": + "integrity" "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz" + "version" "0.3.5" + +"convert-source-map@^1.7.0": + "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + "version" "1.8.0" + dependencies: + "safe-buffer" "~5.1.1" + +"convert-source-map@1.7.0": + "integrity" "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "safe-buffer" "~5.1.1" + +"cookie-signature@1.0.6": + "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + "version" "1.0.6" + +"cookie@~0.4.1": + "integrity" "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" + "version" "0.4.1" + +"cookie@0.4.0": + "integrity" "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" + "version" "0.4.0" + +"core-js-compat@^3.14.0", "core-js-compat@^3.15.0": + "integrity" "sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww==" + "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.1.tgz" + "version" "3.15.1" + dependencies: + "browserslist" "^4.16.6" + "semver" "7.0.0" + +"core-js@^3.1.3": + "integrity" "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz" + "version" "3.8.3" + +"core-util-is@~1.0.0": + "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + "version" "1.0.2" + +"cosmiconfig@^7.0.0": + "integrity" "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" + "version" "7.0.0" dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.1, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crossvent@1.5.5: - version "1.5.5" - resolved "https://registry.npmjs.org/crossvent/-/crossvent-1.5.5.tgz" - integrity sha1-rSCHjkkh6b5z2daXb4suzQ9xoLE= - dependencies: - custom-event "^1.0.0" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-color-names@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz" - integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== - -css-declaration-sorter@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz" - integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== - dependencies: - timsort "^0.3.0" - -css-loader@^5.2.6: - version "5.2.6" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz" - integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== - dependencies: - icss-utils "^5.1.0" - loader-utils "^2.0.0" - postcss "^8.2.15" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" - semver "^7.3.5" - -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz" - integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== - -css@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz" - integrity sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^2.0.1" - postcss-calc "^8.0.0" - postcss-colormin "^5.2.0" - postcss-convert-values "^5.0.1" - postcss-discard-comments "^5.0.1" - postcss-discard-duplicates "^5.0.1" - postcss-discard-empty "^5.0.1" - postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.2" - postcss-merge-rules "^5.0.2" - postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.1" - postcss-minify-params "^5.0.1" - postcss-minify-selectors "^5.1.0" - postcss-normalize-charset "^5.0.1" - postcss-normalize-display-values "^5.0.1" - postcss-normalize-positions "^5.0.1" - postcss-normalize-repeat-style "^5.0.1" - postcss-normalize-string "^5.0.1" - postcss-normalize-timing-functions "^5.0.1" - postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.2" - postcss-normalize-whitespace "^5.0.1" - postcss-ordered-values "^5.0.2" - postcss-reduce-initial "^5.0.1" - postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.2" - postcss-unique-selectors "^5.0.1" - -cssnano-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz" - integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== - -cssnano@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.0.6.tgz" - integrity sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw== - dependencies: - cosmiconfig "^7.0.0" - cssnano-preset-default "^5.1.3" - is-resolvable "^1.1.0" - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -custom-event@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dayjs@^1.10.5, dayjs@^1.8.28: - version "1.10.5" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz" - integrity sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.3.1, debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^3.1.1: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@~4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deepmerge@^4.2.0: - version "4.2.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-gateway@^6.0.0: - version "6.0.3" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -del@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/del/-/del-6.0.0.tgz" - integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -dev-ip@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz" - integrity sha1-p2o+0YVb56ASu4rBbLgPPADcKPA= - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domhandler@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz" - integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== - dependencies: - domelementtype "^2.0.1" - -domhandler@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz" - integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.0.0, domutils@^2.6.0: - version "2.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz" - integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -dragula@^3.7.2: - version "3.7.3" - resolved "https://registry.npmjs.org/dragula/-/dragula-3.7.3.tgz" - integrity sha512-/rRg4zRhcpf81TyDhaHLtXt6sEywdfpv1cRUMeFFy7DuypH2U0WUL0GTdyAQvXegviT4PJK4KuMmOaIDpICseQ== - dependencies: - contra "1.9.4" - crossvent "1.5.5" - -easy-extender@^2.3.4: - version "2.3.4" - resolved "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz" - integrity sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q== - dependencies: - lodash "^4.17.10" - -eazy-logger@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz" - integrity sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ== - dependencies: - tfunk "^4.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.723: - version "1.3.759" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz" - integrity sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.1, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -engine.io-client@~3.5.0: - version "3.5.2" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz" - integrity sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" - xmlhttprequest-ssl "~1.6.2" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.4" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz" - integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== - dependencies: - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "~7.4.2" - -enhanced-resolve@^5.8.0: - version "5.8.2" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz" - integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz" - integrity sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA== - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@2.0.3, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@1.8.1, etag@^1.8.1, etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz" - integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0, events@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz" - integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== - -fast-glob@^3.0.3, fast-glob@^3.1.1: - version "3.2.6" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz" - integrity sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ== + "import-fresh" "^3.2.1" + "parse-json" "^5.0.0" + "path-type" "^4.0.0" + "yaml" "^1.10.0" + +"create-ecdh@^4.0.0": + "integrity" "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==" + "resolved" "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "bn.js" "^4.1.0" + "elliptic" "^6.5.3" + +"create-hash@^1.1.0", "create-hash@^1.1.2", "create-hash@^1.2.0": + "integrity" "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==" + "resolved" "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "cipher-base" "^1.0.1" + "inherits" "^2.0.1" + "md5.js" "^1.3.4" + "ripemd160" "^2.0.1" + "sha.js" "^2.4.0" + +"create-hmac@^1.1.0", "create-hmac@^1.1.4", "create-hmac@^1.1.7": + "integrity" "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==" + "resolved" "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "cipher-base" "^1.0.3" + "create-hash" "^1.1.0" + "inherits" "^2.0.1" + "ripemd160" "^2.0.0" + "safe-buffer" "^5.0.1" + "sha.js" "^2.4.8" + +"cross-env@^7.0.3": + "integrity" "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==" + "resolved" "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "cross-spawn" "^7.0.1" + +"cross-spawn@^7.0.1", "cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"crossvent@1.5.5": + "integrity" "sha1-rSCHjkkh6b5z2daXb4suzQ9xoLE=" + "resolved" "https://registry.npmjs.org/crossvent/-/crossvent-1.5.5.tgz" + "version" "1.5.5" + dependencies: + "custom-event" "^1.0.0" + +"crypt@0.0.2": + "integrity" "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + "resolved" "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" + "version" "0.0.2" + +"crypto-browserify@^3.11.0": + "integrity" "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==" + "resolved" "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + "version" "3.12.0" + dependencies: + "browserify-cipher" "^1.0.0" + "browserify-sign" "^4.0.0" + "create-ecdh" "^4.0.0" + "create-hash" "^1.1.0" + "create-hmac" "^1.1.0" + "diffie-hellman" "^5.0.0" + "inherits" "^2.0.1" + "pbkdf2" "^3.0.3" + "public-encrypt" "^4.0.0" + "randombytes" "^2.0.0" + "randomfill" "^1.0.3" + +"css-color-names@^0.0.4": + "integrity" "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + "resolved" "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + "version" "0.0.4" + +"css-color-names@^1.0.1": + "integrity" "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==" + "resolved" "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz" + "version" "1.0.1" + +"css-declaration-sorter@^6.0.3": + "integrity" "sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==" + "resolved" "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz" + "version" "6.0.3" + dependencies: + "timsort" "^0.3.0" + +"css-loader@^5.2.6": + "integrity" "sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w==" + "resolved" "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz" + "version" "5.2.6" + dependencies: + "icss-utils" "^5.1.0" + "loader-utils" "^2.0.0" + "postcss" "^8.2.15" + "postcss-modules-extract-imports" "^3.0.0" + "postcss-modules-local-by-default" "^4.0.0" + "postcss-modules-scope" "^3.0.0" + "postcss-modules-values" "^4.0.0" + "postcss-value-parser" "^4.1.0" + "schema-utils" "^3.0.0" + "semver" "^7.3.5" + +"css-select@^4.1.3": + "integrity" "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==" + "resolved" "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "boolbase" "^1.0.0" + "css-what" "^5.0.0" + "domhandler" "^4.2.0" + "domutils" "^2.6.0" + "nth-check" "^2.0.0" + +"css-tree@^1.1.2": + "integrity" "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==" + "resolved" "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "mdn-data" "2.0.14" + "source-map" "^0.6.1" + +"css-what@^5.0.0": + "integrity" "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "resolved" "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz" + "version" "5.0.1" + +"css@^2.0.0": + "integrity" "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==" + "resolved" "https://registry.npmjs.org/css/-/css-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "inherits" "^2.0.3" + "source-map" "^0.6.1" + "source-map-resolve" "^0.5.2" + "urix" "^0.1.0" + +"cssesc@^3.0.0": + "integrity" "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + "version" "3.0.0" + +"cssnano-preset-default@^5.1.3": + "integrity" "sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ==" + "resolved" "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz" + "version" "5.1.3" + dependencies: + "css-declaration-sorter" "^6.0.3" + "cssnano-utils" "^2.0.1" + "postcss-calc" "^8.0.0" + "postcss-colormin" "^5.2.0" + "postcss-convert-values" "^5.0.1" + "postcss-discard-comments" "^5.0.1" + "postcss-discard-duplicates" "^5.0.1" + "postcss-discard-empty" "^5.0.1" + "postcss-discard-overridden" "^5.0.1" + "postcss-merge-longhand" "^5.0.2" + "postcss-merge-rules" "^5.0.2" + "postcss-minify-font-values" "^5.0.1" + "postcss-minify-gradients" "^5.0.1" + "postcss-minify-params" "^5.0.1" + "postcss-minify-selectors" "^5.1.0" + "postcss-normalize-charset" "^5.0.1" + "postcss-normalize-display-values" "^5.0.1" + "postcss-normalize-positions" "^5.0.1" + "postcss-normalize-repeat-style" "^5.0.1" + "postcss-normalize-string" "^5.0.1" + "postcss-normalize-timing-functions" "^5.0.1" + "postcss-normalize-unicode" "^5.0.1" + "postcss-normalize-url" "^5.0.2" + "postcss-normalize-whitespace" "^5.0.1" + "postcss-ordered-values" "^5.0.2" + "postcss-reduce-initial" "^5.0.1" + "postcss-reduce-transforms" "^5.0.1" + "postcss-svgo" "^5.0.2" + "postcss-unique-selectors" "^5.0.1" + +"cssnano-utils@^2.0.1": + "integrity" "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==" + "resolved" "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz" + "version" "2.0.1" + +"cssnano@^5.0.6": + "integrity" "sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw==" + "resolved" "https://registry.npmjs.org/cssnano/-/cssnano-5.0.6.tgz" + "version" "5.0.6" + dependencies: + "cosmiconfig" "^7.0.0" + "cssnano-preset-default" "^5.1.3" + "is-resolvable" "^1.1.0" + +"csso@^4.2.0": + "integrity" "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==" + "resolved" "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "css-tree" "^1.1.2" + +"custom-event@^1.0.0": + "integrity" "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=" + "resolved" "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz" + "version" "1.0.1" + +"d@^1.0.1", "d@1": + "integrity" "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==" + "resolved" "https://registry.npmjs.org/d/-/d-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "es5-ext" "^0.10.50" + "type" "^1.0.1" + +"dayjs@^1.10.5", "dayjs@^1.8.28": + "integrity" "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + "resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz" + "version" "1.10.5" + +"de-indent@^1.0.2": + "integrity" "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" + "resolved" "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" + "version" "1.0.2" + +"debug@^2.2.0", "debug@2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^3.1.1": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" + dependencies: + "ms" "^2.1.1" + +"debug@^4.1.0": + "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "ms" "2.1.2" + +"debug@^4.1.1": + "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "ms" "2.1.2" + +"debug@~3.1.0": + "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "ms" "2.0.0" + +"debug@~4.1.0": + "integrity" "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "ms" "^2.1.1" + +"debug@4.3.1": + "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "ms" "2.1.2" + +"decamelize@^1.2.0": + "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" + +"decode-uri-component@^0.2.0": + "integrity" "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + "version" "0.2.0" + +"deep-equal@^1.0.1": + "integrity" "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==" + "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "is-arguments" "^1.0.4" + "is-date-object" "^1.0.1" + "is-regex" "^1.0.4" + "object-is" "^1.0.1" + "object-keys" "^1.1.1" + "regexp.prototype.flags" "^1.2.0" + +"deepmerge@^4.2.0": + "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + "version" "4.2.2" + +"default-gateway@^6.0.0": + "integrity" "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==" + "resolved" "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" + "version" "6.0.3" + dependencies: + "execa" "^5.0.0" + +"define-properties@^1.1.3": + "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "object-keys" "^1.0.12" + +"del@^6.0.0": + "integrity" "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==" + "resolved" "https://registry.npmjs.org/del/-/del-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "globby" "^11.0.1" + "graceful-fs" "^4.2.4" + "is-glob" "^4.0.1" + "is-path-cwd" "^2.2.0" + "is-path-inside" "^3.0.2" + "p-map" "^4.0.0" + "rimraf" "^3.0.2" + "slash" "^3.0.0" + +"depd@~1.1.2": + "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + "version" "1.1.2" + +"des.js@^1.0.0": + "integrity" "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==" + "resolved" "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "inherits" "^2.0.1" + "minimalistic-assert" "^1.0.0" + +"destroy@~1.0.4": + "integrity" "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + "version" "1.0.4" + +"detect-node@^2.0.4": + "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + "version" "2.1.0" + +"dev-ip@^1.0.1": + "integrity" "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=" + "resolved" "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz" + "version" "1.0.1" + +"diffie-hellman@^5.0.0": + "integrity" "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==" + "resolved" "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + "version" "5.0.3" + dependencies: + "bn.js" "^4.1.0" + "miller-rabin" "^4.0.0" + "randombytes" "^2.0.0" + +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + +"dlv@^1.1.3": + "integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + "version" "1.1.3" + +"dns-equal@^1.0.0": + "integrity" "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "resolved" "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" + "version" "1.0.0" + +"dns-packet@^1.3.1": + "integrity" "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==" + "resolved" "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz" + "version" "1.3.4" + dependencies: + "ip" "^1.1.0" + "safe-buffer" "^5.0.1" + +"dns-txt@^2.0.2": + "integrity" "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=" + "resolved" "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "buffer-indexof" "^1.0.0" + +"dom-serializer@^1.0.1": + "integrity" "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==" + "resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "domelementtype" "^2.0.1" + "domhandler" "^4.2.0" + "entities" "^2.0.0" + +"domain-browser@^1.1.1": + "integrity" "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + "resolved" "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + "version" "1.2.0" + +"domelementtype@^2.0.1", "domelementtype@^2.2.0": + "integrity" "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" + "version" "2.2.0" + +"domhandler@^3.0.0": + "integrity" "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==" + "resolved" "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "domelementtype" "^2.0.1" + +"domhandler@^4.2.0": + "integrity" "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==" + "resolved" "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "domelementtype" "^2.2.0" + +"domutils@^2.0.0", "domutils@^2.6.0": + "integrity" "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==" + "resolved" "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "dom-serializer" "^1.0.1" + "domelementtype" "^2.2.0" + "domhandler" "^4.2.0" + +"dot-case@^3.0.4": + "integrity" "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==" + "resolved" "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "no-case" "^3.0.4" + "tslib" "^2.0.3" + +"dotenv-expand@^5.1.0": + "integrity" "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + "resolved" "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + "version" "5.1.0" + +"dotenv@^10.0.0": + "integrity" "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" + "version" "10.0.0" + +"dragula@^3.7.2": + "integrity" "sha512-/rRg4zRhcpf81TyDhaHLtXt6sEywdfpv1cRUMeFFy7DuypH2U0WUL0GTdyAQvXegviT4PJK4KuMmOaIDpICseQ==" + "resolved" "https://registry.npmjs.org/dragula/-/dragula-3.7.3.tgz" + "version" "3.7.3" + dependencies: + "contra" "1.9.4" + "crossvent" "1.5.5" + +"easy-extender@^2.3.4": + "integrity" "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==" + "resolved" "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz" + "version" "2.3.4" + dependencies: + "lodash" "^4.17.10" + +"eazy-logger@3.1.0": + "integrity" "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==" + "resolved" "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "tfunk" "^4.0.0" + +"ee-first@1.1.1": + "integrity" "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "version" "1.1.1" + +"electron-to-chromium@^1.3.723": + "integrity" "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz" + "version" "1.3.759" + +"elliptic@^6.5.3": + "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" + "resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + "version" "6.5.4" + dependencies: + "bn.js" "^4.11.9" + "brorand" "^1.1.0" + "hash.js" "^1.0.0" + "hmac-drbg" "^1.0.1" + "inherits" "^2.0.4" + "minimalistic-assert" "^1.0.1" + "minimalistic-crypto-utils" "^1.0.1" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"emojis-list@^2.0.0": + "integrity" "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" + "version" "2.1.0" + +"emojis-list@^3.0.0": + "integrity" "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + "version" "3.0.0" + +"encodeurl@~1.0.1", "encodeurl@~1.0.2": + "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"engine.io-client@~3.5.0": + "integrity" "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==" + "resolved" "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz" + "version" "3.5.2" + dependencies: + "component-emitter" "~1.3.0" + "component-inherit" "0.0.3" + "debug" "~3.1.0" + "engine.io-parser" "~2.2.0" + "has-cors" "1.1.0" + "indexof" "0.0.1" + "parseqs" "0.0.6" + "parseuri" "0.0.6" + "ws" "~7.4.2" + "xmlhttprequest-ssl" "~1.6.2" + "yeast" "0.1.2" + +"engine.io-parser@~2.2.0": + "integrity" "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==" + "resolved" "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "after" "0.8.2" + "arraybuffer.slice" "~0.0.7" + "base64-arraybuffer" "0.1.4" + "blob" "0.0.5" + "has-binary2" "~1.0.2" + +"engine.io@~3.5.0": + "integrity" "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==" + "resolved" "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz" + "version" "3.5.0" + dependencies: + "accepts" "~1.3.4" + "base64id" "2.0.0" + "cookie" "~0.4.1" + "debug" "~4.1.0" + "engine.io-parser" "~2.2.0" + "ws" "~7.4.2" + +"enhanced-resolve@^5.8.0": + "integrity" "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==" + "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz" + "version" "5.8.2" + dependencies: + "graceful-fs" "^4.2.4" + "tapable" "^2.2.0" + +"entities@^2.0.0": + "integrity" "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + "version" "2.2.0" + +"envinfo@^7.7.3": + "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" + "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" + "version" "7.8.1" + +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"es-module-lexer@^0.6.0": + "integrity" "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==" + "resolved" "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz" + "version" "0.6.0" + +"es5-ext@^0.10.35", "es5-ext@^0.10.50": + "integrity" "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==" + "resolved" "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" + "version" "0.10.53" + dependencies: + "es6-iterator" "~2.0.3" + "es6-symbol" "~3.1.3" + "next-tick" "~1.0.0" + +"es6-iterator@~2.0.3", "es6-iterator@2.0.3": + "integrity" "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=" + "resolved" "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" + "version" "2.0.3" + dependencies: + "d" "1" + "es5-ext" "^0.10.35" + "es6-symbol" "^3.1.1" + +"es6-symbol@^3.1.1", "es6-symbol@~3.1.3": + "integrity" "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==" + "resolved" "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "d" "^1.0.1" + "ext" "^1.1.2" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-html@~1.0.3": + "integrity" "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + "version" "1.0.3" + +"escape-string-regexp@^1.0.2", "escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"eslint-scope@5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" + +"esprima@^4.0.0": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"esrecurse@^4.3.0": + "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" + "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "estraverse" "^5.2.0" + +"estraverse@^4.1.1": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.2.0": + "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + "version" "5.2.0" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"etag@^1.8.1", "etag@~1.8.1", "etag@1.8.1": + "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + "version" "1.8.1" + +"eventemitter3@^2.0.3": + "integrity" "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" + "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz" + "version" "2.0.3" + +"eventemitter3@^4.0.0": + "integrity" "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + "version" "4.0.7" + +"events@^3.0.0", "events@^3.2.0": + "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + "version" "3.3.0" + +"evp_bytestokey@^1.0.0", "evp_bytestokey@^1.0.3": + "integrity" "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==" + "resolved" "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "md5.js" "^1.3.4" + "safe-buffer" "^5.1.1" + +"execa@^5.0.0": + "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" + "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.0" + "human-signals" "^2.1.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^4.0.1" + "onetime" "^5.1.2" + "signal-exit" "^3.0.3" + "strip-final-newline" "^2.0.0" + +"express@^4.17.1": + "integrity" "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==" + "resolved" "https://registry.npmjs.org/express/-/express-4.17.1.tgz" + "version" "4.17.1" + dependencies: + "accepts" "~1.3.7" + "array-flatten" "1.1.1" + "body-parser" "1.19.0" + "content-disposition" "0.5.3" + "content-type" "~1.0.4" + "cookie" "0.4.0" + "cookie-signature" "1.0.6" + "debug" "2.6.9" + "depd" "~1.1.2" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "finalhandler" "~1.1.2" + "fresh" "0.5.2" + "merge-descriptors" "1.0.1" + "methods" "~1.1.2" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "path-to-regexp" "0.1.7" + "proxy-addr" "~2.0.5" + "qs" "6.7.0" + "range-parser" "~1.2.1" + "safe-buffer" "5.1.2" + "send" "0.17.1" + "serve-static" "1.14.1" + "setprototypeof" "1.1.1" + "statuses" "~1.5.0" + "type-is" "~1.6.18" + "utils-merge" "1.0.1" + "vary" "~1.1.2" + +"ext@^1.1.2": + "integrity" "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==" + "resolved" "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "type" "^2.0.0" + +"extend@^3.0.2": + "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"fast-deep-equal@^3.1.1": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-diff@1.1.2": + "integrity" "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz" + "version" "1.1.2" + +"fast-glob@^3.0.3", "fast-glob@^3.1.1": + "integrity" "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz" + "version" "3.2.6" dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== - -fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -feather-icons@^4.28.0: - version "4.28.0" - resolved "https://registry.npmjs.org/feather-icons/-/feather-icons-4.28.0.tgz" - integrity sha512-gRdqKESXRBUZn6Nl0VBq2wPHKRJgZz7yblrrc2lYsS6odkNFDnA4bqvrlEVRUPjE1tFax+0TdbJKZ31ziJuzjg== - dependencies: - classnames "^2.2.5" - core-js "^3.1.3" - -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-type@^12.0.0: - version "12.4.2" - resolved "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz" - integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.13.1" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz" - integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz" - integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== - -fresh@0.5.2, fresh@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -front-matter@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz" - integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== - dependencies: - js-yaml "^3.13.1" - -fs-extra@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz" - integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-monkey@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -fuse.js@^3.4.5: - version "3.6.1" - resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz" - integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz" - integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^10.0.0: - version "10.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" + +"fastest-levenshtein@^1.0.12": + "integrity" "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" + "resolved" "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" + "version" "1.0.12" + +"fastq@^1.6.0": + "integrity" "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz" + "version" "1.11.0" + dependencies: + "reusify" "^1.0.4" + +"faye-websocket@^0.11.3": + "integrity" "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==" + "resolved" "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + "version" "0.11.4" + dependencies: + "websocket-driver" ">=0.5.1" + +"feather-icons@^4.28.0": + "integrity" "sha512-gRdqKESXRBUZn6Nl0VBq2wPHKRJgZz7yblrrc2lYsS6odkNFDnA4bqvrlEVRUPjE1tFax+0TdbJKZ31ziJuzjg==" + "resolved" "https://registry.npmjs.org/feather-icons/-/feather-icons-4.28.0.tgz" + "version" "4.28.0" + dependencies: + "classnames" "^2.2.5" + "core-js" "^3.1.3" + +"figures@^3.2.0": + "integrity" "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==" + "resolved" "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "escape-string-regexp" "^1.0.5" + +"file-loader@^6.2.0": + "integrity" "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==" + "resolved" "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "loader-utils" "^2.0.0" + "schema-utils" "^3.0.0" + +"file-type@^12.0.0": + "integrity" "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz" + "version" "12.4.2" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"finalhandler@~1.1.2": + "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" + "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "statuses" "~1.5.0" + "unpipe" "~1.0.0" + +"finalhandler@1.1.0": + "integrity" "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=" + "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.1" + "escape-html" "~1.0.3" + "on-finished" "~2.3.0" + "parseurl" "~1.3.2" + "statuses" "~1.3.1" + "unpipe" "~1.0.0" + +"find-cache-dir@^3.3.1": + "integrity" "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==" + "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" + "version" "3.3.1" + dependencies: + "commondir" "^1.0.1" + "make-dir" "^3.0.2" + "pkg-dir" "^4.1.0" + +"find-up@^4.0.0", "find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"follow-redirects@^1.0.0", "follow-redirects@^1.10.0": + "integrity" "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" + "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz" + "version" "1.13.1" + +"forwarded@0.2.0": + "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + "version" "0.2.0" + +"fraction.js@^4.1.1": + "integrity" "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==" + "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz" + "version" "4.1.1" + +"fresh@^0.5.2", "fresh@0.5.2": + "integrity" "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + "version" "0.5.2" + +"front-matter@^4.0.2": + "integrity" "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==" + "resolved" "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "js-yaml" "^3.13.1" + +"fs-extra@^10.0.0": + "integrity" "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" + "version" "10.0.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^2.0.0" + +"fs-extra@3.0.1": + "integrity" "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^3.0.0" + "universalify" "^0.1.0" + +"fs-monkey@1.0.3": + "integrity" "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + "resolved" "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz" + "version" "1.0.3" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"fuse.js@^3.4.5": + "integrity" "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==" + "resolved" "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz" + "version" "3.6.1" + +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2": + "integrity" "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.1" + +"get-stream@^6.0.0": + "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + "version" "6.0.1" + +"glob-parent@^5.1.2", "glob-parent@~5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-to-regexp@^0.4.1": + "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + "version" "0.4.1" + +"glob@^7.0.0", "glob@^7.1.3", "glob@^7.1.7": + "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + "version" "7.1.7" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"globby@^10.0.0": + "integrity" "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==" + "resolved" "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" + "version" "10.0.2" dependencies: "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^11.0.1, globby@^11.0.2: - version "11.0.4" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -graceful-fs@^4.2.6: - version "4.2.6" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.1.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-entities@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz" - integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== - -html-loader@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz" - integrity sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA== - dependencies: - html-minifier-terser "^5.1.1" - htmlparser2 "^4.1.0" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -html-minifier-terser@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" - integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== - dependencies: - camel-case "^4.1.1" - clean-css "^4.2.3" - commander "^4.1.1" - he "^1.2.0" - param-case "^3.0.3" - relateurl "^0.2.7" - terser "^4.6.3" - -htmlparser2@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz" - integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== - dependencies: - domelementtype "^2.0.1" - domhandler "^3.0.0" - domutils "^2.0.0" - entities "^2.0.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2, http-errors@~1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-middleware@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.0.3" + "glob" "^7.1.3" + "ignore" "^5.1.1" + "merge2" "^1.2.3" + "slash" "^3.0.0" + +"globby@^11.0.1": + "integrity" "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" + "version" "11.0.4" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.1.1" + "ignore" "^5.1.4" + "merge2" "^1.3.0" + "slash" "^3.0.0" + +"globby@^11.0.2": + "integrity" "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" + "version" "11.0.4" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.1.1" + "ignore" "^5.1.4" + "merge2" "^1.3.0" + "slash" "^3.0.0" + +"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.2", "graceful-fs@^4.2.4": + "integrity" "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" + "version" "4.2.4" + +"graceful-fs@^4.2.6": + "integrity" "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" + "version" "4.2.6" + +"growly@^1.3.0": + "integrity" "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + "resolved" "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" + "version" "1.3.0" + +"handle-thing@^2.0.0": + "integrity" "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "resolved" "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + "version" "2.0.1" + +"has-ansi@^2.0.0": + "integrity" "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + "resolved" "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ansi-regex" "^2.0.0" + +"has-binary2@~1.0.2": + "integrity" "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==" + "resolved" "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "isarray" "2.0.1" + +"has-cors@1.1.0": + "integrity" "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + "resolved" "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" + "version" "1.1.0" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-symbols@^1.0.1": + "integrity" "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" + "version" "1.0.1" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hash-base@^3.0.0": + "integrity" "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==" + "resolved" "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "inherits" "^2.0.4" + "readable-stream" "^3.6.0" + "safe-buffer" "^5.2.0" + +"hash-sum@^1.0.2": + "integrity" "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" + "resolved" "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" + "version" "1.0.2" + +"hash.js@^1.0.0", "hash.js@^1.0.3": + "integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==" + "resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "inherits" "^2.0.3" + "minimalistic-assert" "^1.0.1" + +"he@^1.1.0", "he@^1.2.0": + "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + "version" "1.2.0" + +"hex-color-regex@^1.1.0": + "integrity" "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + "resolved" "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" + "version" "1.1.0" + +"hmac-drbg@^1.0.1": + "integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" + "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "hash.js" "^1.0.3" + "minimalistic-assert" "^1.0.0" + "minimalistic-crypto-utils" "^1.0.1" + +"hpack.js@^2.1.6": + "integrity" "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=" + "resolved" "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + "version" "2.1.6" + dependencies: + "inherits" "^2.0.1" + "obuf" "^1.0.0" + "readable-stream" "^2.0.1" + "wbuf" "^1.1.0" + +"hsl-regex@^1.0.0": + "integrity" "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + "resolved" "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" + "version" "1.0.0" + +"hsla-regex@^1.0.0": + "integrity" "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + "resolved" "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" + "version" "1.0.0" + +"html-entities@^2.3.2": + "integrity" "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" + "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz" + "version" "2.3.2" + +"html-loader@^1.3.2": + "integrity" "sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==" + "resolved" "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "html-minifier-terser" "^5.1.1" + "htmlparser2" "^4.1.0" + "loader-utils" "^2.0.0" + "schema-utils" "^3.0.0" + +"html-minifier-terser@^5.1.1": + "integrity" "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==" + "resolved" "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "camel-case" "^4.1.1" + "clean-css" "^4.2.3" + "commander" "^4.1.1" + "he" "^1.2.0" + "param-case" "^3.0.3" + "relateurl" "^0.2.7" + "terser" "^4.6.3" + +"htmlparser2@^4.1.0": + "integrity" "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==" + "resolved" "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "domelementtype" "^2.0.1" + "domhandler" "^3.0.0" + "domutils" "^2.0.0" + "entities" "^2.0.0" + +"http-deceiver@^1.2.7": + "integrity" "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "resolved" "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + "version" "1.2.7" + +"http-errors@~1.6.2": + "integrity" "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + "version" "1.6.3" + dependencies: + "depd" "~1.1.2" + "inherits" "2.0.3" + "setprototypeof" "1.1.0" + "statuses" ">= 1.4.0 < 2" + +"http-errors@~1.7.2", "http-errors@1.7.2": + "integrity" "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" + "version" "1.7.2" + dependencies: + "depd" "~1.1.2" + "inherits" "2.0.3" + "setprototypeof" "1.1.1" + "statuses" ">= 1.5.0 < 2" + "toidentifier" "1.0.0" + +"http-parser-js@>=0.5.1": + "integrity" "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + "resolved" "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" + "version" "0.5.3" + +"http-proxy-middleware@^1.3.1": + "integrity" "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==" + "resolved" "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz" + "version" "1.3.1" dependencies: "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.1, ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -imagemin@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz" - integrity sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w== - dependencies: - file-type "^12.0.0" - globby "^10.0.0" - graceful-fs "^4.2.2" - junk "^3.1.0" - make-dir "^3.0.0" - p-pipe "^3.0.0" - replace-ext "^1.0.0" - -img-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/img-loader/-/img-loader-4.0.0.tgz" - integrity sha512-UwRcPQdwdOyEHyCxe1V9s9YFwInwEWCpoO+kJGfIqDrBDqA8jZUsEZTxQ0JteNPGw/Gupmwesk2OhLTcnw6tnQ== - dependencies: - loader-utils "^1.1.0" - -immutable@^3: - version "3.8.2" - resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz" - integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= - -import-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -internal-ip@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz" - integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== - dependencies: - default-gateway "^6.0.0" - ipaddr.js "^1.9.1" - is-ip "^3.1.0" - p-event "^4.2.0" - -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== - -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ip@^1.1.0: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-color-stop@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-number-like@^1.0.3: - version "1.0.8" - resolved "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz" - integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== - dependencies: - lodash.isfinite "^3.3.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -jest-worker@^27.0.2: - version "27.0.2" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz" - integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== + "http-proxy" "^1.18.1" + "is-glob" "^4.0.1" + "is-plain-obj" "^3.0.0" + "micromatch" "^4.0.2" + +"http-proxy@^1.18.1": + "integrity" "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==" + "resolved" "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + "version" "1.18.1" + dependencies: + "eventemitter3" "^4.0.0" + "follow-redirects" "^1.0.0" + "requires-port" "^1.0.0" + +"https-browserify@^1.0.0": + "integrity" "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + "resolved" "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + "version" "1.0.0" + +"human-signals@^2.1.0": + "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + "version" "2.1.0" + +"iconv-lite@0.4.24": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +"icss-utils@^5.0.0", "icss-utils@^5.1.0": + "integrity" "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" + "resolved" "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" + "version" "5.1.0" + +"ieee754@^1.1.4": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"ignore@^5.1.1", "ignore@^5.1.4": + "integrity" "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + "version" "5.1.8" + +"imagemin@^7.0.1": + "integrity" "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==" + "resolved" "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "file-type" "^12.0.0" + "globby" "^10.0.0" + "graceful-fs" "^4.2.2" + "junk" "^3.1.0" + "make-dir" "^3.0.0" + "p-pipe" "^3.0.0" + "replace-ext" "^1.0.0" + +"img-loader@^4.0.0": + "integrity" "sha512-UwRcPQdwdOyEHyCxe1V9s9YFwInwEWCpoO+kJGfIqDrBDqA8jZUsEZTxQ0JteNPGw/Gupmwesk2OhLTcnw6tnQ==" + "resolved" "https://registry.npmjs.org/img-loader/-/img-loader-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "loader-utils" "^1.1.0" + +"immutable@^3": + "integrity" "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + "resolved" "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz" + "version" "3.8.2" + +"import-cwd@^3.0.0": + "integrity" "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==" + "resolved" "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "import-from" "^3.0.0" + +"import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"import-from@^3.0.0": + "integrity" "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==" + "resolved" "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"import-local@^3.0.2": + "integrity" "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "pkg-dir" "^4.2.0" + "resolve-cwd" "^3.0.0" + +"indent-string@^4.0.0": + "integrity" "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + "version" "4.0.0" + +"indexof@0.0.1": + "integrity" "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "resolved" "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + "version" "0.0.1" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.1", "inherits@~2.0.3", "inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"inherits@2.0.1": + "integrity" "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "version" "2.0.1" + +"inherits@2.0.3": + "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "version" "2.0.3" + +"internal-ip@^6.2.0": + "integrity" "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==" + "resolved" "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "default-gateway" "^6.0.0" + "ipaddr.js" "^1.9.1" + "is-ip" "^3.1.0" + "p-event" "^4.2.0" + +"interpret@^2.2.0": + "integrity" "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + "resolved" "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" + "version" "2.2.0" + +"ip-regex@^4.0.0": + "integrity" "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" + "resolved" "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" + "version" "4.3.0" + +"ip@^1.1.0": + "integrity" "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "resolved" "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" + "version" "1.1.5" + +"ipaddr.js@^1.9.1": + "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + "version" "1.9.1" + +"ipaddr.js@^2.0.0": + "integrity" "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" + "version" "2.0.1" + +"ipaddr.js@1.9.1": + "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + "version" "1.9.1" + +"is-absolute-url@^3.0.3": + "integrity" "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + "resolved" "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" + "version" "3.0.3" + +"is-arguments@^1.0.4": + "integrity" "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==" + "resolved" "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "call-bind" "^1.0.0" + +"is-arrayish@^0.2.1": + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-buffer@~1.1.6": + "integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "version" "1.1.6" + +"is-color-stop@^1.1.0": + "integrity" "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=" + "resolved" "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "css-color-names" "^0.0.4" + "hex-color-regex" "^1.1.0" + "hsl-regex" "^1.0.0" + "hsla-regex" "^1.0.0" + "rgb-regex" "^1.0.1" + "rgba-regex" "^1.0.0" + +"is-core-module@^2.2.0": + "integrity" "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "has" "^1.0.3" + +"is-date-object@^1.0.1": + "integrity" "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" + "version" "1.0.2" + +"is-docker@^2.0.0": + "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + "version" "2.2.1" + +"is-extglob@^2.1.1": + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-extglob" "^2.1.1" + +"is-ip@^3.1.0": + "integrity" "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==" + "resolved" "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "ip-regex" "^4.0.0" + +"is-number-like@^1.0.3": + "integrity" "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==" + "resolved" "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "lodash.isfinite" "^3.3.2" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-path-cwd@^2.2.0": + "integrity" "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + "resolved" "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + "version" "2.2.0" + +"is-path-inside@^3.0.2": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + +"is-plain-obj@^3.0.0": + "integrity" "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" + "version" "3.0.0" + +"is-plain-object@^2.0.4": + "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" + "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "isobject" "^3.0.1" + +"is-regex@^1.0.4": + "integrity" "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "has-symbols" "^1.0.1" + +"is-resolvable@^1.1.0": + "integrity" "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + "resolved" "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" + "version" "1.1.0" + +"is-stream@^2.0.0": + "integrity" "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + "version" "2.0.0" + +"is-wsl@^1.1.0": + "integrity" "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + "version" "1.1.0" + +"is-wsl@^2.1.1", "is-wsl@^2.2.0": + "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "is-docker" "^2.0.0" + +"isarray@^1.0.0", "isarray@~1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@2.0.1": + "integrity" "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" + "version" "2.0.1" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isobject@^3.0.1": + "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "version" "3.0.1" + +"jest-worker@^27.0.2": + "integrity" "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz" + "version" "27.0.2" dependencies: "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jquery@>=1.12.0: - version "3.5.1" - resolved "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz" - integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz" - integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -junk@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz" - integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klona@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz" - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== - -laravel-mix-nunjucks@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/laravel-mix-nunjucks/-/laravel-mix-nunjucks-1.1.0.tgz" - integrity sha512-fZMRj0VqCAF7B03k6iiq7v00LOQSrrDfhSevhxdRDWigQ/CT2RY+H7jkLWpAkGd30UTrVaL3oAd8QE5IQ0z+2w== - dependencies: - chokidar "^3.5.1" - front-matter "^4.0.2" - globby "^11.0.2" - marked "^2.0.0" - nunjucks "^3.2.3" - -laravel-mix-purgecss@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/laravel-mix-purgecss/-/laravel-mix-purgecss-6.0.0.tgz" - integrity sha512-1OVy3xVVqvWrBTI+vQrr9qlrNKKqq3lFlWQpdJxKO2IeK8bMERkNab3fLtldyyOd5ApBuoMd81EqF4ew2N/NdA== - dependencies: - postcss-purgecss-laravel "^2.0.0" - -laravel-mix@^6.0.25: - version "6.0.25" - resolved "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.25.tgz" - integrity sha512-SDpLGUnXJ8g0rvtiLljSTJSR6awj86M2Jd3MhbtT32TCgwXdtajVLF7Mv2blsPLixGHtynwZgi+UFlYQbquPLg== + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" + +"jquery@>=1.12.0": + "integrity" "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz" + "version" "3.5.1" + +"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"jsesc@~0.5.0": + "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "version" "0.5.0" + +"json-parse-better-errors@^1.0.2": + "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + "version" "1.0.2" + +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json5@^1.0.1": + "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" + "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "minimist" "^1.2.0" + +"json5@^2.1.2": + "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "minimist" "^1.2.5" + +"jsonfile@^3.0.0": + "integrity" "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "graceful-fs" "^4.1.6" + +"jsonfile@^6.0.1": + "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "graceful-fs" "^4.1.6" + "universalify" "^2.0.0" + +"junk@^3.1.0": + "integrity" "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==" + "resolved" "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz" + "version" "3.1.0" + +"killable@^1.0.1": + "integrity" "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + "resolved" "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" + "version" "1.0.1" + +"kind-of@^6.0.2": + "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + "version" "6.0.3" + +"klona@^2.0.4": + "integrity" "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==" + "resolved" "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz" + "version" "2.0.4" + +"laravel-mix-nunjucks@^1.1.0": + "integrity" "sha512-fZMRj0VqCAF7B03k6iiq7v00LOQSrrDfhSevhxdRDWigQ/CT2RY+H7jkLWpAkGd30UTrVaL3oAd8QE5IQ0z+2w==" + "resolved" "https://registry.npmjs.org/laravel-mix-nunjucks/-/laravel-mix-nunjucks-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "chokidar" "^3.5.1" + "front-matter" "^4.0.2" + "globby" "^11.0.2" + "marked" "^2.0.0" + "nunjucks" "^3.2.3" + +"laravel-mix-purgecss@^6.0.0": + "integrity" "sha512-1OVy3xVVqvWrBTI+vQrr9qlrNKKqq3lFlWQpdJxKO2IeK8bMERkNab3fLtldyyOd5ApBuoMd81EqF4ew2N/NdA==" + "resolved" "https://registry.npmjs.org/laravel-mix-purgecss/-/laravel-mix-purgecss-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "postcss-purgecss-laravel" "^2.0.0" + +"laravel-mix@^6.0.25": + "integrity" "sha512-SDpLGUnXJ8g0rvtiLljSTJSR6awj86M2Jd3MhbtT32TCgwXdtajVLF7Mv2blsPLixGHtynwZgi+UFlYQbquPLg==" + "resolved" "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.25.tgz" + "version" "6.0.25" dependencies: "@babel/core" "^7.14.5" "@babel/plugin-proposal-object-rest-spread" "^7.14.5" @@ -3922,2707 +3993,2763 @@ laravel-mix@^6.0.25: "@types/imagemin-mozjpeg" "^8.0.0" "@types/imagemin-optipng" "^5.2.0" "@types/imagemin-svgo" "^8.0.0" - autoprefixer "^10.2.6" - babel-loader "^8.2.2" - chalk "^4.1.1" - chokidar "^3.5.1" - clean-css "^4.2.3 || ^5.1.2" - cli-table3 "^0.6.0" - collect.js "^4.28.5" - commander "^7.2.0" - concat "^1.0.3" - css-loader "^5.2.6" - cssnano "^5.0.6" - dotenv "^10.0.0" - dotenv-expand "^5.1.0" - file-loader "^6.2.0" - fs-extra "^10.0.0" - glob "^7.1.7" - html-loader "^1.3.2" - imagemin "^7.0.1" - img-loader "^4.0.0" - lodash "^4.17.21" - md5 "^2.3.0" - mini-css-extract-plugin "^1.6.0" - node-libs-browser "^2.2.1" - postcss-load-config "^3.0.1" - postcss-loader "^6.1.0" - semver "^7.3.5" - strip-ansi "^6.0.0" - style-loader "^2.0.0" - terser "^5.7.0" - terser-webpack-plugin "^5.1.3" - vue-style-loader "^4.1.3" - webpack "^5.38.1" - webpack-cli "^4.7.2" - webpack-dev-server "4.0.0-beta.3" - webpack-merge "^5.8.0" - webpack-notifier "^1.13.0" - webpackbar "^5.0.0-3" - yargs "^17.0.1" - -lilconfig@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz" - integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== - -limiter@^1.0.5: - version "1.1.5" - resolved "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz" - integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -localtunnel@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.1.tgz" - integrity sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA== - dependencies: - axios "0.21.1" - debug "4.3.1" - openurl "1.1.1" - yargs "16.2.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.isfinite@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz" - integrity sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4, lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -marked@^2.0.0: - version "2.1.3" - resolved "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz" - integrity sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz" - integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^3.1.0" - -memfs@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz" - integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== - dependencies: - fs-monkey "1.0.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== - -mime-db@1.48.0: - version "1.48.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" - integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== - -mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== - dependencies: - mime-db "1.45.0" - -mime-types@^2.1.30: - version "2.1.31" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" - integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== - dependencies: - mime-db "1.48.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - -mini-css-extract-plugin@^1.6.0: - version "1.6.1" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.1.tgz" - integrity sha512-2DXoAaHJ/jIlbVz5yX8eCrRFNfxjH4Lx9LlEetbub1BY6AVa9kl+Ag2/c570w+Wqe0InNJA6POmlcg2Iuq9iTA== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mitt@^1.1.3: - version "1.2.0" - resolved "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz" - integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== - -mkdirp@^0.5.5: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -moment@^2.10.2: - version "2.29.1" - resolved "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-notifier@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz" - integrity sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^1.1.71: - version "1.1.73" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz" - integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz" - integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== - dependencies: - boolbase "^1.0.0" - -nunjucks@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz" - integrity sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ== - dependencies: - a-sync-waterfall "^1.0.0" - asap "^2.0.3" - commander "^5.1.0" - -object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + "autoprefixer" "^10.2.6" + "babel-loader" "^8.2.2" + "chalk" "^4.1.1" + "chokidar" "^3.5.1" + "clean-css" "^4.2.3 || ^5.1.2" + "cli-table3" "^0.6.0" + "collect.js" "^4.28.5" + "commander" "^7.2.0" + "concat" "^1.0.3" + "css-loader" "^5.2.6" + "cssnano" "^5.0.6" + "dotenv" "^10.0.0" + "dotenv-expand" "^5.1.0" + "file-loader" "^6.2.0" + "fs-extra" "^10.0.0" + "glob" "^7.1.7" + "html-loader" "^1.3.2" + "imagemin" "^7.0.1" + "img-loader" "^4.0.0" + "lodash" "^4.17.21" + "md5" "^2.3.0" + "mini-css-extract-plugin" "^1.6.0" + "node-libs-browser" "^2.2.1" + "postcss-load-config" "^3.0.1" + "postcss-loader" "^6.1.0" + "semver" "^7.3.5" + "strip-ansi" "^6.0.0" + "style-loader" "^2.0.0" + "terser" "^5.7.0" + "terser-webpack-plugin" "^5.1.3" + "vue-style-loader" "^4.1.3" + "webpack" "^5.38.1" + "webpack-cli" "^4.7.2" + "webpack-dev-server" "4.0.0-beta.3" + "webpack-merge" "^5.8.0" + "webpack-notifier" "^1.13.0" + "webpackbar" "^5.0.0-3" + "yargs" "^17.0.1" + +"lilconfig@^2.0.3": + "integrity" "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==" + "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz" + "version" "2.0.3" + +"limiter@^1.0.5": + "integrity" "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" + "resolved" "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz" + "version" "1.1.5" + +"lines-and-columns@^1.1.6": + "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + "version" "1.1.6" + +"loader-runner@^4.2.0": + "integrity" "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" + "resolved" "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" + "version" "4.2.0" + +"loader-utils@^1.0.2", "loader-utils@^1.1.0", "loader-utils@^1.4.0": + "integrity" "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==" + "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "big.js" "^5.2.2" + "emojis-list" "^3.0.0" + "json5" "^1.0.1" + +"loader-utils@^2.0.0": + "integrity" "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==" + "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "big.js" "^5.2.2" + "emojis-list" "^3.0.0" + "json5" "^2.1.2" + +"loader-utils@1.2.3": + "integrity" "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==" + "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" + "version" "1.2.3" + dependencies: + "big.js" "^5.2.2" + "emojis-list" "^2.0.0" + "json5" "^1.0.1" + +"localtunnel@^2.0.1": + "integrity" "sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA==" + "resolved" "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "axios" "0.21.1" + "debug" "4.3.1" + "openurl" "1.1.1" + "yargs" "16.2.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.isfinite@^3.3.2": + "integrity" "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" + "resolved" "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz" + "version" "3.3.2" + +"lodash.memoize@^4.1.2": + "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + "version" "4.1.2" + +"lodash.uniq@^4.5.0": + "integrity" "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "resolved" "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + "version" "4.5.0" + +"lodash@^4.17.21": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"lodash@^4", "lodash@^4.17.10", "lodash@^4.17.14": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"loose-envify@^1.4.0": + "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" + "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "js-tokens" "^3.0.0 || ^4.0.0" + +"lower-case@^2.0.2": + "integrity" "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==" + "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "tslib" "^2.0.3" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"make-dir@^3.0.0", "make-dir@^3.0.2", "make-dir@^3.1.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + +"map-age-cleaner@^0.1.3": + "integrity" "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==" + "resolved" "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" + "version" "0.1.3" + dependencies: + "p-defer" "^1.0.0" + +"marked@^2.0.0": + "integrity" "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==" + "resolved" "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz" + "version" "2.1.3" + +"md5.js@^1.3.4": + "integrity" "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==" + "resolved" "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + "version" "1.3.5" + dependencies: + "hash-base" "^3.0.0" + "inherits" "^2.0.1" + "safe-buffer" "^5.1.2" + +"md5@^2.3.0": + "integrity" "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==" + "resolved" "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "charenc" "0.0.2" + "crypt" "0.0.2" + "is-buffer" "~1.1.6" + +"mdn-data@2.0.14": + "integrity" "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "resolved" "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + "version" "2.0.14" + +"media-typer@0.3.0": + "integrity" "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + "version" "0.3.0" + +"mem@^8.1.1": + "integrity" "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==" + "resolved" "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "map-age-cleaner" "^0.1.3" + "mimic-fn" "^3.1.0" + +"memfs@^3.2.2": + "integrity" "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==" + "resolved" "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "fs-monkey" "1.0.3" + +"merge-descriptors@1.0.1": + "integrity" "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + "version" "1.0.1" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"merge2@^1.2.3", "merge2@^1.3.0": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"methods@~1.1.2": + "integrity" "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + "version" "1.1.2" + +"micromatch@^4.0.2", "micromatch@^4.0.4": + "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "braces" "^3.0.1" + "picomatch" "^2.2.3" + +"miller-rabin@^4.0.0": + "integrity" "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==" + "resolved" "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "bn.js" "^4.0.0" + "brorand" "^1.0.1" + +"mime-db@>= 1.43.0 < 2", "mime-db@1.45.0": + "integrity" "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz" + "version" "1.45.0" + +"mime-db@1.48.0": + "integrity" "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" + "version" "1.48.0" + +"mime-types@^2.1.27", "mime-types@~2.1.17", "mime-types@~2.1.24": + "integrity" "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz" + "version" "2.1.28" + dependencies: + "mime-db" "1.45.0" + +"mime-types@^2.1.30": + "integrity" "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" + "version" "2.1.31" + dependencies: + "mime-db" "1.48.0" + +"mime@1.4.1": + "integrity" "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz" + "version" "1.4.1" + +"mime@1.6.0": + "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"mimic-fn@^3.1.0": + "integrity" "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" + "version" "3.1.0" + +"mini-css-extract-plugin@^1.6.0": + "integrity" "sha512-2DXoAaHJ/jIlbVz5yX8eCrRFNfxjH4Lx9LlEetbub1BY6AVa9kl+Ag2/c570w+Wqe0InNJA6POmlcg2Iuq9iTA==" + "resolved" "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.1.tgz" + "version" "1.6.1" + dependencies: + "loader-utils" "^2.0.0" + "schema-utils" "^3.0.0" + "webpack-sources" "^1.1.0" + +"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1": + "integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + "version" "1.0.1" + +"minimalistic-crypto-utils@^1.0.1": + "integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "version" "1.0.1" + +"minimatch@^3.0.2", "minimatch@^3.0.4": + "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.2.0", "minimist@^1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + +"mitt@^1.1.3": + "integrity" "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" + "resolved" "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz" + "version" "1.2.0" + +"mkdirp@^0.5.5": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + +"mkdirp@^1.0.4": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + +"moment@^2.10.2": + "integrity" "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "resolved" "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz" + "version" "2.29.1" + +"ms@^2.1.1", "ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"ms@2.1.1": + "integrity" "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + "version" "2.1.1" + +"multicast-dns-service-types@^1.1.0": + "integrity" "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + "resolved" "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" + "version" "1.1.0" + +"multicast-dns@^6.0.1": + "integrity" "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==" + "resolved" "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" + "version" "6.2.3" + dependencies: + "dns-packet" "^1.3.1" + "thunky" "^1.0.2" + +"nanoid@^3.1.23": + "integrity" "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==" + "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz" + "version" "3.1.23" + +"negotiator@0.6.2": + "integrity" "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + "version" "0.6.2" + +"neo-async@^2.6.2": + "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + "version" "2.6.2" + +"next-tick@~1.0.0": + "integrity" "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + "resolved" "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" + "version" "1.0.0" + +"no-case@^3.0.4": + "integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==" + "resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "lower-case" "^2.0.2" + "tslib" "^2.0.3" + +"node-forge@^0.10.0": + "integrity" "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" + "version" "0.10.0" + +"node-libs-browser@^2.2.1": + "integrity" "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==" + "resolved" "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "assert" "^1.1.1" + "browserify-zlib" "^0.2.0" + "buffer" "^4.3.0" + "console-browserify" "^1.1.0" + "constants-browserify" "^1.0.0" + "crypto-browserify" "^3.11.0" + "domain-browser" "^1.1.1" + "events" "^3.0.0" + "https-browserify" "^1.0.0" + "os-browserify" "^0.3.0" + "path-browserify" "0.0.1" + "process" "^0.11.10" + "punycode" "^1.2.4" + "querystring-es3" "^0.2.0" + "readable-stream" "^2.3.3" + "stream-browserify" "^2.0.1" + "stream-http" "^2.7.2" + "string_decoder" "^1.0.0" + "timers-browserify" "^2.0.4" + "tty-browserify" "0.0.0" + "url" "^0.11.0" + "util" "^0.11.0" + "vm-browserify" "^1.0.1" + +"node-notifier@^9.0.0": + "integrity" "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==" + "resolved" "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz" + "version" "9.0.1" + dependencies: + "growly" "^1.3.0" + "is-wsl" "^2.2.0" + "semver" "^7.3.2" + "shellwords" "^0.1.1" + "uuid" "^8.3.0" + "which" "^2.0.2" + +"node-releases@^1.1.71": + "integrity" "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz" + "version" "1.1.73" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"normalize-range@^0.1.2": + "integrity" "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + "version" "0.1.2" + +"normalize-url@^6.0.1": + "integrity" "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + "version" "6.1.0" + +"npm-run-path@^4.0.1": + "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "path-key" "^3.0.0" + +"nth-check@^2.0.0": + "integrity" "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==" + "resolved" "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "boolbase" "^1.0.0" + +"nunjucks@^3.2.3": + "integrity" "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==" + "resolved" "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz" + "version" "3.2.3" + dependencies: + "a-sync-waterfall" "^1.0.0" + "asap" "^2.0.3" + "commander" "^5.1.0" + +"object-assign@^4.1.0", "object-assign@^4.1.1": + "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-is@^1.0.1": + "integrity" "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==" + "resolved" "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "call-bind" "^1.0.0" + "define-properties" "^1.1.3" + +"object-keys@^1.0.12", "object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object.assign@^4.1.0": + "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "call-bind" "^1.0.0" + "define-properties" "^1.1.3" + "has-symbols" "^1.0.1" + "object-keys" "^1.1.1" + +"obuf@^1.0.0", "obuf@^1.1.2": + "integrity" "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "resolved" "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + "version" "1.1.2" + +"on-finished@~2.3.0": + "integrity" "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ee-first" "1.1.1" + +"on-headers@~1.0.2": + "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + "version" "1.0.2" + +"once@^1.3.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^5.1.2": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" dependencies: - mimic-fn "^2.1.0" - -open@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + "mimic-fn" "^2.1.0" + +"open@^7.4.2": + "integrity" "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==" + "resolved" "https://registry.npmjs.org/open/-/open-7.4.2.tgz" + "version" "7.4.2" dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" + "is-docker" "^2.0.0" + "is-wsl" "^2.1.1" -openurl@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz" - integrity sha1-OHW0sO96UsFW8NtB1GCduw+Us4c= +"openurl@1.1.1": + "integrity" "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=" + "resolved" "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz" + "version" "1.1.1" -opn@5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz" - integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g== +"opn@5.3.0": + "integrity" "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==" + "resolved" "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz" + "version" "5.3.0" dependencies: - is-wsl "^1.1.0" + "is-wsl" "^1.1.0" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= +"os-browserify@^0.3.0": + "integrity" "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + "resolved" "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + "version" "0.3.0" -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +"p-defer@^1.0.0": + "integrity" "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + "resolved" "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" + "version" "1.0.0" -p-event@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== +"p-event@^4.2.0": + "integrity" "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==" + "resolved" "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz" + "version" "4.2.0" dependencies: - p-timeout "^3.1.0" + "p-timeout" "^3.1.0" -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +"p-finally@^1.0.0": + "integrity" "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + "version" "1.0.0" + +"p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" dependencies: - p-try "^2.0.0" + "yocto-queue" "^0.1.0" -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== +"p-limit@^3.1.0": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" dependencies: - yocto-queue "^0.1.0" + "yocto-queue" "^0.1.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" dependencies: - p-limit "^2.2.0" + "p-limit" "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" dependencies: - p-limit "^3.0.2" + "p-limit" "^3.0.2" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +"p-map@^4.0.0": + "integrity" "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==" + "resolved" "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + "version" "4.0.0" dependencies: - aggregate-error "^3.0.0" + "aggregate-error" "^3.0.0" -p-pipe@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz" - integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== +"p-pipe@^3.0.0": + "integrity" "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==" + "resolved" "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz" + "version" "3.1.0" -p-retry@^4.5.0: - version "4.6.0" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.0.tgz" - integrity sha512-SAHbQEwg3X5DRNaLmWjT+DlGc93ba5i+aP3QLfVNDncQEQO4xjbYW4N/lcVTSuP0aJietGfx2t94dJLzfBMpXw== +"p-retry@^4.5.0": + "integrity" "sha512-SAHbQEwg3X5DRNaLmWjT+DlGc93ba5i+aP3QLfVNDncQEQO4xjbYW4N/lcVTSuP0aJietGfx2t94dJLzfBMpXw==" + "resolved" "https://registry.npmjs.org/p-retry/-/p-retry-4.6.0.tgz" + "version" "4.6.0" dependencies: "@types/retry" "^0.12.0" - retry "^0.13.1" + "retry" "^0.13.1" -p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== +"p-timeout@^3.1.0": + "integrity" "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==" + "resolved" "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" + "version" "3.2.0" dependencies: - p-finally "^1.0.0" + "p-finally" "^1.0.0" -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +"pako@~1.0.5": + "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + "version" "1.0.11" -param-case@^3.0.3: - version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== +"param-case@^3.0.3": + "integrity" "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==" + "resolved" "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + "version" "3.0.4" dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" + "dot-case" "^3.0.4" + "tslib" "^2.0.3" -parchment@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz" - integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg== +"parchment@^1.1.4": + "integrity" "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + "resolved" "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz" + "version" "1.1.4" -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" dependencies: - callsites "^3.0.0" + "callsites" "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== +"parse-asn1@^5.0.0", "parse-asn1@^5.1.5": + "integrity" "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==" + "resolved" "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" + "version" "5.1.6" dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" + "asn1.js" "^5.2.0" + "browserify-aes" "^1.0.0" + "evp_bytestokey" "^1.0.0" + "pbkdf2" "^3.0.3" + "safe-buffer" "^5.1.1" -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== +"parse-json@^5.0.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" dependencies: "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== - -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -perfect-scrollbar@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.1.tgz" - integrity sha512-MrSImINnIh3Tm1hdPT6bji6fmIeRorVEegQvyUnhqko2hDGTHhmjPefHXfxG/Jb8xVbfCwgmUIlIajERGXjVXQ== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -popper.js@^1.16.1: - version "1.16.1" - resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -portfinder@^1.0.28: - version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -portscanner@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz" - integrity sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y= - dependencies: - async "1.5.2" - is-number-like "^1.0.3" - -postcss-calc@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz" - integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== - dependencies: - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz" - integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - colord "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-convert-values@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz" - integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-discard-comments@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz" - integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== - -postcss-discard-duplicates@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz" - integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== - -postcss-discard-empty@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz" - integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== - -postcss-discard-overridden@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz" - integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== - -postcss-load-config@^3.0.1: - version "3.1.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz" - integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== - dependencies: - import-cwd "^3.0.0" - lilconfig "^2.0.3" - yaml "^1.10.2" - -postcss-loader@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.1.0.tgz" - integrity sha512-yA/cXBfACkthZNA2hQxOnaReVfQ6uLmvbEDQzNafpbK40URZJvP/28dL1DG174Gvz3ptkkHbbwDBCh+gXR94CA== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.4" - semver "^7.3.5" - -postcss-merge-longhand@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz" - integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== - dependencies: - css-color-names "^1.0.1" - postcss-value-parser "^4.1.0" - stylehacks "^5.0.1" - -postcss-merge-rules@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz" - integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^2.0.1" - postcss-selector-parser "^6.0.5" - vendors "^1.0.3" - -postcss-minify-font-values@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz" - integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-minify-gradients@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz" - integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== - dependencies: - cssnano-utils "^2.0.1" - is-color-stop "^1.1.0" - postcss-value-parser "^4.1.0" - -postcss-minify-params@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz" - integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== - dependencies: - alphanum-sort "^1.0.2" - browserslist "^4.16.0" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz" - integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== - dependencies: - alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-normalize-charset@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz" - integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== - -postcss-normalize-display-values@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz" - integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-positions@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz" - integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-repeat-style@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz" - integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-string@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz" - integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== - dependencies: - postcss-value-parser "^4.1.0" + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" + +"parseqs@0.0.6": + "integrity" "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" + "resolved" "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz" + "version" "0.0.6" + +"parseuri@0.0.6": + "integrity" "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" + "resolved" "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz" + "version" "0.0.6" + +"parseurl@~1.3.2", "parseurl@~1.3.3": + "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + "version" "1.3.3" + +"pascal-case@^3.1.2": + "integrity" "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==" + "resolved" "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "no-case" "^3.0.4" + "tslib" "^2.0.3" + +"path-browserify@0.0.1": + "integrity" "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + "resolved" "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + "version" "0.0.1" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^3.0.0", "path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.6": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-to-regexp@0.1.7": + "integrity" "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + "version" "0.1.7" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"pbkdf2@^3.0.3": + "integrity" "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==" + "resolved" "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "create-hash" "^1.1.2" + "create-hmac" "^1.1.4" + "ripemd160" "^2.0.1" + "safe-buffer" "^5.0.1" + "sha.js" "^2.4.8" + +"perfect-scrollbar@^1.5.1": + "integrity" "sha512-MrSImINnIh3Tm1hdPT6bji6fmIeRorVEegQvyUnhqko2hDGTHhmjPefHXfxG/Jb8xVbfCwgmUIlIajERGXjVXQ==" + "resolved" "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.1.tgz" + "version" "1.5.1" + +"picomatch@^2.0.4", "picomatch@^2.2.1": + "integrity" "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" + "version" "2.2.2" + +"picomatch@^2.2.3": + "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + "version" "2.3.0" + +"pkg-dir@^4.1.0", "pkg-dir@^4.2.0": + "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "find-up" "^4.0.0" + +"popper.js@^1.16.1": + "integrity" "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + "resolved" "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz" + "version" "1.16.1" + +"portfinder@^1.0.28": + "integrity" "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==" + "resolved" "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" + "version" "1.0.28" + dependencies: + "async" "^2.6.2" + "debug" "^3.1.1" + "mkdirp" "^0.5.5" + +"portscanner@2.1.1": + "integrity" "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=" + "resolved" "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "async" "1.5.2" + "is-number-like" "^1.0.3" + +"postcss-calc@^8.0.0": + "integrity" "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==" + "resolved" "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz" + "version" "8.0.0" + dependencies: + "postcss-selector-parser" "^6.0.2" + "postcss-value-parser" "^4.0.2" + +"postcss-colormin@^5.2.0": + "integrity" "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==" + "resolved" "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "browserslist" "^4.16.6" + "caniuse-api" "^3.0.0" + "colord" "^2.0.1" + "postcss-value-parser" "^4.1.0" + +"postcss-convert-values@^5.0.1": + "integrity" "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==" + "resolved" "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "postcss-value-parser" "^4.1.0" + +"postcss-discard-comments@^5.0.1": + "integrity" "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==" + "resolved" "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz" + "version" "5.0.1" + +"postcss-discard-duplicates@^5.0.1": + "integrity" "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==" + "resolved" "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz" + "version" "5.0.1" + +"postcss-discard-empty@^5.0.1": + "integrity" "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==" + "resolved" "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz" + "version" "5.0.1" + +"postcss-discard-overridden@^5.0.1": + "integrity" "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==" + "resolved" "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz" + "version" "5.0.1" + +"postcss-load-config@^3.0.1": + "integrity" "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==" + "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "import-cwd" "^3.0.0" + "lilconfig" "^2.0.3" + "yaml" "^1.10.2" + +"postcss-loader@^6.1.0": + "integrity" "sha512-yA/cXBfACkthZNA2hQxOnaReVfQ6uLmvbEDQzNafpbK40URZJvP/28dL1DG174Gvz3ptkkHbbwDBCh+gXR94CA==" + "resolved" "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "cosmiconfig" "^7.0.0" + "klona" "^2.0.4" + "semver" "^7.3.5" + +"postcss-merge-longhand@^5.0.2": + "integrity" "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==" + "resolved" "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz" + "version" "5.0.2" + dependencies: + "css-color-names" "^1.0.1" + "postcss-value-parser" "^4.1.0" + "stylehacks" "^5.0.1" + +"postcss-merge-rules@^5.0.2": + "integrity" "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==" + "resolved" "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz" + "version" "5.0.2" + dependencies: + "browserslist" "^4.16.6" + "caniuse-api" "^3.0.0" + "cssnano-utils" "^2.0.1" + "postcss-selector-parser" "^6.0.5" + "vendors" "^1.0.3" + +"postcss-minify-font-values@^5.0.1": + "integrity" "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==" + "resolved" "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "postcss-value-parser" "^4.1.0" + +"postcss-minify-gradients@^5.0.1": + "integrity" "sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==" + "resolved" "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "cssnano-utils" "^2.0.1" + "is-color-stop" "^1.1.0" + "postcss-value-parser" "^4.1.0" + +"postcss-minify-params@^5.0.1": + "integrity" "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==" + "resolved" "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "alphanum-sort" "^1.0.2" + "browserslist" "^4.16.0" + "cssnano-utils" "^2.0.1" + "postcss-value-parser" "^4.1.0" + "uniqs" "^2.0.0" + +"postcss-minify-selectors@^5.1.0": + "integrity" "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==" + "resolved" "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "alphanum-sort" "^1.0.2" + "postcss-selector-parser" "^6.0.5" + +"postcss-modules-extract-imports@^3.0.0": + "integrity" "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==" + "resolved" "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" + "version" "3.0.0" + +"postcss-modules-local-by-default@^4.0.0": + "integrity" "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==" + "resolved" "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "icss-utils" "^5.0.0" + "postcss-selector-parser" "^6.0.2" + "postcss-value-parser" "^4.1.0" + +"postcss-modules-scope@^3.0.0": + "integrity" "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==" + "resolved" "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "postcss-selector-parser" "^6.0.4" + +"postcss-modules-values@^4.0.0": + "integrity" "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==" + "resolved" "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "icss-utils" "^5.0.0" + +"postcss-normalize-charset@^5.0.1": + "integrity" "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==" + "resolved" "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz" + "version" "5.0.1" + +"postcss-normalize-display-values@^5.0.1": + "integrity" "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==" + "resolved" "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "cssnano-utils" "^2.0.1" + "postcss-value-parser" "^4.1.0" + +"postcss-normalize-positions@^5.0.1": + "integrity" "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==" + "resolved" "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "postcss-value-parser" "^4.1.0" + +"postcss-normalize-repeat-style@^5.0.1": + "integrity" "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==" + "resolved" "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "cssnano-utils" "^2.0.1" + "postcss-value-parser" "^4.1.0" + +"postcss-normalize-string@^5.0.1": + "integrity" "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "postcss-value-parser" "^4.1.0" -postcss-normalize-timing-functions@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz" - integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== +"postcss-normalize-timing-functions@^5.0.1": + "integrity" "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==" + "resolved" "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz" + "version" "5.0.1" dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + "cssnano-utils" "^2.0.1" + "postcss-value-parser" "^4.1.0" -postcss-normalize-unicode@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz" - integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== +"postcss-normalize-unicode@^5.0.1": + "integrity" "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz" + "version" "5.0.1" dependencies: - browserslist "^4.16.0" - postcss-value-parser "^4.1.0" + "browserslist" "^4.16.0" + "postcss-value-parser" "^4.1.0" -postcss-normalize-url@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz" - integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== +"postcss-normalize-url@^5.0.2": + "integrity" "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==" + "resolved" "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz" + "version" "5.0.2" dependencies: - is-absolute-url "^3.0.3" - normalize-url "^6.0.1" - postcss-value-parser "^4.1.0" + "is-absolute-url" "^3.0.3" + "normalize-url" "^6.0.1" + "postcss-value-parser" "^4.1.0" -postcss-normalize-whitespace@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz" - integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== +"postcss-normalize-whitespace@^5.0.1": + "integrity" "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz" + "version" "5.0.1" dependencies: - postcss-value-parser "^4.1.0" + "postcss-value-parser" "^4.1.0" -postcss-ordered-values@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz" - integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== +"postcss-ordered-values@^5.0.2": + "integrity" "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==" + "resolved" "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz" + "version" "5.0.2" dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + "cssnano-utils" "^2.0.1" + "postcss-value-parser" "^4.1.0" -postcss-purgecss-laravel@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-purgecss-laravel/-/postcss-purgecss-laravel-2.0.0.tgz" - integrity sha512-vWObgEC5f0isOdumiLwzJPuZFyp7i1Go9i2Obce5qrVJWciBtCG1rrNiPEb7xp5bU3u/uk30M2P891tLL8tcQQ== +"postcss-purgecss-laravel@^2.0.0": + "integrity" "sha512-vWObgEC5f0isOdumiLwzJPuZFyp7i1Go9i2Obce5qrVJWciBtCG1rrNiPEb7xp5bU3u/uk30M2P891tLL8tcQQ==" + "resolved" "https://registry.npmjs.org/postcss-purgecss-laravel/-/postcss-purgecss-laravel-2.0.0.tgz" + "version" "2.0.0" dependencies: "@fullhuman/postcss-purgecss" "^3.0.0" -postcss-reduce-initial@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz" - integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== - dependencies: - browserslist "^4.16.0" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz" - integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.6" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz" - integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== - dependencies: - postcss-value-parser "^4.1.0" - svgo "^2.3.0" - -postcss-unique-selectors@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz" - integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== - dependencies: - alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.5" - uniqs "^2.0.0" - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@7.0.36: - version "7.0.36" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" - integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.2.1, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5: - version "8.3.5" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz" - integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== - dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" - source-map-js "^0.6.2" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -purgecss@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/purgecss/-/purgecss-3.1.3.tgz" - integrity sha512-hRSLN9mguJ2lzlIQtW4qmPS2kh6oMnA9RxdIYK8sz18QYqd6ePp4GNDl18oWHA1f2v2NEQIh51CO8s/E3YGckQ== - dependencies: - commander "^6.0.0" - glob "^7.0.0" - postcss "^8.2.1" - postcss-selector-parser "^6.0.2" - -qs@6.2.3: - version "6.2.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz" - integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quill-delta@^3.6.2: - version "3.6.3" - resolved "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz" - integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg== - dependencies: - deep-equal "^1.0.1" - extend "^3.0.2" - fast-diff "1.1.2" - -quill@^1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz" - integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g== - dependencies: - clone "^2.1.1" - deep-equal "^1.0.1" - eventemitter3 "^2.0.3" - extend "^3.0.2" - parchment "^1.1.4" - quill-delta "^3.6.2" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -rater-js@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rater-js/-/rater-js-1.0.1.tgz" - integrity sha512-93MxfiXKfX2LvIIcArtSY4M5C/l5Dg9EioNeQVk1cxnxCuU14A5qXOY0O7DuWlkjBJ930pLUNsOJBcIMUv0oAg== - -raw-body@2.4.0, raw-body@^2.3.2: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== - dependencies: - resolve "^1.9.0" - -redux@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +"postcss-reduce-initial@^5.0.1": + "integrity" "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==" + "resolved" "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "browserslist" "^4.16.0" + "caniuse-api" "^3.0.0" + +"postcss-reduce-transforms@^5.0.1": + "integrity" "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==" + "resolved" "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "cssnano-utils" "^2.0.1" + "postcss-value-parser" "^4.1.0" + +"postcss-selector-parser@^6.0.2", "postcss-selector-parser@^6.0.4", "postcss-selector-parser@^6.0.5": + "integrity" "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==" + "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" + "version" "6.0.6" + dependencies: + "cssesc" "^3.0.0" + "util-deprecate" "^1.0.2" + +"postcss-svgo@^5.0.2": + "integrity" "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==" + "resolved" "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz" + "version" "5.0.2" + dependencies: + "postcss-value-parser" "^4.1.0" + "svgo" "^2.3.0" + +"postcss-unique-selectors@^5.0.1": + "integrity" "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==" + "resolved" "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "alphanum-sort" "^1.0.2" + "postcss-selector-parser" "^6.0.5" + "uniqs" "^2.0.0" + +"postcss-value-parser@^4.0.2", "postcss-value-parser@^4.1.0": + "integrity" "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" + "version" "4.1.0" + +"postcss@^8.2.1", "postcss@^8.2.15", "postcss@^8.2.4", "postcss@^8.3.5": + "integrity" "sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz" + "version" "8.3.5" + dependencies: + "colorette" "^1.2.2" + "nanoid" "^3.1.23" + "source-map-js" "^0.6.2" + +"postcss@7.0.36": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"pretty-time@^1.1.0": + "integrity" "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" + "resolved" "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" + "version" "1.1.0" + +"process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"process@^0.11.10": + "integrity" "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + "version" "0.11.10" + +"proxy-addr@~2.0.5": + "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" + "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + "version" "2.0.7" + dependencies: + "forwarded" "0.2.0" + "ipaddr.js" "1.9.1" + +"public-encrypt@^4.0.0": + "integrity" "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==" + "resolved" "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "bn.js" "^4.1.0" + "browserify-rsa" "^4.0.0" + "create-hash" "^1.1.0" + "parse-asn1" "^5.0.0" + "randombytes" "^2.0.1" + "safe-buffer" "^5.1.2" + +"punycode@^1.2.4": + "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "version" "1.4.1" + +"punycode@^2.1.0": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"punycode@1.3.2": + "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "version" "1.3.2" + +"purgecss@^3.1.3": + "integrity" "sha512-hRSLN9mguJ2lzlIQtW4qmPS2kh6oMnA9RxdIYK8sz18QYqd6ePp4GNDl18oWHA1f2v2NEQIh51CO8s/E3YGckQ==" + "resolved" "https://registry.npmjs.org/purgecss/-/purgecss-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "commander" "^6.0.0" + "glob" "^7.0.0" + "postcss" "^8.2.1" + "postcss-selector-parser" "^6.0.2" + +"qs@6.2.3": + "integrity" "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz" + "version" "6.2.3" + +"qs@6.7.0": + "integrity" "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" + "version" "6.7.0" + +"querystring-es3@^0.2.0": + "integrity" "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + "resolved" "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + "version" "0.2.1" + +"querystring@0.2.0": + "integrity" "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "resolved" "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "version" "0.2.0" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"quill-delta@^3.6.2": + "integrity" "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==" + "resolved" "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz" + "version" "3.6.3" + dependencies: + "deep-equal" "^1.0.1" + "extend" "^3.0.2" + "fast-diff" "1.1.2" + +"quill@^1.3.7": + "integrity" "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==" + "resolved" "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz" + "version" "1.3.7" + dependencies: + "clone" "^2.1.1" + "deep-equal" "^1.0.1" + "eventemitter3" "^2.0.3" + "extend" "^3.0.2" + "parchment" "^1.1.4" + "quill-delta" "^3.6.2" + +"randombytes@^2.0.0", "randombytes@^2.0.1", "randombytes@^2.0.5", "randombytes@^2.1.0": + "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" + "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "safe-buffer" "^5.1.0" + +"randomfill@^1.0.3": + "integrity" "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==" + "resolved" "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "randombytes" "^2.0.5" + "safe-buffer" "^5.1.0" + +"range-parser@^1.2.1", "range-parser@~1.2.0", "range-parser@~1.2.1": + "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + "version" "1.2.1" + +"rater-js@^1.0.1": + "integrity" "sha512-93MxfiXKfX2LvIIcArtSY4M5C/l5Dg9EioNeQVk1cxnxCuU14A5qXOY0O7DuWlkjBJ930pLUNsOJBcIMUv0oAg==" + "resolved" "https://registry.npmjs.org/rater-js/-/rater-js-1.0.1.tgz" + "version" "1.0.1" + +"raw-body@^2.3.2", "raw-body@2.4.0": + "integrity" "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==" + "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "bytes" "3.1.0" + "http-errors" "1.7.2" + "iconv-lite" "0.4.24" + "unpipe" "1.0.0" + +"readable-stream@^2.0.1", "readable-stream@^2.0.2", "readable-stream@^2.3.3", "readable-stream@^2.3.6": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readable-stream@^3.0.6": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@^3.6.0": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readdirp@~3.6.0": + "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "picomatch" "^2.2.1" + +"rechoir@^0.7.0": + "integrity" "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==" + "resolved" "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz" + "version" "0.7.0" + dependencies: + "resolve" "^1.9.0" + +"redux@^4.0.4": + "integrity" "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==" + "resolved" "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz" + "version" "4.0.5" + dependencies: + "loose-envify" "^1.4.0" + "symbol-observable" "^1.2.0" + +"regenerate-unicode-properties@^8.2.0": + "integrity" "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==" + "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz" + "version" "8.2.0" + dependencies: + "regenerate" "^1.4.0" + +"regenerate@^1.4.0": + "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + "version" "1.4.2" + +"regenerator-runtime@^0.13.4": + "integrity" "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" + "version" "0.13.7" + +"regenerator-transform@^0.14.2": + "integrity" "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==" + "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" + "version" "0.14.5" dependencies: "@babel/runtime" "^7.8.4" -regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - 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" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.9" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz" - integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url-loader@^3.1.4: - version "3.1.4" - resolved "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz" - integrity sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg== - dependencies: - adjust-sourcemap-loader "3.0.0" - camelcase "5.3.1" - compose-function "3.0.3" - convert-source-map "1.7.0" - es6-iterator "2.0.3" - loader-utils "1.2.3" - postcss "7.0.36" - rework "1.0.1" - rework-visit "1.0.0" - source-map "0.6.1" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.14.2, resolve@^1.9.0: - version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resp-modifier@6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz" - integrity sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08= - dependencies: - debug "^2.2.0" - minimatch "^3.0.2" - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rework-visit@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz" - integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= - -rework@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz" - integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= - dependencies: - convert-source-map "^0.3.3" - css "^2.0.0" - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rtlcss@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/rtlcss/-/rtlcss-3.3.0.tgz" - integrity sha512-XZ2KEatH2nU5yPlts1Wu8SGIuZ3ndN025HQX5MqtUCUiOn5WkCDbcpJ2VJWjpuFmM2cUTQ1xtH21fhMCSseI5A== - dependencies: - chalk "^4.1.0" - find-up "^5.0.0" - mkdirp "^1.0.4" - postcss "^8.2.4" - strip-json-comments "^3.1.1" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rx@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz" - integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= - -rxjs@^5.5.6: - version "5.5.12" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz" - integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== - dependencies: - symbol-observable "1.0.1" - -safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-loader@^12.1: - version "12.1.0" - resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-12.1.0.tgz" - integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg== - dependencies: - klona "^2.0.4" - neo-async "^2.6.2" - -sass@^1.36: - version "1.41.1" - resolved "https://registry.npmjs.org/sass/-/sass-1.41.1.tgz" - integrity sha512-vIjX7izRxw3Wsiez7SX7D+j76v7tenfO18P59nonjr/nzCkZuoHuF7I/Fo0ZRZPKr88v29ivIdE9BqGDgQD/Nw== - dependencies: - chokidar ">=3.0.0 <4.0.0" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== +"regex-parser@^2.2.11": + "integrity" "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + "resolved" "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz" + "version" "2.2.11" + +"regexp.prototype.flags@^1.2.0": + "integrity" "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==" + "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + +"regexpu-core@^4.7.1": + "integrity" "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==" + "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz" + "version" "4.7.1" + 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" + +"regjsgen@^0.5.1": + "integrity" "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" + "version" "0.5.2" + +"regjsparser@^0.6.4": + "integrity" "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==" + "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz" + "version" "0.6.9" + dependencies: + "jsesc" "~0.5.0" + +"relateurl@^0.2.7": + "integrity" "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + "resolved" "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + "version" "0.2.7" + +"replace-ext@^1.0.0": + "integrity" "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" + "resolved" "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" + "version" "1.0.1" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"requires-port@^1.0.0": + "integrity" "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + "version" "1.0.0" + +"resolve-cwd@^3.0.0": + "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve-from@^5.0.0": + "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + "version" "5.0.0" + +"resolve-url-loader@^3.1.4": + "integrity" "sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg==" + "resolved" "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz" + "version" "3.1.4" + dependencies: + "adjust-sourcemap-loader" "3.0.0" + "camelcase" "5.3.1" + "compose-function" "3.0.3" + "convert-source-map" "1.7.0" + "es6-iterator" "2.0.3" + "loader-utils" "1.2.3" + "postcss" "7.0.36" + "rework" "1.0.1" + "rework-visit" "1.0.0" + "source-map" "0.6.1" + +"resolve-url@^0.2.1": + "integrity" "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + "version" "0.2.1" + +"resolve@^1.14.2", "resolve@^1.9.0": + "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "is-core-module" "^2.2.0" + "path-parse" "^1.0.6" + +"resp-modifier@6.0.2": + "integrity" "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=" + "resolved" "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "debug" "^2.2.0" + "minimatch" "^3.0.2" + +"retry@^0.13.1": + "integrity" "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + "resolved" "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + "version" "0.13.1" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rework-visit@1.0.0": + "integrity" "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" + "resolved" "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz" + "version" "1.0.0" + +"rework@1.0.1": + "integrity" "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=" + "resolved" "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "convert-source-map" "^0.3.3" + "css" "^2.0.0" + +"rgb-regex@^1.0.1": + "integrity" "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + "resolved" "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" + "version" "1.0.1" + +"rgba-regex@^1.0.0": + "integrity" "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + "resolved" "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" + "version" "1.0.0" + +"rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + +"ripemd160@^2.0.0", "ripemd160@^2.0.1": + "integrity" "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==" + "resolved" "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "hash-base" "^3.0.0" + "inherits" "^2.0.1" + +"rtlcss@^3.2.1": + "integrity" "sha512-XZ2KEatH2nU5yPlts1Wu8SGIuZ3ndN025HQX5MqtUCUiOn5WkCDbcpJ2VJWjpuFmM2cUTQ1xtH21fhMCSseI5A==" + "resolved" "https://registry.npmjs.org/rtlcss/-/rtlcss-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "chalk" "^4.1.0" + "find-up" "^5.0.0" + "mkdirp" "^1.0.4" + "postcss" "^8.2.4" + "strip-json-comments" "^3.1.1" + +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" + +"rx@4.1.0": + "integrity" "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + "resolved" "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz" + "version" "4.1.0" + +"rxjs@^5.5.6": + "integrity" "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz" + "version" "5.5.12" + dependencies: + "symbol-observable" "1.0.1" + +"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@>=5.1.0", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@^5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-buffer@~5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3": + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"sass-loader@^12.1": + "integrity" "sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==" + "resolved" "https://registry.npmjs.org/sass-loader/-/sass-loader-12.1.0.tgz" + "version" "12.1.0" + dependencies: + "klona" "^2.0.4" + "neo-async" "^2.6.2" + +"sass@^1.3.0", "sass@^1.36": + "integrity" "sha512-vIjX7izRxw3Wsiez7SX7D+j76v7tenfO18P59nonjr/nzCkZuoHuF7I/Fo0ZRZPKr88v29ivIdE9BqGDgQD/Nw==" + "resolved" "https://registry.npmjs.org/sass/-/sass-1.41.1.tgz" + "version" "1.41.1" + dependencies: + "chokidar" ">=3.0.0 <4.0.0" + +"schema-utils@^2.6.5": + "integrity" "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" + "version" "2.7.1" dependencies: "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" + "ajv" "^6.12.4" + "ajv-keywords" "^3.5.2" -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== +"schema-utils@^3.0.0": + "integrity" "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz" + "version" "3.0.0" dependencies: "@types/json-schema" "^7.0.6" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.11: - version "1.10.11" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== - dependencies: - node-forge "^0.10.0" - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -send@0.16.2: - version "0.16.2" - resolved "https://registry.npmjs.org/send/-/send-0.16.2.tgz" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serve-index@1.9.1, serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -server-destroy@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz" - integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-datatables@^2.1.13: - version "2.1.13" - resolved "https://registry.npmjs.org/simple-datatables/-/simple-datatables-2.1.13.tgz" - integrity sha512-wKl0AXy0TbFi9YlQpph8kSdNHey2cMb8AcV3gjT0ccm1Fm+yMRE6trIAwDIMgqVQpCW5VWKYbOoDjKjfCoQRPg== - dependencies: - dayjs "^1.8.28" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.4.0, socket.io-client@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz" - integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "~1.3.0" - debug "~3.1.0" - engine.io-client "~3.5.0" - has-binary2 "~1.0.2" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.2" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz" - integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== - dependencies: - component-emitter "~1.3.0" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" - -socket.io@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz" - integrity sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ== - dependencies: - debug "~4.1.0" - engine.io "~3.5.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.4.0" - socket.io-parser "~3.4.0" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - -source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12, source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== - -std-env@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/std-env/-/std-env-2.3.0.tgz" - integrity sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw== - dependencies: - ci-info "^3.0.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-throttle@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz" - integrity sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM= - dependencies: - commander "^2.2.0" - limiter "^1.0.5" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" + "ajv" "^6.12.5" + "ajv-keywords" "^3.5.2" + +"select-hose@^2.0.0": + "integrity" "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "resolved" "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + "version" "2.0.0" + +"selfsigned@^1.10.11": + "integrity" "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==" + "resolved" "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz" + "version" "1.10.11" + dependencies: + "node-forge" "^0.10.0" + +"semver@^6.0.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^6.1.1": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^6.1.2": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.2", "semver@^7.3.5": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@7.0.0": + "integrity" "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + "version" "7.0.0" + +"send@0.16.2": + "integrity" "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==" + "resolved" "https://registry.npmjs.org/send/-/send-0.16.2.tgz" + "version" "0.16.2" + dependencies: + "debug" "2.6.9" + "depd" "~1.1.2" + "destroy" "~1.0.4" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "~1.6.2" + "mime" "1.4.1" + "ms" "2.0.0" + "on-finished" "~2.3.0" + "range-parser" "~1.2.0" + "statuses" "~1.4.0" + +"send@0.17.1": + "integrity" "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==" + "resolved" "https://registry.npmjs.org/send/-/send-0.17.1.tgz" + "version" "0.17.1" + dependencies: + "debug" "2.6.9" + "depd" "~1.1.2" + "destroy" "~1.0.4" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "~1.7.2" + "mime" "1.6.0" + "ms" "2.1.1" + "on-finished" "~2.3.0" + "range-parser" "~1.2.1" + "statuses" "~1.5.0" + +"serialize-javascript@^6.0.0": + "integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==" + "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "randombytes" "^2.1.0" + +"serve-index@^1.9.1", "serve-index@1.9.1": + "integrity" "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=" + "resolved" "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + "version" "1.9.1" + dependencies: + "accepts" "~1.3.4" + "batch" "0.6.1" + "debug" "2.6.9" + "escape-html" "~1.0.3" + "http-errors" "~1.6.2" + "mime-types" "~2.1.17" + "parseurl" "~1.3.2" + +"serve-static@1.13.2": + "integrity" "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==" + "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz" + "version" "1.13.2" + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.2" + "send" "0.16.2" + +"serve-static@1.14.1": + "integrity" "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==" + "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" + "version" "1.14.1" + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.3" + "send" "0.17.1" + +"server-destroy@1.0.1": + "integrity" "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=" + "resolved" "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz" + "version" "1.0.1" + +"set-blocking@^2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"setimmediate@^1.0.4": + "integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + "version" "1.0.5" + +"setprototypeof@1.1.0": + "integrity" "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + "version" "1.1.0" + +"setprototypeof@1.1.1": + "integrity" "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" + "version" "1.1.1" + +"sha.js@^2.4.0", "sha.js@^2.4.8": + "integrity" "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==" + "resolved" "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + "version" "2.4.11" + dependencies: + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"shallow-clone@^3.0.0": + "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" + "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^6.0.2" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"shellwords@^0.1.1": + "integrity" "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + "resolved" "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" + "version" "0.1.1" + +"signal-exit@^3.0.3": + "integrity" "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + "version" "3.0.3" + +"simple-datatables@^2.1.13": + "integrity" "sha512-wKl0AXy0TbFi9YlQpph8kSdNHey2cMb8AcV3gjT0ccm1Fm+yMRE6trIAwDIMgqVQpCW5VWKYbOoDjKjfCoQRPg==" + "resolved" "https://registry.npmjs.org/simple-datatables/-/simple-datatables-2.1.13.tgz" + "version" "2.1.13" + dependencies: + "dayjs" "^1.8.28" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"socket.io-adapter@~1.1.0": + "integrity" "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" + "resolved" "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" + "version" "1.1.2" + +"socket.io-client@^2.4.0", "socket.io-client@2.4.0": + "integrity" "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==" + "resolved" "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "backo2" "1.0.2" + "component-bind" "1.0.0" + "component-emitter" "~1.3.0" + "debug" "~3.1.0" + "engine.io-client" "~3.5.0" + "has-binary2" "~1.0.2" + "indexof" "0.0.1" + "parseqs" "0.0.6" + "parseuri" "0.0.6" + "socket.io-parser" "~3.3.0" + "to-array" "0.1.4" + +"socket.io-parser@~3.3.0": + "integrity" "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz" + "version" "3.3.2" + dependencies: + "component-emitter" "~1.3.0" + "debug" "~3.1.0" + "isarray" "2.0.1" + +"socket.io-parser@~3.4.0": + "integrity" "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz" + "version" "3.4.1" + dependencies: + "component-emitter" "1.2.1" + "debug" "~4.1.0" + "isarray" "2.0.1" + +"socket.io@2.4.0": + "integrity" "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==" + "resolved" "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "debug" "~4.1.0" + "engine.io" "~3.5.0" + "has-binary2" "~1.0.2" + "socket.io-adapter" "~1.1.0" + "socket.io-client" "2.4.0" + "socket.io-parser" "~3.4.0" + +"sockjs@^0.3.21": + "integrity" "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==" + "resolved" "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz" + "version" "0.3.21" + dependencies: + "faye-websocket" "^0.11.3" + "uuid" "^3.4.0" + "websocket-driver" "^0.7.4" + +"source-list-map@^2.0.0", "source-list-map@^2.0.1": + "integrity" "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "resolved" "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + "version" "2.0.1" + +"source-map-js@^0.6.2": + "integrity" "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" + "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" + "version" "0.6.2" + +"source-map-resolve@^0.5.2": + "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==" + "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "atob" "^2.1.2" + "decode-uri-component" "^0.2.0" + "resolve-url" "^0.2.1" + "source-map-url" "^0.4.0" + "urix" "^0.1.0" + +"source-map-support@~0.5.12", "source-map-support@~0.5.19": + "integrity" "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" + "version" "0.5.19" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map-url@^0.4.0": + "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + "version" "0.4.1" + +"source-map@^0.5.0": + "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.6.1", "source-map@0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@~0.6.0", "source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@~0.7.2": + "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + "version" "0.7.3" + +"spdy-transport@^3.0.0": + "integrity" "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==" + "resolved" "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "debug" "^4.1.0" + "detect-node" "^2.0.4" + "hpack.js" "^2.1.6" + "obuf" "^1.1.2" + "readable-stream" "^3.0.6" + "wbuf" "^1.7.3" + +"spdy@^4.0.2": + "integrity" "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==" + "resolved" "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "debug" "^4.1.0" + "handle-thing" "^2.0.0" + "http-deceiver" "^1.2.7" + "select-hose" "^2.0.0" + "spdy-transport" "^3.0.0" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"stable@^0.1.8": + "integrity" "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "resolved" "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + "version" "0.1.8" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", "statuses@~1.5.0": + "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + "version" "1.5.0" + +"statuses@~1.3.1": + "integrity" "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + "version" "1.3.1" + +"statuses@~1.4.0": + "integrity" "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" + "version" "1.4.0" + +"std-env@^2.2.1": + "integrity" "sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw==" + "resolved" "https://registry.npmjs.org/std-env/-/std-env-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ci-info" "^3.0.0" + +"stream-browserify@^2.0.1": + "integrity" "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==" + "resolved" "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "inherits" "~2.0.1" + "readable-stream" "^2.0.2" + +"stream-http@^2.7.2": + "integrity" "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==" + "resolved" "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + "version" "2.8.3" + dependencies: + "builtin-status-codes" "^3.0.0" + "inherits" "^2.0.1" + "readable-stream" "^2.3.6" + "to-arraybuffer" "^1.0.0" + "xtend" "^4.0.0" + +"stream-throttle@^0.1.3": + "integrity" "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=" + "resolved" "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz" + "version" "0.1.3" + dependencies: + "commander" "^2.2.0" + "limiter" "^1.0.5" + +"string_decoder@^1.0.0", "string_decoder@^1.1.1": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-width@^4.1.0", "string-width@^4.2.0": + "integrity" "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.0" + +"strip-ansi@^3.0.0": + "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ansi-regex" "^2.0.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +"strip-ansi@^6.0.0": + "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + "version" "6.0.0" dependencies: - ansi-regex "^5.0.0" + "ansi-regex" "^5.0.0" -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +"strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" -style-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz" - integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== +"style-loader@^2.0.0": + "integrity" "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==" + "resolved" "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz" + "version" "2.0.0" dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" + "loader-utils" "^2.0.0" + "schema-utils" "^3.0.0" -stylehacks@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz" - integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== +"stylehacks@^5.0.1": + "integrity" "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==" + "resolved" "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz" + "version" "5.0.1" dependencies: - browserslist "^4.16.0" - postcss-selector-parser "^6.0.4" + "browserslist" "^4.16.0" + "postcss-selector-parser" "^6.0.4" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +"supports-color@^2.0.0": + "integrity" "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "version" "2.0.0" -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" dependencies: - has-flag "^3.0.0" + "has-flag" "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== +"supports-color@^6.1.0": + "integrity" "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + "version" "6.1.0" dependencies: - has-flag "^3.0.0" + "has-flag" "^3.0.0" -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" dependencies: - has-flag "^4.0.0" + "has-flag" "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" dependencies: - has-flag "^4.0.0" + "has-flag" "^4.0.0" -svg.draggable.js@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz" - integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw== +"svg.draggable.js@^2.2.2": + "integrity" "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==" + "resolved" "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz" + "version" "2.2.2" dependencies: - svg.js "^2.0.1" + "svg.js" "^2.0.1" -svg.easing.js@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz" - integrity sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI= +"svg.easing.js@^2.0.0": + "integrity" "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=" + "resolved" "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz" + "version" "2.0.0" dependencies: - svg.js ">=2.3.x" + "svg.js" ">=2.3.x" -svg.filter.js@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz" - integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM= +"svg.filter.js@^2.0.2": + "integrity" "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=" + "resolved" "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz" + "version" "2.0.2" dependencies: - svg.js "^2.2.5" + "svg.js" "^2.2.5" -svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5: - version "2.7.1" - resolved "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz" - integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA== +"svg.js@^2.0.1", "svg.js@^2.2.5", "svg.js@^2.4.0", "svg.js@^2.6.5", "svg.js@>=2.3.x": + "integrity" "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + "resolved" "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz" + "version" "2.7.1" -svg.pathmorphing.js@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz" - integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww== +"svg.pathmorphing.js@^0.1.3": + "integrity" "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==" + "resolved" "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz" + "version" "0.1.3" dependencies: - svg.js "^2.4.0" + "svg.js" "^2.4.0" -svg.resize.js@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz" - integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw== +"svg.resize.js@^1.4.3": + "integrity" "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==" + "resolved" "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz" + "version" "1.4.3" dependencies: - svg.js "^2.6.5" - svg.select.js "^2.1.2" + "svg.js" "^2.6.5" + "svg.select.js" "^2.1.2" -svg.select.js@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz" - integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ== +"svg.select.js@^2.1.2": + "integrity" "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==" + "resolved" "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz" + "version" "2.1.2" dependencies: - svg.js "^2.2.5" + "svg.js" "^2.2.5" -svg.select.js@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz" - integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw== +"svg.select.js@^3.0.1": + "integrity" "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==" + "resolved" "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz" + "version" "3.0.1" dependencies: - svg.js "^2.6.5" + "svg.js" "^2.6.5" -svgo@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/svgo/-/svgo-2.3.1.tgz" - integrity sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw== +"svgo@^2.3.0": + "integrity" "sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw==" + "resolved" "https://registry.npmjs.org/svgo/-/svgo-2.3.1.tgz" + "version" "2.3.1" dependencies: "@trysound/sax" "0.1.1" - chalk "^4.1.0" - commander "^7.1.0" - css-select "^4.1.3" - css-tree "^1.1.2" - csso "^4.2.0" - stable "^0.1.8" - -sweetalert2@^11.0.0: - version "11.1.7" - resolved "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.1.7.tgz" - integrity sha512-7MHQVtKCTORfA9e58g9ZOfT3X58DkSBtvoCQJnqSHobXXb5C7aB8Yg/tAccTFnefCUBU41PoStjXMkzG3bNeig== - -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz" - integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= - -symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== - -terser-webpack-plugin@^5.1.3: - version "5.1.4" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz" - integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== - dependencies: - jest-worker "^27.0.2" - p-limit "^3.1.0" - schema-utils "^3.0.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.0" - -terser@^4.6.3: - version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.7.0: - version "5.7.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz" - integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -tfunk@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz" - integrity sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ== - dependencies: - chalk "^1.1.3" - dlv "^1.1.3" - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -ticky@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz" - integrity sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0= - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toastify-js@^1.11.0: - version "1.11.0" - resolved "https://registry.npmjs.org/toastify-js/-/toastify-js-1.11.0.tgz" - integrity sha512-N9o4RHy+IxY51C0wO50uJmXDpGHKKf6wRq2q0pfHlpMxRLKreD68L6ZR5BEETd5UCHWcwZa4sLNMV8iO5L+zqQ== - -toastr@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz" - integrity sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE= - dependencies: - jquery ">=1.12.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tslib@^2.0.3: - version "2.3.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.5.0" - resolved "https://registry.npmjs.org/type/-/type-2.5.0.tgz" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== - -ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -uri-js@^4.2.2: - version "4.4.0" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz" - integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vue-style-loader@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.6.14: - version "2.6.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -watchpack@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz" - integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" + "chalk" "^4.1.0" + "commander" "^7.1.0" + "css-select" "^4.1.3" + "css-tree" "^1.1.2" + "csso" "^4.2.0" + "stable" "^0.1.8" + +"sweetalert2@^11.0.0": + "integrity" "sha512-7MHQVtKCTORfA9e58g9ZOfT3X58DkSBtvoCQJnqSHobXXb5C7aB8Yg/tAccTFnefCUBU41PoStjXMkzG3bNeig==" + "resolved" "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.1.7.tgz" + "version" "11.1.7" + +"symbol-observable@^1.2.0": + "integrity" "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" + "version" "1.2.0" + +"symbol-observable@1.0.1": + "integrity" "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" + "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz" + "version" "1.0.1" + +"tapable@^2.1.1", "tapable@^2.2.0": + "integrity" "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==" + "resolved" "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz" + "version" "2.2.0" + +"terser-webpack-plugin@^5.1.3": + "integrity" "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==" + "resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz" + "version" "5.1.4" + dependencies: + "jest-worker" "^27.0.2" + "p-limit" "^3.1.0" + "schema-utils" "^3.0.0" + "serialize-javascript" "^6.0.0" + "source-map" "^0.6.1" + "terser" "^5.7.0" + +"terser@^4.6.3": + "integrity" "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==" + "resolved" "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" + "version" "4.8.0" + dependencies: + "commander" "^2.20.0" + "source-map" "~0.6.1" + "source-map-support" "~0.5.12" + +"terser@^5.7.0": + "integrity" "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==" + "resolved" "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz" + "version" "5.7.1" + dependencies: + "commander" "^2.20.0" + "source-map" "~0.7.2" + "source-map-support" "~0.5.19" + +"text-table@^0.2.0": + "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + "version" "0.2.0" + +"tfunk@^4.0.0": + "integrity" "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==" + "resolved" "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "chalk" "^1.1.3" + "dlv" "^1.1.3" + +"thunky@^1.0.2": + "integrity" "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "resolved" "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + "version" "1.1.0" + +"ticky@1.0.1": + "integrity" "sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0=" + "resolved" "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz" + "version" "1.0.1" + +"timers-browserify@^2.0.4": + "integrity" "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==" + "resolved" "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" + "version" "2.0.12" + dependencies: + "setimmediate" "^1.0.4" + +"timsort@^0.3.0": + "integrity" "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + "resolved" "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" + "version" "0.3.0" + +"to-array@0.1.4": + "integrity" "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + "resolved" "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + "version" "0.1.4" + +"to-arraybuffer@^1.0.0": + "integrity" "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "resolved" "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + "version" "1.0.1" + +"to-fast-properties@^2.0.0": + "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"toastify-js@^1.11.0": + "integrity" "sha512-N9o4RHy+IxY51C0wO50uJmXDpGHKKf6wRq2q0pfHlpMxRLKreD68L6ZR5BEETd5UCHWcwZa4sLNMV8iO5L+zqQ==" + "resolved" "https://registry.npmjs.org/toastify-js/-/toastify-js-1.11.0.tgz" + "version" "1.11.0" + +"toastr@^2.1.4": + "integrity" "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=" + "resolved" "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "jquery" ">=1.12.0" + +"toidentifier@1.0.0": + "integrity" "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" + "version" "1.0.0" + +"tslib@^2.0.3": + "integrity" "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz" + "version" "2.3.0" + +"tty-browserify@0.0.0": + "integrity" "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "resolved" "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + "version" "0.0.0" + +"type-fest@^0.21.3": + "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + "version" "0.21.3" + +"type-is@~1.6.17", "type-is@~1.6.18": + "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" + "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + "version" "1.6.18" + dependencies: + "media-typer" "0.3.0" + "mime-types" "~2.1.24" + +"type@^1.0.1": + "integrity" "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "resolved" "https://registry.npmjs.org/type/-/type-1.2.0.tgz" + "version" "1.2.0" + +"type@^2.0.0": + "integrity" "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + "resolved" "https://registry.npmjs.org/type/-/type-2.5.0.tgz" + "version" "2.5.0" + +"ua-parser-js@^0.7.18": + "integrity" "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" + "resolved" "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz" + "version" "0.7.28" + +"unicode-canonical-property-names-ecmascript@^1.0.4": + "integrity" "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz" + "version" "1.0.4" + +"unicode-match-property-ecmascript@^1.0.4": + "integrity" "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==" + "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "unicode-canonical-property-names-ecmascript" "^1.0.4" + "unicode-property-aliases-ecmascript" "^1.0.4" + +"unicode-match-property-value-ecmascript@^1.2.0": + "integrity" "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz" + "version" "1.2.0" + +"unicode-property-aliases-ecmascript@^1.0.4": + "integrity" "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz" + "version" "1.1.0" + +"uniqs@^2.0.0": + "integrity" "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + "resolved" "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + "version" "2.0.0" + +"universalify@^0.1.0": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"universalify@^2.0.0": + "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + "version" "2.0.0" + +"unpipe@~1.0.0", "unpipe@1.0.0": + "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "version" "1.0.0" + +"uri-js@^4.2.2": + "integrity" "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz" + "version" "4.4.0" + dependencies: + "punycode" "^2.1.0" + +"urix@^0.1.0": + "integrity" "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + "version" "0.1.0" + +"url@^0.11.0": + "integrity" "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=" + "resolved" "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + "version" "0.11.0" + dependencies: + "punycode" "1.3.2" + "querystring" "0.2.0" + +"util-deprecate@^1.0.1", "util-deprecate@^1.0.2", "util-deprecate@~1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"util@^0.11.0": + "integrity" "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==" + "resolved" "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + "version" "0.11.1" + dependencies: + "inherits" "2.0.3" + +"util@0.10.3": + "integrity" "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=" + "resolved" "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + "version" "0.10.3" + dependencies: + "inherits" "2.0.1" + +"utils-merge@1.0.1": + "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + "version" "1.0.1" + +"uuid@^3.4.0": + "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + "version" "3.4.0" + +"uuid@^8.3.0": + "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + "version" "8.3.2" + +"v8-compile-cache@^2.2.0": + "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + "version" "2.3.0" + +"vary@~1.1.2": + "integrity" "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + "version" "1.1.2" + +"vendors@^1.0.3": + "integrity" "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + "resolved" "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" + "version" "1.0.4" + +"vm-browserify@^1.0.1": + "integrity" "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + "resolved" "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" + "version" "1.1.2" + +"vue-style-loader@^4.1.3": + "integrity" "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==" + "resolved" "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "hash-sum" "^1.0.2" + "loader-utils" "^1.0.2" + +"vue-template-compiler@^2.6.14": + "integrity" "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==" + "resolved" "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz" + "version" "2.6.14" + dependencies: + "de-indent" "^1.0.2" + "he" "^1.1.0" + +"watchpack@^2.2.0": + "integrity" "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==" + "resolved" "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "glob-to-regexp" "^0.4.1" + "graceful-fs" "^4.1.2" + +"wbuf@^1.1.0", "wbuf@^1.7.3": + "integrity" "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==" + "resolved" "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + "version" "1.7.3" + dependencies: + "minimalistic-assert" "^1.0.0" -webpack-cli@^4.7.2: - version "4.7.2" - resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz" - integrity sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw== +"webpack-cli@^4.7.2": + "integrity" "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==" + "resolved" "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz" + "version" "4.7.2" dependencies: "@discoveryjs/json-ext" "^0.5.0" "@webpack-cli/configtest" "^1.0.4" "@webpack-cli/info" "^1.3.0" "@webpack-cli/serve" "^1.5.1" - colorette "^1.2.1" - commander "^7.0.0" - execa "^5.0.0" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" - v8-compile-cache "^2.2.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz" - integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== - dependencies: - colorette "^1.2.2" - mem "^8.1.1" - memfs "^3.2.2" - mime-types "^2.1.30" - range-parser "^1.2.1" - schema-utils "^3.0.0" - -webpack-dev-server@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.3.tgz" - integrity sha512-Ud7ieH15No/KiSdRuzk+2k+S4gSCR/N7m4hJhesDbKQEZy3P+NPXTXfsimNOZvbVX2TRuIEFB+VdLZFn8DwGwg== - dependencies: - ansi-html "^0.0.7" - bonjour "^3.5.0" - chokidar "^3.5.1" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - del "^6.0.0" - express "^4.17.1" - find-cache-dir "^3.3.1" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^1.3.1" - internal-ip "^6.2.0" - ipaddr.js "^2.0.0" - is-absolute-url "^3.0.3" - killable "^1.0.1" - open "^7.4.2" - p-retry "^4.5.0" - portfinder "^1.0.28" - schema-utils "^3.0.0" - selfsigned "^1.10.11" - serve-index "^1.9.1" - sockjs "^0.3.21" - spdy "^4.0.2" - strip-ansi "^6.0.0" - url "^0.11.0" - webpack-dev-middleware "^4.1.0" - ws "^7.4.5" - -webpack-merge@^5.7.3, webpack-merge@^5.8.0: - version "5.8.0" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-notifier@^1.13.0: - version "1.13.0" - resolved "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.13.0.tgz" - integrity sha512-QLk6l/TZKGhyN6Hd1zobaiYno7S9YPX3wH86+YOSufHes77SegGhnGdj+4vrLDFK5A4ZKoQD5GRXXFnM0h0N8A== - dependencies: - node-notifier "^9.0.0" - strip-ansi "^6.0.0" - -webpack-sources@^1.1.0: - version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz" - integrity sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -webpack@^5.38.1, webpack@^5.40.0: - version "5.40.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz" - integrity sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw== + "colorette" "^1.2.1" + "commander" "^7.0.0" + "execa" "^5.0.0" + "fastest-levenshtein" "^1.0.12" + "import-local" "^3.0.2" + "interpret" "^2.2.0" + "rechoir" "^0.7.0" + "v8-compile-cache" "^2.2.0" + "webpack-merge" "^5.7.3" + +"webpack-dev-middleware@^4.1.0": + "integrity" "sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w==" + "resolved" "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "colorette" "^1.2.2" + "mem" "^8.1.1" + "memfs" "^3.2.2" + "mime-types" "^2.1.30" + "range-parser" "^1.2.1" + "schema-utils" "^3.0.0" + +"webpack-dev-server@4.0.0-beta.3": + "integrity" "sha512-Ud7ieH15No/KiSdRuzk+2k+S4gSCR/N7m4hJhesDbKQEZy3P+NPXTXfsimNOZvbVX2TRuIEFB+VdLZFn8DwGwg==" + "resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.3.tgz" + "version" "4.0.0-beta.3" + dependencies: + "ansi-html" "^0.0.7" + "bonjour" "^3.5.0" + "chokidar" "^3.5.1" + "compression" "^1.7.4" + "connect-history-api-fallback" "^1.6.0" + "del" "^6.0.0" + "express" "^4.17.1" + "find-cache-dir" "^3.3.1" + "graceful-fs" "^4.2.6" + "html-entities" "^2.3.2" + "http-proxy-middleware" "^1.3.1" + "internal-ip" "^6.2.0" + "ipaddr.js" "^2.0.0" + "is-absolute-url" "^3.0.3" + "killable" "^1.0.1" + "open" "^7.4.2" + "p-retry" "^4.5.0" + "portfinder" "^1.0.28" + "schema-utils" "^3.0.0" + "selfsigned" "^1.10.11" + "serve-index" "^1.9.1" + "sockjs" "^0.3.21" + "spdy" "^4.0.2" + "strip-ansi" "^6.0.0" + "url" "^0.11.0" + "webpack-dev-middleware" "^4.1.0" + "ws" "^7.4.5" + +"webpack-merge@^5.7.3", "webpack-merge@^5.8.0": + "integrity" "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==" + "resolved" "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" + "version" "5.8.0" + dependencies: + "clone-deep" "^4.0.1" + "wildcard" "^2.0.0" + +"webpack-notifier@^1.13.0": + "integrity" "sha512-QLk6l/TZKGhyN6Hd1zobaiYno7S9YPX3wH86+YOSufHes77SegGhnGdj+4vrLDFK5A4ZKoQD5GRXXFnM0h0N8A==" + "resolved" "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.13.0.tgz" + "version" "1.13.0" + dependencies: + "node-notifier" "^9.0.0" + "strip-ansi" "^6.0.0" + +"webpack-sources@^1.1.0": + "integrity" "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==" + "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + "version" "1.4.3" + dependencies: + "source-list-map" "^2.0.0" + "source-map" "~0.6.1" + +"webpack-sources@^2.3.0": + "integrity" "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==" + "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "source-list-map" "^2.0.1" + "source-map" "^0.6.1" + +"webpack@^5.0.0", "webpack@^5.38.1", "webpack@^5.40.0": + "integrity" "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==" + "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz" + "version" "5.40.0" dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.47" "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/wasm-edit" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.2.1" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.6.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.0.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.2.0" - webpack-sources "^2.3.0" - -webpackbar@^5.0.0-3: - version "5.0.0-3" - resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.0-3.tgz" - integrity sha512-viW6KCYjMb0NPoDrw2jAmLXU2dEOhRrtku28KmOfeE1vxbfwCYuTbTaMhnkrCZLFAFyY9Q49Z/jzYO80Dw5b8g== - dependencies: - ansi-escapes "^4.3.1" - chalk "^4.1.0" - consola "^2.15.0" - figures "^3.2.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^7.0.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@^7.4.5: - version "7.5.0" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz" - integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== - -ws@~7.4.2: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -xmlhttprequest-ssl@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz" - integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0, yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.0.1: - version "17.0.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz" - integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + "acorn" "^8.2.1" + "browserslist" "^4.14.5" + "chrome-trace-event" "^1.0.2" + "enhanced-resolve" "^5.8.0" + "es-module-lexer" "^0.6.0" + "eslint-scope" "5.1.1" + "events" "^3.2.0" + "glob-to-regexp" "^0.4.1" + "graceful-fs" "^4.2.4" + "json-parse-better-errors" "^1.0.2" + "loader-runner" "^4.2.0" + "mime-types" "^2.1.27" + "neo-async" "^2.6.2" + "schema-utils" "^3.0.0" + "tapable" "^2.1.1" + "terser-webpack-plugin" "^5.1.3" + "watchpack" "^2.2.0" + "webpack-sources" "^2.3.0" + +"webpackbar@^5.0.0-3": + "integrity" "sha512-viW6KCYjMb0NPoDrw2jAmLXU2dEOhRrtku28KmOfeE1vxbfwCYuTbTaMhnkrCZLFAFyY9Q49Z/jzYO80Dw5b8g==" + "resolved" "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.0-3.tgz" + "version" "5.0.0-3" + dependencies: + "ansi-escapes" "^4.3.1" + "chalk" "^4.1.0" + "consola" "^2.15.0" + "figures" "^3.2.0" + "pretty-time" "^1.1.0" + "std-env" "^2.2.1" + "text-table" "^0.2.0" + "wrap-ansi" "^7.0.0" + +"websocket-driver@^0.7.4", "websocket-driver@>=0.5.1": + "integrity" "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==" + "resolved" "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + "version" "0.7.4" + dependencies: + "http-parser-js" ">=0.5.1" + "safe-buffer" ">=5.1.0" + "websocket-extensions" ">=0.1.1" + +"websocket-extensions@>=0.1.1": + "integrity" "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + "resolved" "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + "version" "0.1.4" + +"which-module@^2.0.0": + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which@^2.0.1", "which@^2.0.2": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"wildcard@^2.0.0": + "integrity" "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" + "resolved" "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" + "version" "2.0.0" + +"wrap-ansi@^6.2.0": + "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"ws@^7.4.5": + "integrity" "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz" + "version" "7.5.0" + +"ws@~7.4.2": + "integrity" "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + "version" "7.4.6" + +"xmlhttprequest-ssl@~1.6.2": + "integrity" "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" + "resolved" "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz" + "version" "1.6.3" + +"xtend@^4.0.0": + "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + "version" "4.0.2" + +"y18n@^4.0.0": + "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + "version" "4.0.3" + +"y18n@^5.0.5": + "integrity" "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" + "version" "5.0.5" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yaml@^1.10.0", "yaml@^1.10.2": + "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + "version" "1.10.2" + +"yargs-parser@^18.1.2": + "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + "version" "18.1.3" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^20.2.2": + "integrity" "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + "version" "20.2.4" + +"yargs@^15.4.1": + "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + "version" "15.4.1" + dependencies: + "cliui" "^6.0.0" + "decamelize" "^1.2.0" + "find-up" "^4.1.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^4.2.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^18.1.2" + +"yargs@^17.0.1": + "integrity" "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz" + "version" "17.0.1" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@16.2.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yeast@0.1.2": + "integrity" "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + "resolved" "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + "version" "0.1.2" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0" From 9238347ad70b35ba66a5cddc608095ede0faf62a Mon Sep 17 00:00:00 2001 From: Nik Date: Tue, 8 Mar 2022 13:35:23 +0100 Subject: [PATCH 04/83] move endblocks --- src/layouts/horizontal.html | 2 +- src/layouts/master.html | 2 +- src/layouts/rtl.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/layouts/horizontal.html b/src/layouts/horizontal.html index bd82a170a..7242560aa 100644 --- a/src/layouts/horizontal.html +++ b/src/layouts/horizontal.html @@ -6,10 +6,10 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - {% block styles %}{% endblock %} + {% block styles %}{% endblock %} diff --git a/src/layouts/master.html b/src/layouts/master.html index d9484749f..ae9e53b8e 100644 --- a/src/layouts/master.html +++ b/src/layouts/master.html @@ -6,10 +6,10 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - {% block styles %}{% endblock %} + {% block styles %}{% endblock %} diff --git a/src/layouts/rtl.html b/src/layouts/rtl.html index 9c3ab2eac..190a3454b 100644 --- a/src/layouts/rtl.html +++ b/src/layouts/rtl.html @@ -6,10 +6,10 @@ {{ title }} - {{ web_title }} {% block stylesfirst %}{% endblock %} - {% block styles %}{% endblock %} + {% block styles %}{% endblock %} From 4f9e3644ba6c02d3871635f66e2d2056fdf0eb1a Mon Sep 17 00:00:00 2001 From: Nik Date: Tue, 8 Mar 2022 13:40:29 +0100 Subject: [PATCH 05/83] Manage toastify requirement with npm --- dist/assets/vendors/toastify/toastify.css | 78 ----- dist/assets/vendors/toastify/toastify.js | 394 ---------------------- src/assets/js/extensions/toastify.js | 83 +++++ src/assets/scss/pages/toastify.scss | 1 + src/extra-component-toastify.html | 3 +- webpack.mix.js | 2 + 6 files changed, 87 insertions(+), 474 deletions(-) delete mode 100644 dist/assets/vendors/toastify/toastify.css delete mode 100644 dist/assets/vendors/toastify/toastify.js create mode 100644 src/assets/js/extensions/toastify.js create mode 100644 src/assets/scss/pages/toastify.scss diff --git a/dist/assets/vendors/toastify/toastify.css b/dist/assets/vendors/toastify/toastify.css deleted file mode 100644 index 3fd3b6a21..000000000 --- a/dist/assets/vendors/toastify/toastify.css +++ /dev/null @@ -1,78 +0,0 @@ -/*! - * Toastify js 1.8.0 - * https://github.com/apvarun/toastify-js - * @license MIT licensed - * - * Copyright (C) 2018 Varun A P - */ - -.toastify { - padding: 12px 20px; - color: #ffffff; - display: inline-block; - box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3); - background: -webkit-linear-gradient(315deg, #73a5ff, #5477f5); - background: linear-gradient(135deg, #73a5ff, #5477f5); - position: fixed; - opacity: 0; - transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); - border-radius: 2px; - cursor: pointer; - text-decoration: none; - max-width: calc(50% - 20px); - z-index: 2147483647; -} - -.toastify.on { - opacity: 1; -} - -.toast-close { - opacity: 0.4; - padding: 0 5px; -} - -.toastify-right { - right: 15px; -} - -.toastify-left { - left: 15px; -} - -.toastify-top { - top: -150px; -} - -.toastify-bottom { - bottom: -150px; -} - -.toastify-rounded { - border-radius: 25px; -} - -.toastify-avatar { - width: 1.5em; - height: 1.5em; - margin: 0 5px; - border-radius: 2px; -} - -.toastify-center { - margin-left: auto; - margin-right: auto; - left: 0; - right: 0; - max-width: fit-content; -} - -@media only screen and (max-width: 360px) { - .toastify-right, .toastify-left { - margin-left: auto; - margin-right: auto; - left: 0; - right: 0; - max-width: fit-content; - } -} diff --git a/dist/assets/vendors/toastify/toastify.js b/dist/assets/vendors/toastify/toastify.js deleted file mode 100644 index 1346c9b50..000000000 --- a/dist/assets/vendors/toastify/toastify.js +++ /dev/null @@ -1,394 +0,0 @@ -/*! - * Toastify js 1.9.3 - * https://github.com/apvarun/toastify-js - * @license MIT licensed - * - * Copyright (C) 2018 Varun A P - */ -(function(root, factory) { - if (typeof module === "object" && module.exports) { - module.exports = factory(); - } else { - root.Toastify = factory(); - } -})(this, function(global) { - // Object initialization - var Toastify = function(options) { - // Returning a new init object - return new Toastify.lib.init(options); - }, - // Library version - version = "1.9.3"; - - // Defining the prototype of the object - Toastify.lib = Toastify.prototype = { - toastify: version, - - constructor: Toastify, - - // Initializing the object with required parameters - init: function(options) { - // Verifying and validating the input object - if (!options) { - options = {}; - } - - // Creating the options object - this.options = {}; - - this.toastElement = null; - - // Validating the options - this.options.text = options.text || "Hi there!"; // Display message - this.options.node = options.node // Display content as node - this.options.duration = options.duration === 0 ? 0 : options.duration || 3000; // Display duration - this.options.selector = options.selector; // Parent selector - this.options.callback = options.callback || function() {}; // Callback after display - this.options.destination = options.destination; // On-click destination - this.options.newWindow = options.newWindow || false; // Open destination in new window - this.options.close = options.close || false; // Show toast close icon - this.options.gravity = options.gravity === "bottom" ? "toastify-bottom" : "toastify-top"; // toast position - top or bottom - this.options.positionLeft = options.positionLeft || false; // toast position - left or right - this.options.position = options.position || ''; // toast position - left or right - this.options.backgroundColor = options.backgroundColor; // toast background color - this.options.avatar = options.avatar || ""; // img element src - url or a path - this.options.className = options.className || ""; // additional class names for the toast - this.options.stopOnFocus = options.stopOnFocus === undefined? true: options.stopOnFocus; // stop timeout on focus - this.options.onClick = options.onClick; // Callback after click - - this.options.offset = options.offset || { x: 0, y: 0 }; // toast offset - - // Returning the current object for chaining functions - return this; - }, - - // Building the DOM element - buildToast: function() { - // Validating if the options are defined - if (!this.options) { - throw "Toastify is not initialized"; - } - - // Creating the DOM object - var divElement = document.createElement("div"); - divElement.className = "toastify on " + this.options.className; - - // Positioning toast to left or right or center - if (!!this.options.position) { - divElement.className += " toastify-" + this.options.position; - } else { - // To be depreciated in further versions - if (this.options.positionLeft === true) { - divElement.className += " toastify-left"; - console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.') - } else { - // Default position - divElement.className += " toastify-right"; - } - } - - // Assigning gravity of element - divElement.className += " " + this.options.gravity; - - if (this.options.backgroundColor) { - divElement.style.background = this.options.backgroundColor; - } - - // Adding the toast message/node - if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) { - // If we have a valid node, we insert it - divElement.appendChild(this.options.node) - } else { - divElement.innerHTML = this.options.text; - - if (this.options.avatar !== "") { - var avatarElement = document.createElement("img"); - avatarElement.src = this.options.avatar; - - avatarElement.className = "toastify-avatar"; - - if (this.options.position == "left" || this.options.positionLeft === true) { - // Adding close icon on the left of content - divElement.appendChild(avatarElement); - } else { - // Adding close icon on the right of content - divElement.insertAdjacentElement("afterbegin", avatarElement); - } - } - } - - // Adding a close icon to the toast - if (this.options.close === true) { - // Create a span for close element - var closeElement = document.createElement("span"); - closeElement.innerHTML = "✖"; - - closeElement.className = "toast-close"; - - // Triggering the removal of toast from DOM on close click - closeElement.addEventListener( - "click", - function(event) { - event.stopPropagation(); - this.removeElement(this.toastElement); - window.clearTimeout(this.toastElement.timeOutValue); - }.bind(this) - ); - - //Calculating screen width - var width = window.innerWidth > 0 ? window.innerWidth : screen.width; - - // Adding the close icon to the toast element - // Display on the right if screen width is less than or equal to 360px - if ((this.options.position == "left" || this.options.positionLeft === true) && width > 360) { - // Adding close icon on the left of content - divElement.insertAdjacentElement("afterbegin", closeElement); - } else { - // Adding close icon on the right of content - divElement.appendChild(closeElement); - } - } - - // Clear timeout while toast is focused - if (this.options.stopOnFocus && this.options.duration > 0) { - var self = this; - // stop countdown - divElement.addEventListener( - "mouseover", - function(event) { - window.clearTimeout(divElement.timeOutValue); - } - ) - // add back the timeout - divElement.addEventListener( - "mouseleave", - function() { - divElement.timeOutValue = window.setTimeout( - function() { - // Remove the toast from DOM - self.removeElement(divElement); - }, - self.options.duration - ) - } - ) - } - - // Adding an on-click destination path - if (typeof this.options.destination !== "undefined") { - divElement.addEventListener( - "click", - function(event) { - event.stopPropagation(); - if (this.options.newWindow === true) { - window.open(this.options.destination, "_blank"); - } else { - window.location = this.options.destination; - } - }.bind(this) - ); - } - - if (typeof this.options.onClick === "function" && typeof this.options.destination === "undefined") { - divElement.addEventListener( - "click", - function(event) { - event.stopPropagation(); - this.options.onClick(); - }.bind(this) - ); - } - - // Adding offset - if(typeof this.options.offset === "object") { - - var x = getAxisOffsetAValue("x", this.options); - var y = getAxisOffsetAValue("y", this.options); - - var xOffset = this.options.position == "left" ? x : "-" + x; - var yOffset = this.options.gravity == "toastify-top" ? y : "-" + y; - - divElement.style.transform = "translate(" + xOffset + "," + yOffset + ")"; - - } - - // Returning the generated element - return divElement; - }, - - // Displaying the toast - showToast: function() { - // Creating the DOM object for the toast - this.toastElement = this.buildToast(); - - // Getting the root element to with the toast needs to be added - var rootElement; - if (typeof this.options.selector === "undefined") { - rootElement = document.body; - } else { - rootElement = document.getElementById(this.options.selector); - } - - // Validating if root element is present in DOM - if (!rootElement) { - throw "Root element is not defined"; - } - - // Adding the DOM element - rootElement.insertBefore(this.toastElement, rootElement.firstChild); - - // Repositioning the toasts in case multiple toasts are present - Toastify.reposition(); - - if (this.options.duration > 0) { - this.toastElement.timeOutValue = window.setTimeout( - function() { - // Remove the toast from DOM - this.removeElement(this.toastElement); - }.bind(this), - this.options.duration - ); // Binding `this` for function invocation - } - - // Supporting function chaining - return this; - }, - - hideToast: function() { - if (this.toastElement.timeOutValue) { - clearTimeout(this.toastElement.timeOutValue); - } - this.removeElement(this.toastElement); - }, - - // Removing the element from the DOM - removeElement: function(toastElement) { - // Hiding the element - // toastElement.classList.remove("on"); - toastElement.className = toastElement.className.replace(" on", ""); - - // Removing the element from DOM after transition end - window.setTimeout( - function() { - // remove options node if any - if (this.options.node && this.options.node.parentNode) { - this.options.node.parentNode.removeChild(this.options.node); - } - - // Remove the elemenf from the DOM, only when the parent node was not removed before. - if (toastElement.parentNode) { - toastElement.parentNode.removeChild(toastElement); - } - - // Calling the callback function - this.options.callback.call(toastElement); - - // Repositioning the toasts again - Toastify.reposition(); - }.bind(this), - 400 - ); // Binding `this` for function invocation - }, - }; - - // Positioning the toasts on the DOM - Toastify.reposition = function() { - - // Top margins with gravity - var topLeftOffsetSize = { - top: 15, - bottom: 15, - }; - var topRightOffsetSize = { - top: 15, - bottom: 15, - }; - var offsetSize = { - top: 15, - bottom: 15, - }; - - // Get all toast messages on the DOM - var allToasts = document.getElementsByClassName("toastify"); - - var classUsed; - - // Modifying the position of each toast element - for (var i = 0; i < allToasts.length; i++) { - // Getting the applied gravity - if (containsClass(allToasts[i], "toastify-top") === true) { - classUsed = "toastify-top"; - } else { - classUsed = "toastify-bottom"; - } - - var height = allToasts[i].offsetHeight; - classUsed = classUsed.substr(9, classUsed.length-1) - // Spacing between toasts - var offset = 15; - - var width = window.innerWidth > 0 ? window.innerWidth : screen.width; - - // Show toast in center if screen with less than or qual to 360px - if (width <= 360) { - // Setting the position - allToasts[i].style[classUsed] = offsetSize[classUsed] + "px"; - - offsetSize[classUsed] += height + offset; - } else { - if (containsClass(allToasts[i], "toastify-left") === true) { - // Setting the position - allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + "px"; - - topLeftOffsetSize[classUsed] += height + offset; - } else { - // Setting the position - allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + "px"; - - topRightOffsetSize[classUsed] += height + offset; - } - } - } - - // Supporting function chaining - return this; - }; - - // Helper function to get offset. - function getAxisOffsetAValue(axis, options) { - - if(options.offset[axis]) { - if(isNaN(options.offset[axis])) { - return options.offset[axis]; - } - else { - return options.offset[axis] + 'px'; - } - } - - return '0px'; - - } - - function containsClass(elem, yourClass) { - if (!elem || typeof yourClass !== "string") { - return false; - } else if ( - elem.className && - elem.className - .trim() - .split(/\s+/gi) - .indexOf(yourClass) > -1 - ) { - return true; - } else { - return false; - } - } - - // Setting up the prototype for the init object - Toastify.lib.init.prototype = Toastify.lib; - - // Returning the Toastify function to be assigned to the window object/module - return Toastify; -}); diff --git a/src/assets/js/extensions/toastify.js b/src/assets/js/extensions/toastify.js new file mode 100644 index 000000000..b16ba64d2 --- /dev/null +++ b/src/assets/js/extensions/toastify.js @@ -0,0 +1,83 @@ +import Toastify from "toastify-js" + +document.getElementById('basic').addEventListener('click', () => { + Toastify({ + text: "This is a toast", + duration: 3000 + }).showToast(); +}) +document.getElementById('background').addEventListener('click', () => { + Toastify({ + text: "This is a toast", + duration: 3000, + backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + }).showToast(); +}) +document.getElementById('close').addEventListener('click', () => { + Toastify({ + text: "Click close button", + duration: 3000, + close:true, + backgroundColor: "#4fbe87", + }).showToast(); +}) +document.getElementById('top-left').addEventListener('click', () => { + Toastify({ + text: "This is toast in top left", + duration: 3000, + close:true, + gravity:"top", + position: "left", + backgroundColor: "#4fbe87", + }).showToast(); +}) +document.getElementById('top-center').addEventListener('click', () => { + Toastify({ + text: "This is toast in top center", + duration: 3000, + close:true, + gravity:"top", + position: "center", + backgroundColor: "#4fbe87", + }).showToast(); +}) +document.getElementById('top-right').addEventListener('click', () => { + Toastify({ + text: "This is toast in top right", + duration: 3000, + close:true, + gravity:"top", + position: "right", + backgroundColor: "#4fbe87", + }).showToast(); +}) +document.getElementById('bottom-right').addEventListener('click', () => { + Toastify({ + text: "This is toast in bottom right", + duration: 3000, + close:true, + gravity:"bottom", + position: "right", + backgroundColor: "#4fbe87", + }).showToast(); +}) +document.getElementById('bottom-center').addEventListener('click', () => { + Toastify({ + text: "This is toast in bottom center", + duration: 3000, + close:true, + gravity:"bottom", + position: "center", + backgroundColor: "#4fbe87", + }).showToast(); +}) +document.getElementById('bottom-left').addEventListener('click', () => { + Toastify({ + text: "This is toast in bottom left", + duration: 3000, + close:true, + gravity:"bottom", + position: "left", + backgroundColor: "#4fbe87", + }).showToast(); +}) \ No newline at end of file diff --git a/src/assets/scss/pages/toastify.scss b/src/assets/scss/pages/toastify.scss new file mode 100644 index 000000000..27e2d0621 --- /dev/null +++ b/src/assets/scss/pages/toastify.scss @@ -0,0 +1 @@ +@import "~toastify-js/src/toastify" \ No newline at end of file diff --git a/src/extra-component-toastify.html b/src/extra-component-toastify.html index 25024ef21..7da387be1 100644 --- a/src/extra-component-toastify.html +++ b/src/extra-component-toastify.html @@ -90,9 +90,8 @@

Position

{% endblock %} {% block styles %} - + {% endblock %} {% block js %} - {% endblock %} \ No newline at end of file diff --git a/webpack.mix.js b/webpack.mix.js index 4b6085969..d29d64da5 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -10,9 +10,11 @@ mix .sass(`${assetsPath}scss/pages/error.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/email.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/chat.scss`, "assets/css/pages") + .sass(`${assetsPath}scss/pages/toastify.scss`, "assets/css/pages") .sass(`${assetsPath}scss/widgets/chat.scss`, "assets/css/widgets") .sass(`${assetsPath}scss/widgets/todo.scss`, "assets/css/widgets") .js(`${assetsPath}js/mazer.js`, "assets/js") + .js(`${assetsPath}js/extensions/toastify.js`, "assets/js/extensions") .minify("dist/assets/js/mazer.js") .setPublicPath("dist"); From 6661e5ffd06971792e84dd3f41aea7e59b80465c Mon Sep 17 00:00:00 2001 From: Nik Date: Tue, 8 Mar 2022 16:11:50 +0100 Subject: [PATCH 06/83] Load sweetalert2 from npm --- .../vendors/bootstrap-icons/alarm-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/alarm.svg | 1 - .../vendors/bootstrap-icons/align-bottom.svg | 1 - .../vendors/bootstrap-icons/align-center.svg | 1 - .../vendors/bootstrap-icons/align-end.svg | 1 - .../vendors/bootstrap-icons/align-middle.svg | 1 - .../vendors/bootstrap-icons/align-start.svg | 4 - .../vendors/bootstrap-icons/align-top.svg | 1 - dist/assets/vendors/bootstrap-icons/alt.svg | 1 - .../vendors/bootstrap-icons/app-indicator.svg | 1 - dist/assets/vendors/bootstrap-icons/app.svg | 1 - .../vendors/bootstrap-icons/archive-fill.svg | 1 - .../vendors/bootstrap-icons/archive.svg | 1 - .../bootstrap-icons/arrow-90deg-down.svg | 1 - .../bootstrap-icons/arrow-90deg-left.svg | 1 - .../bootstrap-icons/arrow-90deg-right.svg | 1 - .../bootstrap-icons/arrow-90deg-up.svg | 1 - .../bootstrap-icons/arrow-bar-down.svg | 1 - .../bootstrap-icons/arrow-bar-left.svg | 1 - .../bootstrap-icons/arrow-bar-right.svg | 1 - .../vendors/bootstrap-icons/arrow-bar-up.svg | 1 - .../bootstrap-icons/arrow-clockwise.svg | 1 - .../arrow-counterclockwise.svg | 1 - .../arrow-down-circle-fill.svg | 1 - .../bootstrap-icons/arrow-down-circle.svg | 1 - .../arrow-down-left-circle-fill.svg | 1 - .../arrow-down-left-circle.svg | 3 - .../arrow-down-left-square-fill.svg | 1 - .../arrow-down-left-square.svg | 1 - .../bootstrap-icons/arrow-down-left.svg | 1 - .../arrow-down-right-circle-fill.svg | 1 - .../arrow-down-right-circle.svg | 1 - .../arrow-down-right-square-fill.svg | 1 - .../arrow-down-right-square.svg | 1 - .../bootstrap-icons/arrow-down-right.svg | 1 - .../bootstrap-icons/arrow-down-short.svg | 1 - .../arrow-down-square-fill.svg | 1 - .../bootstrap-icons/arrow-down-square.svg | 1 - .../vendors/bootstrap-icons/arrow-down-up.svg | 1 - .../vendors/bootstrap-icons/arrow-down.svg | 1 - .../arrow-left-circle-fill.svg | 1 - .../bootstrap-icons/arrow-left-circle.svg | 1 - .../bootstrap-icons/arrow-left-right.svg | 1 - .../bootstrap-icons/arrow-left-short.svg | 1 - .../arrow-left-square-fill.svg | 1 - .../bootstrap-icons/arrow-left-square.svg | 1 - .../vendors/bootstrap-icons/arrow-left.svg | 1 - .../vendors/bootstrap-icons/arrow-repeat.svg | 1 - .../bootstrap-icons/arrow-return-left.svg | 1 - .../bootstrap-icons/arrow-return-right.svg | 1 - .../arrow-right-circle-fill.svg | 1 - .../bootstrap-icons/arrow-right-circle.svg | 1 - .../bootstrap-icons/arrow-right-short.svg | 1 - .../arrow-right-square-fill.svg | 1 - .../bootstrap-icons/arrow-right-square.svg | 1 - .../vendors/bootstrap-icons/arrow-right.svg | 1 - .../bootstrap-icons/arrow-up-circle-fill.svg | 1 - .../bootstrap-icons/arrow-up-circle.svg | 1 - .../arrow-up-left-circle-fill.svg | 1 - .../bootstrap-icons/arrow-up-left-circle.svg | 1 - .../arrow-up-left-square-fill.svg | 1 - .../bootstrap-icons/arrow-up-left-square.svg | 1 - .../vendors/bootstrap-icons/arrow-up-left.svg | 1 - .../arrow-up-right-circle-fill.svg | 1 - .../bootstrap-icons/arrow-up-right-circle.svg | 1 - .../arrow-up-right-square-fill.svg | 1 - .../bootstrap-icons/arrow-up-right-square.svg | 1 - .../bootstrap-icons/arrow-up-right.svg | 1 - .../bootstrap-icons/arrow-up-short.svg | 1 - .../bootstrap-icons/arrow-up-square-fill.svg | 1 - .../bootstrap-icons/arrow-up-square.svg | 1 - .../vendors/bootstrap-icons/arrow-up.svg | 1 - .../bootstrap-icons/arrows-angle-contract.svg | 1 - .../bootstrap-icons/arrows-angle-expand.svg | 1 - .../bootstrap-icons/arrows-collapse.svg | 1 - .../vendors/bootstrap-icons/arrows-expand.svg | 1 - .../bootstrap-icons/arrows-fullscreen.svg | 1 - .../vendors/bootstrap-icons/arrows-move.svg | 1 - .../bootstrap-icons/aspect-ratio-fill.svg | 1 - .../vendors/bootstrap-icons/aspect-ratio.svg | 1 - .../vendors/bootstrap-icons/asterisk.svg | 1 - dist/assets/vendors/bootstrap-icons/at.svg | 1 - .../vendors/bootstrap-icons/award-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/award.svg | 1 - dist/assets/vendors/bootstrap-icons/back.svg | 1 - .../bootstrap-icons/backspace-fill.svg | 1 - .../backspace-reverse-fill.svg | 1 - .../bootstrap-icons/backspace-reverse.svg | 1 - .../vendors/bootstrap-icons/backspace.svg | 1 - .../vendors/bootstrap-icons/badge-3d-fill.svg | 1 - .../vendors/bootstrap-icons/badge-3d.svg | 4 - .../vendors/bootstrap-icons/badge-4k-fill.svg | 1 - .../vendors/bootstrap-icons/badge-4k.svg | 1 - .../vendors/bootstrap-icons/badge-8k-fill.svg | 4 - .../vendors/bootstrap-icons/badge-8k.svg | 1 - .../vendors/bootstrap-icons/badge-ad-fill.svg | 1 - .../vendors/bootstrap-icons/badge-ad.svg | 1 - .../vendors/bootstrap-icons/badge-ar-fill.svg | 1 - .../vendors/bootstrap-icons/badge-ar.svg | 1 - .../vendors/bootstrap-icons/badge-cc-fill.svg | 1 - .../vendors/bootstrap-icons/badge-cc.svg | 1 - .../vendors/bootstrap-icons/badge-hd-fill.svg | 1 - .../vendors/bootstrap-icons/badge-hd.svg | 1 - .../vendors/bootstrap-icons/badge-tm-fill.svg | 1 - .../vendors/bootstrap-icons/badge-tm.svg | 1 - .../vendors/bootstrap-icons/badge-vo-fill.svg | 4 - .../vendors/bootstrap-icons/badge-vo.svg | 4 - .../vendors/bootstrap-icons/badge-vr-fill.svg | 1 - .../vendors/bootstrap-icons/badge-vr.svg | 1 - .../vendors/bootstrap-icons/badge-wc-fill.svg | 1 - .../vendors/bootstrap-icons/badge-wc.svg | 1 - .../bootstrap-icons/bag-check-fill.svg | 1 - .../vendors/bootstrap-icons/bag-check.svg | 1 - .../vendors/bootstrap-icons/bag-dash-fill.svg | 1 - .../vendors/bootstrap-icons/bag-dash.svg | 1 - .../vendors/bootstrap-icons/bag-fill.svg | 1 - .../vendors/bootstrap-icons/bag-plus-fill.svg | 1 - .../vendors/bootstrap-icons/bag-plus.svg | 1 - .../vendors/bootstrap-icons/bag-x-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/bag-x.svg | 1 - dist/assets/vendors/bootstrap-icons/bag.svg | 1 - .../bootstrap-icons/bar-chart-fill.svg | 3 - .../bootstrap-icons/bar-chart-line-fill.svg | 1 - .../bootstrap-icons/bar-chart-line.svg | 3 - .../bootstrap-icons/bar-chart-steps.svg | 1 - .../vendors/bootstrap-icons/bar-chart.svg | 1 - .../vendors/bootstrap-icons/basket-fill.svg | 1 - .../assets/vendors/bootstrap-icons/basket.svg | 1 - .../vendors/bootstrap-icons/basket2-fill.svg | 1 - .../vendors/bootstrap-icons/basket2.svg | 1 - .../vendors/bootstrap-icons/basket3-fill.svg | 1 - .../vendors/bootstrap-icons/basket3.svg | 1 - .../bootstrap-icons/battery-charging.svg | 1 - .../vendors/bootstrap-icons/battery-full.svg | 1 - .../vendors/bootstrap-icons/battery-half.svg | 1 - .../vendors/bootstrap-icons/battery.svg | 3 - .../vendors/bootstrap-icons/bell-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/bell.svg | 1 - .../assets/vendors/bootstrap-icons/bezier.svg | 1 - .../vendors/bootstrap-icons/bezier2.svg | 1 - .../vendors/bootstrap-icons/bicycle.svg | 1 - .../bootstrap-icons/binoculars-fill.svg | 1 - .../vendors/bootstrap-icons/binoculars.svg | 1 - .../bootstrap-icons/blockquote-left.svg | 1 - .../bootstrap-icons/blockquote-right.svg | 1 - .../vendors/bootstrap-icons/book-fill.svg | 1 - .../vendors/bootstrap-icons/book-half.svg | 1 - dist/assets/vendors/bootstrap-icons/book.svg | 1 - .../bootstrap-icons/bookmark-check-fill.svg | 3 - .../bootstrap-icons/bookmark-check.svg | 1 - .../bootstrap-icons/bookmark-dash-fill.svg | 1 - .../vendors/bootstrap-icons/bookmark-dash.svg | 1 - .../vendors/bootstrap-icons/bookmark-fill.svg | 1 - .../bootstrap-icons/bookmark-heart-fill.svg | 1 - .../bootstrap-icons/bookmark-heart.svg | 1 - .../bootstrap-icons/bookmark-plus-fill.svg | 1 - .../vendors/bootstrap-icons/bookmark-plus.svg | 1 - .../bootstrap-icons/bookmark-star-fill.svg | 1 - .../vendors/bootstrap-icons/bookmark-star.svg | 1 - .../bootstrap-icons/bookmark-x-fill.svg | 1 - .../vendors/bootstrap-icons/bookmark-x.svg | 1 - .../vendors/bootstrap-icons/bookmark.svg | 1 - .../bootstrap-icons/bookmarks-fill.svg | 1 - .../vendors/bootstrap-icons/bookmarks.svg | 1 - .../vendors/bootstrap-icons/bookshelf.svg | 1 - .../bootstrap-icons/bootstrap-fill.svg | 1 - .../bootstrap-icons/bootstrap-icons.css | 1285 ----- .../bootstrap-icons/bootstrap-icons.json | 1267 ---- .../bootstrap-icons/bootstrap-icons.svg | 1 - .../bootstrap-icons/bootstrap-reboot.svg | 1 - .../vendors/bootstrap-icons/bootstrap.svg | 1 - .../vendors/bootstrap-icons/border-all.svg | 1 - .../vendors/bootstrap-icons/border-bottom.svg | 1 - .../vendors/bootstrap-icons/border-center.svg | 1 - .../vendors/bootstrap-icons/border-inner.svg | 1 - .../vendors/bootstrap-icons/border-left.svg | 1 - .../vendors/bootstrap-icons/border-middle.svg | 1 - .../vendors/bootstrap-icons/border-outer.svg | 1 - .../vendors/bootstrap-icons/border-right.svg | 1 - .../vendors/bootstrap-icons/border-style.svg | 1 - .../vendors/bootstrap-icons/border-top.svg | 3 - .../vendors/bootstrap-icons/border-width.svg | 1 - .../assets/vendors/bootstrap-icons/border.svg | 1 - .../bootstrap-icons/bounding-box-circles.svg | 1 - .../vendors/bootstrap-icons/bounding-box.svg | 1 - .../bootstrap-icons/box-arrow-down-left.svg | 1 - .../bootstrap-icons/box-arrow-down-right.svg | 1 - .../bootstrap-icons/box-arrow-down.svg | 1 - .../box-arrow-in-down-left.svg | 1 - .../box-arrow-in-down-right.svg | 1 - .../bootstrap-icons/box-arrow-in-down.svg | 1 - .../bootstrap-icons/box-arrow-in-left.svg | 1 - .../bootstrap-icons/box-arrow-in-right.svg | 1 - .../bootstrap-icons/box-arrow-in-up-left.svg | 1 - .../bootstrap-icons/box-arrow-in-up-right.svg | 1 - .../bootstrap-icons/box-arrow-in-up.svg | 1 - .../bootstrap-icons/box-arrow-left.svg | 1 - .../bootstrap-icons/box-arrow-right.svg | 1 - .../bootstrap-icons/box-arrow-up-left.svg | 1 - .../bootstrap-icons/box-arrow-up-right.svg | 1 - .../vendors/bootstrap-icons/box-arrow-up.svg | 1 - .../vendors/bootstrap-icons/box-seam.svg | 1 - dist/assets/vendors/bootstrap-icons/box.svg | 1 - .../assets/vendors/bootstrap-icons/braces.svg | 1 - .../assets/vendors/bootstrap-icons/bricks.svg | 1 - .../bootstrap-icons/briefcase-fill.svg | 4 - .../vendors/bootstrap-icons/briefcase.svg | 1 - .../brightness-alt-high-fill.svg | 1 - .../bootstrap-icons/brightness-alt-high.svg | 1 - .../brightness-alt-low-fill.svg | 1 - .../bootstrap-icons/brightness-alt-low.svg | 1 - .../bootstrap-icons/brightness-high-fill.svg | 1 - .../bootstrap-icons/brightness-high.svg | 1 - .../bootstrap-icons/brightness-low-fill.svg | 1 - .../bootstrap-icons/brightness-low.svg | 1 - .../vendors/bootstrap-icons/broadcast-pin.svg | 1 - .../vendors/bootstrap-icons/broadcast.svg | 1 - .../vendors/bootstrap-icons/brush-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/brush.svg | 1 - .../vendors/bootstrap-icons/bucket-fill.svg | 1 - .../assets/vendors/bootstrap-icons/bucket.svg | 1 - .../vendors/bootstrap-icons/bug-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/bug.svg | 1 - .../vendors/bootstrap-icons/building.svg | 1 - .../vendors/bootstrap-icons/bullseye.svg | 1 - .../bootstrap-icons/calculator-fill.svg | 1 - .../vendors/bootstrap-icons/calculator.svg | 1 - .../bootstrap-icons/calendar-check-fill.svg | 1 - .../bootstrap-icons/calendar-check.svg | 1 - .../bootstrap-icons/calendar-date-fill.svg | 1 - .../vendors/bootstrap-icons/calendar-date.svg | 1 - .../bootstrap-icons/calendar-day-fill.svg | 1 - .../vendors/bootstrap-icons/calendar-day.svg | 1 - .../bootstrap-icons/calendar-event-fill.svg | 1 - .../bootstrap-icons/calendar-event.svg | 1 - .../vendors/bootstrap-icons/calendar-fill.svg | 1 - .../bootstrap-icons/calendar-minus-fill.svg | 1 - .../bootstrap-icons/calendar-minus.svg | 1 - .../bootstrap-icons/calendar-month-fill.svg | 1 - .../bootstrap-icons/calendar-month.svg | 1 - .../bootstrap-icons/calendar-plus-fill.svg | 3 - .../vendors/bootstrap-icons/calendar-plus.svg | 1 - .../bootstrap-icons/calendar-range-fill.svg | 1 - .../bootstrap-icons/calendar-range.svg | 1 - .../bootstrap-icons/calendar-week-fill.svg | 1 - .../vendors/bootstrap-icons/calendar-week.svg | 1 - .../bootstrap-icons/calendar-x-fill.svg | 1 - .../vendors/bootstrap-icons/calendar-x.svg | 1 - .../vendors/bootstrap-icons/calendar.svg | 1 - .../bootstrap-icons/calendar2-check-fill.svg | 1 - .../bootstrap-icons/calendar2-check.svg | 1 - .../bootstrap-icons/calendar2-date-fill.svg | 1 - .../bootstrap-icons/calendar2-date.svg | 1 - .../bootstrap-icons/calendar2-day-fill.svg | 1 - .../vendors/bootstrap-icons/calendar2-day.svg | 1 - .../bootstrap-icons/calendar2-event-fill.svg | 1 - .../bootstrap-icons/calendar2-event.svg | 5 - .../bootstrap-icons/calendar2-fill.svg | 1 - .../bootstrap-icons/calendar2-minus-fill.svg | 3 - .../bootstrap-icons/calendar2-minus.svg | 1 - .../bootstrap-icons/calendar2-month-fill.svg | 1 - .../bootstrap-icons/calendar2-month.svg | 1 - .../bootstrap-icons/calendar2-plus-fill.svg | 1 - .../bootstrap-icons/calendar2-plus.svg | 1 - .../bootstrap-icons/calendar2-range-fill.svg | 1 - .../bootstrap-icons/calendar2-range.svg | 1 - .../bootstrap-icons/calendar2-week-fill.svg | 1 - .../bootstrap-icons/calendar2-week.svg | 1 - .../bootstrap-icons/calendar2-x-fill.svg | 1 - .../vendors/bootstrap-icons/calendar2-x.svg | 1 - .../vendors/bootstrap-icons/calendar2.svg | 1 - .../bootstrap-icons/calendar3-event-fill.svg | 1 - .../bootstrap-icons/calendar3-event.svg | 1 - .../bootstrap-icons/calendar3-fill.svg | 1 - .../bootstrap-icons/calendar3-range-fill.svg | 1 - .../bootstrap-icons/calendar3-range.svg | 1 - .../bootstrap-icons/calendar3-week-fill.svg | 1 - .../bootstrap-icons/calendar3-week.svg | 1 - .../vendors/bootstrap-icons/calendar3.svg | 1 - .../bootstrap-icons/calendar4-event.svg | 1 - .../bootstrap-icons/calendar4-range.svg | 1 - .../bootstrap-icons/calendar4-week.svg | 1 - .../vendors/bootstrap-icons/calendar4.svg | 1 - .../vendors/bootstrap-icons/camera-fill.svg | 1 - .../bootstrap-icons/camera-reels-fill.svg | 1 - .../vendors/bootstrap-icons/camera-reels.svg | 1 - .../bootstrap-icons/camera-video-fill.svg | 3 - .../bootstrap-icons/camera-video-off-fill.svg | 1 - .../bootstrap-icons/camera-video-off.svg | 1 - .../vendors/bootstrap-icons/camera-video.svg | 1 - .../assets/vendors/bootstrap-icons/camera.svg | 1 - .../vendors/bootstrap-icons/camera2.svg | 1 - .../vendors/bootstrap-icons/capslock-fill.svg | 1 - .../vendors/bootstrap-icons/capslock.svg | 1 - .../bootstrap-icons/card-checklist.svg | 1 - .../vendors/bootstrap-icons/card-heading.svg | 1 - .../vendors/bootstrap-icons/card-image.svg | 1 - .../vendors/bootstrap-icons/card-list.svg | 1 - .../vendors/bootstrap-icons/card-text.svg | 1 - .../bootstrap-icons/caret-down-fill.svg | 1 - .../caret-down-square-fill.svg | 1 - .../bootstrap-icons/caret-down-square.svg | 1 - .../vendors/bootstrap-icons/caret-down.svg | 3 - .../bootstrap-icons/caret-left-fill.svg | 1 - .../caret-left-square-fill.svg | 1 - .../bootstrap-icons/caret-left-square.svg | 1 - .../vendors/bootstrap-icons/caret-left.svg | 1 - .../bootstrap-icons/caret-right-fill.svg | 1 - .../caret-right-square-fill.svg | 1 - .../bootstrap-icons/caret-right-square.svg | 1 - .../vendors/bootstrap-icons/caret-right.svg | 1 - .../vendors/bootstrap-icons/caret-up-fill.svg | 1 - .../bootstrap-icons/caret-up-square-fill.svg | 1 - .../bootstrap-icons/caret-up-square.svg | 1 - .../vendors/bootstrap-icons/caret-up.svg | 1 - .../bootstrap-icons/cart-check-fill.svg | 1 - .../vendors/bootstrap-icons/cart-check.svg | 1 - .../bootstrap-icons/cart-dash-fill.svg | 1 - .../vendors/bootstrap-icons/cart-dash.svg | 1 - .../vendors/bootstrap-icons/cart-fill.svg | 1 - .../bootstrap-icons/cart-plus-fill.svg | 1 - .../vendors/bootstrap-icons/cart-plus.svg | 1 - .../vendors/bootstrap-icons/cart-x-fill.svg | 1 - .../assets/vendors/bootstrap-icons/cart-x.svg | 1 - dist/assets/vendors/bootstrap-icons/cart.svg | 1 - dist/assets/vendors/bootstrap-icons/cart2.svg | 1 - dist/assets/vendors/bootstrap-icons/cart3.svg | 1 - dist/assets/vendors/bootstrap-icons/cart4.svg | 1 - .../vendors/bootstrap-icons/cash-stack.svg | 1 - dist/assets/vendors/bootstrap-icons/cash.svg | 1 - dist/assets/vendors/bootstrap-icons/cast.svg | 1 - .../bootstrap-icons/chat-dots-fill.svg | 3 - .../vendors/bootstrap-icons/chat-dots.svg | 1 - .../vendors/bootstrap-icons/chat-fill.svg | 1 - .../bootstrap-icons/chat-left-dots-fill.svg | 3 - .../bootstrap-icons/chat-left-dots.svg | 1 - .../bootstrap-icons/chat-left-fill.svg | 1 - .../bootstrap-icons/chat-left-quote-fill.svg | 1 - .../bootstrap-icons/chat-left-quote.svg | 4 - .../bootstrap-icons/chat-left-text-fill.svg | 3 - .../bootstrap-icons/chat-left-text.svg | 1 - .../vendors/bootstrap-icons/chat-left.svg | 1 - .../bootstrap-icons/chat-quote-fill.svg | 3 - .../vendors/bootstrap-icons/chat-quote.svg | 1 - .../bootstrap-icons/chat-right-dots-fill.svg | 1 - .../bootstrap-icons/chat-right-dots.svg | 1 - .../bootstrap-icons/chat-right-fill.svg | 1 - .../bootstrap-icons/chat-right-quote-fill.svg | 1 - .../bootstrap-icons/chat-right-quote.svg | 1 - .../bootstrap-icons/chat-right-text-fill.svg | 1 - .../bootstrap-icons/chat-right-text.svg | 1 - .../vendors/bootstrap-icons/chat-right.svg | 1 - .../bootstrap-icons/chat-square-dots-fill.svg | 1 - .../bootstrap-icons/chat-square-dots.svg | 1 - .../bootstrap-icons/chat-square-fill.svg | 1 - .../chat-square-quote-fill.svg | 1 - .../bootstrap-icons/chat-square-quote.svg | 1 - .../bootstrap-icons/chat-square-text-fill.svg | 1 - .../bootstrap-icons/chat-square-text.svg | 1 - .../vendors/bootstrap-icons/chat-square.svg | 1 - .../bootstrap-icons/chat-text-fill.svg | 3 - .../vendors/bootstrap-icons/chat-text.svg | 1 - dist/assets/vendors/bootstrap-icons/chat.svg | 1 - .../vendors/bootstrap-icons/check-all.svg | 1 - .../bootstrap-icons/check-circle-fill.svg | 1 - .../vendors/bootstrap-icons/check-circle.svg | 1 - .../bootstrap-icons/check-square-fill.svg | 1 - .../vendors/bootstrap-icons/check-square.svg | 1 - dist/assets/vendors/bootstrap-icons/check.svg | 1 - .../vendors/bootstrap-icons/check2-all.svg | 1 - .../vendors/bootstrap-icons/check2-circle.svg | 1 - .../vendors/bootstrap-icons/check2-square.svg | 1 - .../assets/vendors/bootstrap-icons/check2.svg | 1 - .../bootstrap-icons/chevron-bar-contract.svg | 1 - .../bootstrap-icons/chevron-bar-down.svg | 1 - .../bootstrap-icons/chevron-bar-expand.svg | 1 - .../bootstrap-icons/chevron-bar-left.svg | 1 - .../bootstrap-icons/chevron-bar-right.svg | 1 - .../bootstrap-icons/chevron-bar-up.svg | 1 - .../bootstrap-icons/chevron-compact-down.svg | 1 - .../bootstrap-icons/chevron-compact-left.svg | 1 - .../bootstrap-icons/chevron-compact-right.svg | 1 - .../bootstrap-icons/chevron-compact-up.svg | 1 - .../bootstrap-icons/chevron-contract.svg | 1 - .../bootstrap-icons/chevron-double-down.svg | 1 - .../bootstrap-icons/chevron-double-left.svg | 1 - .../bootstrap-icons/chevron-double-right.svg | 1 - .../bootstrap-icons/chevron-double-up.svg | 4 - .../vendors/bootstrap-icons/chevron-down.svg | 1 - .../bootstrap-icons/chevron-expand.svg | 1 - .../vendors/bootstrap-icons/chevron-left.svg | 1 - .../vendors/bootstrap-icons/chevron-right.svg | 1 - .../vendors/bootstrap-icons/chevron-up.svg | 1 - .../vendors/bootstrap-icons/circle-fill.svg | 1 - .../vendors/bootstrap-icons/circle-half.svg | 1 - .../vendors/bootstrap-icons/circle-square.svg | 1 - .../assets/vendors/bootstrap-icons/circle.svg | 1 - .../bootstrap-icons/clipboard-check.svg | 5 - .../bootstrap-icons/clipboard-data.svg | 1 - .../bootstrap-icons/clipboard-minus.svg | 1 - .../bootstrap-icons/clipboard-plus.svg | 1 - .../vendors/bootstrap-icons/clipboard-x.svg | 1 - .../vendors/bootstrap-icons/clipboard.svg | 1 - .../vendors/bootstrap-icons/clock-fill.svg | 1 - .../vendors/bootstrap-icons/clock-history.svg | 1 - dist/assets/vendors/bootstrap-icons/clock.svg | 1 - .../bootstrap-icons/cloud-arrow-down-fill.svg | 1 - .../bootstrap-icons/cloud-arrow-down.svg | 1 - .../bootstrap-icons/cloud-arrow-up-fill.svg | 1 - .../bootstrap-icons/cloud-arrow-up.svg | 1 - .../bootstrap-icons/cloud-check-fill.svg | 3 - .../vendors/bootstrap-icons/cloud-check.svg | 1 - .../bootstrap-icons/cloud-download-fill.svg | 1 - .../bootstrap-icons/cloud-download.svg | 1 - .../vendors/bootstrap-icons/cloud-fill.svg | 3 - .../bootstrap-icons/cloud-minus-fill.svg | 1 - .../vendors/bootstrap-icons/cloud-minus.svg | 1 - .../bootstrap-icons/cloud-plus-fill.svg | 1 - .../vendors/bootstrap-icons/cloud-plus.svg | 1 - .../bootstrap-icons/cloud-slash-fill.svg | 1 - .../vendors/bootstrap-icons/cloud-slash.svg | 1 - .../bootstrap-icons/cloud-upload-fill.svg | 1 - .../vendors/bootstrap-icons/cloud-upload.svg | 1 - dist/assets/vendors/bootstrap-icons/cloud.svg | 1 - .../vendors/bootstrap-icons/code-slash.svg | 1 - .../vendors/bootstrap-icons/code-square.svg | 1 - dist/assets/vendors/bootstrap-icons/code.svg | 3 - .../bootstrap-icons/collection-fill.svg | 1 - .../bootstrap-icons/collection-play-fill.svg | 1 - .../bootstrap-icons/collection-play.svg | 1 - .../vendors/bootstrap-icons/collection.svg | 1 - .../vendors/bootstrap-icons/columns-gap.svg | 1 - .../vendors/bootstrap-icons/columns.svg | 1 - .../vendors/bootstrap-icons/command.svg | 1 - .../vendors/bootstrap-icons/compass-fill.svg | 1 - .../vendors/bootstrap-icons/compass.svg | 1 - .../vendors/bootstrap-icons/cone-striped.svg | 1 - dist/assets/vendors/bootstrap-icons/cone.svg | 1 - .../vendors/bootstrap-icons/controller.svg | 1 - .../vendors/bootstrap-icons/cpu-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/cpu.svg | 1 - .../credit-card-2-back-fill.svg | 1 - .../bootstrap-icons/credit-card-2-back.svg | 1 - .../credit-card-2-front-fill.svg | 1 - .../bootstrap-icons/credit-card-2-front.svg | 4 - .../bootstrap-icons/credit-card-fill.svg | 1 - .../vendors/bootstrap-icons/credit-card.svg | 1 - dist/assets/vendors/bootstrap-icons/crop.svg | 1 - .../vendors/bootstrap-icons/cup-fill.svg | 1 - .../vendors/bootstrap-icons/cup-straw.svg | 1 - dist/assets/vendors/bootstrap-icons/cup.svg | 1 - .../vendors/bootstrap-icons/cursor-fill.svg | 1 - .../vendors/bootstrap-icons/cursor-text.svg | 1 - .../assets/vendors/bootstrap-icons/cursor.svg | 1 - .../bootstrap-icons/dash-circle-dotted.svg | 3 - .../bootstrap-icons/dash-circle-fill.svg | 1 - .../vendors/bootstrap-icons/dash-circle.svg | 1 - .../bootstrap-icons/dash-square-dotted.svg | 1 - .../bootstrap-icons/dash-square-fill.svg | 3 - .../vendors/bootstrap-icons/dash-square.svg | 1 - dist/assets/vendors/bootstrap-icons/dash.svg | 1 - .../bootstrap-icons/diagram-2-fill.svg | 1 - .../vendors/bootstrap-icons/diagram-2.svg | 1 - .../bootstrap-icons/diagram-3-fill.svg | 3 - .../vendors/bootstrap-icons/diagram-3.svg | 1 - .../vendors/bootstrap-icons/diamond-fill.svg | 1 - .../vendors/bootstrap-icons/diamond-half.svg | 1 - .../vendors/bootstrap-icons/diamond.svg | 1 - .../vendors/bootstrap-icons/dice-1-fill.svg | 1 - .../assets/vendors/bootstrap-icons/dice-1.svg | 1 - .../vendors/bootstrap-icons/dice-2-fill.svg | 1 - .../assets/vendors/bootstrap-icons/dice-2.svg | 1 - .../vendors/bootstrap-icons/dice-3-fill.svg | 1 - .../assets/vendors/bootstrap-icons/dice-3.svg | 1 - .../vendors/bootstrap-icons/dice-4-fill.svg | 1 - .../assets/vendors/bootstrap-icons/dice-4.svg | 1 - .../vendors/bootstrap-icons/dice-5-fill.svg | 1 - .../assets/vendors/bootstrap-icons/dice-5.svg | 1 - .../vendors/bootstrap-icons/dice-6-fill.svg | 1 - .../assets/vendors/bootstrap-icons/dice-6.svg | 1 - .../vendors/bootstrap-icons/disc-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/disc.svg | 1 - .../vendors/bootstrap-icons/discord.svg | 4 - .../vendors/bootstrap-icons/display-fill.svg | 1 - .../vendors/bootstrap-icons/display.svg | 1 - .../bootstrap-icons/distribute-horizontal.svg | 1 - .../bootstrap-icons/distribute-vertical.svg | 1 - .../bootstrap-icons/door-closed-fill.svg | 1 - .../vendors/bootstrap-icons/door-closed.svg | 1 - .../bootstrap-icons/door-open-fill.svg | 1 - .../vendors/bootstrap-icons/door-open.svg | 1 - dist/assets/vendors/bootstrap-icons/dot.svg | 1 - .../vendors/bootstrap-icons/download.svg | 1 - .../vendors/bootstrap-icons/droplet-fill.svg | 1 - .../vendors/bootstrap-icons/droplet-half.svg | 1 - .../vendors/bootstrap-icons/droplet.svg | 1 - .../vendors/bootstrap-icons/earbuds.svg | 1 - .../vendors/bootstrap-icons/easel-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/easel.svg | 1 - .../vendors/bootstrap-icons/egg-fill.svg | 1 - .../vendors/bootstrap-icons/egg-fried.svg | 1 - dist/assets/vendors/bootstrap-icons/egg.svg | 1 - .../vendors/bootstrap-icons/eject-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/eject.svg | 1 - .../bootstrap-icons/emoji-angry-fill.svg | 1 - .../vendors/bootstrap-icons/emoji-angry.svg | 1 - .../bootstrap-icons/emoji-dizzy-fill.svg | 1 - .../vendors/bootstrap-icons/emoji-dizzy.svg | 1 - .../emoji-expressionless-fill.svg | 1 - .../bootstrap-icons/emoji-expressionless.svg | 1 - .../bootstrap-icons/emoji-frown-fill.svg | 1 - .../vendors/bootstrap-icons/emoji-frown.svg | 1 - .../bootstrap-icons/emoji-heart-eyes-fill.svg | 3 - .../bootstrap-icons/emoji-heart-eyes.svg | 1 - .../bootstrap-icons/emoji-laughing-fill.svg | 1 - .../bootstrap-icons/emoji-laughing.svg | 1 - .../bootstrap-icons/emoji-neutral-fill.svg | 1 - .../vendors/bootstrap-icons/emoji-neutral.svg | 1 - .../bootstrap-icons/emoji-smile-fill.svg | 1 - .../emoji-smile-upside-down-fill.svg | 3 - .../emoji-smile-upside-down.svg | 1 - .../vendors/bootstrap-icons/emoji-smile.svg | 1 - .../bootstrap-icons/emoji-sunglasses-fill.svg | 1 - .../bootstrap-icons/emoji-sunglasses.svg | 1 - .../bootstrap-icons/emoji-wink-fill.svg | 1 - .../vendors/bootstrap-icons/emoji-wink.svg | 1 - .../vendors/bootstrap-icons/envelope-fill.svg | 1 - .../bootstrap-icons/envelope-open-fill.svg | 1 - .../vendors/bootstrap-icons/envelope-open.svg | 1 - .../vendors/bootstrap-icons/envelope.svg | 1 - .../vendors/bootstrap-icons/eraser-fill.svg | 3 - .../assets/vendors/bootstrap-icons/eraser.svg | 1 - .../exclamation-circle-fill.svg | 1 - .../bootstrap-icons/exclamation-circle.svg | 1 - .../exclamation-diamond-fill.svg | 1 - .../bootstrap-icons/exclamation-diamond.svg | 1 - .../exclamation-octagon-fill.svg | 1 - .../bootstrap-icons/exclamation-octagon.svg | 1 - .../exclamation-square-fill.svg | 1 - .../bootstrap-icons/exclamation-square.svg | 1 - .../exclamation-triangle-fill.svg | 1 - .../bootstrap-icons/exclamation-triangle.svg | 1 - .../vendors/bootstrap-icons/exclamation.svg | 1 - .../vendors/bootstrap-icons/exclude.svg | 1 - .../vendors/bootstrap-icons/eye-fill.svg | 1 - .../bootstrap-icons/eye-slash-fill.svg | 1 - .../vendors/bootstrap-icons/eye-slash.svg | 1 - dist/assets/vendors/bootstrap-icons/eye.svg | 4 - .../vendors/bootstrap-icons/eyedropper.svg | 1 - .../vendors/bootstrap-icons/eyeglasses.svg | 1 - .../vendors/bootstrap-icons/facebook.svg | 1 - .../bootstrap-icons/file-arrow-down-fill.svg | 1 - .../bootstrap-icons/file-arrow-down.svg | 1 - .../bootstrap-icons/file-arrow-up-fill.svg | 1 - .../vendors/bootstrap-icons/file-arrow-up.svg | 1 - .../bootstrap-icons/file-bar-graph-fill.svg | 3 - .../bootstrap-icons/file-bar-graph.svg | 1 - .../bootstrap-icons/file-binary-fill.svg | 1 - .../vendors/bootstrap-icons/file-binary.svg | 1 - .../bootstrap-icons/file-break-fill.svg | 1 - .../vendors/bootstrap-icons/file-break.svg | 1 - .../bootstrap-icons/file-check-fill.svg | 1 - .../vendors/bootstrap-icons/file-check.svg | 1 - .../bootstrap-icons/file-code-fill.svg | 1 - .../vendors/bootstrap-icons/file-code.svg | 1 - .../bootstrap-icons/file-diff-fill.svg | 1 - .../vendors/bootstrap-icons/file-diff.svg | 1 - .../file-earmark-arrow-down-fill.svg | 1 - .../file-earmark-arrow-down.svg | 4 - .../file-earmark-arrow-up-fill.svg | 1 - .../bootstrap-icons/file-earmark-arrow-up.svg | 1 - .../file-earmark-bar-graph-fill.svg | 1 - .../file-earmark-bar-graph.svg | 1 - .../file-earmark-binary-fill.svg | 1 - .../bootstrap-icons/file-earmark-binary.svg | 1 - .../file-earmark-break-fill.svg | 1 - .../bootstrap-icons/file-earmark-break.svg | 3 - .../file-earmark-check-fill.svg | 1 - .../bootstrap-icons/file-earmark-check.svg | 1 - .../file-earmark-code-fill.svg | 1 - .../bootstrap-icons/file-earmark-code.svg | 1 - .../file-earmark-diff-fill.svg | 1 - .../bootstrap-icons/file-earmark-diff.svg | 1 - .../file-earmark-easel-fill.svg | 1 - .../bootstrap-icons/file-earmark-easel.svg | 1 - .../file-earmark-excel-fill.svg | 1 - .../bootstrap-icons/file-earmark-excel.svg | 1 - .../bootstrap-icons/file-earmark-fill.svg | 1 - .../file-earmark-font-fill.svg | 1 - .../bootstrap-icons/file-earmark-font.svg | 1 - .../file-earmark-image-fill.svg | 1 - .../bootstrap-icons/file-earmark-image.svg | 1 - .../file-earmark-lock-fill.svg | 1 - .../bootstrap-icons/file-earmark-lock.svg | 1 - .../file-earmark-lock2-fill.svg | 1 - .../bootstrap-icons/file-earmark-lock2.svg | 1 - .../file-earmark-medical-fill.svg | 1 - .../bootstrap-icons/file-earmark-medical.svg | 1 - .../file-earmark-minus-fill.svg | 3 - .../bootstrap-icons/file-earmark-minus.svg | 1 - .../file-earmark-music-fill.svg | 1 - .../bootstrap-icons/file-earmark-music.svg | 1 - .../file-earmark-person-fill.svg | 1 - .../bootstrap-icons/file-earmark-person.svg | 1 - .../file-earmark-play-fill.svg | 1 - .../bootstrap-icons/file-earmark-play.svg | 1 - .../file-earmark-plus-fill.svg | 3 - .../bootstrap-icons/file-earmark-plus.svg | 1 - .../file-earmark-post-fill.svg | 1 - .../bootstrap-icons/file-earmark-post.svg | 1 - .../bootstrap-icons/file-earmark-ppt-fill.svg | 1 - .../bootstrap-icons/file-earmark-ppt.svg | 1 - .../file-earmark-richtext-fill.svg | 1 - .../bootstrap-icons/file-earmark-richtext.svg | 1 - .../file-earmark-ruled-fill.svg | 1 - .../bootstrap-icons/file-earmark-ruled.svg | 1 - .../file-earmark-slides-fill.svg | 1 - .../bootstrap-icons/file-earmark-slides.svg | 1 - .../file-earmark-spreadsheet-fill.svg | 1 - .../file-earmark-spreadsheet.svg | 1 - .../file-earmark-text-fill.svg | 3 - .../bootstrap-icons/file-earmark-text.svg | 4 - .../file-earmark-word-fill.svg | 1 - .../bootstrap-icons/file-earmark-word.svg | 1 - .../bootstrap-icons/file-earmark-x-fill.svg | 1 - .../bootstrap-icons/file-earmark-x.svg | 1 - .../bootstrap-icons/file-earmark-zip-fill.svg | 1 - .../bootstrap-icons/file-earmark-zip.svg | 1 - .../vendors/bootstrap-icons/file-earmark.svg | 1 - .../bootstrap-icons/file-easel-fill.svg | 1 - .../vendors/bootstrap-icons/file-easel.svg | 1 - .../bootstrap-icons/file-excel-fill.svg | 1 - .../vendors/bootstrap-icons/file-excel.svg | 1 - .../vendors/bootstrap-icons/file-fill.svg | 1 - .../bootstrap-icons/file-font-fill.svg | 1 - .../vendors/bootstrap-icons/file-font.svg | 1 - .../bootstrap-icons/file-image-fill.svg | 1 - .../vendors/bootstrap-icons/file-image.svg | 1 - .../bootstrap-icons/file-lock-fill.svg | 1 - .../vendors/bootstrap-icons/file-lock.svg | 1 - .../bootstrap-icons/file-lock2-fill.svg | 1 - .../vendors/bootstrap-icons/file-lock2.svg | 1 - .../bootstrap-icons/file-medical-fill.svg | 1 - .../vendors/bootstrap-icons/file-medical.svg | 1 - .../bootstrap-icons/file-minus-fill.svg | 1 - .../vendors/bootstrap-icons/file-minus.svg | 4 - .../bootstrap-icons/file-music-fill.svg | 1 - .../vendors/bootstrap-icons/file-music.svg | 1 - .../bootstrap-icons/file-person-fill.svg | 3 - .../vendors/bootstrap-icons/file-person.svg | 1 - .../bootstrap-icons/file-play-fill.svg | 1 - .../vendors/bootstrap-icons/file-play.svg | 1 - .../bootstrap-icons/file-plus-fill.svg | 3 - .../vendors/bootstrap-icons/file-plus.svg | 1 - .../bootstrap-icons/file-post-fill.svg | 1 - .../vendors/bootstrap-icons/file-post.svg | 1 - .../vendors/bootstrap-icons/file-ppt-fill.svg | 1 - .../vendors/bootstrap-icons/file-ppt.svg | 1 - .../bootstrap-icons/file-richtext-fill.svg | 1 - .../vendors/bootstrap-icons/file-richtext.svg | 1 - .../bootstrap-icons/file-ruled-fill.svg | 1 - .../vendors/bootstrap-icons/file-ruled.svg | 1 - .../bootstrap-icons/file-slides-fill.svg | 1 - .../vendors/bootstrap-icons/file-slides.svg | 1 - .../bootstrap-icons/file-spreadsheet-fill.svg | 1 - .../bootstrap-icons/file-spreadsheet.svg | 1 - .../bootstrap-icons/file-text-fill.svg | 1 - .../vendors/bootstrap-icons/file-text.svg | 1 - .../bootstrap-icons/file-word-fill.svg | 1 - .../vendors/bootstrap-icons/file-word.svg | 1 - .../vendors/bootstrap-icons/file-x-fill.svg | 1 - .../assets/vendors/bootstrap-icons/file-x.svg | 1 - .../vendors/bootstrap-icons/file-zip-fill.svg | 1 - .../vendors/bootstrap-icons/file-zip.svg | 1 - dist/assets/vendors/bootstrap-icons/file.svg | 1 - .../vendors/bootstrap-icons/files-alt.svg | 1 - dist/assets/vendors/bootstrap-icons/files.svg | 1 - dist/assets/vendors/bootstrap-icons/film.svg | 1 - .../bootstrap-icons/filter-circle-fill.svg | 1 - .../vendors/bootstrap-icons/filter-circle.svg | 1 - .../vendors/bootstrap-icons/filter-left.svg | 1 - .../vendors/bootstrap-icons/filter-right.svg | 1 - .../bootstrap-icons/filter-square-fill.svg | 1 - .../vendors/bootstrap-icons/filter-square.svg | 1 - .../assets/vendors/bootstrap-icons/filter.svg | 1 - .../vendors/bootstrap-icons/flag-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/flag.svg | 1 - .../vendors/bootstrap-icons/flower1.svg | 1 - .../vendors/bootstrap-icons/flower2.svg | 1 - .../vendors/bootstrap-icons/flower3.svg | 1 - .../vendors/bootstrap-icons/folder-check.svg | 1 - .../vendors/bootstrap-icons/folder-fill.svg | 1 - .../vendors/bootstrap-icons/folder-minus.svg | 1 - .../vendors/bootstrap-icons/folder-plus.svg | 1 - .../bootstrap-icons/folder-symlink-fill.svg | 1 - .../bootstrap-icons/folder-symlink.svg | 1 - .../vendors/bootstrap-icons/folder-x.svg | 1 - .../assets/vendors/bootstrap-icons/folder.svg | 1 - .../vendors/bootstrap-icons/folder2-open.svg | 1 - .../vendors/bootstrap-icons/folder2.svg | 1 - dist/assets/vendors/bootstrap-icons/fonts.svg | 1 - .../fonts/bootstrap-icons.woff | Bin 106812 -> 0 bytes .../fonts/bootstrap-icons.woff2 | Bin 80564 -> 0 bytes .../vendors/bootstrap-icons/forward-fill.svg | 1 - .../vendors/bootstrap-icons/forward.svg | 1 - dist/assets/vendors/bootstrap-icons/front.svg | 1 - .../bootstrap-icons/fullscreen-exit.svg | 1 - .../vendors/bootstrap-icons/fullscreen.svg | 1 - .../vendors/bootstrap-icons/funnel-fill.svg | 1 - .../assets/vendors/bootstrap-icons/funnel.svg | 1 - .../vendors/bootstrap-icons/gear-fill.svg | 3 - .../bootstrap-icons/gear-wide-connected.svg | 1 - .../vendors/bootstrap-icons/gear-wide.svg | 3 - dist/assets/vendors/bootstrap-icons/gear.svg | 1 - dist/assets/vendors/bootstrap-icons/gem.svg | 1 - .../vendors/bootstrap-icons/geo-alt-fill.svg | 1 - .../vendors/bootstrap-icons/geo-alt.svg | 1 - .../vendors/bootstrap-icons/geo-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/geo.svg | 1 - .../vendors/bootstrap-icons/gift-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/gift.svg | 1 - .../assets/vendors/bootstrap-icons/github.svg | 1 - dist/assets/vendors/bootstrap-icons/globe.svg | 1 - .../assets/vendors/bootstrap-icons/globe2.svg | 1 - .../assets/vendors/bootstrap-icons/google.svg | 1 - .../vendors/bootstrap-icons/graph-down.svg | 1 - .../vendors/bootstrap-icons/graph-up.svg | 1 - .../vendors/bootstrap-icons/grid-1x2-fill.svg | 1 - .../vendors/bootstrap-icons/grid-1x2.svg | 1 - .../bootstrap-icons/grid-3x2-gap-fill.svg | 1 - .../vendors/bootstrap-icons/grid-3x2-gap.svg | 1 - .../vendors/bootstrap-icons/grid-3x2.svg | 1 - .../bootstrap-icons/grid-3x3-gap-fill.svg | 1 - .../vendors/bootstrap-icons/grid-3x3-gap.svg | 1 - .../vendors/bootstrap-icons/grid-3x3.svg | 1 - .../vendors/bootstrap-icons/grid-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/grid.svg | 1 - .../bootstrap-icons/grip-horizontal.svg | 1 - .../vendors/bootstrap-icons/grip-vertical.svg | 1 - .../assets/vendors/bootstrap-icons/hammer.svg | 1 - .../bootstrap-icons/hand-index-fill.svg | 3 - .../bootstrap-icons/hand-index-thumb-fill.svg | 1 - .../bootstrap-icons/hand-index-thumb.svg | 1 - .../vendors/bootstrap-icons/hand-index.svg | 1 - .../bootstrap-icons/hand-thumbs-down-fill.svg | 1 - .../bootstrap-icons/hand-thumbs-down.svg | 1 - .../bootstrap-icons/hand-thumbs-up-fill.svg | 1 - .../bootstrap-icons/hand-thumbs-up.svg | 1 - .../vendors/bootstrap-icons/handbag-fill.svg | 1 - .../vendors/bootstrap-icons/handbag.svg | 1 - dist/assets/vendors/bootstrap-icons/hash.svg | 1 - .../vendors/bootstrap-icons/hdd-fill.svg | 1 - .../bootstrap-icons/hdd-network-fill.svg | 1 - .../vendors/bootstrap-icons/hdd-network.svg | 1 - .../vendors/bootstrap-icons/hdd-rack-fill.svg | 1 - .../vendors/bootstrap-icons/hdd-rack.svg | 1 - .../bootstrap-icons/hdd-stack-fill.svg | 1 - .../vendors/bootstrap-icons/hdd-stack.svg | 1 - dist/assets/vendors/bootstrap-icons/hdd.svg | 1 - .../vendors/bootstrap-icons/headphones.svg | 1 - .../vendors/bootstrap-icons/headset.svg | 1 - .../vendors/bootstrap-icons/heart-fill.svg | 1 - .../vendors/bootstrap-icons/heart-half.svg | 1 - dist/assets/vendors/bootstrap-icons/heart.svg | 1 - .../vendors/bootstrap-icons/heptagon-fill.svg | 1 - .../vendors/bootstrap-icons/heptagon-half.svg | 1 - .../vendors/bootstrap-icons/heptagon.svg | 1 - .../vendors/bootstrap-icons/hexagon-fill.svg | 1 - .../vendors/bootstrap-icons/hexagon-half.svg | 1 - .../vendors/bootstrap-icons/hexagon.svg | 1 - .../bootstrap-icons/hourglass-bottom.svg | 1 - .../bootstrap-icons/hourglass-split.svg | 1 - .../vendors/bootstrap-icons/hourglass-top.svg | 1 - .../vendors/bootstrap-icons/hourglass.svg | 1 - .../bootstrap-icons/house-door-fill.svg | 1 - .../vendors/bootstrap-icons/house-door.svg | 1 - .../vendors/bootstrap-icons/house-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/house.svg | 1 - dist/assets/vendors/bootstrap-icons/hr.svg | 1 - .../vendors/bootstrap-icons/image-alt.svg | 1 - .../vendors/bootstrap-icons/image-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/image.svg | 1 - .../assets/vendors/bootstrap-icons/images.svg | 1 - .../vendors/bootstrap-icons/inbox-fill.svg | 3 - dist/assets/vendors/bootstrap-icons/inbox.svg | 1 - .../vendors/bootstrap-icons/inboxes-fill.svg | 1 - .../vendors/bootstrap-icons/inboxes.svg | 1 - .../assets/vendors/bootstrap-icons/index.html | 5114 ----------------- .../bootstrap-icons/info-circle-fill.svg | 1 - .../vendors/bootstrap-icons/info-circle.svg | 1 - .../bootstrap-icons/info-square-fill.svg | 1 - .../vendors/bootstrap-icons/info-square.svg | 1 - dist/assets/vendors/bootstrap-icons/info.svg | 1 - .../bootstrap-icons/input-cursor-text.svg | 1 - .../vendors/bootstrap-icons/input-cursor.svg | 1 - .../vendors/bootstrap-icons/instagram.svg | 1 - .../vendors/bootstrap-icons/intersect.svg | 1 - .../vendors/bootstrap-icons/journal-album.svg | 1 - .../bootstrap-icons/journal-arrow-down.svg | 1 - .../bootstrap-icons/journal-arrow-up.svg | 1 - .../bootstrap-icons/journal-bookmark-fill.svg | 1 - .../bootstrap-icons/journal-bookmark.svg | 1 - .../vendors/bootstrap-icons/journal-check.svg | 1 - .../vendors/bootstrap-icons/journal-code.svg | 1 - .../bootstrap-icons/journal-medical.svg | 5 - .../vendors/bootstrap-icons/journal-minus.svg | 1 - .../vendors/bootstrap-icons/journal-plus.svg | 1 - .../bootstrap-icons/journal-richtext.svg | 1 - .../vendors/bootstrap-icons/journal-text.svg | 1 - .../vendors/bootstrap-icons/journal-x.svg | 1 - .../vendors/bootstrap-icons/journal.svg | 1 - .../vendors/bootstrap-icons/journals.svg | 1 - .../vendors/bootstrap-icons/joystick.svg | 1 - .../vendors/bootstrap-icons/justify-left.svg | 1 - .../vendors/bootstrap-icons/justify-right.svg | 1 - .../vendors/bootstrap-icons/justify.svg | 1 - .../vendors/bootstrap-icons/kanban-fill.svg | 3 - .../assets/vendors/bootstrap-icons/kanban.svg | 1 - .../vendors/bootstrap-icons/key-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/key.svg | 1 - .../vendors/bootstrap-icons/keyboard-fill.svg | 3 - .../vendors/bootstrap-icons/keyboard.svg | 1 - .../assets/vendors/bootstrap-icons/ladder.svg | 1 - .../vendors/bootstrap-icons/lamp-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/lamp.svg | 1 - .../vendors/bootstrap-icons/laptop-fill.svg | 3 - .../assets/vendors/bootstrap-icons/laptop.svg | 1 - .../bootstrap-icons/layer-backward.svg | 1 - .../vendors/bootstrap-icons/layer-forward.svg | 1 - .../vendors/bootstrap-icons/layers-fill.svg | 1 - .../vendors/bootstrap-icons/layers-half.svg | 1 - .../assets/vendors/bootstrap-icons/layers.svg | 1 - .../layout-sidebar-inset-reverse.svg | 4 - .../bootstrap-icons/layout-sidebar-inset.svg | 1 - .../layout-sidebar-reverse.svg | 3 - .../bootstrap-icons/layout-sidebar.svg | 1 - .../vendors/bootstrap-icons/layout-split.svg | 1 - .../layout-text-sidebar-reverse.svg | 1 - .../bootstrap-icons/layout-text-sidebar.svg | 1 - .../layout-text-window-reverse.svg | 1 - .../bootstrap-icons/layout-text-window.svg | 1 - .../bootstrap-icons/layout-three-columns.svg | 1 - .../vendors/bootstrap-icons/layout-wtf.svg | 1 - .../bootstrap-icons/life-preserver.svg | 1 - .../bootstrap-icons/lightbulb-fill.svg | 1 - .../bootstrap-icons/lightbulb-off-fill.svg | 3 - .../vendors/bootstrap-icons/lightbulb-off.svg | 1 - .../vendors/bootstrap-icons/lightbulb.svg | 1 - .../bootstrap-icons/lightning-fill.svg | 1 - .../vendors/bootstrap-icons/lightning.svg | 1 - .../vendors/bootstrap-icons/link-45deg.svg | 1 - dist/assets/vendors/bootstrap-icons/link.svg | 4 - .../vendors/bootstrap-icons/linkedin.svg | 1 - .../vendors/bootstrap-icons/list-check.svg | 1 - .../vendors/bootstrap-icons/list-nested.svg | 1 - .../vendors/bootstrap-icons/list-ol.svg | 1 - .../vendors/bootstrap-icons/list-stars.svg | 1 - .../vendors/bootstrap-icons/list-task.svg | 1 - .../vendors/bootstrap-icons/list-ul.svg | 3 - dist/assets/vendors/bootstrap-icons/list.svg | 1 - .../vendors/bootstrap-icons/lock-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/lock.svg | 1 - .../vendors/bootstrap-icons/mailbox.svg | 4 - .../vendors/bootstrap-icons/mailbox2.svg | 1 - .../vendors/bootstrap-icons/map-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/map.svg | 1 - .../vendors/bootstrap-icons/markdown-fill.svg | 1 - .../vendors/bootstrap-icons/markdown.svg | 1 - dist/assets/vendors/bootstrap-icons/mask.svg | 1 - .../bootstrap-icons/megaphone-fill.svg | 1 - .../vendors/bootstrap-icons/megaphone.svg | 1 - .../vendors/bootstrap-icons/menu-app-fill.svg | 1 - .../vendors/bootstrap-icons/menu-app.svg | 1 - .../bootstrap-icons/menu-button-fill.svg | 1 - .../bootstrap-icons/menu-button-wide-fill.svg | 1 - .../bootstrap-icons/menu-button-wide.svg | 1 - .../vendors/bootstrap-icons/menu-button.svg | 1 - .../vendors/bootstrap-icons/menu-down.svg | 1 - .../vendors/bootstrap-icons/menu-up.svg | 1 - .../vendors/bootstrap-icons/mic-fill.svg | 1 - .../vendors/bootstrap-icons/mic-mute-fill.svg | 1 - .../vendors/bootstrap-icons/mic-mute.svg | 1 - dist/assets/vendors/bootstrap-icons/mic.svg | 1 - .../bootstrap-icons/minecart-loaded.svg | 1 - .../vendors/bootstrap-icons/minecart.svg | 1 - dist/assets/vendors/bootstrap-icons/moon.svg | 1 - .../vendors/bootstrap-icons/mouse-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/mouse.svg | 1 - .../vendors/bootstrap-icons/mouse2-fill.svg | 1 - .../assets/vendors/bootstrap-icons/mouse2.svg | 1 - .../vendors/bootstrap-icons/mouse3-fill.svg | 1 - .../assets/vendors/bootstrap-icons/mouse3.svg | 1 - .../bootstrap-icons/music-note-beamed.svg | 1 - .../bootstrap-icons/music-note-list.svg | 1 - .../vendors/bootstrap-icons/music-note.svg | 1 - .../bootstrap-icons/music-player-fill.svg | 1 - .../vendors/bootstrap-icons/music-player.svg | 1 - .../vendors/bootstrap-icons/newspaper.svg | 1 - .../bootstrap-icons/node-minus-fill.svg | 1 - .../vendors/bootstrap-icons/node-minus.svg | 1 - .../bootstrap-icons/node-plus-fill.svg | 1 - .../vendors/bootstrap-icons/node-plus.svg | 1 - .../vendors/bootstrap-icons/nut-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/nut.svg | 4 - .../vendors/bootstrap-icons/octagon-fill.svg | 1 - .../vendors/bootstrap-icons/octagon-half.svg | 1 - .../vendors/bootstrap-icons/octagon.svg | 1 - .../assets/vendors/bootstrap-icons/option.svg | 1 - .../assets/vendors/bootstrap-icons/outlet.svg | 1 - .../vendors/bootstrap-icons/paint-bucket.svg | 1 - .../vendors/bootstrap-icons/palette-fill.svg | 1 - .../vendors/bootstrap-icons/palette.svg | 1 - .../vendors/bootstrap-icons/palette2.svg | 1 - .../vendors/bootstrap-icons/paperclip.svg | 1 - .../vendors/bootstrap-icons/paragraph.svg | 1 - .../bootstrap-icons/patch-check-fill.svg | 1 - .../vendors/bootstrap-icons/patch-check.svg | 1 - .../patch-exclamation-fill.svg | 1 - .../bootstrap-icons/patch-exclamation.svg | 1 - .../bootstrap-icons/patch-minus-fill.svg | 3 - .../vendors/bootstrap-icons/patch-minus.svg | 1 - .../bootstrap-icons/patch-plus-fill.svg | 1 - .../vendors/bootstrap-icons/patch-plus.svg | 1 - .../bootstrap-icons/patch-question-fill.svg | 3 - .../bootstrap-icons/patch-question.svg | 1 - .../bootstrap-icons/pause-btn-fill.svg | 1 - .../vendors/bootstrap-icons/pause-btn.svg | 1 - .../bootstrap-icons/pause-circle-fill.svg | 1 - .../vendors/bootstrap-icons/pause-circle.svg | 1 - .../vendors/bootstrap-icons/pause-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/pause.svg | 1 - .../vendors/bootstrap-icons/peace-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/peace.svg | 1 - .../vendors/bootstrap-icons/pen-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/pen.svg | 1 - .../vendors/bootstrap-icons/pencil-fill.svg | 1 - .../vendors/bootstrap-icons/pencil-square.svg | 1 - .../assets/vendors/bootstrap-icons/pencil.svg | 1 - .../vendors/bootstrap-icons/pentagon-fill.svg | 1 - .../vendors/bootstrap-icons/pentagon-half.svg | 1 - .../vendors/bootstrap-icons/pentagon.svg | 1 - .../vendors/bootstrap-icons/people-fill.svg | 1 - .../assets/vendors/bootstrap-icons/people.svg | 1 - .../vendors/bootstrap-icons/percent.svg | 1 - .../bootstrap-icons/person-badge-fill.svg | 1 - .../vendors/bootstrap-icons/person-badge.svg | 1 - .../bootstrap-icons/person-bounding-box.svg | 1 - .../bootstrap-icons/person-check-fill.svg | 1 - .../vendors/bootstrap-icons/person-check.svg | 1 - .../vendors/bootstrap-icons/person-circle.svg | 1 - .../bootstrap-icons/person-dash-fill.svg | 1 - .../vendors/bootstrap-icons/person-dash.svg | 1 - .../vendors/bootstrap-icons/person-fill.svg | 1 - .../bootstrap-icons/person-lines-fill.svg | 1 - .../bootstrap-icons/person-plus-fill.svg | 1 - .../vendors/bootstrap-icons/person-plus.svg | 1 - .../vendors/bootstrap-icons/person-square.svg | 1 - .../vendors/bootstrap-icons/person-x-fill.svg | 1 - .../vendors/bootstrap-icons/person-x.svg | 1 - .../assets/vendors/bootstrap-icons/person.svg | 1 - .../vendors/bootstrap-icons/phone-fill.svg | 1 - .../bootstrap-icons/phone-landscape-fill.svg | 1 - .../bootstrap-icons/phone-landscape.svg | 1 - .../bootstrap-icons/phone-vibrate-fill.svg | 1 - .../vendors/bootstrap-icons/phone-vibrate.svg | 1 - dist/assets/vendors/bootstrap-icons/phone.svg | 1 - .../bootstrap-icons/pie-chart-fill.svg | 1 - .../vendors/bootstrap-icons/pie-chart.svg | 1 - .../bootstrap-icons/pin-angle-fill.svg | 1 - .../vendors/bootstrap-icons/pin-angle.svg | 1 - .../vendors/bootstrap-icons/pin-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/pin.svg | 1 - .../vendors/bootstrap-icons/pip-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/pip.svg | 1 - .../vendors/bootstrap-icons/play-btn-fill.svg | 1 - .../vendors/bootstrap-icons/play-btn.svg | 1 - .../bootstrap-icons/play-circle-fill.svg | 1 - .../vendors/bootstrap-icons/play-circle.svg | 1 - .../vendors/bootstrap-icons/play-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/play.svg | 1 - .../vendors/bootstrap-icons/plug-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/plug.svg | 1 - .../bootstrap-icons/plus-circle-dotted.svg | 1 - .../bootstrap-icons/plus-circle-fill.svg | 1 - .../vendors/bootstrap-icons/plus-circle.svg | 1 - .../bootstrap-icons/plus-square-dotted.svg | 1 - .../bootstrap-icons/plus-square-fill.svg | 1 - .../vendors/bootstrap-icons/plus-square.svg | 1 - dist/assets/vendors/bootstrap-icons/plus.svg | 1 - dist/assets/vendors/bootstrap-icons/power.svg | 1 - .../vendors/bootstrap-icons/printer-fill.svg | 1 - .../vendors/bootstrap-icons/printer.svg | 1 - .../vendors/bootstrap-icons/puzzle-fill.svg | 1 - .../assets/vendors/bootstrap-icons/puzzle.svg | 1 - .../bootstrap-icons/question-circle-fill.svg | 1 - .../bootstrap-icons/question-circle.svg | 1 - .../bootstrap-icons/question-diamond-fill.svg | 1 - .../bootstrap-icons/question-diamond.svg | 1 - .../bootstrap-icons/question-octagon-fill.svg | 1 - .../bootstrap-icons/question-octagon.svg | 1 - .../bootstrap-icons/question-square-fill.svg | 1 - .../bootstrap-icons/question-square.svg | 1 - .../vendors/bootstrap-icons/question.svg | 3 - .../bootstrap-icons/receipt-cutoff.svg | 1 - .../vendors/bootstrap-icons/receipt.svg | 1 - .../vendors/bootstrap-icons/reception-0.svg | 1 - .../vendors/bootstrap-icons/reception-1.svg | 1 - .../vendors/bootstrap-icons/reception-2.svg | 1 - .../vendors/bootstrap-icons/reception-3.svg | 1 - .../vendors/bootstrap-icons/reception-4.svg | 1 - .../bootstrap-icons/record-btn-fill.svg | 1 - .../vendors/bootstrap-icons/record-btn.svg | 1 - .../bootstrap-icons/record-circle-fill.svg | 1 - .../vendors/bootstrap-icons/record-circle.svg | 1 - .../vendors/bootstrap-icons/record-fill.svg | 1 - .../assets/vendors/bootstrap-icons/record.svg | 3 - .../vendors/bootstrap-icons/record2-fill.svg | 1 - .../vendors/bootstrap-icons/record2.svg | 1 - .../bootstrap-icons/reply-all-fill.svg | 1 - .../vendors/bootstrap-icons/reply-all.svg | 1 - .../vendors/bootstrap-icons/reply-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/reply.svg | 1 - .../vendors/bootstrap-icons/rss-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/rss.svg | 1 - .../assets/vendors/bootstrap-icons/rulers.svg | 1 - .../vendors/bootstrap-icons/save-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/save.svg | 1 - .../vendors/bootstrap-icons/save2-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/save2.svg | 1 - .../vendors/bootstrap-icons/scissors.svg | 1 - .../vendors/bootstrap-icons/screwdriver.svg | 1 - .../assets/vendors/bootstrap-icons/search.svg | 1 - .../vendors/bootstrap-icons/segmented-nav.svg | 3 - .../assets/vendors/bootstrap-icons/server.svg | 1 - .../vendors/bootstrap-icons/share-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/share.svg | 1 - .../vendors/bootstrap-icons/shield-check.svg | 1 - .../bootstrap-icons/shield-exclamation.svg | 1 - .../bootstrap-icons/shield-fill-check.svg | 1 - .../shield-fill-exclamation.svg | 3 - .../bootstrap-icons/shield-fill-minus.svg | 1 - .../bootstrap-icons/shield-fill-plus.svg | 1 - .../vendors/bootstrap-icons/shield-fill-x.svg | 1 - .../vendors/bootstrap-icons/shield-fill.svg | 1 - .../bootstrap-icons/shield-lock-fill.svg | 1 - .../vendors/bootstrap-icons/shield-lock.svg | 1 - .../vendors/bootstrap-icons/shield-minus.svg | 1 - .../vendors/bootstrap-icons/shield-plus.svg | 1 - .../vendors/bootstrap-icons/shield-shaded.svg | 1 - .../bootstrap-icons/shield-slash-fill.svg | 1 - .../vendors/bootstrap-icons/shield-slash.svg | 1 - .../vendors/bootstrap-icons/shield-x.svg | 1 - .../assets/vendors/bootstrap-icons/shield.svg | 1 - .../vendors/bootstrap-icons/shift-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/shift.svg | 1 - .../vendors/bootstrap-icons/shop-window.svg | 1 - dist/assets/vendors/bootstrap-icons/shop.svg | 1 - .../vendors/bootstrap-icons/shuffle.svg | 1 - .../bootstrap-icons/signpost-2-fill.svg | 3 - .../vendors/bootstrap-icons/signpost-2.svg | 1 - .../vendors/bootstrap-icons/signpost-fill.svg | 1 - .../bootstrap-icons/signpost-split-fill.svg | 1 - .../bootstrap-icons/signpost-split.svg | 1 - .../vendors/bootstrap-icons/signpost.svg | 1 - .../vendors/bootstrap-icons/sim-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/sim.svg | 1 - .../skip-backward-btn-fill.svg | 1 - .../bootstrap-icons/skip-backward-btn.svg | 1 - .../skip-backward-circle-fill.svg | 1 - .../bootstrap-icons/skip-backward-circle.svg | 1 - .../bootstrap-icons/skip-backward-fill.svg | 1 - .../vendors/bootstrap-icons/skip-backward.svg | 3 - .../bootstrap-icons/skip-end-btn-fill.svg | 1 - .../vendors/bootstrap-icons/skip-end-btn.svg | 1 - .../bootstrap-icons/skip-end-circle-fill.svg | 1 - .../bootstrap-icons/skip-end-circle.svg | 1 - .../vendors/bootstrap-icons/skip-end-fill.svg | 3 - .../vendors/bootstrap-icons/skip-end.svg | 1 - .../bootstrap-icons/skip-forward-btn-fill.svg | 1 - .../bootstrap-icons/skip-forward-btn.svg | 1 - .../skip-forward-circle-fill.svg | 1 - .../bootstrap-icons/skip-forward-circle.svg | 1 - .../bootstrap-icons/skip-forward-fill.svg | 1 - .../vendors/bootstrap-icons/skip-forward.svg | 1 - .../bootstrap-icons/skip-start-btn-fill.svg | 1 - .../bootstrap-icons/skip-start-btn.svg | 1 - .../skip-start-circle-fill.svg | 1 - .../bootstrap-icons/skip-start-circle.svg | 1 - .../bootstrap-icons/skip-start-fill.svg | 1 - .../vendors/bootstrap-icons/skip-start.svg | 1 - dist/assets/vendors/bootstrap-icons/slack.svg | 1 - .../bootstrap-icons/slash-circle-fill.svg | 3 - .../vendors/bootstrap-icons/slash-circle.svg | 1 - .../bootstrap-icons/slash-square-fill.svg | 1 - .../vendors/bootstrap-icons/slash-square.svg | 1 - dist/assets/vendors/bootstrap-icons/slash.svg | 1 - .../vendors/bootstrap-icons/sliders.svg | 1 - .../vendors/bootstrap-icons/smartwatch.svg | 1 - .../bootstrap-icons/sort-alpha-down-alt.svg | 1 - .../bootstrap-icons/sort-alpha-down.svg | 1 - .../bootstrap-icons/sort-alpha-up-alt.svg | 1 - .../vendors/bootstrap-icons/sort-alpha-up.svg | 1 - .../vendors/bootstrap-icons/sort-down-alt.svg | 3 - .../vendors/bootstrap-icons/sort-down.svg | 1 - .../bootstrap-icons/sort-numeric-down-alt.svg | 1 - .../bootstrap-icons/sort-numeric-down.svg | 1 - .../bootstrap-icons/sort-numeric-up-alt.svg | 1 - .../bootstrap-icons/sort-numeric-up.svg | 1 - .../vendors/bootstrap-icons/sort-up-alt.svg | 3 - .../vendors/bootstrap-icons/sort-up.svg | 1 - .../vendors/bootstrap-icons/soundwave.svg | 3 - .../vendors/bootstrap-icons/speaker-fill.svg | 1 - .../vendors/bootstrap-icons/speaker.svg | 1 - .../vendors/bootstrap-icons/speedometer.svg | 1 - .../vendors/bootstrap-icons/speedometer2.svg | 1 - .../vendors/bootstrap-icons/spellcheck.svg | 4 - .../vendors/bootstrap-icons/square-fill.svg | 1 - .../vendors/bootstrap-icons/square-half.svg | 1 - .../assets/vendors/bootstrap-icons/square.svg | 3 - dist/assets/vendors/bootstrap-icons/stack.svg | 1 - .../vendors/bootstrap-icons/star-fill.svg | 1 - .../vendors/bootstrap-icons/star-half.svg | 1 - dist/assets/vendors/bootstrap-icons/star.svg | 1 - .../vendors/bootstrap-icons/stickies-fill.svg | 4 - .../vendors/bootstrap-icons/stickies.svg | 1 - .../vendors/bootstrap-icons/sticky-fill.svg | 1 - .../assets/vendors/bootstrap-icons/sticky.svg | 1 - .../vendors/bootstrap-icons/stop-btn-fill.svg | 1 - .../vendors/bootstrap-icons/stop-btn.svg | 1 - .../bootstrap-icons/stop-circle-fill.svg | 1 - .../vendors/bootstrap-icons/stop-circle.svg | 1 - .../vendors/bootstrap-icons/stop-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/stop.svg | 3 - .../bootstrap-icons/stoplights-fill.svg | 1 - .../vendors/bootstrap-icons/stoplights.svg | 4 - .../bootstrap-icons/stopwatch-fill.svg | 1 - .../vendors/bootstrap-icons/stopwatch.svg | 1 - .../vendors/bootstrap-icons/subtract.svg | 1 - .../bootstrap-icons/suit-club-fill.svg | 1 - .../vendors/bootstrap-icons/suit-club.svg | 1 - .../bootstrap-icons/suit-diamond-fill.svg | 1 - .../vendors/bootstrap-icons/suit-diamond.svg | 1 - .../bootstrap-icons/suit-heart-fill.svg | 1 - .../vendors/bootstrap-icons/suit-heart.svg | 1 - .../bootstrap-icons/suit-spade-fill.svg | 3 - .../vendors/bootstrap-icons/suit-spade.svg | 1 - dist/assets/vendors/bootstrap-icons/sun.svg | 1 - .../vendors/bootstrap-icons/sunglasses.svg | 1 - .../bootstrap-icons/symmetry-horizontal.svg | 1 - .../bootstrap-icons/symmetry-vertical.svg | 3 - dist/assets/vendors/bootstrap-icons/table.svg | 1 - .../vendors/bootstrap-icons/tablet-fill.svg | 1 - .../bootstrap-icons/tablet-landscape-fill.svg | 1 - .../bootstrap-icons/tablet-landscape.svg | 1 - .../assets/vendors/bootstrap-icons/tablet.svg | 1 - .../vendors/bootstrap-icons/tag-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/tag.svg | 1 - .../vendors/bootstrap-icons/tags-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/tags.svg | 4 - .../vendors/bootstrap-icons/telegram.svg | 1 - .../bootstrap-icons/telephone-fill.svg | 1 - .../telephone-forward-fill.svg | 1 - .../bootstrap-icons/telephone-forward.svg | 1 - .../telephone-inbound-fill.svg | 1 - .../bootstrap-icons/telephone-inbound.svg | 1 - .../bootstrap-icons/telephone-minus-fill.svg | 1 - .../bootstrap-icons/telephone-minus.svg | 1 - .../telephone-outbound-fill.svg | 1 - .../bootstrap-icons/telephone-outbound.svg | 1 - .../bootstrap-icons/telephone-plus-fill.svg | 1 - .../bootstrap-icons/telephone-plus.svg | 1 - .../bootstrap-icons/telephone-x-fill.svg | 1 - .../vendors/bootstrap-icons/telephone-x.svg | 1 - .../vendors/bootstrap-icons/telephone.svg | 1 - .../vendors/bootstrap-icons/terminal-fill.svg | 1 - .../vendors/bootstrap-icons/terminal.svg | 1 - .../vendors/bootstrap-icons/text-center.svg | 1 - .../bootstrap-icons/text-indent-left.svg | 1 - .../bootstrap-icons/text-indent-right.svg | 1 - .../vendors/bootstrap-icons/text-left.svg | 1 - .../bootstrap-icons/text-paragraph.svg | 1 - .../vendors/bootstrap-icons/text-right.svg | 1 - .../bootstrap-icons/textarea-resize.svg | 1 - .../vendors/bootstrap-icons/textarea-t.svg | 1 - .../vendors/bootstrap-icons/textarea.svg | 1 - .../bootstrap-icons/thermometer-half.svg | 1 - .../vendors/bootstrap-icons/thermometer.svg | 1 - .../bootstrap-icons/three-dots-vertical.svg | 1 - .../vendors/bootstrap-icons/three-dots.svg | 1 - .../vendors/bootstrap-icons/toggle-off.svg | 1 - .../vendors/bootstrap-icons/toggle-on.svg | 1 - .../vendors/bootstrap-icons/toggle2-off.svg | 1 - .../vendors/bootstrap-icons/toggle2-on.svg | 1 - .../vendors/bootstrap-icons/toggles.svg | 1 - .../vendors/bootstrap-icons/toggles2.svg | 1 - dist/assets/vendors/bootstrap-icons/tools.svg | 1 - .../vendors/bootstrap-icons/trash-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/trash.svg | 1 - .../vendors/bootstrap-icons/trash2-fill.svg | 3 - .../assets/vendors/bootstrap-icons/trash2.svg | 1 - .../vendors/bootstrap-icons/tree-fill.svg | 3 - dist/assets/vendors/bootstrap-icons/tree.svg | 1 - .../vendors/bootstrap-icons/triangle-fill.svg | 1 - .../vendors/bootstrap-icons/triangle-half.svg | 3 - .../vendors/bootstrap-icons/triangle.svg | 1 - .../vendors/bootstrap-icons/trophy-fill.svg | 1 - .../assets/vendors/bootstrap-icons/trophy.svg | 1 - .../vendors/bootstrap-icons/truck-flatbed.svg | 1 - dist/assets/vendors/bootstrap-icons/truck.svg | 1 - .../vendors/bootstrap-icons/tv-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/tv.svg | 1 - .../assets/vendors/bootstrap-icons/twitch.svg | 1 - .../vendors/bootstrap-icons/twitter.svg | 1 - .../vendors/bootstrap-icons/type-bold.svg | 1 - .../vendors/bootstrap-icons/type-h1.svg | 1 - .../vendors/bootstrap-icons/type-h2.svg | 1 - .../vendors/bootstrap-icons/type-h3.svg | 1 - .../vendors/bootstrap-icons/type-italic.svg | 1 - .../bootstrap-icons/type-strikethrough.svg | 1 - .../bootstrap-icons/type-underline.svg | 1 - dist/assets/vendors/bootstrap-icons/type.svg | 1 - .../bootstrap-icons/ui-checks-grid.svg | 1 - .../vendors/bootstrap-icons/ui-checks.svg | 1 - .../bootstrap-icons/ui-radios-grid.svg | 3 - .../vendors/bootstrap-icons/ui-radios.svg | 1 - dist/assets/vendors/bootstrap-icons/union.svg | 1 - .../vendors/bootstrap-icons/unlock-fill.svg | 1 - .../assets/vendors/bootstrap-icons/unlock.svg | 1 - .../vendors/bootstrap-icons/upc-scan.svg | 1 - dist/assets/vendors/bootstrap-icons/upc.svg | 1 - .../assets/vendors/bootstrap-icons/upload.svg | 1 - .../vendors/bootstrap-icons/vector-pen.svg | 1 - .../vendors/bootstrap-icons/view-list.svg | 1 - .../vendors/bootstrap-icons/view-stacked.svg | 1 - .../vendors/bootstrap-icons/vinyl-fill.svg | 1 - dist/assets/vendors/bootstrap-icons/vinyl.svg | 1 - .../vendors/bootstrap-icons/voicemail.svg | 1 - .../bootstrap-icons/volume-down-fill.svg | 1 - .../vendors/bootstrap-icons/volume-down.svg | 1 - .../bootstrap-icons/volume-mute-fill.svg | 1 - .../vendors/bootstrap-icons/volume-mute.svg | 1 - .../bootstrap-icons/volume-off-fill.svg | 1 - .../vendors/bootstrap-icons/volume-off.svg | 1 - .../bootstrap-icons/volume-up-fill.svg | 1 - .../vendors/bootstrap-icons/volume-up.svg | 1 - dist/assets/vendors/bootstrap-icons/vr.svg | 1 - .../vendors/bootstrap-icons/wallet-fill.svg | 1 - .../assets/vendors/bootstrap-icons/wallet.svg | 1 - .../vendors/bootstrap-icons/wallet2.svg | 1 - dist/assets/vendors/bootstrap-icons/watch.svg | 4 - .../vendors/bootstrap-icons/whatsapp.svg | 1 - .../assets/vendors/bootstrap-icons/wifi-1.svg | 3 - .../assets/vendors/bootstrap-icons/wifi-2.svg | 1 - .../vendors/bootstrap-icons/wifi-off.svg | 1 - dist/assets/vendors/bootstrap-icons/wifi.svg | 1 - .../vendors/bootstrap-icons/window-dock.svg | 1 - .../bootstrap-icons/window-sidebar.svg | 4 - .../assets/vendors/bootstrap-icons/window.svg | 1 - .../assets/vendors/bootstrap-icons/wrench.svg | 1 - .../vendors/bootstrap-icons/x-circle-fill.svg | 1 - .../vendors/bootstrap-icons/x-circle.svg | 1 - .../bootstrap-icons/x-diamond-fill.svg | 1 - .../vendors/bootstrap-icons/x-diamond.svg | 1 - .../bootstrap-icons/x-octagon-fill.svg | 1 - .../vendors/bootstrap-icons/x-octagon.svg | 1 - .../vendors/bootstrap-icons/x-square-fill.svg | 1 - .../vendors/bootstrap-icons/x-square.svg | 1 - dist/assets/vendors/bootstrap-icons/x.svg | 1 - .../vendors/bootstrap-icons/youtube.svg | 1 - .../vendors/bootstrap-icons/zoom-in.svg | 1 - .../vendors/bootstrap-icons/zoom-out.svg | 1 - .../vendors/sweetalert2/sweetalert2.all.js | 3122 ---------- .../sweetalert2/sweetalert2.all.min.js | 2 - .../vendors/sweetalert2/sweetalert2.css | 1316 ----- .../assets/vendors/sweetalert2/sweetalert2.js | 3120 ---------- .../vendors/sweetalert2/sweetalert2.min.css | 1 - .../vendors/sweetalert2/sweetalert2.min.js | 1 - .../assets/js/extensions/sweetalert2.js | 2 + src/assets/scss/pages/sweetalert2.scss | 1 + src/extra-component-sweetalert.html | 5 +- webpack.mix.js | 2 + 1281 files changed, 7 insertions(+), 16707 deletions(-) delete mode 100644 dist/assets/vendors/bootstrap-icons/alarm-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/alarm.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/align-bottom.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/align-center.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/align-end.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/align-middle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/align-start.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/align-top.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/app-indicator.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/app.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/archive-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/archive.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-90deg-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-90deg-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-90deg-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-90deg-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-bar-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-bar-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-bar-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-bar-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-clockwise.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-counterclockwise.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-left-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-left-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-left-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-left-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-right-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-right-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-right-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-right-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-short.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left-short.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-repeat.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-return-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-return-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-right-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-right-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-right-short.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-right-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-right-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-left-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-left-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-left-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-left-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-right-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-right-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-right-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-right-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-short.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrow-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrows-angle-contract.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrows-angle-expand.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrows-collapse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrows-expand.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrows-fullscreen.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/arrows-move.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/aspect-ratio-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/aspect-ratio.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/asterisk.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/at.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/award-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/award.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/back.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/backspace-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/backspace-reverse-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/backspace-reverse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/backspace.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-3d-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-3d.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-4k-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-4k.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-8k-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-8k.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-ad-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-ad.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-ar-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-ar.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-cc-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-cc.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-hd-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-hd.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-tm-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-tm.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-vo-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-vo.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-vr-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-vr.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-wc-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/badge-wc.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-dash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-dash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bag.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bar-chart-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bar-chart-line-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bar-chart-line.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bar-chart-steps.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bar-chart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/basket-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/basket.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/basket2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/basket2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/basket3-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/basket3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/battery-charging.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/battery-full.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/battery-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/battery.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bell-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bell.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bezier.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bezier2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bicycle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/binoculars-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/binoculars.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/blockquote-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/blockquote-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/book-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/book-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/book.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-dash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-dash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-heart-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-heart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-star-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-star.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmark.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmarks-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookmarks.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bookshelf.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bootstrap-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bootstrap-icons.css delete mode 100644 dist/assets/vendors/bootstrap-icons/bootstrap-icons.json delete mode 100644 dist/assets/vendors/bootstrap-icons/bootstrap-icons.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bootstrap-reboot.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bootstrap.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-all.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-bottom.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-center.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-inner.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-middle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-outer.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-style.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-top.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border-width.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/border.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bounding-box-circles.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bounding-box.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-down-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-down-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-down-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-down-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-up-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-up-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-in-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-up-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-up-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-arrow-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box-seam.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/box.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/braces.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bricks.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/briefcase-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/briefcase.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-alt-high-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-alt-high.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-alt-low-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-alt-low.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-high-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-high.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-low-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brightness-low.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/broadcast-pin.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/broadcast.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brush-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/brush.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bucket-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bucket.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bug-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bug.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/building.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/bullseye.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calculator-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calculator.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-date-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-date.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-day-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-day.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-event-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-event.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-month-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-month.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-range-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-range.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-week-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-week.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-date-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-date.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-day-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-day.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-event-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-event.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-month-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-month.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-range-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-range.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-week-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-week.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-event-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-event.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-range-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-range.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-week-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3-week.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar4-event.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar4-range.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar4-week.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/calendar4.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-reels-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-reels.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-video-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-video-off-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-video-off.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera-video.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/camera2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/capslock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/capslock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/card-checklist.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/card-heading.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/card-image.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/card-list.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/card-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-down-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-down-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-left-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-left-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-left-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-right-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-right-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-right-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-up-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-up-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-up-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/caret-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-dash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-dash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cart4.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cash-stack.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cast.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-dots-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-dots.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-dots-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-dots.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-quote-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-quote.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-text-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-quote-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-quote.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-dots-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-dots.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-quote-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-quote.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-text-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-dots-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-dots.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-quote-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-quote.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-text-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-text-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chat.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check-all.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check2-all.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check2-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check2-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/check2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-bar-contract.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-bar-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-bar-expand.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-bar-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-bar-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-bar-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-compact-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-compact-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-compact-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-compact-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-contract.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-double-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-double-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-double-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-double-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-expand.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/chevron-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/circle-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/circle-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clipboard-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clipboard-data.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clipboard-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clipboard-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clipboard-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clipboard.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clock-history.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/clock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-arrow-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-arrow-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-arrow-up-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-arrow-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-download-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-download.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-slash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-slash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-upload-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud-upload.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cloud.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/code-slash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/code-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/code.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/collection-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/collection-play-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/collection-play.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/collection.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/columns-gap.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/columns.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/command.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/compass-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/compass.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cone-striped.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cone.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/controller.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cpu-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cpu.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/credit-card-2-back-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/credit-card-2-back.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/credit-card-2-front-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/credit-card-2-front.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/credit-card-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/credit-card.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/crop.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cup-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cup-straw.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cup.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cursor-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cursor-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/cursor.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash-circle-dotted.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash-square-dotted.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diagram-2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diagram-2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diagram-3-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diagram-3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diamond-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diamond-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/diamond.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-1-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-1.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-3-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-4-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-4.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-5-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-5.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-6-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dice-6.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/disc-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/disc.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/discord.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/display-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/display.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/distribute-horizontal.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/distribute-vertical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/door-closed-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/door-closed.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/door-open-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/door-open.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/dot.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/download.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/droplet-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/droplet-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/droplet.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/earbuds.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/easel-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/easel.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/egg-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/egg-fried.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/egg.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eject-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eject.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-angry-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-angry.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-dizzy-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-dizzy.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-expressionless-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-expressionless.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-frown-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-frown.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-heart-eyes-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-heart-eyes.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-laughing-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-laughing.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-neutral-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-neutral.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-smile-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-smile.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-sunglasses-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-sunglasses.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-wink-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/emoji-wink.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/envelope-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/envelope-open-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/envelope-open.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/envelope.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eraser-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eraser.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-diamond-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-diamond.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-octagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-octagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-triangle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation-triangle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclamation.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/exclude.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eye-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eye-slash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eye-slash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eye.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eyedropper.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/eyeglasses.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/facebook.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-arrow-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-arrow-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-arrow-up-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-arrow-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-bar-graph-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-bar-graph.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-binary-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-binary.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-break-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-break.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-code-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-code.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-diff-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-diff.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-binary-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-binary.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-break-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-break.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-code-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-code.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-diff-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-diff.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-easel-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-easel.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-excel-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-excel.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-font-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-font.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-image-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-image.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-lock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-lock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-lock2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-lock2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-medical-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-medical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-music-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-music.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-person-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-person.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-play-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-play.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-post-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-post.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-ppt-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-ppt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-richtext-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-richtext.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-ruled-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-ruled.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-slides-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-slides.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-text-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-word-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-word.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-zip-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark-zip.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-earmark.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-easel-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-easel.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-excel-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-excel.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-font-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-font.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-image-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-image.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-lock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-lock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-lock2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-lock2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-medical-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-medical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-music-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-music.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-person-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-person.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-play-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-play.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-post-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-post.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-ppt-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-ppt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-richtext-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-richtext.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-ruled-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-ruled.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-slides-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-slides.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-spreadsheet-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-spreadsheet.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-text-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-word-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-word.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-zip-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file-zip.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/file.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/files-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/files.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/film.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/filter.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/flag-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/flag.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/flower1.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/flower2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/flower3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-symlink-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-symlink.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder2-open.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/folder2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/fonts.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/fonts/bootstrap-icons.woff delete mode 100644 dist/assets/vendors/bootstrap-icons/fonts/bootstrap-icons.woff2 delete mode 100644 dist/assets/vendors/bootstrap-icons/forward-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/forward.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/front.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/fullscreen-exit.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/fullscreen.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/funnel-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/funnel.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gear-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gear-wide-connected.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gear-wide.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gear.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gem.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/geo-alt-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/geo-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/geo-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/geo.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gift-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/gift.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/github.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/globe.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/globe2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/google.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/graph-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/graph-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-1x2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-1x2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-3x2-gap-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-3x2-gap.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-3x2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-3x3-gap-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-3x3-gap.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-3x3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grid.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grip-horizontal.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/grip-vertical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hammer.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-index-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-index-thumb-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-index-thumb.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-index.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-thumbs-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-thumbs-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-thumbs-up-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hand-thumbs-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/handbag-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/handbag.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-network-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-network.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-rack-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-rack.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-stack-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd-stack.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hdd.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/headphones.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/headset.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/heart-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/heart-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/heart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/heptagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/heptagon-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/heptagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hexagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hexagon-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hexagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hourglass-bottom.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hourglass-split.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hourglass-top.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hourglass.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/house-door-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/house-door.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/house-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/house.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/hr.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/image-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/image-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/image.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/images.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/inbox-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/inbox.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/inboxes-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/inboxes.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/index.html delete mode 100644 dist/assets/vendors/bootstrap-icons/info-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/info-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/info-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/info-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/info.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/input-cursor-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/input-cursor.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/instagram.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/intersect.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-album.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-arrow-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-arrow-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-bookmark-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-bookmark.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-code.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-medical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-richtext.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-text.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journal.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/journals.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/joystick.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/justify-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/justify-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/justify.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/kanban-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/kanban.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/key-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/key.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/keyboard-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/keyboard.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/ladder.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lamp-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lamp.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/laptop-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/laptop.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layer-backward.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layer-forward.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layers-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layers-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layers.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-sidebar-inset-reverse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-sidebar-inset.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-sidebar-reverse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-sidebar.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-split.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-text-sidebar-reverse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-text-sidebar.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-text-window-reverse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-text-window.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-three-columns.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/layout-wtf.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/life-preserver.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lightbulb-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lightbulb-off-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lightbulb-off.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lightbulb.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lightning-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lightning.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/link-45deg.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/link.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/linkedin.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list-nested.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list-ol.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list-stars.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list-task.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list-ul.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/list.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/lock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mailbox.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mailbox2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/map-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/map.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/markdown-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/markdown.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mask.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/megaphone-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/megaphone.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-app-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-app.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-button-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-button-wide-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-button-wide.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-button.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/menu-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mic-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mic-mute-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mic-mute.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mic.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/minecart-loaded.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/minecart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/moon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mouse-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mouse.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mouse2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mouse2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mouse3-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/mouse3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/music-note-beamed.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/music-note-list.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/music-note.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/music-player-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/music-player.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/newspaper.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/node-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/node-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/node-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/node-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/nut-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/nut.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/octagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/octagon-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/octagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/option.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/outlet.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/paint-bucket.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/palette-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/palette.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/palette2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/paperclip.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/paragraph.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-exclamation-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-exclamation.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-question-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/patch-question.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pause-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pause-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pause-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pause-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pause-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pause.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/peace-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/peace.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pen-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pen.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pencil-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pencil-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pencil.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pentagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pentagon-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pentagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/people-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/people.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/percent.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-badge-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-badge.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-bounding-box.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-check-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-dash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-dash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-lines-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/person.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/phone-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/phone-landscape-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/phone-landscape.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/phone-vibrate-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/phone-vibrate.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/phone.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pie-chart-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pie-chart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pin-angle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pin-angle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pin-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pin.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pip-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/pip.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/play-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/play-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/play-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/play-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/play-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/play.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plug-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plug.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus-circle-dotted.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus-square-dotted.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/power.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/printer-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/printer.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/puzzle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/puzzle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-diamond-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-diamond.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-octagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-octagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/question.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/receipt-cutoff.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/receipt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reception-0.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reception-1.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reception-2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reception-3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reception-4.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/record2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reply-all-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reply-all.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reply-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/reply.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/rss-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/rss.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/rulers.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/save-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/save.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/save2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/save2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/scissors.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/screwdriver.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/search.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/segmented-nav.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/server.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/share-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/share.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-exclamation.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-fill-check.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-fill-exclamation.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-fill-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-fill-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-fill-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-lock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-lock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-shaded.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-slash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-slash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shield.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shift-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shift.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shop-window.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shop.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/shuffle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/signpost-2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/signpost-2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/signpost-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/signpost-split-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/signpost-split.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/signpost.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sim-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sim.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-backward-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-backward-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-backward-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-backward-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-backward-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-backward.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-end-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-end-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-end-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-end-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-end-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-end.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-forward-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-forward-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-forward-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-forward-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-forward-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-forward.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-start-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-start-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-start-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-start-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-start-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/skip-start.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/slack.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/slash-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/slash-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/slash-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/slash-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/slash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sliders.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/smartwatch.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-alpha-down-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-alpha-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-alpha-up-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-alpha-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-down-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-numeric-down-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-numeric-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-numeric-up-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-numeric-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-up-alt.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sort-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/soundwave.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/speaker-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/speaker.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/speedometer.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/speedometer2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/spellcheck.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/square-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stack.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/star-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/star-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/star.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stickies-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stickies.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sticky-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sticky.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stop-btn-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stop-btn.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stop-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stop-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stop-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stop.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stoplights-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stoplights.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stopwatch-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/stopwatch.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/subtract.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-club-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-club.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-diamond-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-diamond.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-heart-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-heart.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-spade-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/suit-spade.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sun.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/sunglasses.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/symmetry-horizontal.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/symmetry-vertical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/table.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tablet-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tablet-landscape-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tablet-landscape.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tablet.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tag-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tag.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tags-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tags.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telegram.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-forward-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-forward.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-inbound-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-inbound.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-minus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-minus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-outbound-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-outbound.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-plus-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-plus.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-x-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone-x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/telephone.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/terminal-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/terminal.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/text-center.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/text-indent-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/text-indent-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/text-left.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/text-paragraph.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/text-right.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/textarea-resize.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/textarea-t.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/textarea.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/thermometer-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/thermometer.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/three-dots-vertical.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/three-dots.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/toggle-off.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/toggle-on.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/toggle2-off.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/toggle2-on.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/toggles.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/toggles2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tools.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/trash-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/trash.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/trash2-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/trash2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tree-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tree.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/triangle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/triangle-half.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/triangle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/trophy-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/trophy.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/truck-flatbed.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/truck.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tv-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/tv.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/twitch.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/twitter.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-bold.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-h1.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-h2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-h3.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-italic.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-strikethrough.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type-underline.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/type.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/ui-checks-grid.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/ui-checks.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/ui-radios-grid.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/ui-radios.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/union.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/unlock-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/unlock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/upc-scan.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/upc.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/upload.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/vector-pen.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/view-list.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/view-stacked.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/vinyl-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/vinyl.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/voicemail.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-down-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-down.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-mute-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-mute.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-off-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-off.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-up-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/volume-up.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/vr.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wallet-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wallet.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wallet2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/watch.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/whatsapp.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wifi-1.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wifi-2.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wifi-off.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wifi.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/window-dock.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/window-sidebar.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/window.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/wrench.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-circle-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-circle.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-diamond-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-diamond.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-octagon-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-octagon.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-square-fill.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x-square.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/x.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/youtube.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/zoom-in.svg delete mode 100644 dist/assets/vendors/bootstrap-icons/zoom-out.svg delete mode 100644 dist/assets/vendors/sweetalert2/sweetalert2.all.js delete mode 100644 dist/assets/vendors/sweetalert2/sweetalert2.all.min.js delete mode 100644 dist/assets/vendors/sweetalert2/sweetalert2.css delete mode 100644 dist/assets/vendors/sweetalert2/sweetalert2.js delete mode 100644 dist/assets/vendors/sweetalert2/sweetalert2.min.css delete mode 100644 dist/assets/vendors/sweetalert2/sweetalert2.min.js rename {dist => src}/assets/js/extensions/sweetalert2.js (99%) create mode 100644 src/assets/scss/pages/sweetalert2.scss diff --git a/dist/assets/vendors/bootstrap-icons/alarm-fill.svg b/dist/assets/vendors/bootstrap-icons/alarm-fill.svg deleted file mode 100644 index be2c15f4b..000000000 --- a/dist/assets/vendors/bootstrap-icons/alarm-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/alarm.svg b/dist/assets/vendors/bootstrap-icons/alarm.svg deleted file mode 100644 index f2a7cf988..000000000 --- a/dist/assets/vendors/bootstrap-icons/alarm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/align-bottom.svg b/dist/assets/vendors/bootstrap-icons/align-bottom.svg deleted file mode 100644 index 62099e6e4..000000000 --- a/dist/assets/vendors/bootstrap-icons/align-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/align-center.svg b/dist/assets/vendors/bootstrap-icons/align-center.svg deleted file mode 100644 index 1fcbbf011..000000000 --- a/dist/assets/vendors/bootstrap-icons/align-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/align-end.svg b/dist/assets/vendors/bootstrap-icons/align-end.svg deleted file mode 100644 index 32fa9344e..000000000 --- a/dist/assets/vendors/bootstrap-icons/align-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/align-middle.svg b/dist/assets/vendors/bootstrap-icons/align-middle.svg deleted file mode 100644 index 1d6cc7b16..000000000 --- a/dist/assets/vendors/bootstrap-icons/align-middle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/align-start.svg b/dist/assets/vendors/bootstrap-icons/align-start.svg deleted file mode 100644 index a72ba984b..000000000 --- a/dist/assets/vendors/bootstrap-icons/align-start.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/align-top.svg b/dist/assets/vendors/bootstrap-icons/align-top.svg deleted file mode 100644 index 0be6990d5..000000000 --- a/dist/assets/vendors/bootstrap-icons/align-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/alt.svg b/dist/assets/vendors/bootstrap-icons/alt.svg deleted file mode 100644 index 1bcdf8c49..000000000 --- a/dist/assets/vendors/bootstrap-icons/alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/app-indicator.svg b/dist/assets/vendors/bootstrap-icons/app-indicator.svg deleted file mode 100644 index 5588ce28d..000000000 --- a/dist/assets/vendors/bootstrap-icons/app-indicator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/app.svg b/dist/assets/vendors/bootstrap-icons/app.svg deleted file mode 100644 index aaec04676..000000000 --- a/dist/assets/vendors/bootstrap-icons/app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/archive-fill.svg b/dist/assets/vendors/bootstrap-icons/archive-fill.svg deleted file mode 100644 index ddad27edf..000000000 --- a/dist/assets/vendors/bootstrap-icons/archive-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/archive.svg b/dist/assets/vendors/bootstrap-icons/archive.svg deleted file mode 100644 index fd809162e..000000000 --- a/dist/assets/vendors/bootstrap-icons/archive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-90deg-down.svg b/dist/assets/vendors/bootstrap-icons/arrow-90deg-down.svg deleted file mode 100644 index 199bb9ff9..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-90deg-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-90deg-left.svg b/dist/assets/vendors/bootstrap-icons/arrow-90deg-left.svg deleted file mode 100644 index 1d07fabd0..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-90deg-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-90deg-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-90deg-right.svg deleted file mode 100644 index 783c85fe9..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-90deg-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-90deg-up.svg b/dist/assets/vendors/bootstrap-icons/arrow-90deg-up.svg deleted file mode 100644 index 75dfb16b0..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-90deg-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-bar-down.svg b/dist/assets/vendors/bootstrap-icons/arrow-bar-down.svg deleted file mode 100644 index 766bbd947..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-bar-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-bar-left.svg b/dist/assets/vendors/bootstrap-icons/arrow-bar-left.svg deleted file mode 100644 index 7e761def2..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-bar-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-bar-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-bar-right.svg deleted file mode 100644 index 73c6d092e..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-bar-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-bar-up.svg b/dist/assets/vendors/bootstrap-icons/arrow-bar-up.svg deleted file mode 100644 index 595f51470..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-bar-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-clockwise.svg b/dist/assets/vendors/bootstrap-icons/arrow-clockwise.svg deleted file mode 100644 index 0607b738d..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-clockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-counterclockwise.svg b/dist/assets/vendors/bootstrap-icons/arrow-counterclockwise.svg deleted file mode 100644 index 4435420c2..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-counterclockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-circle-fill.svg deleted file mode 100644 index 37805156d..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-circle.svg deleted file mode 100644 index b57cdc3b6..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-left-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-left-circle-fill.svg deleted file mode 100644 index 4909ca13f..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-left-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-left-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-left-circle.svg deleted file mode 100644 index 8b52276fd..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-left-circle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-left-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-left-square-fill.svg deleted file mode 100644 index dce1bafdc..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-left-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-left-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-left-square.svg deleted file mode 100644 index 198b86509..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-left-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-left.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-left.svg deleted file mode 100644 index dbdb67a4b..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-right-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-right-circle-fill.svg deleted file mode 100644 index f017f2b4f..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-right-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-right-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-right-circle.svg deleted file mode 100644 index f00503ff3..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-right-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-right-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-right-square-fill.svg deleted file mode 100644 index 256c477ae..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-right-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-right-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-right-square.svg deleted file mode 100644 index 8e4545c5b..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-right-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-right.svg deleted file mode 100644 index ea429f9a7..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-short.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-short.svg deleted file mode 100644 index ec97adb56..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-short.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-square-fill.svg deleted file mode 100644 index dc990ebe0..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-square.svg deleted file mode 100644 index 113d61daa..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down-up.svg b/dist/assets/vendors/bootstrap-icons/arrow-down-up.svg deleted file mode 100644 index 01b4b40fc..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-down.svg b/dist/assets/vendors/bootstrap-icons/arrow-down.svg deleted file mode 100644 index a5d82a286..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-left-circle-fill.svg deleted file mode 100644 index 31f9375d9..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-left-circle.svg deleted file mode 100644 index 70837b5ab..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-left-right.svg deleted file mode 100644 index a2b264991..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left-short.svg b/dist/assets/vendors/bootstrap-icons/arrow-left-short.svg deleted file mode 100644 index 81cd8b64e..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left-short.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-left-square-fill.svg deleted file mode 100644 index 8c9701e1d..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-left-square.svg deleted file mode 100644 index d48533a8e..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-left.svg b/dist/assets/vendors/bootstrap-icons/arrow-left.svg deleted file mode 100644 index caeedcf70..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-repeat.svg b/dist/assets/vendors/bootstrap-icons/arrow-repeat.svg deleted file mode 100644 index 330a900be..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-repeat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-return-left.svg b/dist/assets/vendors/bootstrap-icons/arrow-return-left.svg deleted file mode 100644 index 1d4fe7e8c..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-return-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-return-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-return-right.svg deleted file mode 100644 index 429dc9ec6..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-return-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-right-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-right-circle-fill.svg deleted file mode 100644 index ded084cda..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-right-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-right-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-right-circle.svg deleted file mode 100644 index ab9efb109..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-right-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-right-short.svg b/dist/assets/vendors/bootstrap-icons/arrow-right-short.svg deleted file mode 100644 index 86978c4ff..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-right-short.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-right-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-right-square-fill.svg deleted file mode 100644 index c7e990f79..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-right-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-right-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-right-square.svg deleted file mode 100644 index d8045f55d..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-right-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-right.svg deleted file mode 100644 index 5267dcfb8..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-circle-fill.svg deleted file mode 100644 index b8cf83dbc..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-circle.svg deleted file mode 100644 index 0d7a2c045..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-left-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-left-circle-fill.svg deleted file mode 100644 index e6bf003ea..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-left-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-left-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-left-circle.svg deleted file mode 100644 index 0f060ee98..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-left-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-left-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-left-square-fill.svg deleted file mode 100644 index b3d9c7948..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-left-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-left-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-left-square.svg deleted file mode 100644 index 3ff71cc7d..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-left-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-left.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-left.svg deleted file mode 100644 index dbd10185b..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-right-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-right-circle-fill.svg deleted file mode 100644 index 4ecb9bdda..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-right-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-right-circle.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-right-circle.svg deleted file mode 100644 index a442f5085..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-right-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-right-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-right-square-fill.svg deleted file mode 100644 index d9543ee32..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-right-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-right-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-right-square.svg deleted file mode 100644 index 52ba3b916..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-right-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-right.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-right.svg deleted file mode 100644 index f4985ec1c..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-short.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-short.svg deleted file mode 100644 index f94ecb626..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-short.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-square-fill.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-square-fill.svg deleted file mode 100644 index 0d8edfe75..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up-square.svg b/dist/assets/vendors/bootstrap-icons/arrow-up-square.svg deleted file mode 100644 index b59dde35c..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrow-up.svg b/dist/assets/vendors/bootstrap-icons/arrow-up.svg deleted file mode 100644 index 6ea7ab537..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrows-angle-contract.svg b/dist/assets/vendors/bootstrap-icons/arrows-angle-contract.svg deleted file mode 100644 index 82d81eec2..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrows-angle-contract.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrows-angle-expand.svg b/dist/assets/vendors/bootstrap-icons/arrows-angle-expand.svg deleted file mode 100644 index a7edd73c1..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrows-angle-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrows-collapse.svg b/dist/assets/vendors/bootstrap-icons/arrows-collapse.svg deleted file mode 100644 index 1103b8657..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrows-collapse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrows-expand.svg b/dist/assets/vendors/bootstrap-icons/arrows-expand.svg deleted file mode 100644 index 25d87b0f0..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrows-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrows-fullscreen.svg b/dist/assets/vendors/bootstrap-icons/arrows-fullscreen.svg deleted file mode 100644 index 5e38490dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrows-fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/arrows-move.svg b/dist/assets/vendors/bootstrap-icons/arrows-move.svg deleted file mode 100644 index 4af3ebbbd..000000000 --- a/dist/assets/vendors/bootstrap-icons/arrows-move.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/aspect-ratio-fill.svg b/dist/assets/vendors/bootstrap-icons/aspect-ratio-fill.svg deleted file mode 100644 index a2edcbd37..000000000 --- a/dist/assets/vendors/bootstrap-icons/aspect-ratio-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/aspect-ratio.svg b/dist/assets/vendors/bootstrap-icons/aspect-ratio.svg deleted file mode 100644 index 03b6b9ab0..000000000 --- a/dist/assets/vendors/bootstrap-icons/aspect-ratio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/asterisk.svg b/dist/assets/vendors/bootstrap-icons/asterisk.svg deleted file mode 100644 index fb34e284b..000000000 --- a/dist/assets/vendors/bootstrap-icons/asterisk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/at.svg b/dist/assets/vendors/bootstrap-icons/at.svg deleted file mode 100644 index 400cb6979..000000000 --- a/dist/assets/vendors/bootstrap-icons/at.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/award-fill.svg b/dist/assets/vendors/bootstrap-icons/award-fill.svg deleted file mode 100644 index 3a002349a..000000000 --- a/dist/assets/vendors/bootstrap-icons/award-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/award.svg b/dist/assets/vendors/bootstrap-icons/award.svg deleted file mode 100644 index 7b767d706..000000000 --- a/dist/assets/vendors/bootstrap-icons/award.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/back.svg b/dist/assets/vendors/bootstrap-icons/back.svg deleted file mode 100644 index de8512ac8..000000000 --- a/dist/assets/vendors/bootstrap-icons/back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/backspace-fill.svg b/dist/assets/vendors/bootstrap-icons/backspace-fill.svg deleted file mode 100644 index bf0711e07..000000000 --- a/dist/assets/vendors/bootstrap-icons/backspace-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/backspace-reverse-fill.svg b/dist/assets/vendors/bootstrap-icons/backspace-reverse-fill.svg deleted file mode 100644 index 74920daaa..000000000 --- a/dist/assets/vendors/bootstrap-icons/backspace-reverse-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/backspace-reverse.svg b/dist/assets/vendors/bootstrap-icons/backspace-reverse.svg deleted file mode 100644 index 9b64568a6..000000000 --- a/dist/assets/vendors/bootstrap-icons/backspace-reverse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/backspace.svg b/dist/assets/vendors/bootstrap-icons/backspace.svg deleted file mode 100644 index 46ac8d63a..000000000 --- a/dist/assets/vendors/bootstrap-icons/backspace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-3d-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-3d-fill.svg deleted file mode 100644 index 38745156d..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-3d-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-3d.svg b/dist/assets/vendors/bootstrap-icons/badge-3d.svg deleted file mode 100644 index 34858372a..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-3d.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-4k-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-4k-fill.svg deleted file mode 100644 index 896cfc070..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-4k-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-4k.svg b/dist/assets/vendors/bootstrap-icons/badge-4k.svg deleted file mode 100644 index 3356c72bd..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-4k.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-8k-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-8k-fill.svg deleted file mode 100644 index 1e1d4c162..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-8k-fill.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-8k.svg b/dist/assets/vendors/bootstrap-icons/badge-8k.svg deleted file mode 100644 index d9bf2912f..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-8k.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-ad-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-ad-fill.svg deleted file mode 100644 index 3cbbf1534..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-ad-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-ad.svg b/dist/assets/vendors/bootstrap-icons/badge-ad.svg deleted file mode 100644 index b669a3bdb..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-ad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-ar-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-ar-fill.svg deleted file mode 100644 index 4ba57df44..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-ar-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-ar.svg b/dist/assets/vendors/bootstrap-icons/badge-ar.svg deleted file mode 100644 index e9fefc2d6..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-ar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-cc-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-cc-fill.svg deleted file mode 100644 index e2e9cb8d8..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-cc-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-cc.svg b/dist/assets/vendors/bootstrap-icons/badge-cc.svg deleted file mode 100644 index 7f33a7a40..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-cc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-hd-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-hd-fill.svg deleted file mode 100644 index 8d2aae2c4..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-hd-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-hd.svg b/dist/assets/vendors/bootstrap-icons/badge-hd.svg deleted file mode 100644 index 7b875ada4..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-hd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-tm-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-tm-fill.svg deleted file mode 100644 index c5a25c92b..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-tm-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-tm.svg b/dist/assets/vendors/bootstrap-icons/badge-tm.svg deleted file mode 100644 index f75222ce4..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-tm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-vo-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-vo-fill.svg deleted file mode 100644 index 1f74e75b5..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-vo-fill.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-vo.svg b/dist/assets/vendors/bootstrap-icons/badge-vo.svg deleted file mode 100644 index 500d98f97..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-vo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-vr-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-vr-fill.svg deleted file mode 100644 index 4947eeb0e..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-vr-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-vr.svg b/dist/assets/vendors/bootstrap-icons/badge-vr.svg deleted file mode 100644 index b46dcfe72..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-vr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-wc-fill.svg b/dist/assets/vendors/bootstrap-icons/badge-wc-fill.svg deleted file mode 100644 index 3383c5ddb..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-wc-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/badge-wc.svg b/dist/assets/vendors/bootstrap-icons/badge-wc.svg deleted file mode 100644 index 18d983d6a..000000000 --- a/dist/assets/vendors/bootstrap-icons/badge-wc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-check-fill.svg b/dist/assets/vendors/bootstrap-icons/bag-check-fill.svg deleted file mode 100644 index da2ba1785..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-check.svg b/dist/assets/vendors/bootstrap-icons/bag-check.svg deleted file mode 100644 index bdd6538a1..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-dash-fill.svg b/dist/assets/vendors/bootstrap-icons/bag-dash-fill.svg deleted file mode 100644 index ed6cf35e4..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-dash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-dash.svg b/dist/assets/vendors/bootstrap-icons/bag-dash.svg deleted file mode 100644 index d72a98eea..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-dash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-fill.svg b/dist/assets/vendors/bootstrap-icons/bag-fill.svg deleted file mode 100644 index e580b5450..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/bag-plus-fill.svg deleted file mode 100644 index 6b207e0af..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-plus.svg b/dist/assets/vendors/bootstrap-icons/bag-plus.svg deleted file mode 100644 index 4eb9ec013..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-x-fill.svg b/dist/assets/vendors/bootstrap-icons/bag-x-fill.svg deleted file mode 100644 index 53d7fe191..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag-x.svg b/dist/assets/vendors/bootstrap-icons/bag-x.svg deleted file mode 100644 index 1b57584fc..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bag.svg b/dist/assets/vendors/bootstrap-icons/bag.svg deleted file mode 100644 index 7757ddc75..000000000 --- a/dist/assets/vendors/bootstrap-icons/bag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bar-chart-fill.svg b/dist/assets/vendors/bootstrap-icons/bar-chart-fill.svg deleted file mode 100644 index 23ba4f6e4..000000000 --- a/dist/assets/vendors/bootstrap-icons/bar-chart-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bar-chart-line-fill.svg b/dist/assets/vendors/bootstrap-icons/bar-chart-line-fill.svg deleted file mode 100644 index 06ab77a7a..000000000 --- a/dist/assets/vendors/bootstrap-icons/bar-chart-line-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bar-chart-line.svg b/dist/assets/vendors/bootstrap-icons/bar-chart-line.svg deleted file mode 100644 index e3f0cf255..000000000 --- a/dist/assets/vendors/bootstrap-icons/bar-chart-line.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bar-chart-steps.svg b/dist/assets/vendors/bootstrap-icons/bar-chart-steps.svg deleted file mode 100644 index abb021768..000000000 --- a/dist/assets/vendors/bootstrap-icons/bar-chart-steps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bar-chart.svg b/dist/assets/vendors/bootstrap-icons/bar-chart.svg deleted file mode 100644 index 708ec25fe..000000000 --- a/dist/assets/vendors/bootstrap-icons/bar-chart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/basket-fill.svg b/dist/assets/vendors/bootstrap-icons/basket-fill.svg deleted file mode 100644 index ec1684c63..000000000 --- a/dist/assets/vendors/bootstrap-icons/basket-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/basket.svg b/dist/assets/vendors/bootstrap-icons/basket.svg deleted file mode 100644 index b1d2e0323..000000000 --- a/dist/assets/vendors/bootstrap-icons/basket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/basket2-fill.svg b/dist/assets/vendors/bootstrap-icons/basket2-fill.svg deleted file mode 100644 index 6779146b3..000000000 --- a/dist/assets/vendors/bootstrap-icons/basket2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/basket2.svg b/dist/assets/vendors/bootstrap-icons/basket2.svg deleted file mode 100644 index e9493b9c6..000000000 --- a/dist/assets/vendors/bootstrap-icons/basket2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/basket3-fill.svg b/dist/assets/vendors/bootstrap-icons/basket3-fill.svg deleted file mode 100644 index cfc9185c5..000000000 --- a/dist/assets/vendors/bootstrap-icons/basket3-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/basket3.svg b/dist/assets/vendors/bootstrap-icons/basket3.svg deleted file mode 100644 index 359aa8d4f..000000000 --- a/dist/assets/vendors/bootstrap-icons/basket3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/battery-charging.svg b/dist/assets/vendors/bootstrap-icons/battery-charging.svg deleted file mode 100644 index 397b7d7ba..000000000 --- a/dist/assets/vendors/bootstrap-icons/battery-charging.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/battery-full.svg b/dist/assets/vendors/bootstrap-icons/battery-full.svg deleted file mode 100644 index 5a6577350..000000000 --- a/dist/assets/vendors/bootstrap-icons/battery-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/battery-half.svg b/dist/assets/vendors/bootstrap-icons/battery-half.svg deleted file mode 100644 index db49b7779..000000000 --- a/dist/assets/vendors/bootstrap-icons/battery-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/battery.svg b/dist/assets/vendors/bootstrap-icons/battery.svg deleted file mode 100644 index 126036069..000000000 --- a/dist/assets/vendors/bootstrap-icons/battery.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bell-fill.svg b/dist/assets/vendors/bootstrap-icons/bell-fill.svg deleted file mode 100644 index 3654ca9e9..000000000 --- a/dist/assets/vendors/bootstrap-icons/bell-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bell.svg b/dist/assets/vendors/bootstrap-icons/bell.svg deleted file mode 100644 index 9ebcfdd49..000000000 --- a/dist/assets/vendors/bootstrap-icons/bell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bezier.svg b/dist/assets/vendors/bootstrap-icons/bezier.svg deleted file mode 100644 index db446acba..000000000 --- a/dist/assets/vendors/bootstrap-icons/bezier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bezier2.svg b/dist/assets/vendors/bootstrap-icons/bezier2.svg deleted file mode 100644 index c5f32716b..000000000 --- a/dist/assets/vendors/bootstrap-icons/bezier2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bicycle.svg b/dist/assets/vendors/bootstrap-icons/bicycle.svg deleted file mode 100644 index 9c35651ad..000000000 --- a/dist/assets/vendors/bootstrap-icons/bicycle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/binoculars-fill.svg b/dist/assets/vendors/bootstrap-icons/binoculars-fill.svg deleted file mode 100644 index eeb04c3f0..000000000 --- a/dist/assets/vendors/bootstrap-icons/binoculars-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/binoculars.svg b/dist/assets/vendors/bootstrap-icons/binoculars.svg deleted file mode 100644 index 7a4b6bc33..000000000 --- a/dist/assets/vendors/bootstrap-icons/binoculars.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/blockquote-left.svg b/dist/assets/vendors/bootstrap-icons/blockquote-left.svg deleted file mode 100644 index e350b29ce..000000000 --- a/dist/assets/vendors/bootstrap-icons/blockquote-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/blockquote-right.svg b/dist/assets/vendors/bootstrap-icons/blockquote-right.svg deleted file mode 100644 index 52443c5fe..000000000 --- a/dist/assets/vendors/bootstrap-icons/blockquote-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/book-fill.svg b/dist/assets/vendors/bootstrap-icons/book-fill.svg deleted file mode 100644 index 4476406cb..000000000 --- a/dist/assets/vendors/bootstrap-icons/book-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/book-half.svg b/dist/assets/vendors/bootstrap-icons/book-half.svg deleted file mode 100644 index 0485023b1..000000000 --- a/dist/assets/vendors/bootstrap-icons/book-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/book.svg b/dist/assets/vendors/bootstrap-icons/book.svg deleted file mode 100644 index 0b8e3bb7c..000000000 --- a/dist/assets/vendors/bootstrap-icons/book.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-check-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-check-fill.svg deleted file mode 100644 index 039e4555a..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-check-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-check.svg b/dist/assets/vendors/bootstrap-icons/bookmark-check.svg deleted file mode 100644 index 5ef592b38..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-dash-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-dash-fill.svg deleted file mode 100644 index efa894ce7..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-dash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-dash.svg b/dist/assets/vendors/bootstrap-icons/bookmark-dash.svg deleted file mode 100644 index bb69b4226..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-dash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-fill.svg deleted file mode 100644 index c6f02d332..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-heart-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-heart-fill.svg deleted file mode 100644 index 221bb157c..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-heart-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-heart.svg b/dist/assets/vendors/bootstrap-icons/bookmark-heart.svg deleted file mode 100644 index 24959624f..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-plus-fill.svg deleted file mode 100644 index 183de154c..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-plus.svg b/dist/assets/vendors/bootstrap-icons/bookmark-plus.svg deleted file mode 100644 index 37fd11ba0..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-star-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-star-fill.svg deleted file mode 100644 index 45ff80be3..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-star-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-star.svg b/dist/assets/vendors/bootstrap-icons/bookmark-star.svg deleted file mode 100644 index f7285211f..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-x-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmark-x-fill.svg deleted file mode 100644 index 628a6e39d..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark-x.svg b/dist/assets/vendors/bootstrap-icons/bookmark-x.svg deleted file mode 100644 index 179b9f694..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmark.svg b/dist/assets/vendors/bootstrap-icons/bookmark.svg deleted file mode 100644 index 141b353a7..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmarks-fill.svg b/dist/assets/vendors/bootstrap-icons/bookmarks-fill.svg deleted file mode 100644 index b468e3a5f..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmarks-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookmarks.svg b/dist/assets/vendors/bootstrap-icons/bookmarks.svg deleted file mode 100644 index f70c5c2df..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookmarks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bookshelf.svg b/dist/assets/vendors/bootstrap-icons/bookshelf.svg deleted file mode 100644 index 14052c659..000000000 --- a/dist/assets/vendors/bootstrap-icons/bookshelf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bootstrap-fill.svg b/dist/assets/vendors/bootstrap-icons/bootstrap-fill.svg deleted file mode 100644 index e25c07410..000000000 --- a/dist/assets/vendors/bootstrap-icons/bootstrap-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bootstrap-icons.css b/dist/assets/vendors/bootstrap-icons/bootstrap-icons.css deleted file mode 100644 index 7e40cf0a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/bootstrap-icons.css +++ /dev/null @@ -1,1285 +0,0 @@ -@font-face { - font-family: "bootstrap-icons"; - src: url("./fonts/bootstrap-icons.woff?4601c71fb26c9277391ec80789bfde9c") format("woff"), -url("./fonts/bootstrap-icons.woff2?4601c71fb26c9277391ec80789bfde9c") format("woff2"); -} - -[class^="bi-"]::before, -[class*=" bi-"]::before { - display: inline-block; - font-family: bootstrap-icons !important; - font-style: normal; - font-weight: normal !important; - font-variant: normal; - text-transform: none; - line-height: 1; - vertical-align: text-top; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.bi-alarm-fill::before { content: "\f101"; } -.bi-alarm::before { content: "\f102"; } -.bi-align-bottom::before { content: "\f103"; } -.bi-align-center::before { content: "\f104"; } -.bi-align-end::before { content: "\f105"; } -.bi-align-middle::before { content: "\f106"; } -.bi-align-start::before { content: "\f107"; } -.bi-align-top::before { content: "\f108"; } -.bi-alt::before { content: "\f109"; } -.bi-app-indicator::before { content: "\f10a"; } -.bi-app::before { content: "\f10b"; } -.bi-archive-fill::before { content: "\f10c"; } -.bi-archive::before { content: "\f10d"; } -.bi-arrow-90deg-down::before { content: "\f10e"; } -.bi-arrow-90deg-left::before { content: "\f10f"; } -.bi-arrow-90deg-right::before { content: "\f110"; } -.bi-arrow-90deg-up::before { content: "\f111"; } -.bi-arrow-bar-down::before { content: "\f112"; } -.bi-arrow-bar-left::before { content: "\f113"; } -.bi-arrow-bar-right::before { content: "\f114"; } -.bi-arrow-bar-up::before { content: "\f115"; } -.bi-arrow-clockwise::before { content: "\f116"; } -.bi-arrow-counterclockwise::before { content: "\f117"; } -.bi-arrow-down-circle-fill::before { content: "\f118"; } -.bi-arrow-down-circle::before { content: "\f119"; } -.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } -.bi-arrow-down-left-circle::before { content: "\f11b"; } -.bi-arrow-down-left-square-fill::before { content: "\f11c"; } -.bi-arrow-down-left-square::before { content: "\f11d"; } -.bi-arrow-down-left::before { content: "\f11e"; } -.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } -.bi-arrow-down-right-circle::before { content: "\f120"; } -.bi-arrow-down-right-square-fill::before { content: "\f121"; } -.bi-arrow-down-right-square::before { content: "\f122"; } -.bi-arrow-down-right::before { content: "\f123"; } -.bi-arrow-down-short::before { content: "\f124"; } -.bi-arrow-down-square-fill::before { content: "\f125"; } -.bi-arrow-down-square::before { content: "\f126"; } -.bi-arrow-down-up::before { content: "\f127"; } -.bi-arrow-down::before { content: "\f128"; } -.bi-arrow-left-circle-fill::before { content: "\f129"; } -.bi-arrow-left-circle::before { content: "\f12a"; } -.bi-arrow-left-right::before { content: "\f12b"; } -.bi-arrow-left-short::before { content: "\f12c"; } -.bi-arrow-left-square-fill::before { content: "\f12d"; } -.bi-arrow-left-square::before { content: "\f12e"; } -.bi-arrow-left::before { content: "\f12f"; } -.bi-arrow-repeat::before { content: "\f130"; } -.bi-arrow-return-left::before { content: "\f131"; } -.bi-arrow-return-right::before { content: "\f132"; } -.bi-arrow-right-circle-fill::before { content: "\f133"; } -.bi-arrow-right-circle::before { content: "\f134"; } -.bi-arrow-right-short::before { content: "\f135"; } -.bi-arrow-right-square-fill::before { content: "\f136"; } -.bi-arrow-right-square::before { content: "\f137"; } -.bi-arrow-right::before { content: "\f138"; } -.bi-arrow-up-circle-fill::before { content: "\f139"; } -.bi-arrow-up-circle::before { content: "\f13a"; } -.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } -.bi-arrow-up-left-circle::before { content: "\f13c"; } -.bi-arrow-up-left-square-fill::before { content: "\f13d"; } -.bi-arrow-up-left-square::before { content: "\f13e"; } -.bi-arrow-up-left::before { content: "\f13f"; } -.bi-arrow-up-right-circle-fill::before { content: "\f140"; } -.bi-arrow-up-right-circle::before { content: "\f141"; } -.bi-arrow-up-right-square-fill::before { content: "\f142"; } -.bi-arrow-up-right-square::before { content: "\f143"; } -.bi-arrow-up-right::before { content: "\f144"; } -.bi-arrow-up-short::before { content: "\f145"; } -.bi-arrow-up-square-fill::before { content: "\f146"; } -.bi-arrow-up-square::before { content: "\f147"; } -.bi-arrow-up::before { content: "\f148"; } -.bi-arrows-angle-contract::before { content: "\f149"; } -.bi-arrows-angle-expand::before { content: "\f14a"; } -.bi-arrows-collapse::before { content: "\f14b"; } -.bi-arrows-expand::before { content: "\f14c"; } -.bi-arrows-fullscreen::before { content: "\f14d"; } -.bi-arrows-move::before { content: "\f14e"; } -.bi-aspect-ratio-fill::before { content: "\f14f"; } -.bi-aspect-ratio::before { content: "\f150"; } -.bi-asterisk::before { content: "\f151"; } -.bi-at::before { content: "\f152"; } -.bi-award-fill::before { content: "\f153"; } -.bi-award::before { content: "\f154"; } -.bi-back::before { content: "\f155"; } -.bi-backspace-fill::before { content: "\f156"; } -.bi-backspace-reverse-fill::before { content: "\f157"; } -.bi-backspace-reverse::before { content: "\f158"; } -.bi-backspace::before { content: "\f159"; } -.bi-badge-3d-fill::before { content: "\f15a"; } -.bi-badge-3d::before { content: "\f15b"; } -.bi-badge-4k-fill::before { content: "\f15c"; } -.bi-badge-4k::before { content: "\f15d"; } -.bi-badge-8k-fill::before { content: "\f15e"; } -.bi-badge-8k::before { content: "\f15f"; } -.bi-badge-ad-fill::before { content: "\f160"; } -.bi-badge-ad::before { content: "\f161"; } -.bi-badge-ar-fill::before { content: "\f162"; } -.bi-badge-ar::before { content: "\f163"; } -.bi-badge-cc-fill::before { content: "\f164"; } -.bi-badge-cc::before { content: "\f165"; } -.bi-badge-hd-fill::before { content: "\f166"; } -.bi-badge-hd::before { content: "\f167"; } -.bi-badge-tm-fill::before { content: "\f168"; } -.bi-badge-tm::before { content: "\f169"; } -.bi-badge-vo-fill::before { content: "\f16a"; } -.bi-badge-vo::before { content: "\f16b"; } -.bi-badge-vr-fill::before { content: "\f16c"; } -.bi-badge-vr::before { content: "\f16d"; } -.bi-badge-wc-fill::before { content: "\f16e"; } -.bi-badge-wc::before { content: "\f16f"; } -.bi-bag-check-fill::before { content: "\f170"; } -.bi-bag-check::before { content: "\f171"; } -.bi-bag-dash-fill::before { content: "\f172"; } -.bi-bag-dash::before { content: "\f173"; } -.bi-bag-fill::before { content: "\f174"; } -.bi-bag-plus-fill::before { content: "\f175"; } -.bi-bag-plus::before { content: "\f176"; } -.bi-bag-x-fill::before { content: "\f177"; } -.bi-bag-x::before { content: "\f178"; } -.bi-bag::before { content: "\f179"; } -.bi-bar-chart-fill::before { content: "\f17a"; } -.bi-bar-chart-line-fill::before { content: "\f17b"; } -.bi-bar-chart-line::before { content: "\f17c"; } -.bi-bar-chart-steps::before { content: "\f17d"; } -.bi-bar-chart::before { content: "\f17e"; } -.bi-basket-fill::before { content: "\f17f"; } -.bi-basket::before { content: "\f180"; } -.bi-basket2-fill::before { content: "\f181"; } -.bi-basket2::before { content: "\f182"; } -.bi-basket3-fill::before { content: "\f183"; } -.bi-basket3::before { content: "\f184"; } -.bi-battery-charging::before { content: "\f185"; } -.bi-battery-full::before { content: "\f186"; } -.bi-battery-half::before { content: "\f187"; } -.bi-battery::before { content: "\f188"; } -.bi-bell-fill::before { content: "\f189"; } -.bi-bell::before { content: "\f18a"; } -.bi-bezier::before { content: "\f18b"; } -.bi-bezier2::before { content: "\f18c"; } -.bi-bicycle::before { content: "\f18d"; } -.bi-binoculars-fill::before { content: "\f18e"; } -.bi-binoculars::before { content: "\f18f"; } -.bi-blockquote-left::before { content: "\f190"; } -.bi-blockquote-right::before { content: "\f191"; } -.bi-book-fill::before { content: "\f192"; } -.bi-book-half::before { content: "\f193"; } -.bi-book::before { content: "\f194"; } -.bi-bookmark-check-fill::before { content: "\f195"; } -.bi-bookmark-check::before { content: "\f196"; } -.bi-bookmark-dash-fill::before { content: "\f197"; } -.bi-bookmark-dash::before { content: "\f198"; } -.bi-bookmark-fill::before { content: "\f199"; } -.bi-bookmark-heart-fill::before { content: "\f19a"; } -.bi-bookmark-heart::before { content: "\f19b"; } -.bi-bookmark-plus-fill::before { content: "\f19c"; } -.bi-bookmark-plus::before { content: "\f19d"; } -.bi-bookmark-star-fill::before { content: "\f19e"; } -.bi-bookmark-star::before { content: "\f19f"; } -.bi-bookmark-x-fill::before { content: "\f1a0"; } -.bi-bookmark-x::before { content: "\f1a1"; } -.bi-bookmark::before { content: "\f1a2"; } -.bi-bookmarks-fill::before { content: "\f1a3"; } -.bi-bookmarks::before { content: "\f1a4"; } -.bi-bookshelf::before { content: "\f1a5"; } -.bi-bootstrap-fill::before { content: "\f1a6"; } -.bi-bootstrap-reboot::before { content: "\f1a7"; } -.bi-bootstrap::before { content: "\f1a8"; } -.bi-border-all::before { content: "\f1a9"; } -.bi-border-bottom::before { content: "\f1aa"; } -.bi-border-center::before { content: "\f1ab"; } -.bi-border-inner::before { content: "\f1ac"; } -.bi-border-left::before { content: "\f1ad"; } -.bi-border-middle::before { content: "\f1ae"; } -.bi-border-outer::before { content: "\f1af"; } -.bi-border-right::before { content: "\f1b0"; } -.bi-border-style::before { content: "\f1b1"; } -.bi-border-top::before { content: "\f1b2"; } -.bi-border-width::before { content: "\f1b3"; } -.bi-border::before { content: "\f1b4"; } -.bi-bounding-box-circles::before { content: "\f1b5"; } -.bi-bounding-box::before { content: "\f1b6"; } -.bi-box-arrow-down-left::before { content: "\f1b7"; } -.bi-box-arrow-down-right::before { content: "\f1b8"; } -.bi-box-arrow-down::before { content: "\f1b9"; } -.bi-box-arrow-in-down-left::before { content: "\f1ba"; } -.bi-box-arrow-in-down-right::before { content: "\f1bb"; } -.bi-box-arrow-in-down::before { content: "\f1bc"; } -.bi-box-arrow-in-left::before { content: "\f1bd"; } -.bi-box-arrow-in-right::before { content: "\f1be"; } -.bi-box-arrow-in-up-left::before { content: "\f1bf"; } -.bi-box-arrow-in-up-right::before { content: "\f1c0"; } -.bi-box-arrow-in-up::before { content: "\f1c1"; } -.bi-box-arrow-left::before { content: "\f1c2"; } -.bi-box-arrow-right::before { content: "\f1c3"; } -.bi-box-arrow-up-left::before { content: "\f1c4"; } -.bi-box-arrow-up-right::before { content: "\f1c5"; } -.bi-box-arrow-up::before { content: "\f1c6"; } -.bi-box-seam::before { content: "\f1c7"; } -.bi-box::before { content: "\f1c8"; } -.bi-braces::before { content: "\f1c9"; } -.bi-bricks::before { content: "\f1ca"; } -.bi-briefcase-fill::before { content: "\f1cb"; } -.bi-briefcase::before { content: "\f1cc"; } -.bi-brightness-alt-high-fill::before { content: "\f1cd"; } -.bi-brightness-alt-high::before { content: "\f1ce"; } -.bi-brightness-alt-low-fill::before { content: "\f1cf"; } -.bi-brightness-alt-low::before { content: "\f1d0"; } -.bi-brightness-high-fill::before { content: "\f1d1"; } -.bi-brightness-high::before { content: "\f1d2"; } -.bi-brightness-low-fill::before { content: "\f1d3"; } -.bi-brightness-low::before { content: "\f1d4"; } -.bi-broadcast-pin::before { content: "\f1d5"; } -.bi-broadcast::before { content: "\f1d6"; } -.bi-brush-fill::before { content: "\f1d7"; } -.bi-brush::before { content: "\f1d8"; } -.bi-bucket-fill::before { content: "\f1d9"; } -.bi-bucket::before { content: "\f1da"; } -.bi-bug-fill::before { content: "\f1db"; } -.bi-bug::before { content: "\f1dc"; } -.bi-building::before { content: "\f1dd"; } -.bi-bullseye::before { content: "\f1de"; } -.bi-calculator-fill::before { content: "\f1df"; } -.bi-calculator::before { content: "\f1e0"; } -.bi-calendar-check-fill::before { content: "\f1e1"; } -.bi-calendar-check::before { content: "\f1e2"; } -.bi-calendar-date-fill::before { content: "\f1e3"; } -.bi-calendar-date::before { content: "\f1e4"; } -.bi-calendar-day-fill::before { content: "\f1e5"; } -.bi-calendar-day::before { content: "\f1e6"; } -.bi-calendar-event-fill::before { content: "\f1e7"; } -.bi-calendar-event::before { content: "\f1e8"; } -.bi-calendar-fill::before { content: "\f1e9"; } -.bi-calendar-minus-fill::before { content: "\f1ea"; } -.bi-calendar-minus::before { content: "\f1eb"; } -.bi-calendar-month-fill::before { content: "\f1ec"; } -.bi-calendar-month::before { content: "\f1ed"; } -.bi-calendar-plus-fill::before { content: "\f1ee"; } -.bi-calendar-plus::before { content: "\f1ef"; } -.bi-calendar-range-fill::before { content: "\f1f0"; } -.bi-calendar-range::before { content: "\f1f1"; } -.bi-calendar-week-fill::before { content: "\f1f2"; } -.bi-calendar-week::before { content: "\f1f3"; } -.bi-calendar-x-fill::before { content: "\f1f4"; } -.bi-calendar-x::before { content: "\f1f5"; } -.bi-calendar::before { content: "\f1f6"; } -.bi-calendar2-check-fill::before { content: "\f1f7"; } -.bi-calendar2-check::before { content: "\f1f8"; } -.bi-calendar2-date-fill::before { content: "\f1f9"; } -.bi-calendar2-date::before { content: "\f1fa"; } -.bi-calendar2-day-fill::before { content: "\f1fb"; } -.bi-calendar2-day::before { content: "\f1fc"; } -.bi-calendar2-event-fill::before { content: "\f1fd"; } -.bi-calendar2-event::before { content: "\f1fe"; } -.bi-calendar2-fill::before { content: "\f1ff"; } -.bi-calendar2-minus-fill::before { content: "\f200"; } -.bi-calendar2-minus::before { content: "\f201"; } -.bi-calendar2-month-fill::before { content: "\f202"; } -.bi-calendar2-month::before { content: "\f203"; } -.bi-calendar2-plus-fill::before { content: "\f204"; } -.bi-calendar2-plus::before { content: "\f205"; } -.bi-calendar2-range-fill::before { content: "\f206"; } -.bi-calendar2-range::before { content: "\f207"; } -.bi-calendar2-week-fill::before { content: "\f208"; } -.bi-calendar2-week::before { content: "\f209"; } -.bi-calendar2-x-fill::before { content: "\f20a"; } -.bi-calendar2-x::before { content: "\f20b"; } -.bi-calendar2::before { content: "\f20c"; } -.bi-calendar3-event-fill::before { content: "\f20d"; } -.bi-calendar3-event::before { content: "\f20e"; } -.bi-calendar3-fill::before { content: "\f20f"; } -.bi-calendar3-range-fill::before { content: "\f210"; } -.bi-calendar3-range::before { content: "\f211"; } -.bi-calendar3-week-fill::before { content: "\f212"; } -.bi-calendar3-week::before { content: "\f213"; } -.bi-calendar3::before { content: "\f214"; } -.bi-calendar4-event::before { content: "\f215"; } -.bi-calendar4-range::before { content: "\f216"; } -.bi-calendar4-week::before { content: "\f217"; } -.bi-calendar4::before { content: "\f218"; } -.bi-camera-fill::before { content: "\f219"; } -.bi-camera-reels-fill::before { content: "\f21a"; } -.bi-camera-reels::before { content: "\f21b"; } -.bi-camera-video-fill::before { content: "\f21c"; } -.bi-camera-video-off-fill::before { content: "\f21d"; } -.bi-camera-video-off::before { content: "\f21e"; } -.bi-camera-video::before { content: "\f21f"; } -.bi-camera::before { content: "\f220"; } -.bi-camera2::before { content: "\f221"; } -.bi-capslock-fill::before { content: "\f222"; } -.bi-capslock::before { content: "\f223"; } -.bi-card-checklist::before { content: "\f224"; } -.bi-card-heading::before { content: "\f225"; } -.bi-card-image::before { content: "\f226"; } -.bi-card-list::before { content: "\f227"; } -.bi-card-text::before { content: "\f228"; } -.bi-caret-down-fill::before { content: "\f229"; } -.bi-caret-down-square-fill::before { content: "\f22a"; } -.bi-caret-down-square::before { content: "\f22b"; } -.bi-caret-down::before { content: "\f22c"; } -.bi-caret-left-fill::before { content: "\f22d"; } -.bi-caret-left-square-fill::before { content: "\f22e"; } -.bi-caret-left-square::before { content: "\f22f"; } -.bi-caret-left::before { content: "\f230"; } -.bi-caret-right-fill::before { content: "\f231"; } -.bi-caret-right-square-fill::before { content: "\f232"; } -.bi-caret-right-square::before { content: "\f233"; } -.bi-caret-right::before { content: "\f234"; } -.bi-caret-up-fill::before { content: "\f235"; } -.bi-caret-up-square-fill::before { content: "\f236"; } -.bi-caret-up-square::before { content: "\f237"; } -.bi-caret-up::before { content: "\f238"; } -.bi-cart-check-fill::before { content: "\f239"; } -.bi-cart-check::before { content: "\f23a"; } -.bi-cart-dash-fill::before { content: "\f23b"; } -.bi-cart-dash::before { content: "\f23c"; } -.bi-cart-fill::before { content: "\f23d"; } -.bi-cart-plus-fill::before { content: "\f23e"; } -.bi-cart-plus::before { content: "\f23f"; } -.bi-cart-x-fill::before { content: "\f240"; } -.bi-cart-x::before { content: "\f241"; } -.bi-cart::before { content: "\f242"; } -.bi-cart2::before { content: "\f243"; } -.bi-cart3::before { content: "\f244"; } -.bi-cart4::before { content: "\f245"; } -.bi-cash-stack::before { content: "\f246"; } -.bi-cash::before { content: "\f247"; } -.bi-cast::before { content: "\f248"; } -.bi-chat-dots-fill::before { content: "\f249"; } -.bi-chat-dots::before { content: "\f24a"; } -.bi-chat-fill::before { content: "\f24b"; } -.bi-chat-left-dots-fill::before { content: "\f24c"; } -.bi-chat-left-dots::before { content: "\f24d"; } -.bi-chat-left-fill::before { content: "\f24e"; } -.bi-chat-left-quote-fill::before { content: "\f24f"; } -.bi-chat-left-quote::before { content: "\f250"; } -.bi-chat-left-text-fill::before { content: "\f251"; } -.bi-chat-left-text::before { content: "\f252"; } -.bi-chat-left::before { content: "\f253"; } -.bi-chat-quote-fill::before { content: "\f254"; } -.bi-chat-quote::before { content: "\f255"; } -.bi-chat-right-dots-fill::before { content: "\f256"; } -.bi-chat-right-dots::before { content: "\f257"; } -.bi-chat-right-fill::before { content: "\f258"; } -.bi-chat-right-quote-fill::before { content: "\f259"; } -.bi-chat-right-quote::before { content: "\f25a"; } -.bi-chat-right-text-fill::before { content: "\f25b"; } -.bi-chat-right-text::before { content: "\f25c"; } -.bi-chat-right::before { content: "\f25d"; } -.bi-chat-square-dots-fill::before { content: "\f25e"; } -.bi-chat-square-dots::before { content: "\f25f"; } -.bi-chat-square-fill::before { content: "\f260"; } -.bi-chat-square-quote-fill::before { content: "\f261"; } -.bi-chat-square-quote::before { content: "\f262"; } -.bi-chat-square-text-fill::before { content: "\f263"; } -.bi-chat-square-text::before { content: "\f264"; } -.bi-chat-square::before { content: "\f265"; } -.bi-chat-text-fill::before { content: "\f266"; } -.bi-chat-text::before { content: "\f267"; } -.bi-chat::before { content: "\f268"; } -.bi-check-all::before { content: "\f269"; } -.bi-check-circle-fill::before { content: "\f26a"; } -.bi-check-circle::before { content: "\f26b"; } -.bi-check-square-fill::before { content: "\f26c"; } -.bi-check-square::before { content: "\f26d"; } -.bi-check::before { content: "\f26e"; } -.bi-check2-all::before { content: "\f26f"; } -.bi-check2-circle::before { content: "\f270"; } -.bi-check2-square::before { content: "\f271"; } -.bi-check2::before { content: "\f272"; } -.bi-chevron-bar-contract::before { content: "\f273"; } -.bi-chevron-bar-down::before { content: "\f274"; } -.bi-chevron-bar-expand::before { content: "\f275"; } -.bi-chevron-bar-left::before { content: "\f276"; } -.bi-chevron-bar-right::before { content: "\f277"; } -.bi-chevron-bar-up::before { content: "\f278"; } -.bi-chevron-compact-down::before { content: "\f279"; } -.bi-chevron-compact-left::before { content: "\f27a"; } -.bi-chevron-compact-right::before { content: "\f27b"; } -.bi-chevron-compact-up::before { content: "\f27c"; } -.bi-chevron-contract::before { content: "\f27d"; } -.bi-chevron-double-down::before { content: "\f27e"; } -.bi-chevron-double-left::before { content: "\f27f"; } -.bi-chevron-double-right::before { content: "\f280"; } -.bi-chevron-double-up::before { content: "\f281"; } -.bi-chevron-down::before { content: "\f282"; } -.bi-chevron-expand::before { content: "\f283"; } -.bi-chevron-left::before { content: "\f284"; } -.bi-chevron-right::before { content: "\f285"; } -.bi-chevron-up::before { content: "\f286"; } -.bi-circle-fill::before { content: "\f287"; } -.bi-circle-half::before { content: "\f288"; } -.bi-circle-square::before { content: "\f289"; } -.bi-circle::before { content: "\f28a"; } -.bi-clipboard-check::before { content: "\f28b"; } -.bi-clipboard-data::before { content: "\f28c"; } -.bi-clipboard-minus::before { content: "\f28d"; } -.bi-clipboard-plus::before { content: "\f28e"; } -.bi-clipboard-x::before { content: "\f28f"; } -.bi-clipboard::before { content: "\f290"; } -.bi-clock-fill::before { content: "\f291"; } -.bi-clock-history::before { content: "\f292"; } -.bi-clock::before { content: "\f293"; } -.bi-cloud-arrow-down-fill::before { content: "\f294"; } -.bi-cloud-arrow-down::before { content: "\f295"; } -.bi-cloud-arrow-up-fill::before { content: "\f296"; } -.bi-cloud-arrow-up::before { content: "\f297"; } -.bi-cloud-check-fill::before { content: "\f298"; } -.bi-cloud-check::before { content: "\f299"; } -.bi-cloud-download-fill::before { content: "\f29a"; } -.bi-cloud-download::before { content: "\f29b"; } -.bi-cloud-fill::before { content: "\f29c"; } -.bi-cloud-minus-fill::before { content: "\f29d"; } -.bi-cloud-minus::before { content: "\f29e"; } -.bi-cloud-plus-fill::before { content: "\f29f"; } -.bi-cloud-plus::before { content: "\f2a0"; } -.bi-cloud-slash-fill::before { content: "\f2a1"; } -.bi-cloud-slash::before { content: "\f2a2"; } -.bi-cloud-upload-fill::before { content: "\f2a3"; } -.bi-cloud-upload::before { content: "\f2a4"; } -.bi-cloud::before { content: "\f2a5"; } -.bi-code-slash::before { content: "\f2a6"; } -.bi-code-square::before { content: "\f2a7"; } -.bi-code::before { content: "\f2a8"; } -.bi-collection-fill::before { content: "\f2a9"; } -.bi-collection-play-fill::before { content: "\f2aa"; } -.bi-collection-play::before { content: "\f2ab"; } -.bi-collection::before { content: "\f2ac"; } -.bi-columns-gap::before { content: "\f2ad"; } -.bi-columns::before { content: "\f2ae"; } -.bi-command::before { content: "\f2af"; } -.bi-compass-fill::before { content: "\f2b0"; } -.bi-compass::before { content: "\f2b1"; } -.bi-cone-striped::before { content: "\f2b2"; } -.bi-cone::before { content: "\f2b3"; } -.bi-controller::before { content: "\f2b4"; } -.bi-cpu-fill::before { content: "\f2b5"; } -.bi-cpu::before { content: "\f2b6"; } -.bi-credit-card-2-back-fill::before { content: "\f2b7"; } -.bi-credit-card-2-back::before { content: "\f2b8"; } -.bi-credit-card-2-front-fill::before { content: "\f2b9"; } -.bi-credit-card-2-front::before { content: "\f2ba"; } -.bi-credit-card-fill::before { content: "\f2bb"; } -.bi-credit-card::before { content: "\f2bc"; } -.bi-crop::before { content: "\f2bd"; } -.bi-cup-fill::before { content: "\f2be"; } -.bi-cup-straw::before { content: "\f2bf"; } -.bi-cup::before { content: "\f2c0"; } -.bi-cursor-fill::before { content: "\f2c1"; } -.bi-cursor-text::before { content: "\f2c2"; } -.bi-cursor::before { content: "\f2c3"; } -.bi-dash-circle-dotted::before { content: "\f2c4"; } -.bi-dash-circle-fill::before { content: "\f2c5"; } -.bi-dash-circle::before { content: "\f2c6"; } -.bi-dash-square-dotted::before { content: "\f2c7"; } -.bi-dash-square-fill::before { content: "\f2c8"; } -.bi-dash-square::before { content: "\f2c9"; } -.bi-dash::before { content: "\f2ca"; } -.bi-diagram-2-fill::before { content: "\f2cb"; } -.bi-diagram-2::before { content: "\f2cc"; } -.bi-diagram-3-fill::before { content: "\f2cd"; } -.bi-diagram-3::before { content: "\f2ce"; } -.bi-diamond-fill::before { content: "\f2cf"; } -.bi-diamond-half::before { content: "\f2d0"; } -.bi-diamond::before { content: "\f2d1"; } -.bi-dice-1-fill::before { content: "\f2d2"; } -.bi-dice-1::before { content: "\f2d3"; } -.bi-dice-2-fill::before { content: "\f2d4"; } -.bi-dice-2::before { content: "\f2d5"; } -.bi-dice-3-fill::before { content: "\f2d6"; } -.bi-dice-3::before { content: "\f2d7"; } -.bi-dice-4-fill::before { content: "\f2d8"; } -.bi-dice-4::before { content: "\f2d9"; } -.bi-dice-5-fill::before { content: "\f2da"; } -.bi-dice-5::before { content: "\f2db"; } -.bi-dice-6-fill::before { content: "\f2dc"; } -.bi-dice-6::before { content: "\f2dd"; } -.bi-disc-fill::before { content: "\f2de"; } -.bi-disc::before { content: "\f2df"; } -.bi-discord::before { content: "\f2e0"; } -.bi-display-fill::before { content: "\f2e1"; } -.bi-display::before { content: "\f2e2"; } -.bi-distribute-horizontal::before { content: "\f2e3"; } -.bi-distribute-vertical::before { content: "\f2e4"; } -.bi-door-closed-fill::before { content: "\f2e5"; } -.bi-door-closed::before { content: "\f2e6"; } -.bi-door-open-fill::before { content: "\f2e7"; } -.bi-door-open::before { content: "\f2e8"; } -.bi-dot::before { content: "\f2e9"; } -.bi-download::before { content: "\f2ea"; } -.bi-droplet-fill::before { content: "\f2eb"; } -.bi-droplet-half::before { content: "\f2ec"; } -.bi-droplet::before { content: "\f2ed"; } -.bi-earbuds::before { content: "\f2ee"; } -.bi-easel-fill::before { content: "\f2ef"; } -.bi-easel::before { content: "\f2f0"; } -.bi-egg-fill::before { content: "\f2f1"; } -.bi-egg-fried::before { content: "\f2f2"; } -.bi-egg::before { content: "\f2f3"; } -.bi-eject-fill::before { content: "\f2f4"; } -.bi-eject::before { content: "\f2f5"; } -.bi-emoji-angry-fill::before { content: "\f2f6"; } -.bi-emoji-angry::before { content: "\f2f7"; } -.bi-emoji-dizzy-fill::before { content: "\f2f8"; } -.bi-emoji-dizzy::before { content: "\f2f9"; } -.bi-emoji-expressionless-fill::before { content: "\f2fa"; } -.bi-emoji-expressionless::before { content: "\f2fb"; } -.bi-emoji-frown-fill::before { content: "\f2fc"; } -.bi-emoji-frown::before { content: "\f2fd"; } -.bi-emoji-heart-eyes-fill::before { content: "\f2fe"; } -.bi-emoji-heart-eyes::before { content: "\f2ff"; } -.bi-emoji-laughing-fill::before { content: "\f300"; } -.bi-emoji-laughing::before { content: "\f301"; } -.bi-emoji-neutral-fill::before { content: "\f302"; } -.bi-emoji-neutral::before { content: "\f303"; } -.bi-emoji-smile-fill::before { content: "\f304"; } -.bi-emoji-smile-upside-down-fill::before { content: "\f305"; } -.bi-emoji-smile-upside-down::before { content: "\f306"; } -.bi-emoji-smile::before { content: "\f307"; } -.bi-emoji-sunglasses-fill::before { content: "\f308"; } -.bi-emoji-sunglasses::before { content: "\f309"; } -.bi-emoji-wink-fill::before { content: "\f30a"; } -.bi-emoji-wink::before { content: "\f30b"; } -.bi-envelope-fill::before { content: "\f30c"; } -.bi-envelope-open-fill::before { content: "\f30d"; } -.bi-envelope-open::before { content: "\f30e"; } -.bi-envelope::before { content: "\f30f"; } -.bi-eraser-fill::before { content: "\f310"; } -.bi-eraser::before { content: "\f311"; } -.bi-exclamation-circle-fill::before { content: "\f312"; } -.bi-exclamation-circle::before { content: "\f313"; } -.bi-exclamation-diamond-fill::before { content: "\f314"; } -.bi-exclamation-diamond::before { content: "\f315"; } -.bi-exclamation-octagon-fill::before { content: "\f316"; } -.bi-exclamation-octagon::before { content: "\f317"; } -.bi-exclamation-square-fill::before { content: "\f318"; } -.bi-exclamation-square::before { content: "\f319"; } -.bi-exclamation-triangle-fill::before { content: "\f31a"; } -.bi-exclamation-triangle::before { content: "\f31b"; } -.bi-exclamation::before { content: "\f31c"; } -.bi-exclude::before { content: "\f31d"; } -.bi-eye-fill::before { content: "\f31e"; } -.bi-eye-slash-fill::before { content: "\f31f"; } -.bi-eye-slash::before { content: "\f320"; } -.bi-eye::before { content: "\f321"; } -.bi-eyedropper::before { content: "\f322"; } -.bi-eyeglasses::before { content: "\f323"; } -.bi-facebook::before { content: "\f324"; } -.bi-file-arrow-down-fill::before { content: "\f325"; } -.bi-file-arrow-down::before { content: "\f326"; } -.bi-file-arrow-up-fill::before { content: "\f327"; } -.bi-file-arrow-up::before { content: "\f328"; } -.bi-file-bar-graph-fill::before { content: "\f329"; } -.bi-file-bar-graph::before { content: "\f32a"; } -.bi-file-binary-fill::before { content: "\f32b"; } -.bi-file-binary::before { content: "\f32c"; } -.bi-file-break-fill::before { content: "\f32d"; } -.bi-file-break::before { content: "\f32e"; } -.bi-file-check-fill::before { content: "\f32f"; } -.bi-file-check::before { content: "\f330"; } -.bi-file-code-fill::before { content: "\f331"; } -.bi-file-code::before { content: "\f332"; } -.bi-file-diff-fill::before { content: "\f333"; } -.bi-file-diff::before { content: "\f334"; } -.bi-file-earmark-arrow-down-fill::before { content: "\f335"; } -.bi-file-earmark-arrow-down::before { content: "\f336"; } -.bi-file-earmark-arrow-up-fill::before { content: "\f337"; } -.bi-file-earmark-arrow-up::before { content: "\f338"; } -.bi-file-earmark-bar-graph-fill::before { content: "\f339"; } -.bi-file-earmark-bar-graph::before { content: "\f33a"; } -.bi-file-earmark-binary-fill::before { content: "\f33b"; } -.bi-file-earmark-binary::before { content: "\f33c"; } -.bi-file-earmark-break-fill::before { content: "\f33d"; } -.bi-file-earmark-break::before { content: "\f33e"; } -.bi-file-earmark-check-fill::before { content: "\f33f"; } -.bi-file-earmark-check::before { content: "\f340"; } -.bi-file-earmark-code-fill::before { content: "\f341"; } -.bi-file-earmark-code::before { content: "\f342"; } -.bi-file-earmark-diff-fill::before { content: "\f343"; } -.bi-file-earmark-diff::before { content: "\f344"; } -.bi-file-earmark-easel-fill::before { content: "\f345"; } -.bi-file-earmark-easel::before { content: "\f346"; } -.bi-file-earmark-excel-fill::before { content: "\f347"; } -.bi-file-earmark-excel::before { content: "\f348"; } -.bi-file-earmark-fill::before { content: "\f349"; } -.bi-file-earmark-font-fill::before { content: "\f34a"; } -.bi-file-earmark-font::before { content: "\f34b"; } -.bi-file-earmark-image-fill::before { content: "\f34c"; } -.bi-file-earmark-image::before { content: "\f34d"; } -.bi-file-earmark-lock-fill::before { content: "\f34e"; } -.bi-file-earmark-lock::before { content: "\f34f"; } -.bi-file-earmark-lock2-fill::before { content: "\f350"; } -.bi-file-earmark-lock2::before { content: "\f351"; } -.bi-file-earmark-medical-fill::before { content: "\f352"; } -.bi-file-earmark-medical::before { content: "\f353"; } -.bi-file-earmark-minus-fill::before { content: "\f354"; } -.bi-file-earmark-minus::before { content: "\f355"; } -.bi-file-earmark-music-fill::before { content: "\f356"; } -.bi-file-earmark-music::before { content: "\f357"; } -.bi-file-earmark-person-fill::before { content: "\f358"; } -.bi-file-earmark-person::before { content: "\f359"; } -.bi-file-earmark-play-fill::before { content: "\f35a"; } -.bi-file-earmark-play::before { content: "\f35b"; } -.bi-file-earmark-plus-fill::before { content: "\f35c"; } -.bi-file-earmark-plus::before { content: "\f35d"; } -.bi-file-earmark-post-fill::before { content: "\f35e"; } -.bi-file-earmark-post::before { content: "\f35f"; } -.bi-file-earmark-ppt-fill::before { content: "\f360"; } -.bi-file-earmark-ppt::before { content: "\f361"; } -.bi-file-earmark-richtext-fill::before { content: "\f362"; } -.bi-file-earmark-richtext::before { content: "\f363"; } -.bi-file-earmark-ruled-fill::before { content: "\f364"; } -.bi-file-earmark-ruled::before { content: "\f365"; } -.bi-file-earmark-slides-fill::before { content: "\f366"; } -.bi-file-earmark-slides::before { content: "\f367"; } -.bi-file-earmark-spreadsheet-fill::before { content: "\f368"; } -.bi-file-earmark-spreadsheet::before { content: "\f369"; } -.bi-file-earmark-text-fill::before { content: "\f36a"; } -.bi-file-earmark-text::before { content: "\f36b"; } -.bi-file-earmark-word-fill::before { content: "\f36c"; } -.bi-file-earmark-word::before { content: "\f36d"; } -.bi-file-earmark-x-fill::before { content: "\f36e"; } -.bi-file-earmark-x::before { content: "\f36f"; } -.bi-file-earmark-zip-fill::before { content: "\f370"; } -.bi-file-earmark-zip::before { content: "\f371"; } -.bi-file-earmark::before { content: "\f372"; } -.bi-file-easel-fill::before { content: "\f373"; } -.bi-file-easel::before { content: "\f374"; } -.bi-file-excel-fill::before { content: "\f375"; } -.bi-file-excel::before { content: "\f376"; } -.bi-file-fill::before { content: "\f377"; } -.bi-file-font-fill::before { content: "\f378"; } -.bi-file-font::before { content: "\f379"; } -.bi-file-image-fill::before { content: "\f37a"; } -.bi-file-image::before { content: "\f37b"; } -.bi-file-lock-fill::before { content: "\f37c"; } -.bi-file-lock::before { content: "\f37d"; } -.bi-file-lock2-fill::before { content: "\f37e"; } -.bi-file-lock2::before { content: "\f37f"; } -.bi-file-medical-fill::before { content: "\f380"; } -.bi-file-medical::before { content: "\f381"; } -.bi-file-minus-fill::before { content: "\f382"; } -.bi-file-minus::before { content: "\f383"; } -.bi-file-music-fill::before { content: "\f384"; } -.bi-file-music::before { content: "\f385"; } -.bi-file-person-fill::before { content: "\f386"; } -.bi-file-person::before { content: "\f387"; } -.bi-file-play-fill::before { content: "\f388"; } -.bi-file-play::before { content: "\f389"; } -.bi-file-plus-fill::before { content: "\f38a"; } -.bi-file-plus::before { content: "\f38b"; } -.bi-file-post-fill::before { content: "\f38c"; } -.bi-file-post::before { content: "\f38d"; } -.bi-file-ppt-fill::before { content: "\f38e"; } -.bi-file-ppt::before { content: "\f38f"; } -.bi-file-richtext-fill::before { content: "\f390"; } -.bi-file-richtext::before { content: "\f391"; } -.bi-file-ruled-fill::before { content: "\f392"; } -.bi-file-ruled::before { content: "\f393"; } -.bi-file-slides-fill::before { content: "\f394"; } -.bi-file-slides::before { content: "\f395"; } -.bi-file-spreadsheet-fill::before { content: "\f396"; } -.bi-file-spreadsheet::before { content: "\f397"; } -.bi-file-text-fill::before { content: "\f398"; } -.bi-file-text::before { content: "\f399"; } -.bi-file-word-fill::before { content: "\f39a"; } -.bi-file-word::before { content: "\f39b"; } -.bi-file-x-fill::before { content: "\f39c"; } -.bi-file-x::before { content: "\f39d"; } -.bi-file-zip-fill::before { content: "\f39e"; } -.bi-file-zip::before { content: "\f39f"; } -.bi-file::before { content: "\f3a0"; } -.bi-files-alt::before { content: "\f3a1"; } -.bi-files::before { content: "\f3a2"; } -.bi-film::before { content: "\f3a3"; } -.bi-filter-circle-fill::before { content: "\f3a4"; } -.bi-filter-circle::before { content: "\f3a5"; } -.bi-filter-left::before { content: "\f3a6"; } -.bi-filter-right::before { content: "\f3a7"; } -.bi-filter-square-fill::before { content: "\f3a8"; } -.bi-filter-square::before { content: "\f3a9"; } -.bi-filter::before { content: "\f3aa"; } -.bi-flag-fill::before { content: "\f3ab"; } -.bi-flag::before { content: "\f3ac"; } -.bi-flower1::before { content: "\f3ad"; } -.bi-flower2::before { content: "\f3ae"; } -.bi-flower3::before { content: "\f3af"; } -.bi-folder-check::before { content: "\f3b0"; } -.bi-folder-fill::before { content: "\f3b1"; } -.bi-folder-minus::before { content: "\f3b2"; } -.bi-folder-plus::before { content: "\f3b3"; } -.bi-folder-symlink-fill::before { content: "\f3b4"; } -.bi-folder-symlink::before { content: "\f3b5"; } -.bi-folder-x::before { content: "\f3b6"; } -.bi-folder::before { content: "\f3b7"; } -.bi-folder2-open::before { content: "\f3b8"; } -.bi-folder2::before { content: "\f3b9"; } -.bi-fonts::before { content: "\f3ba"; } -.bi-forward-fill::before { content: "\f3bb"; } -.bi-forward::before { content: "\f3bc"; } -.bi-front::before { content: "\f3bd"; } -.bi-fullscreen-exit::before { content: "\f3be"; } -.bi-fullscreen::before { content: "\f3bf"; } -.bi-funnel-fill::before { content: "\f3c0"; } -.bi-funnel::before { content: "\f3c1"; } -.bi-gear-fill::before { content: "\f3c2"; } -.bi-gear-wide-connected::before { content: "\f3c3"; } -.bi-gear-wide::before { content: "\f3c4"; } -.bi-gear::before { content: "\f3c5"; } -.bi-gem::before { content: "\f3c6"; } -.bi-geo-alt-fill::before { content: "\f3c7"; } -.bi-geo-alt::before { content: "\f3c8"; } -.bi-geo-fill::before { content: "\f3c9"; } -.bi-geo::before { content: "\f3ca"; } -.bi-gift-fill::before { content: "\f3cb"; } -.bi-gift::before { content: "\f3cc"; } -.bi-github::before { content: "\f3cd"; } -.bi-globe::before { content: "\f3ce"; } -.bi-globe2::before { content: "\f3cf"; } -.bi-google::before { content: "\f3d0"; } -.bi-graph-down::before { content: "\f3d1"; } -.bi-graph-up::before { content: "\f3d2"; } -.bi-grid-1x2-fill::before { content: "\f3d3"; } -.bi-grid-1x2::before { content: "\f3d4"; } -.bi-grid-3x2-gap-fill::before { content: "\f3d5"; } -.bi-grid-3x2-gap::before { content: "\f3d6"; } -.bi-grid-3x2::before { content: "\f3d7"; } -.bi-grid-3x3-gap-fill::before { content: "\f3d8"; } -.bi-grid-3x3-gap::before { content: "\f3d9"; } -.bi-grid-3x3::before { content: "\f3da"; } -.bi-grid-fill::before { content: "\f3db"; } -.bi-grid::before { content: "\f3dc"; } -.bi-grip-horizontal::before { content: "\f3dd"; } -.bi-grip-vertical::before { content: "\f3de"; } -.bi-hammer::before { content: "\f3df"; } -.bi-hand-index-fill::before { content: "\f3e0"; } -.bi-hand-index-thumb-fill::before { content: "\f3e1"; } -.bi-hand-index-thumb::before { content: "\f3e2"; } -.bi-hand-index::before { content: "\f3e3"; } -.bi-hand-thumbs-down-fill::before { content: "\f3e4"; } -.bi-hand-thumbs-down::before { content: "\f3e5"; } -.bi-hand-thumbs-up-fill::before { content: "\f3e6"; } -.bi-hand-thumbs-up::before { content: "\f3e7"; } -.bi-handbag-fill::before { content: "\f3e8"; } -.bi-handbag::before { content: "\f3e9"; } -.bi-hash::before { content: "\f3ea"; } -.bi-hdd-fill::before { content: "\f3eb"; } -.bi-hdd-network-fill::before { content: "\f3ec"; } -.bi-hdd-network::before { content: "\f3ed"; } -.bi-hdd-rack-fill::before { content: "\f3ee"; } -.bi-hdd-rack::before { content: "\f3ef"; } -.bi-hdd-stack-fill::before { content: "\f3f0"; } -.bi-hdd-stack::before { content: "\f3f1"; } -.bi-hdd::before { content: "\f3f2"; } -.bi-headphones::before { content: "\f3f3"; } -.bi-headset::before { content: "\f3f4"; } -.bi-heart-fill::before { content: "\f3f5"; } -.bi-heart-half::before { content: "\f3f6"; } -.bi-heart::before { content: "\f3f7"; } -.bi-heptagon-fill::before { content: "\f3f8"; } -.bi-heptagon-half::before { content: "\f3f9"; } -.bi-heptagon::before { content: "\f3fa"; } -.bi-hexagon-fill::before { content: "\f3fb"; } -.bi-hexagon-half::before { content: "\f3fc"; } -.bi-hexagon::before { content: "\f3fd"; } -.bi-hourglass-bottom::before { content: "\f3fe"; } -.bi-hourglass-split::before { content: "\f3ff"; } -.bi-hourglass-top::before { content: "\f400"; } -.bi-hourglass::before { content: "\f401"; } -.bi-house-door-fill::before { content: "\f402"; } -.bi-house-door::before { content: "\f403"; } -.bi-house-fill::before { content: "\f404"; } -.bi-house::before { content: "\f405"; } -.bi-hr::before { content: "\f406"; } -.bi-image-alt::before { content: "\f407"; } -.bi-image-fill::before { content: "\f408"; } -.bi-image::before { content: "\f409"; } -.bi-images::before { content: "\f40a"; } -.bi-inbox-fill::before { content: "\f40b"; } -.bi-inbox::before { content: "\f40c"; } -.bi-inboxes-fill::before { content: "\f40d"; } -.bi-inboxes::before { content: "\f40e"; } -.bi-info-circle-fill::before { content: "\f40f"; } -.bi-info-circle::before { content: "\f410"; } -.bi-info-square-fill::before { content: "\f411"; } -.bi-info-square::before { content: "\f412"; } -.bi-info::before { content: "\f413"; } -.bi-input-cursor-text::before { content: "\f414"; } -.bi-input-cursor::before { content: "\f415"; } -.bi-instagram::before { content: "\f416"; } -.bi-intersect::before { content: "\f417"; } -.bi-journal-album::before { content: "\f418"; } -.bi-journal-arrow-down::before { content: "\f419"; } -.bi-journal-arrow-up::before { content: "\f41a"; } -.bi-journal-bookmark-fill::before { content: "\f41b"; } -.bi-journal-bookmark::before { content: "\f41c"; } -.bi-journal-check::before { content: "\f41d"; } -.bi-journal-code::before { content: "\f41e"; } -.bi-journal-medical::before { content: "\f41f"; } -.bi-journal-minus::before { content: "\f420"; } -.bi-journal-plus::before { content: "\f421"; } -.bi-journal-richtext::before { content: "\f422"; } -.bi-journal-text::before { content: "\f423"; } -.bi-journal-x::before { content: "\f424"; } -.bi-journal::before { content: "\f425"; } -.bi-journals::before { content: "\f426"; } -.bi-joystick::before { content: "\f427"; } -.bi-justify-left::before { content: "\f428"; } -.bi-justify-right::before { content: "\f429"; } -.bi-justify::before { content: "\f42a"; } -.bi-kanban-fill::before { content: "\f42b"; } -.bi-kanban::before { content: "\f42c"; } -.bi-key-fill::before { content: "\f42d"; } -.bi-key::before { content: "\f42e"; } -.bi-keyboard-fill::before { content: "\f42f"; } -.bi-keyboard::before { content: "\f430"; } -.bi-ladder::before { content: "\f431"; } -.bi-lamp-fill::before { content: "\f432"; } -.bi-lamp::before { content: "\f433"; } -.bi-laptop-fill::before { content: "\f434"; } -.bi-laptop::before { content: "\f435"; } -.bi-layer-backward::before { content: "\f436"; } -.bi-layer-forward::before { content: "\f437"; } -.bi-layers-fill::before { content: "\f438"; } -.bi-layers-half::before { content: "\f439"; } -.bi-layers::before { content: "\f43a"; } -.bi-layout-sidebar-inset-reverse::before { content: "\f43b"; } -.bi-layout-sidebar-inset::before { content: "\f43c"; } -.bi-layout-sidebar-reverse::before { content: "\f43d"; } -.bi-layout-sidebar::before { content: "\f43e"; } -.bi-layout-split::before { content: "\f43f"; } -.bi-layout-text-sidebar-reverse::before { content: "\f440"; } -.bi-layout-text-sidebar::before { content: "\f441"; } -.bi-layout-text-window-reverse::before { content: "\f442"; } -.bi-layout-text-window::before { content: "\f443"; } -.bi-layout-three-columns::before { content: "\f444"; } -.bi-layout-wtf::before { content: "\f445"; } -.bi-life-preserver::before { content: "\f446"; } -.bi-lightbulb-fill::before { content: "\f447"; } -.bi-lightbulb-off-fill::before { content: "\f448"; } -.bi-lightbulb-off::before { content: "\f449"; } -.bi-lightbulb::before { content: "\f44a"; } -.bi-lightning-fill::before { content: "\f44b"; } -.bi-lightning::before { content: "\f44c"; } -.bi-link-45deg::before { content: "\f44d"; } -.bi-link::before { content: "\f44e"; } -.bi-linkedin::before { content: "\f44f"; } -.bi-list-check::before { content: "\f450"; } -.bi-list-nested::before { content: "\f451"; } -.bi-list-ol::before { content: "\f452"; } -.bi-list-stars::before { content: "\f453"; } -.bi-list-task::before { content: "\f454"; } -.bi-list-ul::before { content: "\f455"; } -.bi-list::before { content: "\f456"; } -.bi-lock-fill::before { content: "\f457"; } -.bi-lock::before { content: "\f458"; } -.bi-mailbox::before { content: "\f459"; } -.bi-mailbox2::before { content: "\f45a"; } -.bi-map-fill::before { content: "\f45b"; } -.bi-map::before { content: "\f45c"; } -.bi-markdown-fill::before { content: "\f45d"; } -.bi-markdown::before { content: "\f45e"; } -.bi-mask::before { content: "\f45f"; } -.bi-megaphone-fill::before { content: "\f460"; } -.bi-megaphone::before { content: "\f461"; } -.bi-menu-app-fill::before { content: "\f462"; } -.bi-menu-app::before { content: "\f463"; } -.bi-menu-button-fill::before { content: "\f464"; } -.bi-menu-button-wide-fill::before { content: "\f465"; } -.bi-menu-button-wide::before { content: "\f466"; } -.bi-menu-button::before { content: "\f467"; } -.bi-menu-down::before { content: "\f468"; } -.bi-menu-up::before { content: "\f469"; } -.bi-mic-fill::before { content: "\f46a"; } -.bi-mic-mute-fill::before { content: "\f46b"; } -.bi-mic-mute::before { content: "\f46c"; } -.bi-mic::before { content: "\f46d"; } -.bi-minecart-loaded::before { content: "\f46e"; } -.bi-minecart::before { content: "\f46f"; } -.bi-moon::before { content: "\f470"; } -.bi-mouse-fill::before { content: "\f471"; } -.bi-mouse::before { content: "\f472"; } -.bi-mouse2-fill::before { content: "\f473"; } -.bi-mouse2::before { content: "\f474"; } -.bi-mouse3-fill::before { content: "\f475"; } -.bi-mouse3::before { content: "\f476"; } -.bi-music-note-beamed::before { content: "\f477"; } -.bi-music-note-list::before { content: "\f478"; } -.bi-music-note::before { content: "\f479"; } -.bi-music-player-fill::before { content: "\f47a"; } -.bi-music-player::before { content: "\f47b"; } -.bi-newspaper::before { content: "\f47c"; } -.bi-node-minus-fill::before { content: "\f47d"; } -.bi-node-minus::before { content: "\f47e"; } -.bi-node-plus-fill::before { content: "\f47f"; } -.bi-node-plus::before { content: "\f480"; } -.bi-nut-fill::before { content: "\f481"; } -.bi-nut::before { content: "\f482"; } -.bi-octagon-fill::before { content: "\f483"; } -.bi-octagon-half::before { content: "\f484"; } -.bi-octagon::before { content: "\f485"; } -.bi-option::before { content: "\f486"; } -.bi-outlet::before { content: "\f487"; } -.bi-paint-bucket::before { content: "\f488"; } -.bi-palette-fill::before { content: "\f489"; } -.bi-palette::before { content: "\f48a"; } -.bi-palette2::before { content: "\f48b"; } -.bi-paperclip::before { content: "\f48c"; } -.bi-paragraph::before { content: "\f48d"; } -.bi-patch-check-fill::before { content: "\f48e"; } -.bi-patch-check::before { content: "\f48f"; } -.bi-patch-exclamation-fill::before { content: "\f490"; } -.bi-patch-exclamation::before { content: "\f491"; } -.bi-patch-minus-fill::before { content: "\f492"; } -.bi-patch-minus::before { content: "\f493"; } -.bi-patch-plus-fill::before { content: "\f494"; } -.bi-patch-plus::before { content: "\f495"; } -.bi-patch-question-fill::before { content: "\f496"; } -.bi-patch-question::before { content: "\f497"; } -.bi-pause-btn-fill::before { content: "\f498"; } -.bi-pause-btn::before { content: "\f499"; } -.bi-pause-circle-fill::before { content: "\f49a"; } -.bi-pause-circle::before { content: "\f49b"; } -.bi-pause-fill::before { content: "\f49c"; } -.bi-pause::before { content: "\f49d"; } -.bi-peace-fill::before { content: "\f49e"; } -.bi-peace::before { content: "\f49f"; } -.bi-pen-fill::before { content: "\f4a0"; } -.bi-pen::before { content: "\f4a1"; } -.bi-pencil-fill::before { content: "\f4a2"; } -.bi-pencil-square::before { content: "\f4a3"; } -.bi-pencil::before { content: "\f4a4"; } -.bi-pentagon-fill::before { content: "\f4a5"; } -.bi-pentagon-half::before { content: "\f4a6"; } -.bi-pentagon::before { content: "\f4a7"; } -.bi-people-fill::before { content: "\f4a8"; } -.bi-people::before { content: "\f4a9"; } -.bi-percent::before { content: "\f4aa"; } -.bi-person-badge-fill::before { content: "\f4ab"; } -.bi-person-badge::before { content: "\f4ac"; } -.bi-person-bounding-box::before { content: "\f4ad"; } -.bi-person-check-fill::before { content: "\f4ae"; } -.bi-person-check::before { content: "\f4af"; } -.bi-person-circle::before { content: "\f4b0"; } -.bi-person-dash-fill::before { content: "\f4b1"; } -.bi-person-dash::before { content: "\f4b2"; } -.bi-person-fill::before { content: "\f4b3"; } -.bi-person-lines-fill::before { content: "\f4b4"; } -.bi-person-plus-fill::before { content: "\f4b5"; } -.bi-person-plus::before { content: "\f4b6"; } -.bi-person-square::before { content: "\f4b7"; } -.bi-person-x-fill::before { content: "\f4b8"; } -.bi-person-x::before { content: "\f4b9"; } -.bi-person::before { content: "\f4ba"; } -.bi-phone-fill::before { content: "\f4bb"; } -.bi-phone-landscape-fill::before { content: "\f4bc"; } -.bi-phone-landscape::before { content: "\f4bd"; } -.bi-phone-vibrate-fill::before { content: "\f4be"; } -.bi-phone-vibrate::before { content: "\f4bf"; } -.bi-phone::before { content: "\f4c0"; } -.bi-pie-chart-fill::before { content: "\f4c1"; } -.bi-pie-chart::before { content: "\f4c2"; } -.bi-pin-angle-fill::before { content: "\f4c3"; } -.bi-pin-angle::before { content: "\f4c4"; } -.bi-pin-fill::before { content: "\f4c5"; } -.bi-pin::before { content: "\f4c6"; } -.bi-pip-fill::before { content: "\f4c7"; } -.bi-pip::before { content: "\f4c8"; } -.bi-play-btn-fill::before { content: "\f4c9"; } -.bi-play-btn::before { content: "\f4ca"; } -.bi-play-circle-fill::before { content: "\f4cb"; } -.bi-play-circle::before { content: "\f4cc"; } -.bi-play-fill::before { content: "\f4cd"; } -.bi-play::before { content: "\f4ce"; } -.bi-plug-fill::before { content: "\f4cf"; } -.bi-plug::before { content: "\f4d0"; } -.bi-plus-circle-dotted::before { content: "\f4d1"; } -.bi-plus-circle-fill::before { content: "\f4d2"; } -.bi-plus-circle::before { content: "\f4d3"; } -.bi-plus-square-dotted::before { content: "\f4d4"; } -.bi-plus-square-fill::before { content: "\f4d5"; } -.bi-plus-square::before { content: "\f4d6"; } -.bi-plus::before { content: "\f4d7"; } -.bi-power::before { content: "\f4d8"; } -.bi-printer-fill::before { content: "\f4d9"; } -.bi-printer::before { content: "\f4da"; } -.bi-puzzle-fill::before { content: "\f4db"; } -.bi-puzzle::before { content: "\f4dc"; } -.bi-question-circle-fill::before { content: "\f4dd"; } -.bi-question-circle::before { content: "\f4de"; } -.bi-question-diamond-fill::before { content: "\f4df"; } -.bi-question-diamond::before { content: "\f4e0"; } -.bi-question-octagon-fill::before { content: "\f4e1"; } -.bi-question-octagon::before { content: "\f4e2"; } -.bi-question-square-fill::before { content: "\f4e3"; } -.bi-question-square::before { content: "\f4e4"; } -.bi-question::before { content: "\f4e5"; } -.bi-receipt-cutoff::before { content: "\f4e6"; } -.bi-receipt::before { content: "\f4e7"; } -.bi-reception-0::before { content: "\f4e8"; } -.bi-reception-1::before { content: "\f4e9"; } -.bi-reception-2::before { content: "\f4ea"; } -.bi-reception-3::before { content: "\f4eb"; } -.bi-reception-4::before { content: "\f4ec"; } -.bi-record-btn-fill::before { content: "\f4ed"; } -.bi-record-btn::before { content: "\f4ee"; } -.bi-record-circle-fill::before { content: "\f4ef"; } -.bi-record-circle::before { content: "\f4f0"; } -.bi-record-fill::before { content: "\f4f1"; } -.bi-record::before { content: "\f4f2"; } -.bi-record2-fill::before { content: "\f4f3"; } -.bi-record2::before { content: "\f4f4"; } -.bi-reply-all-fill::before { content: "\f4f5"; } -.bi-reply-all::before { content: "\f4f6"; } -.bi-reply-fill::before { content: "\f4f7"; } -.bi-reply::before { content: "\f4f8"; } -.bi-rss-fill::before { content: "\f4f9"; } -.bi-rss::before { content: "\f4fa"; } -.bi-rulers::before { content: "\f4fb"; } -.bi-save-fill::before { content: "\f4fc"; } -.bi-save::before { content: "\f4fd"; } -.bi-save2-fill::before { content: "\f4fe"; } -.bi-save2::before { content: "\f4ff"; } -.bi-scissors::before { content: "\f500"; } -.bi-screwdriver::before { content: "\f501"; } -.bi-search::before { content: "\f502"; } -.bi-segmented-nav::before { content: "\f503"; } -.bi-server::before { content: "\f504"; } -.bi-share-fill::before { content: "\f505"; } -.bi-share::before { content: "\f506"; } -.bi-shield-check::before { content: "\f507"; } -.bi-shield-exclamation::before { content: "\f508"; } -.bi-shield-fill-check::before { content: "\f509"; } -.bi-shield-fill-exclamation::before { content: "\f50a"; } -.bi-shield-fill-minus::before { content: "\f50b"; } -.bi-shield-fill-plus::before { content: "\f50c"; } -.bi-shield-fill-x::before { content: "\f50d"; } -.bi-shield-fill::before { content: "\f50e"; } -.bi-shield-lock-fill::before { content: "\f50f"; } -.bi-shield-lock::before { content: "\f510"; } -.bi-shield-minus::before { content: "\f511"; } -.bi-shield-plus::before { content: "\f512"; } -.bi-shield-shaded::before { content: "\f513"; } -.bi-shield-slash-fill::before { content: "\f514"; } -.bi-shield-slash::before { content: "\f515"; } -.bi-shield-x::before { content: "\f516"; } -.bi-shield::before { content: "\f517"; } -.bi-shift-fill::before { content: "\f518"; } -.bi-shift::before { content: "\f519"; } -.bi-shop-window::before { content: "\f51a"; } -.bi-shop::before { content: "\f51b"; } -.bi-shuffle::before { content: "\f51c"; } -.bi-signpost-2-fill::before { content: "\f51d"; } -.bi-signpost-2::before { content: "\f51e"; } -.bi-signpost-fill::before { content: "\f51f"; } -.bi-signpost-split-fill::before { content: "\f520"; } -.bi-signpost-split::before { content: "\f521"; } -.bi-signpost::before { content: "\f522"; } -.bi-sim-fill::before { content: "\f523"; } -.bi-sim::before { content: "\f524"; } -.bi-skip-backward-btn-fill::before { content: "\f525"; } -.bi-skip-backward-btn::before { content: "\f526"; } -.bi-skip-backward-circle-fill::before { content: "\f527"; } -.bi-skip-backward-circle::before { content: "\f528"; } -.bi-skip-backward-fill::before { content: "\f529"; } -.bi-skip-backward::before { content: "\f52a"; } -.bi-skip-end-btn-fill::before { content: "\f52b"; } -.bi-skip-end-btn::before { content: "\f52c"; } -.bi-skip-end-circle-fill::before { content: "\f52d"; } -.bi-skip-end-circle::before { content: "\f52e"; } -.bi-skip-end-fill::before { content: "\f52f"; } -.bi-skip-end::before { content: "\f530"; } -.bi-skip-forward-btn-fill::before { content: "\f531"; } -.bi-skip-forward-btn::before { content: "\f532"; } -.bi-skip-forward-circle-fill::before { content: "\f533"; } -.bi-skip-forward-circle::before { content: "\f534"; } -.bi-skip-forward-fill::before { content: "\f535"; } -.bi-skip-forward::before { content: "\f536"; } -.bi-skip-start-btn-fill::before { content: "\f537"; } -.bi-skip-start-btn::before { content: "\f538"; } -.bi-skip-start-circle-fill::before { content: "\f539"; } -.bi-skip-start-circle::before { content: "\f53a"; } -.bi-skip-start-fill::before { content: "\f53b"; } -.bi-skip-start::before { content: "\f53c"; } -.bi-slack::before { content: "\f53d"; } -.bi-slash-circle-fill::before { content: "\f53e"; } -.bi-slash-circle::before { content: "\f53f"; } -.bi-slash-square-fill::before { content: "\f540"; } -.bi-slash-square::before { content: "\f541"; } -.bi-slash::before { content: "\f542"; } -.bi-sliders::before { content: "\f543"; } -.bi-smartwatch::before { content: "\f544"; } -.bi-sort-alpha-down-alt::before { content: "\f545"; } -.bi-sort-alpha-down::before { content: "\f546"; } -.bi-sort-alpha-up-alt::before { content: "\f547"; } -.bi-sort-alpha-up::before { content: "\f548"; } -.bi-sort-down-alt::before { content: "\f549"; } -.bi-sort-down::before { content: "\f54a"; } -.bi-sort-numeric-down-alt::before { content: "\f54b"; } -.bi-sort-numeric-down::before { content: "\f54c"; } -.bi-sort-numeric-up-alt::before { content: "\f54d"; } -.bi-sort-numeric-up::before { content: "\f54e"; } -.bi-sort-up-alt::before { content: "\f54f"; } -.bi-sort-up::before { content: "\f550"; } -.bi-soundwave::before { content: "\f551"; } -.bi-speaker-fill::before { content: "\f552"; } -.bi-speaker::before { content: "\f553"; } -.bi-speedometer::before { content: "\f554"; } -.bi-speedometer2::before { content: "\f555"; } -.bi-spellcheck::before { content: "\f556"; } -.bi-square-fill::before { content: "\f557"; } -.bi-square-half::before { content: "\f558"; } -.bi-square::before { content: "\f559"; } -.bi-stack::before { content: "\f55a"; } -.bi-star-fill::before { content: "\f55b"; } -.bi-star-half::before { content: "\f55c"; } -.bi-star::before { content: "\f55d"; } -.bi-stickies-fill::before { content: "\f55e"; } -.bi-stickies::before { content: "\f55f"; } -.bi-sticky-fill::before { content: "\f560"; } -.bi-sticky::before { content: "\f561"; } -.bi-stop-btn-fill::before { content: "\f562"; } -.bi-stop-btn::before { content: "\f563"; } -.bi-stop-circle-fill::before { content: "\f564"; } -.bi-stop-circle::before { content: "\f565"; } -.bi-stop-fill::before { content: "\f566"; } -.bi-stop::before { content: "\f567"; } -.bi-stoplights-fill::before { content: "\f568"; } -.bi-stoplights::before { content: "\f569"; } -.bi-stopwatch-fill::before { content: "\f56a"; } -.bi-stopwatch::before { content: "\f56b"; } -.bi-subtract::before { content: "\f56c"; } -.bi-suit-club-fill::before { content: "\f56d"; } -.bi-suit-club::before { content: "\f56e"; } -.bi-suit-diamond-fill::before { content: "\f56f"; } -.bi-suit-diamond::before { content: "\f570"; } -.bi-suit-heart-fill::before { content: "\f571"; } -.bi-suit-heart::before { content: "\f572"; } -.bi-suit-spade-fill::before { content: "\f573"; } -.bi-suit-spade::before { content: "\f574"; } -.bi-sun::before { content: "\f575"; } -.bi-sunglasses::before { content: "\f576"; } -.bi-symmetry-horizontal::before { content: "\f577"; } -.bi-symmetry-vertical::before { content: "\f578"; } -.bi-table::before { content: "\f579"; } -.bi-tablet-fill::before { content: "\f57a"; } -.bi-tablet-landscape-fill::before { content: "\f57b"; } -.bi-tablet-landscape::before { content: "\f57c"; } -.bi-tablet::before { content: "\f57d"; } -.bi-tag-fill::before { content: "\f57e"; } -.bi-tag::before { content: "\f57f"; } -.bi-tags-fill::before { content: "\f580"; } -.bi-tags::before { content: "\f581"; } -.bi-telegram::before { content: "\f582"; } -.bi-telephone-fill::before { content: "\f583"; } -.bi-telephone-forward-fill::before { content: "\f584"; } -.bi-telephone-forward::before { content: "\f585"; } -.bi-telephone-inbound-fill::before { content: "\f586"; } -.bi-telephone-inbound::before { content: "\f587"; } -.bi-telephone-minus-fill::before { content: "\f588"; } -.bi-telephone-minus::before { content: "\f589"; } -.bi-telephone-outbound-fill::before { content: "\f58a"; } -.bi-telephone-outbound::before { content: "\f58b"; } -.bi-telephone-plus-fill::before { content: "\f58c"; } -.bi-telephone-plus::before { content: "\f58d"; } -.bi-telephone-x-fill::before { content: "\f58e"; } -.bi-telephone-x::before { content: "\f58f"; } -.bi-telephone::before { content: "\f590"; } -.bi-terminal-fill::before { content: "\f591"; } -.bi-terminal::before { content: "\f592"; } -.bi-text-center::before { content: "\f593"; } -.bi-text-indent-left::before { content: "\f594"; } -.bi-text-indent-right::before { content: "\f595"; } -.bi-text-left::before { content: "\f596"; } -.bi-text-paragraph::before { content: "\f597"; } -.bi-text-right::before { content: "\f598"; } -.bi-textarea-resize::before { content: "\f599"; } -.bi-textarea-t::before { content: "\f59a"; } -.bi-textarea::before { content: "\f59b"; } -.bi-thermometer-half::before { content: "\f59c"; } -.bi-thermometer::before { content: "\f59d"; } -.bi-three-dots-vertical::before { content: "\f59e"; } -.bi-three-dots::before { content: "\f59f"; } -.bi-toggle-off::before { content: "\f5a0"; } -.bi-toggle-on::before { content: "\f5a1"; } -.bi-toggle2-off::before { content: "\f5a2"; } -.bi-toggle2-on::before { content: "\f5a3"; } -.bi-toggles::before { content: "\f5a4"; } -.bi-toggles2::before { content: "\f5a5"; } -.bi-tools::before { content: "\f5a6"; } -.bi-trash-fill::before { content: "\f5a7"; } -.bi-trash::before { content: "\f5a8"; } -.bi-trash2-fill::before { content: "\f5a9"; } -.bi-trash2::before { content: "\f5aa"; } -.bi-tree-fill::before { content: "\f5ab"; } -.bi-tree::before { content: "\f5ac"; } -.bi-triangle-fill::before { content: "\f5ad"; } -.bi-triangle-half::before { content: "\f5ae"; } -.bi-triangle::before { content: "\f5af"; } -.bi-trophy-fill::before { content: "\f5b0"; } -.bi-trophy::before { content: "\f5b1"; } -.bi-truck-flatbed::before { content: "\f5b2"; } -.bi-truck::before { content: "\f5b3"; } -.bi-tv-fill::before { content: "\f5b4"; } -.bi-tv::before { content: "\f5b5"; } -.bi-twitch::before { content: "\f5b6"; } -.bi-twitter::before { content: "\f5b7"; } -.bi-type-bold::before { content: "\f5b8"; } -.bi-type-h1::before { content: "\f5b9"; } -.bi-type-h2::before { content: "\f5ba"; } -.bi-type-h3::before { content: "\f5bb"; } -.bi-type-italic::before { content: "\f5bc"; } -.bi-type-strikethrough::before { content: "\f5bd"; } -.bi-type-underline::before { content: "\f5be"; } -.bi-type::before { content: "\f5bf"; } -.bi-ui-checks-grid::before { content: "\f5c0"; } -.bi-ui-checks::before { content: "\f5c1"; } -.bi-ui-radios-grid::before { content: "\f5c2"; } -.bi-ui-radios::before { content: "\f5c3"; } -.bi-union::before { content: "\f5c4"; } -.bi-unlock-fill::before { content: "\f5c5"; } -.bi-unlock::before { content: "\f5c6"; } -.bi-upc-scan::before { content: "\f5c7"; } -.bi-upc::before { content: "\f5c8"; } -.bi-upload::before { content: "\f5c9"; } -.bi-vector-pen::before { content: "\f5ca"; } -.bi-view-list::before { content: "\f5cb"; } -.bi-view-stacked::before { content: "\f5cc"; } -.bi-vinyl-fill::before { content: "\f5cd"; } -.bi-vinyl::before { content: "\f5ce"; } -.bi-voicemail::before { content: "\f5cf"; } -.bi-volume-down-fill::before { content: "\f5d0"; } -.bi-volume-down::before { content: "\f5d1"; } -.bi-volume-mute-fill::before { content: "\f5d2"; } -.bi-volume-mute::before { content: "\f5d3"; } -.bi-volume-off-fill::before { content: "\f5d4"; } -.bi-volume-off::before { content: "\f5d5"; } -.bi-volume-up-fill::before { content: "\f5d6"; } -.bi-volume-up::before { content: "\f5d7"; } -.bi-vr::before { content: "\f5d8"; } -.bi-wallet-fill::before { content: "\f5d9"; } -.bi-wallet::before { content: "\f5da"; } -.bi-wallet2::before { content: "\f5db"; } -.bi-watch::before { content: "\f5dc"; } -.bi-whatsapp::before { content: "\f5dd"; } -.bi-wifi-1::before { content: "\f5de"; } -.bi-wifi-2::before { content: "\f5df"; } -.bi-wifi-off::before { content: "\f5e0"; } -.bi-wifi::before { content: "\f5e1"; } -.bi-window-dock::before { content: "\f5e2"; } -.bi-window-sidebar::before { content: "\f5e3"; } -.bi-window::before { content: "\f5e4"; } -.bi-wrench::before { content: "\f5e5"; } -.bi-x-circle-fill::before { content: "\f5e6"; } -.bi-x-circle::before { content: "\f5e7"; } -.bi-x-diamond-fill::before { content: "\f5e8"; } -.bi-x-diamond::before { content: "\f5e9"; } -.bi-x-octagon-fill::before { content: "\f5ea"; } -.bi-x-octagon::before { content: "\f5eb"; } -.bi-x-square-fill::before { content: "\f5ec"; } -.bi-x-square::before { content: "\f5ed"; } -.bi-x::before { content: "\f5ee"; } -.bi-youtube::before { content: "\f5ef"; } -.bi-zoom-in::before { content: "\f5f0"; } -.bi-zoom-out::before { content: "\f5f1"; } diff --git a/dist/assets/vendors/bootstrap-icons/bootstrap-icons.json b/dist/assets/vendors/bootstrap-icons/bootstrap-icons.json deleted file mode 100644 index 24e755a3b..000000000 --- a/dist/assets/vendors/bootstrap-icons/bootstrap-icons.json +++ /dev/null @@ -1,1267 +0,0 @@ -{ - "alarm-fill": 61697, - "alarm": 61698, - "align-bottom": 61699, - "align-center": 61700, - "align-end": 61701, - "align-middle": 61702, - "align-start": 61703, - "align-top": 61704, - "alt": 61705, - "app-indicator": 61706, - "app": 61707, - "archive-fill": 61708, - "archive": 61709, - "arrow-90deg-down": 61710, - "arrow-90deg-left": 61711, - "arrow-90deg-right": 61712, - "arrow-90deg-up": 61713, - "arrow-bar-down": 61714, - "arrow-bar-left": 61715, - "arrow-bar-right": 61716, - "arrow-bar-up": 61717, - "arrow-clockwise": 61718, - "arrow-counterclockwise": 61719, - "arrow-down-circle-fill": 61720, - "arrow-down-circle": 61721, - "arrow-down-left-circle-fill": 61722, - "arrow-down-left-circle": 61723, - "arrow-down-left-square-fill": 61724, - "arrow-down-left-square": 61725, - "arrow-down-left": 61726, - "arrow-down-right-circle-fill": 61727, - "arrow-down-right-circle": 61728, - "arrow-down-right-square-fill": 61729, - "arrow-down-right-square": 61730, - "arrow-down-right": 61731, - "arrow-down-short": 61732, - "arrow-down-square-fill": 61733, - "arrow-down-square": 61734, - "arrow-down-up": 61735, - "arrow-down": 61736, - "arrow-left-circle-fill": 61737, - "arrow-left-circle": 61738, - "arrow-left-right": 61739, - "arrow-left-short": 61740, - "arrow-left-square-fill": 61741, - "arrow-left-square": 61742, - "arrow-left": 61743, - "arrow-repeat": 61744, - "arrow-return-left": 61745, - "arrow-return-right": 61746, - "arrow-right-circle-fill": 61747, - "arrow-right-circle": 61748, - "arrow-right-short": 61749, - "arrow-right-square-fill": 61750, - "arrow-right-square": 61751, - "arrow-right": 61752, - "arrow-up-circle-fill": 61753, - "arrow-up-circle": 61754, - "arrow-up-left-circle-fill": 61755, - "arrow-up-left-circle": 61756, - "arrow-up-left-square-fill": 61757, - "arrow-up-left-square": 61758, - "arrow-up-left": 61759, - "arrow-up-right-circle-fill": 61760, - "arrow-up-right-circle": 61761, - "arrow-up-right-square-fill": 61762, - "arrow-up-right-square": 61763, - "arrow-up-right": 61764, - "arrow-up-short": 61765, - "arrow-up-square-fill": 61766, - "arrow-up-square": 61767, - "arrow-up": 61768, - "arrows-angle-contract": 61769, - "arrows-angle-expand": 61770, - "arrows-collapse": 61771, - "arrows-expand": 61772, - "arrows-fullscreen": 61773, - "arrows-move": 61774, - "aspect-ratio-fill": 61775, - "aspect-ratio": 61776, - "asterisk": 61777, - "at": 61778, - "award-fill": 61779, - "award": 61780, - "back": 61781, - "backspace-fill": 61782, - "backspace-reverse-fill": 61783, - "backspace-reverse": 61784, - "backspace": 61785, - "badge-3d-fill": 61786, - "badge-3d": 61787, - "badge-4k-fill": 61788, - "badge-4k": 61789, - "badge-8k-fill": 61790, - "badge-8k": 61791, - "badge-ad-fill": 61792, - "badge-ad": 61793, - "badge-ar-fill": 61794, - "badge-ar": 61795, - "badge-cc-fill": 61796, - "badge-cc": 61797, - "badge-hd-fill": 61798, - "badge-hd": 61799, - "badge-tm-fill": 61800, - "badge-tm": 61801, - "badge-vo-fill": 61802, - "badge-vo": 61803, - "badge-vr-fill": 61804, - "badge-vr": 61805, - "badge-wc-fill": 61806, - "badge-wc": 61807, - "bag-check-fill": 61808, - "bag-check": 61809, - "bag-dash-fill": 61810, - "bag-dash": 61811, - "bag-fill": 61812, - "bag-plus-fill": 61813, - "bag-plus": 61814, - "bag-x-fill": 61815, - "bag-x": 61816, - "bag": 61817, - "bar-chart-fill": 61818, - "bar-chart-line-fill": 61819, - "bar-chart-line": 61820, - "bar-chart-steps": 61821, - "bar-chart": 61822, - "basket-fill": 61823, - "basket": 61824, - "basket2-fill": 61825, - "basket2": 61826, - "basket3-fill": 61827, - "basket3": 61828, - "battery-charging": 61829, - "battery-full": 61830, - "battery-half": 61831, - "battery": 61832, - "bell-fill": 61833, - "bell": 61834, - "bezier": 61835, - "bezier2": 61836, - "bicycle": 61837, - "binoculars-fill": 61838, - "binoculars": 61839, - "blockquote-left": 61840, - "blockquote-right": 61841, - "book-fill": 61842, - "book-half": 61843, - "book": 61844, - "bookmark-check-fill": 61845, - "bookmark-check": 61846, - "bookmark-dash-fill": 61847, - "bookmark-dash": 61848, - "bookmark-fill": 61849, - "bookmark-heart-fill": 61850, - "bookmark-heart": 61851, - "bookmark-plus-fill": 61852, - "bookmark-plus": 61853, - "bookmark-star-fill": 61854, - "bookmark-star": 61855, - "bookmark-x-fill": 61856, - "bookmark-x": 61857, - "bookmark": 61858, - "bookmarks-fill": 61859, - "bookmarks": 61860, - "bookshelf": 61861, - "bootstrap-fill": 61862, - "bootstrap-reboot": 61863, - "bootstrap": 61864, - "border-all": 61865, - "border-bottom": 61866, - "border-center": 61867, - "border-inner": 61868, - "border-left": 61869, - "border-middle": 61870, - "border-outer": 61871, - "border-right": 61872, - "border-style": 61873, - "border-top": 61874, - "border-width": 61875, - "border": 61876, - "bounding-box-circles": 61877, - "bounding-box": 61878, - "box-arrow-down-left": 61879, - "box-arrow-down-right": 61880, - "box-arrow-down": 61881, - "box-arrow-in-down-left": 61882, - "box-arrow-in-down-right": 61883, - "box-arrow-in-down": 61884, - "box-arrow-in-left": 61885, - "box-arrow-in-right": 61886, - "box-arrow-in-up-left": 61887, - "box-arrow-in-up-right": 61888, - "box-arrow-in-up": 61889, - "box-arrow-left": 61890, - "box-arrow-right": 61891, - "box-arrow-up-left": 61892, - "box-arrow-up-right": 61893, - "box-arrow-up": 61894, - "box-seam": 61895, - "box": 61896, - "braces": 61897, - "bricks": 61898, - "briefcase-fill": 61899, - "briefcase": 61900, - "brightness-alt-high-fill": 61901, - "brightness-alt-high": 61902, - "brightness-alt-low-fill": 61903, - "brightness-alt-low": 61904, - "brightness-high-fill": 61905, - "brightness-high": 61906, - "brightness-low-fill": 61907, - "brightness-low": 61908, - "broadcast-pin": 61909, - "broadcast": 61910, - "brush-fill": 61911, - "brush": 61912, - "bucket-fill": 61913, - "bucket": 61914, - "bug-fill": 61915, - "bug": 61916, - "building": 61917, - "bullseye": 61918, - "calculator-fill": 61919, - "calculator": 61920, - "calendar-check-fill": 61921, - "calendar-check": 61922, - "calendar-date-fill": 61923, - "calendar-date": 61924, - "calendar-day-fill": 61925, - "calendar-day": 61926, - "calendar-event-fill": 61927, - "calendar-event": 61928, - "calendar-fill": 61929, - "calendar-minus-fill": 61930, - "calendar-minus": 61931, - "calendar-month-fill": 61932, - "calendar-month": 61933, - "calendar-plus-fill": 61934, - "calendar-plus": 61935, - "calendar-range-fill": 61936, - "calendar-range": 61937, - "calendar-week-fill": 61938, - "calendar-week": 61939, - "calendar-x-fill": 61940, - "calendar-x": 61941, - "calendar": 61942, - "calendar2-check-fill": 61943, - "calendar2-check": 61944, - "calendar2-date-fill": 61945, - "calendar2-date": 61946, - "calendar2-day-fill": 61947, - "calendar2-day": 61948, - "calendar2-event-fill": 61949, - "calendar2-event": 61950, - "calendar2-fill": 61951, - "calendar2-minus-fill": 61952, - "calendar2-minus": 61953, - "calendar2-month-fill": 61954, - "calendar2-month": 61955, - "calendar2-plus-fill": 61956, - "calendar2-plus": 61957, - "calendar2-range-fill": 61958, - "calendar2-range": 61959, - "calendar2-week-fill": 61960, - "calendar2-week": 61961, - "calendar2-x-fill": 61962, - "calendar2-x": 61963, - "calendar2": 61964, - "calendar3-event-fill": 61965, - "calendar3-event": 61966, - "calendar3-fill": 61967, - "calendar3-range-fill": 61968, - "calendar3-range": 61969, - "calendar3-week-fill": 61970, - "calendar3-week": 61971, - "calendar3": 61972, - "calendar4-event": 61973, - "calendar4-range": 61974, - "calendar4-week": 61975, - "calendar4": 61976, - "camera-fill": 61977, - "camera-reels-fill": 61978, - "camera-reels": 61979, - "camera-video-fill": 61980, - "camera-video-off-fill": 61981, - "camera-video-off": 61982, - "camera-video": 61983, - "camera": 61984, - "camera2": 61985, - "capslock-fill": 61986, - "capslock": 61987, - "card-checklist": 61988, - "card-heading": 61989, - "card-image": 61990, - "card-list": 61991, - "card-text": 61992, - "caret-down-fill": 61993, - "caret-down-square-fill": 61994, - "caret-down-square": 61995, - "caret-down": 61996, - "caret-left-fill": 61997, - "caret-left-square-fill": 61998, - "caret-left-square": 61999, - "caret-left": 62000, - "caret-right-fill": 62001, - "caret-right-square-fill": 62002, - "caret-right-square": 62003, - "caret-right": 62004, - "caret-up-fill": 62005, - "caret-up-square-fill": 62006, - "caret-up-square": 62007, - "caret-up": 62008, - "cart-check-fill": 62009, - "cart-check": 62010, - "cart-dash-fill": 62011, - "cart-dash": 62012, - "cart-fill": 62013, - "cart-plus-fill": 62014, - "cart-plus": 62015, - "cart-x-fill": 62016, - "cart-x": 62017, - "cart": 62018, - "cart2": 62019, - "cart3": 62020, - "cart4": 62021, - "cash-stack": 62022, - "cash": 62023, - "cast": 62024, - "chat-dots-fill": 62025, - "chat-dots": 62026, - "chat-fill": 62027, - "chat-left-dots-fill": 62028, - "chat-left-dots": 62029, - "chat-left-fill": 62030, - "chat-left-quote-fill": 62031, - "chat-left-quote": 62032, - "chat-left-text-fill": 62033, - "chat-left-text": 62034, - "chat-left": 62035, - "chat-quote-fill": 62036, - "chat-quote": 62037, - "chat-right-dots-fill": 62038, - "chat-right-dots": 62039, - "chat-right-fill": 62040, - "chat-right-quote-fill": 62041, - "chat-right-quote": 62042, - "chat-right-text-fill": 62043, - "chat-right-text": 62044, - "chat-right": 62045, - "chat-square-dots-fill": 62046, - "chat-square-dots": 62047, - "chat-square-fill": 62048, - "chat-square-quote-fill": 62049, - "chat-square-quote": 62050, - "chat-square-text-fill": 62051, - "chat-square-text": 62052, - "chat-square": 62053, - "chat-text-fill": 62054, - "chat-text": 62055, - "chat": 62056, - "check-all": 62057, - "check-circle-fill": 62058, - "check-circle": 62059, - "check-square-fill": 62060, - "check-square": 62061, - "check": 62062, - "check2-all": 62063, - "check2-circle": 62064, - "check2-square": 62065, - "check2": 62066, - "chevron-bar-contract": 62067, - "chevron-bar-down": 62068, - "chevron-bar-expand": 62069, - "chevron-bar-left": 62070, - "chevron-bar-right": 62071, - "chevron-bar-up": 62072, - "chevron-compact-down": 62073, - "chevron-compact-left": 62074, - "chevron-compact-right": 62075, - "chevron-compact-up": 62076, - "chevron-contract": 62077, - "chevron-double-down": 62078, - "chevron-double-left": 62079, - "chevron-double-right": 62080, - "chevron-double-up": 62081, - "chevron-down": 62082, - "chevron-expand": 62083, - "chevron-left": 62084, - "chevron-right": 62085, - "chevron-up": 62086, - "circle-fill": 62087, - "circle-half": 62088, - "circle-square": 62089, - "circle": 62090, - "clipboard-check": 62091, - "clipboard-data": 62092, - "clipboard-minus": 62093, - "clipboard-plus": 62094, - "clipboard-x": 62095, - "clipboard": 62096, - "clock-fill": 62097, - "clock-history": 62098, - "clock": 62099, - "cloud-arrow-down-fill": 62100, - "cloud-arrow-down": 62101, - "cloud-arrow-up-fill": 62102, - "cloud-arrow-up": 62103, - "cloud-check-fill": 62104, - "cloud-check": 62105, - "cloud-download-fill": 62106, - "cloud-download": 62107, - "cloud-fill": 62108, - "cloud-minus-fill": 62109, - "cloud-minus": 62110, - "cloud-plus-fill": 62111, - "cloud-plus": 62112, - "cloud-slash-fill": 62113, - "cloud-slash": 62114, - "cloud-upload-fill": 62115, - "cloud-upload": 62116, - "cloud": 62117, - "code-slash": 62118, - "code-square": 62119, - "code": 62120, - "collection-fill": 62121, - "collection-play-fill": 62122, - "collection-play": 62123, - "collection": 62124, - "columns-gap": 62125, - "columns": 62126, - "command": 62127, - "compass-fill": 62128, - "compass": 62129, - "cone-striped": 62130, - "cone": 62131, - "controller": 62132, - "cpu-fill": 62133, - "cpu": 62134, - "credit-card-2-back-fill": 62135, - "credit-card-2-back": 62136, - "credit-card-2-front-fill": 62137, - "credit-card-2-front": 62138, - "credit-card-fill": 62139, - "credit-card": 62140, - "crop": 62141, - "cup-fill": 62142, - "cup-straw": 62143, - "cup": 62144, - "cursor-fill": 62145, - "cursor-text": 62146, - "cursor": 62147, - "dash-circle-dotted": 62148, - "dash-circle-fill": 62149, - "dash-circle": 62150, - "dash-square-dotted": 62151, - "dash-square-fill": 62152, - "dash-square": 62153, - "dash": 62154, - "diagram-2-fill": 62155, - "diagram-2": 62156, - "diagram-3-fill": 62157, - "diagram-3": 62158, - "diamond-fill": 62159, - "diamond-half": 62160, - "diamond": 62161, - "dice-1-fill": 62162, - "dice-1": 62163, - "dice-2-fill": 62164, - "dice-2": 62165, - "dice-3-fill": 62166, - "dice-3": 62167, - "dice-4-fill": 62168, - "dice-4": 62169, - "dice-5-fill": 62170, - "dice-5": 62171, - "dice-6-fill": 62172, - "dice-6": 62173, - "disc-fill": 62174, - "disc": 62175, - "discord": 62176, - "display-fill": 62177, - "display": 62178, - "distribute-horizontal": 62179, - "distribute-vertical": 62180, - "door-closed-fill": 62181, - "door-closed": 62182, - "door-open-fill": 62183, - "door-open": 62184, - "dot": 62185, - "download": 62186, - "droplet-fill": 62187, - "droplet-half": 62188, - "droplet": 62189, - "earbuds": 62190, - "easel-fill": 62191, - "easel": 62192, - "egg-fill": 62193, - "egg-fried": 62194, - "egg": 62195, - "eject-fill": 62196, - "eject": 62197, - "emoji-angry-fill": 62198, - "emoji-angry": 62199, - "emoji-dizzy-fill": 62200, - "emoji-dizzy": 62201, - "emoji-expressionless-fill": 62202, - "emoji-expressionless": 62203, - "emoji-frown-fill": 62204, - "emoji-frown": 62205, - "emoji-heart-eyes-fill": 62206, - "emoji-heart-eyes": 62207, - "emoji-laughing-fill": 62208, - "emoji-laughing": 62209, - "emoji-neutral-fill": 62210, - "emoji-neutral": 62211, - "emoji-smile-fill": 62212, - "emoji-smile-upside-down-fill": 62213, - "emoji-smile-upside-down": 62214, - "emoji-smile": 62215, - "emoji-sunglasses-fill": 62216, - "emoji-sunglasses": 62217, - "emoji-wink-fill": 62218, - "emoji-wink": 62219, - "envelope-fill": 62220, - "envelope-open-fill": 62221, - "envelope-open": 62222, - "envelope": 62223, - "eraser-fill": 62224, - "eraser": 62225, - "exclamation-circle-fill": 62226, - "exclamation-circle": 62227, - "exclamation-diamond-fill": 62228, - "exclamation-diamond": 62229, - "exclamation-octagon-fill": 62230, - "exclamation-octagon": 62231, - "exclamation-square-fill": 62232, - "exclamation-square": 62233, - "exclamation-triangle-fill": 62234, - "exclamation-triangle": 62235, - "exclamation": 62236, - "exclude": 62237, - "eye-fill": 62238, - "eye-slash-fill": 62239, - "eye-slash": 62240, - "eye": 62241, - "eyedropper": 62242, - "eyeglasses": 62243, - "facebook": 62244, - "file-arrow-down-fill": 62245, - "file-arrow-down": 62246, - "file-arrow-up-fill": 62247, - "file-arrow-up": 62248, - "file-bar-graph-fill": 62249, - "file-bar-graph": 62250, - "file-binary-fill": 62251, - "file-binary": 62252, - "file-break-fill": 62253, - "file-break": 62254, - "file-check-fill": 62255, - "file-check": 62256, - "file-code-fill": 62257, - "file-code": 62258, - "file-diff-fill": 62259, - "file-diff": 62260, - "file-earmark-arrow-down-fill": 62261, - "file-earmark-arrow-down": 62262, - "file-earmark-arrow-up-fill": 62263, - "file-earmark-arrow-up": 62264, - "file-earmark-bar-graph-fill": 62265, - "file-earmark-bar-graph": 62266, - "file-earmark-binary-fill": 62267, - "file-earmark-binary": 62268, - "file-earmark-break-fill": 62269, - "file-earmark-break": 62270, - "file-earmark-check-fill": 62271, - "file-earmark-check": 62272, - "file-earmark-code-fill": 62273, - "file-earmark-code": 62274, - "file-earmark-diff-fill": 62275, - "file-earmark-diff": 62276, - "file-earmark-easel-fill": 62277, - "file-earmark-easel": 62278, - "file-earmark-excel-fill": 62279, - "file-earmark-excel": 62280, - "file-earmark-fill": 62281, - "file-earmark-font-fill": 62282, - "file-earmark-font": 62283, - "file-earmark-image-fill": 62284, - "file-earmark-image": 62285, - "file-earmark-lock-fill": 62286, - "file-earmark-lock": 62287, - "file-earmark-lock2-fill": 62288, - "file-earmark-lock2": 62289, - "file-earmark-medical-fill": 62290, - "file-earmark-medical": 62291, - "file-earmark-minus-fill": 62292, - "file-earmark-minus": 62293, - "file-earmark-music-fill": 62294, - "file-earmark-music": 62295, - "file-earmark-person-fill": 62296, - "file-earmark-person": 62297, - "file-earmark-play-fill": 62298, - "file-earmark-play": 62299, - "file-earmark-plus-fill": 62300, - "file-earmark-plus": 62301, - "file-earmark-post-fill": 62302, - "file-earmark-post": 62303, - "file-earmark-ppt-fill": 62304, - "file-earmark-ppt": 62305, - "file-earmark-richtext-fill": 62306, - "file-earmark-richtext": 62307, - "file-earmark-ruled-fill": 62308, - "file-earmark-ruled": 62309, - "file-earmark-slides-fill": 62310, - "file-earmark-slides": 62311, - "file-earmark-spreadsheet-fill": 62312, - "file-earmark-spreadsheet": 62313, - "file-earmark-text-fill": 62314, - "file-earmark-text": 62315, - "file-earmark-word-fill": 62316, - "file-earmark-word": 62317, - "file-earmark-x-fill": 62318, - "file-earmark-x": 62319, - "file-earmark-zip-fill": 62320, - "file-earmark-zip": 62321, - "file-earmark": 62322, - "file-easel-fill": 62323, - "file-easel": 62324, - "file-excel-fill": 62325, - "file-excel": 62326, - "file-fill": 62327, - "file-font-fill": 62328, - "file-font": 62329, - "file-image-fill": 62330, - "file-image": 62331, - "file-lock-fill": 62332, - "file-lock": 62333, - "file-lock2-fill": 62334, - "file-lock2": 62335, - "file-medical-fill": 62336, - "file-medical": 62337, - "file-minus-fill": 62338, - "file-minus": 62339, - "file-music-fill": 62340, - "file-music": 62341, - "file-person-fill": 62342, - "file-person": 62343, - "file-play-fill": 62344, - "file-play": 62345, - "file-plus-fill": 62346, - "file-plus": 62347, - "file-post-fill": 62348, - "file-post": 62349, - "file-ppt-fill": 62350, - "file-ppt": 62351, - "file-richtext-fill": 62352, - "file-richtext": 62353, - "file-ruled-fill": 62354, - "file-ruled": 62355, - "file-slides-fill": 62356, - "file-slides": 62357, - "file-spreadsheet-fill": 62358, - "file-spreadsheet": 62359, - "file-text-fill": 62360, - "file-text": 62361, - "file-word-fill": 62362, - "file-word": 62363, - "file-x-fill": 62364, - "file-x": 62365, - "file-zip-fill": 62366, - "file-zip": 62367, - "file": 62368, - "files-alt": 62369, - "files": 62370, - "film": 62371, - "filter-circle-fill": 62372, - "filter-circle": 62373, - "filter-left": 62374, - "filter-right": 62375, - "filter-square-fill": 62376, - "filter-square": 62377, - "filter": 62378, - "flag-fill": 62379, - "flag": 62380, - "flower1": 62381, - "flower2": 62382, - "flower3": 62383, - "folder-check": 62384, - "folder-fill": 62385, - "folder-minus": 62386, - "folder-plus": 62387, - "folder-symlink-fill": 62388, - "folder-symlink": 62389, - "folder-x": 62390, - "folder": 62391, - "folder2-open": 62392, - "folder2": 62393, - "fonts": 62394, - "forward-fill": 62395, - "forward": 62396, - "front": 62397, - "fullscreen-exit": 62398, - "fullscreen": 62399, - "funnel-fill": 62400, - "funnel": 62401, - "gear-fill": 62402, - "gear-wide-connected": 62403, - "gear-wide": 62404, - "gear": 62405, - "gem": 62406, - "geo-alt-fill": 62407, - "geo-alt": 62408, - "geo-fill": 62409, - "geo": 62410, - "gift-fill": 62411, - "gift": 62412, - "github": 62413, - "globe": 62414, - "globe2": 62415, - "google": 62416, - "graph-down": 62417, - "graph-up": 62418, - "grid-1x2-fill": 62419, - "grid-1x2": 62420, - "grid-3x2-gap-fill": 62421, - "grid-3x2-gap": 62422, - "grid-3x2": 62423, - "grid-3x3-gap-fill": 62424, - "grid-3x3-gap": 62425, - "grid-3x3": 62426, - "grid-fill": 62427, - "grid": 62428, - "grip-horizontal": 62429, - "grip-vertical": 62430, - "hammer": 62431, - "hand-index-fill": 62432, - "hand-index-thumb-fill": 62433, - "hand-index-thumb": 62434, - "hand-index": 62435, - "hand-thumbs-down-fill": 62436, - "hand-thumbs-down": 62437, - "hand-thumbs-up-fill": 62438, - "hand-thumbs-up": 62439, - "handbag-fill": 62440, - "handbag": 62441, - "hash": 62442, - "hdd-fill": 62443, - "hdd-network-fill": 62444, - "hdd-network": 62445, - "hdd-rack-fill": 62446, - "hdd-rack": 62447, - "hdd-stack-fill": 62448, - "hdd-stack": 62449, - "hdd": 62450, - "headphones": 62451, - "headset": 62452, - "heart-fill": 62453, - "heart-half": 62454, - "heart": 62455, - "heptagon-fill": 62456, - "heptagon-half": 62457, - "heptagon": 62458, - "hexagon-fill": 62459, - "hexagon-half": 62460, - "hexagon": 62461, - "hourglass-bottom": 62462, - "hourglass-split": 62463, - "hourglass-top": 62464, - "hourglass": 62465, - "house-door-fill": 62466, - "house-door": 62467, - "house-fill": 62468, - "house": 62469, - "hr": 62470, - "image-alt": 62471, - "image-fill": 62472, - "image": 62473, - "images": 62474, - "inbox-fill": 62475, - "inbox": 62476, - "inboxes-fill": 62477, - "inboxes": 62478, - "info-circle-fill": 62479, - "info-circle": 62480, - "info-square-fill": 62481, - "info-square": 62482, - "info": 62483, - "input-cursor-text": 62484, - "input-cursor": 62485, - "instagram": 62486, - "intersect": 62487, - "journal-album": 62488, - "journal-arrow-down": 62489, - "journal-arrow-up": 62490, - "journal-bookmark-fill": 62491, - "journal-bookmark": 62492, - "journal-check": 62493, - "journal-code": 62494, - "journal-medical": 62495, - "journal-minus": 62496, - "journal-plus": 62497, - "journal-richtext": 62498, - "journal-text": 62499, - "journal-x": 62500, - "journal": 62501, - "journals": 62502, - "joystick": 62503, - "justify-left": 62504, - "justify-right": 62505, - "justify": 62506, - "kanban-fill": 62507, - "kanban": 62508, - "key-fill": 62509, - "key": 62510, - "keyboard-fill": 62511, - "keyboard": 62512, - "ladder": 62513, - "lamp-fill": 62514, - "lamp": 62515, - "laptop-fill": 62516, - "laptop": 62517, - "layer-backward": 62518, - "layer-forward": 62519, - "layers-fill": 62520, - "layers-half": 62521, - "layers": 62522, - "layout-sidebar-inset-reverse": 62523, - "layout-sidebar-inset": 62524, - "layout-sidebar-reverse": 62525, - "layout-sidebar": 62526, - "layout-split": 62527, - "layout-text-sidebar-reverse": 62528, - "layout-text-sidebar": 62529, - "layout-text-window-reverse": 62530, - "layout-text-window": 62531, - "layout-three-columns": 62532, - "layout-wtf": 62533, - "life-preserver": 62534, - "lightbulb-fill": 62535, - "lightbulb-off-fill": 62536, - "lightbulb-off": 62537, - "lightbulb": 62538, - "lightning-fill": 62539, - "lightning": 62540, - "link-45deg": 62541, - "link": 62542, - "linkedin": 62543, - "list-check": 62544, - "list-nested": 62545, - "list-ol": 62546, - "list-stars": 62547, - "list-task": 62548, - "list-ul": 62549, - "list": 62550, - "lock-fill": 62551, - "lock": 62552, - "mailbox": 62553, - "mailbox2": 62554, - "map-fill": 62555, - "map": 62556, - "markdown-fill": 62557, - "markdown": 62558, - "mask": 62559, - "megaphone-fill": 62560, - "megaphone": 62561, - "menu-app-fill": 62562, - "menu-app": 62563, - "menu-button-fill": 62564, - "menu-button-wide-fill": 62565, - "menu-button-wide": 62566, - "menu-button": 62567, - "menu-down": 62568, - "menu-up": 62569, - "mic-fill": 62570, - "mic-mute-fill": 62571, - "mic-mute": 62572, - "mic": 62573, - "minecart-loaded": 62574, - "minecart": 62575, - "moon": 62576, - "mouse-fill": 62577, - "mouse": 62578, - "mouse2-fill": 62579, - "mouse2": 62580, - "mouse3-fill": 62581, - "mouse3": 62582, - "music-note-beamed": 62583, - "music-note-list": 62584, - "music-note": 62585, - "music-player-fill": 62586, - "music-player": 62587, - "newspaper": 62588, - "node-minus-fill": 62589, - "node-minus": 62590, - "node-plus-fill": 62591, - "node-plus": 62592, - "nut-fill": 62593, - "nut": 62594, - "octagon-fill": 62595, - "octagon-half": 62596, - "octagon": 62597, - "option": 62598, - "outlet": 62599, - "paint-bucket": 62600, - "palette-fill": 62601, - "palette": 62602, - "palette2": 62603, - "paperclip": 62604, - "paragraph": 62605, - "patch-check-fill": 62606, - "patch-check": 62607, - "patch-exclamation-fill": 62608, - "patch-exclamation": 62609, - "patch-minus-fill": 62610, - "patch-minus": 62611, - "patch-plus-fill": 62612, - "patch-plus": 62613, - "patch-question-fill": 62614, - "patch-question": 62615, - "pause-btn-fill": 62616, - "pause-btn": 62617, - "pause-circle-fill": 62618, - "pause-circle": 62619, - "pause-fill": 62620, - "pause": 62621, - "peace-fill": 62622, - "peace": 62623, - "pen-fill": 62624, - "pen": 62625, - "pencil-fill": 62626, - "pencil-square": 62627, - "pencil": 62628, - "pentagon-fill": 62629, - "pentagon-half": 62630, - "pentagon": 62631, - "people-fill": 62632, - "people": 62633, - "percent": 62634, - "person-badge-fill": 62635, - "person-badge": 62636, - "person-bounding-box": 62637, - "person-check-fill": 62638, - "person-check": 62639, - "person-circle": 62640, - "person-dash-fill": 62641, - "person-dash": 62642, - "person-fill": 62643, - "person-lines-fill": 62644, - "person-plus-fill": 62645, - "person-plus": 62646, - "person-square": 62647, - "person-x-fill": 62648, - "person-x": 62649, - "person": 62650, - "phone-fill": 62651, - "phone-landscape-fill": 62652, - "phone-landscape": 62653, - "phone-vibrate-fill": 62654, - "phone-vibrate": 62655, - "phone": 62656, - "pie-chart-fill": 62657, - "pie-chart": 62658, - "pin-angle-fill": 62659, - "pin-angle": 62660, - "pin-fill": 62661, - "pin": 62662, - "pip-fill": 62663, - "pip": 62664, - "play-btn-fill": 62665, - "play-btn": 62666, - "play-circle-fill": 62667, - "play-circle": 62668, - "play-fill": 62669, - "play": 62670, - "plug-fill": 62671, - "plug": 62672, - "plus-circle-dotted": 62673, - "plus-circle-fill": 62674, - "plus-circle": 62675, - "plus-square-dotted": 62676, - "plus-square-fill": 62677, - "plus-square": 62678, - "plus": 62679, - "power": 62680, - "printer-fill": 62681, - "printer": 62682, - "puzzle-fill": 62683, - "puzzle": 62684, - "question-circle-fill": 62685, - "question-circle": 62686, - "question-diamond-fill": 62687, - "question-diamond": 62688, - "question-octagon-fill": 62689, - "question-octagon": 62690, - "question-square-fill": 62691, - "question-square": 62692, - "question": 62693, - "receipt-cutoff": 62694, - "receipt": 62695, - "reception-0": 62696, - "reception-1": 62697, - "reception-2": 62698, - "reception-3": 62699, - "reception-4": 62700, - "record-btn-fill": 62701, - "record-btn": 62702, - "record-circle-fill": 62703, - "record-circle": 62704, - "record-fill": 62705, - "record": 62706, - "record2-fill": 62707, - "record2": 62708, - "reply-all-fill": 62709, - "reply-all": 62710, - "reply-fill": 62711, - "reply": 62712, - "rss-fill": 62713, - "rss": 62714, - "rulers": 62715, - "save-fill": 62716, - "save": 62717, - "save2-fill": 62718, - "save2": 62719, - "scissors": 62720, - "screwdriver": 62721, - "search": 62722, - "segmented-nav": 62723, - "server": 62724, - "share-fill": 62725, - "share": 62726, - "shield-check": 62727, - "shield-exclamation": 62728, - "shield-fill-check": 62729, - "shield-fill-exclamation": 62730, - "shield-fill-minus": 62731, - "shield-fill-plus": 62732, - "shield-fill-x": 62733, - "shield-fill": 62734, - "shield-lock-fill": 62735, - "shield-lock": 62736, - "shield-minus": 62737, - "shield-plus": 62738, - "shield-shaded": 62739, - "shield-slash-fill": 62740, - "shield-slash": 62741, - "shield-x": 62742, - "shield": 62743, - "shift-fill": 62744, - "shift": 62745, - "shop-window": 62746, - "shop": 62747, - "shuffle": 62748, - "signpost-2-fill": 62749, - "signpost-2": 62750, - "signpost-fill": 62751, - "signpost-split-fill": 62752, - "signpost-split": 62753, - "signpost": 62754, - "sim-fill": 62755, - "sim": 62756, - "skip-backward-btn-fill": 62757, - "skip-backward-btn": 62758, - "skip-backward-circle-fill": 62759, - "skip-backward-circle": 62760, - "skip-backward-fill": 62761, - "skip-backward": 62762, - "skip-end-btn-fill": 62763, - "skip-end-btn": 62764, - "skip-end-circle-fill": 62765, - "skip-end-circle": 62766, - "skip-end-fill": 62767, - "skip-end": 62768, - "skip-forward-btn-fill": 62769, - "skip-forward-btn": 62770, - "skip-forward-circle-fill": 62771, - "skip-forward-circle": 62772, - "skip-forward-fill": 62773, - "skip-forward": 62774, - "skip-start-btn-fill": 62775, - "skip-start-btn": 62776, - "skip-start-circle-fill": 62777, - "skip-start-circle": 62778, - "skip-start-fill": 62779, - "skip-start": 62780, - "slack": 62781, - "slash-circle-fill": 62782, - "slash-circle": 62783, - "slash-square-fill": 62784, - "slash-square": 62785, - "slash": 62786, - "sliders": 62787, - "smartwatch": 62788, - "sort-alpha-down-alt": 62789, - "sort-alpha-down": 62790, - "sort-alpha-up-alt": 62791, - "sort-alpha-up": 62792, - "sort-down-alt": 62793, - "sort-down": 62794, - "sort-numeric-down-alt": 62795, - "sort-numeric-down": 62796, - "sort-numeric-up-alt": 62797, - "sort-numeric-up": 62798, - "sort-up-alt": 62799, - "sort-up": 62800, - "soundwave": 62801, - "speaker-fill": 62802, - "speaker": 62803, - "speedometer": 62804, - "speedometer2": 62805, - "spellcheck": 62806, - "square-fill": 62807, - "square-half": 62808, - "square": 62809, - "stack": 62810, - "star-fill": 62811, - "star-half": 62812, - "star": 62813, - "stickies-fill": 62814, - "stickies": 62815, - "sticky-fill": 62816, - "sticky": 62817, - "stop-btn-fill": 62818, - "stop-btn": 62819, - "stop-circle-fill": 62820, - "stop-circle": 62821, - "stop-fill": 62822, - "stop": 62823, - "stoplights-fill": 62824, - "stoplights": 62825, - "stopwatch-fill": 62826, - "stopwatch": 62827, - "subtract": 62828, - "suit-club-fill": 62829, - "suit-club": 62830, - "suit-diamond-fill": 62831, - "suit-diamond": 62832, - "suit-heart-fill": 62833, - "suit-heart": 62834, - "suit-spade-fill": 62835, - "suit-spade": 62836, - "sun": 62837, - "sunglasses": 62838, - "symmetry-horizontal": 62839, - "symmetry-vertical": 62840, - "table": 62841, - "tablet-fill": 62842, - "tablet-landscape-fill": 62843, - "tablet-landscape": 62844, - "tablet": 62845, - "tag-fill": 62846, - "tag": 62847, - "tags-fill": 62848, - "tags": 62849, - "telegram": 62850, - "telephone-fill": 62851, - "telephone-forward-fill": 62852, - "telephone-forward": 62853, - "telephone-inbound-fill": 62854, - "telephone-inbound": 62855, - "telephone-minus-fill": 62856, - "telephone-minus": 62857, - "telephone-outbound-fill": 62858, - "telephone-outbound": 62859, - "telephone-plus-fill": 62860, - "telephone-plus": 62861, - "telephone-x-fill": 62862, - "telephone-x": 62863, - "telephone": 62864, - "terminal-fill": 62865, - "terminal": 62866, - "text-center": 62867, - "text-indent-left": 62868, - "text-indent-right": 62869, - "text-left": 62870, - "text-paragraph": 62871, - "text-right": 62872, - "textarea-resize": 62873, - "textarea-t": 62874, - "textarea": 62875, - "thermometer-half": 62876, - "thermometer": 62877, - "three-dots-vertical": 62878, - "three-dots": 62879, - "toggle-off": 62880, - "toggle-on": 62881, - "toggle2-off": 62882, - "toggle2-on": 62883, - "toggles": 62884, - "toggles2": 62885, - "tools": 62886, - "trash-fill": 62887, - "trash": 62888, - "trash2-fill": 62889, - "trash2": 62890, - "tree-fill": 62891, - "tree": 62892, - "triangle-fill": 62893, - "triangle-half": 62894, - "triangle": 62895, - "trophy-fill": 62896, - "trophy": 62897, - "truck-flatbed": 62898, - "truck": 62899, - "tv-fill": 62900, - "tv": 62901, - "twitch": 62902, - "twitter": 62903, - "type-bold": 62904, - "type-h1": 62905, - "type-h2": 62906, - "type-h3": 62907, - "type-italic": 62908, - "type-strikethrough": 62909, - "type-underline": 62910, - "type": 62911, - "ui-checks-grid": 62912, - "ui-checks": 62913, - "ui-radios-grid": 62914, - "ui-radios": 62915, - "union": 62916, - "unlock-fill": 62917, - "unlock": 62918, - "upc-scan": 62919, - "upc": 62920, - "upload": 62921, - "vector-pen": 62922, - "view-list": 62923, - "view-stacked": 62924, - "vinyl-fill": 62925, - "vinyl": 62926, - "voicemail": 62927, - "volume-down-fill": 62928, - "volume-down": 62929, - "volume-mute-fill": 62930, - "volume-mute": 62931, - "volume-off-fill": 62932, - "volume-off": 62933, - "volume-up-fill": 62934, - "volume-up": 62935, - "vr": 62936, - "wallet-fill": 62937, - "wallet": 62938, - "wallet2": 62939, - "watch": 62940, - "whatsapp": 62941, - "wifi-1": 62942, - "wifi-2": 62943, - "wifi-off": 62944, - "wifi": 62945, - "window-dock": 62946, - "window-sidebar": 62947, - "window": 62948, - "wrench": 62949, - "x-circle-fill": 62950, - "x-circle": 62951, - "x-diamond-fill": 62952, - "x-diamond": 62953, - "x-octagon-fill": 62954, - "x-octagon": 62955, - "x-square-fill": 62956, - "x-square": 62957, - "x": 62958, - "youtube": 62959, - "zoom-in": 62960, - "zoom-out": 62961 -} \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bootstrap-icons.svg b/dist/assets/vendors/bootstrap-icons/bootstrap-icons.svg deleted file mode 100644 index bd573e032..000000000 --- a/dist/assets/vendors/bootstrap-icons/bootstrap-icons.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bootstrap-reboot.svg b/dist/assets/vendors/bootstrap-icons/bootstrap-reboot.svg deleted file mode 100644 index 5ddcad2b3..000000000 --- a/dist/assets/vendors/bootstrap-icons/bootstrap-reboot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bootstrap.svg b/dist/assets/vendors/bootstrap-icons/bootstrap.svg deleted file mode 100644 index c872890bf..000000000 --- a/dist/assets/vendors/bootstrap-icons/bootstrap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-all.svg b/dist/assets/vendors/bootstrap-icons/border-all.svg deleted file mode 100644 index c90dddbb2..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-bottom.svg b/dist/assets/vendors/bootstrap-icons/border-bottom.svg deleted file mode 100644 index d5a543a7b..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-center.svg b/dist/assets/vendors/bootstrap-icons/border-center.svg deleted file mode 100644 index 875210edd..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-inner.svg b/dist/assets/vendors/bootstrap-icons/border-inner.svg deleted file mode 100644 index e4a6a9c8a..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-inner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-left.svg b/dist/assets/vendors/bootstrap-icons/border-left.svg deleted file mode 100644 index 256c1b5b8..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-middle.svg b/dist/assets/vendors/bootstrap-icons/border-middle.svg deleted file mode 100644 index 398ce7b52..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-middle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-outer.svg b/dist/assets/vendors/bootstrap-icons/border-outer.svg deleted file mode 100644 index 2700cfcb2..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-outer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-right.svg b/dist/assets/vendors/bootstrap-icons/border-right.svg deleted file mode 100644 index 223600982..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-style.svg b/dist/assets/vendors/bootstrap-icons/border-style.svg deleted file mode 100644 index 74c050930..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-style.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-top.svg b/dist/assets/vendors/bootstrap-icons/border-top.svg deleted file mode 100644 index 5aab36858..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-top.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border-width.svg b/dist/assets/vendors/bootstrap-icons/border-width.svg deleted file mode 100644 index 197c89416..000000000 --- a/dist/assets/vendors/bootstrap-icons/border-width.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/border.svg b/dist/assets/vendors/bootstrap-icons/border.svg deleted file mode 100644 index bbfe5b888..000000000 --- a/dist/assets/vendors/bootstrap-icons/border.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bounding-box-circles.svg b/dist/assets/vendors/bootstrap-icons/bounding-box-circles.svg deleted file mode 100644 index d498885cb..000000000 --- a/dist/assets/vendors/bootstrap-icons/bounding-box-circles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bounding-box.svg b/dist/assets/vendors/bootstrap-icons/bounding-box.svg deleted file mode 100644 index 2fa47bb98..000000000 --- a/dist/assets/vendors/bootstrap-icons/bounding-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-down-left.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-down-left.svg deleted file mode 100644 index f95fe4586..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-down-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-down-right.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-down-right.svg deleted file mode 100644 index 09719d2a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-down-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-down.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-down.svg deleted file mode 100644 index ac21870cc..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-down-left.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-down-left.svg deleted file mode 100644 index 12715ad27..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-down-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-down-right.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-down-right.svg deleted file mode 100644 index 4ec7303c0..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-down-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-down.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-down.svg deleted file mode 100644 index 3df60050c..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-left.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-left.svg deleted file mode 100644 index 64850a085..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-right.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-right.svg deleted file mode 100644 index dfc4067fc..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-up-left.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-up-left.svg deleted file mode 100644 index 24eae5934..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-up-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-up-right.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-up-right.svg deleted file mode 100644 index d0550599b..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-up-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-in-up.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-in-up.svg deleted file mode 100644 index 058998f38..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-in-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-left.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-left.svg deleted file mode 100644 index 7dda9a875..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-right.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-right.svg deleted file mode 100644 index bfcb13d7c..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-up-left.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-up-left.svg deleted file mode 100644 index 152f27a31..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-up-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-up-right.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-up-right.svg deleted file mode 100644 index e835323ba..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-up-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-arrow-up.svg b/dist/assets/vendors/bootstrap-icons/box-arrow-up.svg deleted file mode 100644 index de1650c89..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box-seam.svg b/dist/assets/vendors/bootstrap-icons/box-seam.svg deleted file mode 100644 index f07c624f8..000000000 --- a/dist/assets/vendors/bootstrap-icons/box-seam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/box.svg b/dist/assets/vendors/bootstrap-icons/box.svg deleted file mode 100644 index 3d692163a..000000000 --- a/dist/assets/vendors/bootstrap-icons/box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/braces.svg b/dist/assets/vendors/bootstrap-icons/braces.svg deleted file mode 100644 index cd566e307..000000000 --- a/dist/assets/vendors/bootstrap-icons/braces.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bricks.svg b/dist/assets/vendors/bootstrap-icons/bricks.svg deleted file mode 100644 index bacdb274b..000000000 --- a/dist/assets/vendors/bootstrap-icons/bricks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/briefcase-fill.svg b/dist/assets/vendors/bootstrap-icons/briefcase-fill.svg deleted file mode 100644 index bc6150dc4..000000000 --- a/dist/assets/vendors/bootstrap-icons/briefcase-fill.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/briefcase.svg b/dist/assets/vendors/bootstrap-icons/briefcase.svg deleted file mode 100644 index 5f11b7f89..000000000 --- a/dist/assets/vendors/bootstrap-icons/briefcase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-alt-high-fill.svg b/dist/assets/vendors/bootstrap-icons/brightness-alt-high-fill.svg deleted file mode 100644 index 27ca59109..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-alt-high-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-alt-high.svg b/dist/assets/vendors/bootstrap-icons/brightness-alt-high.svg deleted file mode 100644 index d6723fabc..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-alt-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-alt-low-fill.svg b/dist/assets/vendors/bootstrap-icons/brightness-alt-low-fill.svg deleted file mode 100644 index aa68c7d5f..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-alt-low-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-alt-low.svg b/dist/assets/vendors/bootstrap-icons/brightness-alt-low.svg deleted file mode 100644 index efbf495b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-alt-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-high-fill.svg b/dist/assets/vendors/bootstrap-icons/brightness-high-fill.svg deleted file mode 100644 index ef9f96b84..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-high-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-high.svg b/dist/assets/vendors/bootstrap-icons/brightness-high.svg deleted file mode 100644 index 28dcfe568..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-low-fill.svg b/dist/assets/vendors/bootstrap-icons/brightness-low-fill.svg deleted file mode 100644 index eab0328ac..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-low-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brightness-low.svg b/dist/assets/vendors/bootstrap-icons/brightness-low.svg deleted file mode 100644 index 21621ef23..000000000 --- a/dist/assets/vendors/bootstrap-icons/brightness-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/broadcast-pin.svg b/dist/assets/vendors/bootstrap-icons/broadcast-pin.svg deleted file mode 100644 index 0c84defc6..000000000 --- a/dist/assets/vendors/bootstrap-icons/broadcast-pin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/broadcast.svg b/dist/assets/vendors/bootstrap-icons/broadcast.svg deleted file mode 100644 index f4b515acc..000000000 --- a/dist/assets/vendors/bootstrap-icons/broadcast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brush-fill.svg b/dist/assets/vendors/bootstrap-icons/brush-fill.svg deleted file mode 100644 index 3044a3fb6..000000000 --- a/dist/assets/vendors/bootstrap-icons/brush-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/brush.svg b/dist/assets/vendors/bootstrap-icons/brush.svg deleted file mode 100644 index 20ea5f860..000000000 --- a/dist/assets/vendors/bootstrap-icons/brush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bucket-fill.svg b/dist/assets/vendors/bootstrap-icons/bucket-fill.svg deleted file mode 100644 index 8ed1489fc..000000000 --- a/dist/assets/vendors/bootstrap-icons/bucket-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bucket.svg b/dist/assets/vendors/bootstrap-icons/bucket.svg deleted file mode 100644 index e67eaf914..000000000 --- a/dist/assets/vendors/bootstrap-icons/bucket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bug-fill.svg b/dist/assets/vendors/bootstrap-icons/bug-fill.svg deleted file mode 100644 index 9e21f8a3a..000000000 --- a/dist/assets/vendors/bootstrap-icons/bug-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bug.svg b/dist/assets/vendors/bootstrap-icons/bug.svg deleted file mode 100644 index 9ba6cd2ed..000000000 --- a/dist/assets/vendors/bootstrap-icons/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/building.svg b/dist/assets/vendors/bootstrap-icons/building.svg deleted file mode 100644 index 42ed01dca..000000000 --- a/dist/assets/vendors/bootstrap-icons/building.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/bullseye.svg b/dist/assets/vendors/bootstrap-icons/bullseye.svg deleted file mode 100644 index 047454aab..000000000 --- a/dist/assets/vendors/bootstrap-icons/bullseye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calculator-fill.svg b/dist/assets/vendors/bootstrap-icons/calculator-fill.svg deleted file mode 100644 index cd1be4a58..000000000 --- a/dist/assets/vendors/bootstrap-icons/calculator-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calculator.svg b/dist/assets/vendors/bootstrap-icons/calculator.svg deleted file mode 100644 index b3b2ae50f..000000000 --- a/dist/assets/vendors/bootstrap-icons/calculator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-check-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-check-fill.svg deleted file mode 100644 index d5184495b..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-check.svg b/dist/assets/vendors/bootstrap-icons/calendar-check.svg deleted file mode 100644 index 68563ed8c..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-date-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-date-fill.svg deleted file mode 100644 index 53320c7b3..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-date-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-date.svg b/dist/assets/vendors/bootstrap-icons/calendar-date.svg deleted file mode 100644 index aabca3eda..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-date.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-day-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-day-fill.svg deleted file mode 100644 index 1fed6db35..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-day-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-day.svg b/dist/assets/vendors/bootstrap-icons/calendar-day.svg deleted file mode 100644 index 91c1dfc3b..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-day.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-event-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-event-fill.svg deleted file mode 100644 index 2def5804d..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-event-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-event.svg b/dist/assets/vendors/bootstrap-icons/calendar-event.svg deleted file mode 100644 index 9aba5307c..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-event.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-fill.svg deleted file mode 100644 index 2a5b0596e..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-minus-fill.svg deleted file mode 100644 index 8d7fad693..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-minus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-minus.svg b/dist/assets/vendors/bootstrap-icons/calendar-minus.svg deleted file mode 100644 index 299d54c13..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-month-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-month-fill.svg deleted file mode 100644 index a8fcfd981..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-month-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-month.svg b/dist/assets/vendors/bootstrap-icons/calendar-month.svg deleted file mode 100644 index d929433b0..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-month.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-plus-fill.svg deleted file mode 100644 index 3928c6389..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-plus-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-plus.svg b/dist/assets/vendors/bootstrap-icons/calendar-plus.svg deleted file mode 100644 index 202df5889..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-range-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-range-fill.svg deleted file mode 100644 index 3a2898438..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-range-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-range.svg b/dist/assets/vendors/bootstrap-icons/calendar-range.svg deleted file mode 100644 index a287911db..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-week-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-week-fill.svg deleted file mode 100644 index b41afe2d4..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-week-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-week.svg b/dist/assets/vendors/bootstrap-icons/calendar-week.svg deleted file mode 100644 index 3f008118a..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-week.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-x-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar-x-fill.svg deleted file mode 100644 index c3b5abfd1..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar-x.svg b/dist/assets/vendors/bootstrap-icons/calendar-x.svg deleted file mode 100644 index 7ded81b75..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar.svg b/dist/assets/vendors/bootstrap-icons/calendar.svg deleted file mode 100644 index f92d41e61..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-check-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-check-fill.svg deleted file mode 100644 index e382c20b6..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-check.svg b/dist/assets/vendors/bootstrap-icons/calendar2-check.svg deleted file mode 100644 index 063a12c3f..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-date-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-date-fill.svg deleted file mode 100644 index 65e9ab475..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-date-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-date.svg b/dist/assets/vendors/bootstrap-icons/calendar2-date.svg deleted file mode 100644 index 6e35472a1..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-date.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-day-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-day-fill.svg deleted file mode 100644 index 48cb4d99b..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-day-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-day.svg b/dist/assets/vendors/bootstrap-icons/calendar2-day.svg deleted file mode 100644 index f5153c106..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-day.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-event-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-event-fill.svg deleted file mode 100644 index 9ebb0c22f..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-event-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-event.svg b/dist/assets/vendors/bootstrap-icons/calendar2-event.svg deleted file mode 100644 index 8c1c7cd04..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-event.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-fill.svg deleted file mode 100644 index 0a444267c..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-minus-fill.svg deleted file mode 100644 index af8721331..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-minus-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-minus.svg b/dist/assets/vendors/bootstrap-icons/calendar2-minus.svg deleted file mode 100644 index 92ca7e8c9..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-month-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-month-fill.svg deleted file mode 100644 index 432b9b765..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-month-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-month.svg b/dist/assets/vendors/bootstrap-icons/calendar2-month.svg deleted file mode 100644 index 1bc59375b..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-month.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-plus-fill.svg deleted file mode 100644 index 49dcab77a..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-plus.svg b/dist/assets/vendors/bootstrap-icons/calendar2-plus.svg deleted file mode 100644 index de14fd489..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-range-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-range-fill.svg deleted file mode 100644 index 6fa4bc968..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-range-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-range.svg b/dist/assets/vendors/bootstrap-icons/calendar2-range.svg deleted file mode 100644 index 84d7baeea..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-week-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-week-fill.svg deleted file mode 100644 index e37bb6063..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-week-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-week.svg b/dist/assets/vendors/bootstrap-icons/calendar2-week.svg deleted file mode 100644 index f3dc9160d..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-week.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-x-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar2-x-fill.svg deleted file mode 100644 index ae66c8bb0..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2-x.svg b/dist/assets/vendors/bootstrap-icons/calendar2-x.svg deleted file mode 100644 index 0aaa2a217..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar2.svg b/dist/assets/vendors/bootstrap-icons/calendar2.svg deleted file mode 100644 index 77d0a0bd9..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-event-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar3-event-fill.svg deleted file mode 100644 index a22f8d2b9..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-event-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-event.svg b/dist/assets/vendors/bootstrap-icons/calendar3-event.svg deleted file mode 100644 index 0bec8109a..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-event.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar3-fill.svg deleted file mode 100644 index 6cd9a89f9..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-range-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar3-range-fill.svg deleted file mode 100644 index 76f382a99..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-range-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-range.svg b/dist/assets/vendors/bootstrap-icons/calendar3-range.svg deleted file mode 100644 index e6737b443..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-week-fill.svg b/dist/assets/vendors/bootstrap-icons/calendar3-week-fill.svg deleted file mode 100644 index c3b315ebe..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-week-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3-week.svg b/dist/assets/vendors/bootstrap-icons/calendar3-week.svg deleted file mode 100644 index 2e2d83f87..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3-week.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar3.svg b/dist/assets/vendors/bootstrap-icons/calendar3.svg deleted file mode 100644 index f6da80f8b..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar4-event.svg b/dist/assets/vendors/bootstrap-icons/calendar4-event.svg deleted file mode 100644 index 5f9756993..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar4-event.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar4-range.svg b/dist/assets/vendors/bootstrap-icons/calendar4-range.svg deleted file mode 100644 index 1cd1c6fa6..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar4-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar4-week.svg b/dist/assets/vendors/bootstrap-icons/calendar4-week.svg deleted file mode 100644 index 10f1e2ad1..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar4-week.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/calendar4.svg b/dist/assets/vendors/bootstrap-icons/calendar4.svg deleted file mode 100644 index 8fd98de52..000000000 --- a/dist/assets/vendors/bootstrap-icons/calendar4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-fill.svg b/dist/assets/vendors/bootstrap-icons/camera-fill.svg deleted file mode 100644 index d75bc72ed..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-reels-fill.svg b/dist/assets/vendors/bootstrap-icons/camera-reels-fill.svg deleted file mode 100644 index eef9942c5..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-reels-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-reels.svg b/dist/assets/vendors/bootstrap-icons/camera-reels.svg deleted file mode 100644 index 664c07348..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-reels.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-video-fill.svg b/dist/assets/vendors/bootstrap-icons/camera-video-fill.svg deleted file mode 100644 index 0222b9587..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-video-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-video-off-fill.svg b/dist/assets/vendors/bootstrap-icons/camera-video-off-fill.svg deleted file mode 100644 index 13a7ece9f..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-video-off-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-video-off.svg b/dist/assets/vendors/bootstrap-icons/camera-video-off.svg deleted file mode 100644 index 516d5fc83..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-video-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera-video.svg b/dist/assets/vendors/bootstrap-icons/camera-video.svg deleted file mode 100644 index 887290db5..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera-video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera.svg b/dist/assets/vendors/bootstrap-icons/camera.svg deleted file mode 100644 index 9c0bfcfb3..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/camera2.svg b/dist/assets/vendors/bootstrap-icons/camera2.svg deleted file mode 100644 index d7dc9057c..000000000 --- a/dist/assets/vendors/bootstrap-icons/camera2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/capslock-fill.svg b/dist/assets/vendors/bootstrap-icons/capslock-fill.svg deleted file mode 100644 index 427eea5d7..000000000 --- a/dist/assets/vendors/bootstrap-icons/capslock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/capslock.svg b/dist/assets/vendors/bootstrap-icons/capslock.svg deleted file mode 100644 index 499bfcd3e..000000000 --- a/dist/assets/vendors/bootstrap-icons/capslock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/card-checklist.svg b/dist/assets/vendors/bootstrap-icons/card-checklist.svg deleted file mode 100644 index cf84c614f..000000000 --- a/dist/assets/vendors/bootstrap-icons/card-checklist.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/card-heading.svg b/dist/assets/vendors/bootstrap-icons/card-heading.svg deleted file mode 100644 index 55add5913..000000000 --- a/dist/assets/vendors/bootstrap-icons/card-heading.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/card-image.svg b/dist/assets/vendors/bootstrap-icons/card-image.svg deleted file mode 100644 index 209ecf306..000000000 --- a/dist/assets/vendors/bootstrap-icons/card-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/card-list.svg b/dist/assets/vendors/bootstrap-icons/card-list.svg deleted file mode 100644 index 3af88ba0b..000000000 --- a/dist/assets/vendors/bootstrap-icons/card-list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/card-text.svg b/dist/assets/vendors/bootstrap-icons/card-text.svg deleted file mode 100644 index b2d3ab6b4..000000000 --- a/dist/assets/vendors/bootstrap-icons/card-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-down-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-down-fill.svg deleted file mode 100644 index a7f3b0a4c..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-down-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-down-square-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-down-square-fill.svg deleted file mode 100644 index 565a7a7a2..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-down-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-down-square.svg b/dist/assets/vendors/bootstrap-icons/caret-down-square.svg deleted file mode 100644 index 47ca1684b..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-down-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-down.svg b/dist/assets/vendors/bootstrap-icons/caret-down.svg deleted file mode 100644 index 478a05371..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-down.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-left-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-left-fill.svg deleted file mode 100644 index db1b2fe1d..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-left-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-left-square-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-left-square-fill.svg deleted file mode 100644 index 824d155d8..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-left-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-left-square.svg b/dist/assets/vendors/bootstrap-icons/caret-left-square.svg deleted file mode 100644 index 45dde876c..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-left-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-left.svg b/dist/assets/vendors/bootstrap-icons/caret-left.svg deleted file mode 100644 index 35c305e0f..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-right-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-right-fill.svg deleted file mode 100644 index cc5fcc6df..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-right-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-right-square-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-right-square-fill.svg deleted file mode 100644 index 88059523f..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-right-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-right-square.svg b/dist/assets/vendors/bootstrap-icons/caret-right-square.svg deleted file mode 100644 index 28ead67a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-right-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-right.svg b/dist/assets/vendors/bootstrap-icons/caret-right.svg deleted file mode 100644 index cd2c6e146..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-up-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-up-fill.svg deleted file mode 100644 index 3bcb4ffcf..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-up-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-up-square-fill.svg b/dist/assets/vendors/bootstrap-icons/caret-up-square-fill.svg deleted file mode 100644 index 637ddb18b..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-up-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-up-square.svg b/dist/assets/vendors/bootstrap-icons/caret-up-square.svg deleted file mode 100644 index 3e1fe34f4..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-up-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/caret-up.svg b/dist/assets/vendors/bootstrap-icons/caret-up.svg deleted file mode 100644 index b255cddca..000000000 --- a/dist/assets/vendors/bootstrap-icons/caret-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-check-fill.svg b/dist/assets/vendors/bootstrap-icons/cart-check-fill.svg deleted file mode 100644 index ce0342406..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-check.svg b/dist/assets/vendors/bootstrap-icons/cart-check.svg deleted file mode 100644 index 2808dd05e..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-dash-fill.svg b/dist/assets/vendors/bootstrap-icons/cart-dash-fill.svg deleted file mode 100644 index 6f14e4f5a..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-dash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-dash.svg b/dist/assets/vendors/bootstrap-icons/cart-dash.svg deleted file mode 100644 index 0d422f9f3..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-dash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-fill.svg b/dist/assets/vendors/bootstrap-icons/cart-fill.svg deleted file mode 100644 index 32d7e13be..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/cart-plus-fill.svg deleted file mode 100644 index f19422274..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-plus.svg b/dist/assets/vendors/bootstrap-icons/cart-plus.svg deleted file mode 100644 index 51e771dd9..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-x-fill.svg b/dist/assets/vendors/bootstrap-icons/cart-x-fill.svg deleted file mode 100644 index 585322a1d..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart-x.svg b/dist/assets/vendors/bootstrap-icons/cart-x.svg deleted file mode 100644 index a261906c3..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart.svg b/dist/assets/vendors/bootstrap-icons/cart.svg deleted file mode 100644 index 89774c840..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart2.svg b/dist/assets/vendors/bootstrap-icons/cart2.svg deleted file mode 100644 index dfd113d03..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart3.svg b/dist/assets/vendors/bootstrap-icons/cart3.svg deleted file mode 100644 index 8281e4cd8..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cart4.svg b/dist/assets/vendors/bootstrap-icons/cart4.svg deleted file mode 100644 index 1d47c88e5..000000000 --- a/dist/assets/vendors/bootstrap-icons/cart4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cash-stack.svg b/dist/assets/vendors/bootstrap-icons/cash-stack.svg deleted file mode 100644 index 7ebd7b249..000000000 --- a/dist/assets/vendors/bootstrap-icons/cash-stack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cash.svg b/dist/assets/vendors/bootstrap-icons/cash.svg deleted file mode 100644 index 1c06187c3..000000000 --- a/dist/assets/vendors/bootstrap-icons/cash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cast.svg b/dist/assets/vendors/bootstrap-icons/cast.svg deleted file mode 100644 index 99d703be7..000000000 --- a/dist/assets/vendors/bootstrap-icons/cast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-dots-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-dots-fill.svg deleted file mode 100644 index 2e3d22505..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-dots-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-dots.svg b/dist/assets/vendors/bootstrap-icons/chat-dots.svg deleted file mode 100644 index d88c62d5f..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-dots.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-fill.svg deleted file mode 100644 index 1982fc38a..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-dots-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-left-dots-fill.svg deleted file mode 100644 index eb7f531bd..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-dots-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-dots.svg b/dist/assets/vendors/bootstrap-icons/chat-left-dots.svg deleted file mode 100644 index 15d1da9e2..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-dots.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-left-fill.svg deleted file mode 100644 index bd355721d..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-quote-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-left-quote-fill.svg deleted file mode 100644 index c46d97628..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-quote-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-quote.svg b/dist/assets/vendors/bootstrap-icons/chat-left-quote.svg deleted file mode 100644 index 448827f4f..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-quote.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-text-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-left-text-fill.svg deleted file mode 100644 index 28a0f4710..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-text-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left-text.svg b/dist/assets/vendors/bootstrap-icons/chat-left-text.svg deleted file mode 100644 index 6462cc594..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-left.svg b/dist/assets/vendors/bootstrap-icons/chat-left.svg deleted file mode 100644 index 2887eb645..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-quote-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-quote-fill.svg deleted file mode 100644 index 4a3af86eb..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-quote-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-quote.svg b/dist/assets/vendors/bootstrap-icons/chat-quote.svg deleted file mode 100644 index 7c3d61017..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-quote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-dots-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-right-dots-fill.svg deleted file mode 100644 index 7d30ea8ff..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-dots-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-dots.svg b/dist/assets/vendors/bootstrap-icons/chat-right-dots.svg deleted file mode 100644 index eda4aacd2..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-dots.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-right-fill.svg deleted file mode 100644 index 807ddd8bc..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-quote-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-right-quote-fill.svg deleted file mode 100644 index f4f0c3641..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-quote-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-quote.svg b/dist/assets/vendors/bootstrap-icons/chat-right-quote.svg deleted file mode 100644 index 6147453f2..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-quote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-text-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-right-text-fill.svg deleted file mode 100644 index 87d36763c..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-text-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right-text.svg b/dist/assets/vendors/bootstrap-icons/chat-right-text.svg deleted file mode 100644 index a309f6737..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-right.svg b/dist/assets/vendors/bootstrap-icons/chat-right.svg deleted file mode 100644 index 9d1ab4adb..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-dots-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-square-dots-fill.svg deleted file mode 100644 index e160b243c..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-dots-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-dots.svg b/dist/assets/vendors/bootstrap-icons/chat-square-dots.svg deleted file mode 100644 index b299caf2d..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-dots.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-square-fill.svg deleted file mode 100644 index 6a8dfbf78..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-quote-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-square-quote-fill.svg deleted file mode 100644 index 4f2ec5c6b..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-quote-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-quote.svg b/dist/assets/vendors/bootstrap-icons/chat-square-quote.svg deleted file mode 100644 index 374262a6c..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-quote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-text-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-square-text-fill.svg deleted file mode 100644 index 54c9e30e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-text-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square-text.svg b/dist/assets/vendors/bootstrap-icons/chat-square-text.svg deleted file mode 100644 index c2f615576..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-square.svg b/dist/assets/vendors/bootstrap-icons/chat-square.svg deleted file mode 100644 index 2f1ae3449..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-text-fill.svg b/dist/assets/vendors/bootstrap-icons/chat-text-fill.svg deleted file mode 100644 index fff3db332..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-text-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat-text.svg b/dist/assets/vendors/bootstrap-icons/chat-text.svg deleted file mode 100644 index a157349d8..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chat.svg b/dist/assets/vendors/bootstrap-icons/chat.svg deleted file mode 100644 index 91681f992..000000000 --- a/dist/assets/vendors/bootstrap-icons/chat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check-all.svg b/dist/assets/vendors/bootstrap-icons/check-all.svg deleted file mode 100644 index 34f9c0b49..000000000 --- a/dist/assets/vendors/bootstrap-icons/check-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/check-circle-fill.svg deleted file mode 100644 index 277376333..000000000 --- a/dist/assets/vendors/bootstrap-icons/check-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check-circle.svg b/dist/assets/vendors/bootstrap-icons/check-circle.svg deleted file mode 100644 index e8541e51f..000000000 --- a/dist/assets/vendors/bootstrap-icons/check-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check-square-fill.svg b/dist/assets/vendors/bootstrap-icons/check-square-fill.svg deleted file mode 100644 index 52bc3cedf..000000000 --- a/dist/assets/vendors/bootstrap-icons/check-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check-square.svg b/dist/assets/vendors/bootstrap-icons/check-square.svg deleted file mode 100644 index 8c373b766..000000000 --- a/dist/assets/vendors/bootstrap-icons/check-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check.svg b/dist/assets/vendors/bootstrap-icons/check.svg deleted file mode 100644 index 94d9914da..000000000 --- a/dist/assets/vendors/bootstrap-icons/check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check2-all.svg b/dist/assets/vendors/bootstrap-icons/check2-all.svg deleted file mode 100644 index c4dbf8089..000000000 --- a/dist/assets/vendors/bootstrap-icons/check2-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check2-circle.svg b/dist/assets/vendors/bootstrap-icons/check2-circle.svg deleted file mode 100644 index 2594e907d..000000000 --- a/dist/assets/vendors/bootstrap-icons/check2-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check2-square.svg b/dist/assets/vendors/bootstrap-icons/check2-square.svg deleted file mode 100644 index 7d46a0c62..000000000 --- a/dist/assets/vendors/bootstrap-icons/check2-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/check2.svg b/dist/assets/vendors/bootstrap-icons/check2.svg deleted file mode 100644 index d60dda028..000000000 --- a/dist/assets/vendors/bootstrap-icons/check2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-bar-contract.svg b/dist/assets/vendors/bootstrap-icons/chevron-bar-contract.svg deleted file mode 100644 index c7f5a4a16..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-bar-contract.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-bar-down.svg b/dist/assets/vendors/bootstrap-icons/chevron-bar-down.svg deleted file mode 100644 index a42e71b25..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-bar-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-bar-expand.svg b/dist/assets/vendors/bootstrap-icons/chevron-bar-expand.svg deleted file mode 100644 index bab57b90d..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-bar-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-bar-left.svg b/dist/assets/vendors/bootstrap-icons/chevron-bar-left.svg deleted file mode 100644 index 3bc6fe7d4..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-bar-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-bar-right.svg b/dist/assets/vendors/bootstrap-icons/chevron-bar-right.svg deleted file mode 100644 index 2bfb3c6dd..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-bar-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-bar-up.svg b/dist/assets/vendors/bootstrap-icons/chevron-bar-up.svg deleted file mode 100644 index b1243151b..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-bar-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-compact-down.svg b/dist/assets/vendors/bootstrap-icons/chevron-compact-down.svg deleted file mode 100644 index 47f2a4b81..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-compact-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-compact-left.svg b/dist/assets/vendors/bootstrap-icons/chevron-compact-left.svg deleted file mode 100644 index 5af2c1e59..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-compact-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-compact-right.svg b/dist/assets/vendors/bootstrap-icons/chevron-compact-right.svg deleted file mode 100644 index f3c46276b..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-compact-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-compact-up.svg b/dist/assets/vendors/bootstrap-icons/chevron-compact-up.svg deleted file mode 100644 index 1945f6b11..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-compact-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-contract.svg b/dist/assets/vendors/bootstrap-icons/chevron-contract.svg deleted file mode 100644 index 71a271525..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-contract.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-double-down.svg b/dist/assets/vendors/bootstrap-icons/chevron-double-down.svg deleted file mode 100644 index 230a79575..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-double-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-double-left.svg b/dist/assets/vendors/bootstrap-icons/chevron-double-left.svg deleted file mode 100644 index 077244f8b..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-double-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-double-right.svg b/dist/assets/vendors/bootstrap-icons/chevron-double-right.svg deleted file mode 100644 index 91ce17ab7..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-double-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-double-up.svg b/dist/assets/vendors/bootstrap-icons/chevron-double-up.svg deleted file mode 100644 index 5c9a01326..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-double-up.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-down.svg b/dist/assets/vendors/bootstrap-icons/chevron-down.svg deleted file mode 100644 index c43b739f4..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-expand.svg b/dist/assets/vendors/bootstrap-icons/chevron-expand.svg deleted file mode 100644 index a0599fabe..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-left.svg b/dist/assets/vendors/bootstrap-icons/chevron-left.svg deleted file mode 100644 index 9cbeef9c7..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-right.svg b/dist/assets/vendors/bootstrap-icons/chevron-right.svg deleted file mode 100644 index 3bbea5ace..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/chevron-up.svg b/dist/assets/vendors/bootstrap-icons/chevron-up.svg deleted file mode 100644 index 213bc2c6c..000000000 --- a/dist/assets/vendors/bootstrap-icons/chevron-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/circle-fill.svg b/dist/assets/vendors/bootstrap-icons/circle-fill.svg deleted file mode 100644 index 6a8d1c08c..000000000 --- a/dist/assets/vendors/bootstrap-icons/circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/circle-half.svg b/dist/assets/vendors/bootstrap-icons/circle-half.svg deleted file mode 100644 index 9a50bcae4..000000000 --- a/dist/assets/vendors/bootstrap-icons/circle-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/circle-square.svg b/dist/assets/vendors/bootstrap-icons/circle-square.svg deleted file mode 100644 index d86f68b0a..000000000 --- a/dist/assets/vendors/bootstrap-icons/circle-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/circle.svg b/dist/assets/vendors/bootstrap-icons/circle.svg deleted file mode 100644 index 49d0dc7d6..000000000 --- a/dist/assets/vendors/bootstrap-icons/circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clipboard-check.svg b/dist/assets/vendors/bootstrap-icons/clipboard-check.svg deleted file mode 100644 index f7591aecf..000000000 --- a/dist/assets/vendors/bootstrap-icons/clipboard-check.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clipboard-data.svg b/dist/assets/vendors/bootstrap-icons/clipboard-data.svg deleted file mode 100644 index 3e9a44385..000000000 --- a/dist/assets/vendors/bootstrap-icons/clipboard-data.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clipboard-minus.svg b/dist/assets/vendors/bootstrap-icons/clipboard-minus.svg deleted file mode 100644 index 05cf8e1c9..000000000 --- a/dist/assets/vendors/bootstrap-icons/clipboard-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clipboard-plus.svg b/dist/assets/vendors/bootstrap-icons/clipboard-plus.svg deleted file mode 100644 index 25a8ed51a..000000000 --- a/dist/assets/vendors/bootstrap-icons/clipboard-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clipboard-x.svg b/dist/assets/vendors/bootstrap-icons/clipboard-x.svg deleted file mode 100644 index 870ca0119..000000000 --- a/dist/assets/vendors/bootstrap-icons/clipboard-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clipboard.svg b/dist/assets/vendors/bootstrap-icons/clipboard.svg deleted file mode 100644 index f46fc6d28..000000000 --- a/dist/assets/vendors/bootstrap-icons/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clock-fill.svg b/dist/assets/vendors/bootstrap-icons/clock-fill.svg deleted file mode 100644 index 71d2fde5f..000000000 --- a/dist/assets/vendors/bootstrap-icons/clock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clock-history.svg b/dist/assets/vendors/bootstrap-icons/clock-history.svg deleted file mode 100644 index 4baf01fad..000000000 --- a/dist/assets/vendors/bootstrap-icons/clock-history.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/clock.svg b/dist/assets/vendors/bootstrap-icons/clock.svg deleted file mode 100644 index 3812d5500..000000000 --- a/dist/assets/vendors/bootstrap-icons/clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-arrow-down-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-arrow-down-fill.svg deleted file mode 100644 index f4567e339..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-arrow-down-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-arrow-down.svg b/dist/assets/vendors/bootstrap-icons/cloud-arrow-down.svg deleted file mode 100644 index 0c90c643b..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-arrow-up-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-arrow-up-fill.svg deleted file mode 100644 index 7f34e9e8b..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-arrow-up-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-arrow-up.svg b/dist/assets/vendors/bootstrap-icons/cloud-arrow-up.svg deleted file mode 100644 index 472b07573..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-check-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-check-fill.svg deleted file mode 100644 index 00beec46e..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-check-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-check.svg b/dist/assets/vendors/bootstrap-icons/cloud-check.svg deleted file mode 100644 index 9a6695a83..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-download-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-download-fill.svg deleted file mode 100644 index 332c44f11..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-download-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-download.svg b/dist/assets/vendors/bootstrap-icons/cloud-download.svg deleted file mode 100644 index 0f5b11988..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-fill.svg deleted file mode 100644 index 23755bd82..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-minus-fill.svg deleted file mode 100644 index 905b74571..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-minus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-minus.svg b/dist/assets/vendors/bootstrap-icons/cloud-minus.svg deleted file mode 100644 index 6006d2855..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-plus-fill.svg deleted file mode 100644 index 7e6eae0e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-plus.svg b/dist/assets/vendors/bootstrap-icons/cloud-plus.svg deleted file mode 100644 index c9196b259..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-slash-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-slash-fill.svg deleted file mode 100644 index b5a799254..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-slash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-slash.svg b/dist/assets/vendors/bootstrap-icons/cloud-slash.svg deleted file mode 100644 index 445fa0b1b..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-slash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-upload-fill.svg b/dist/assets/vendors/bootstrap-icons/cloud-upload-fill.svg deleted file mode 100644 index 1f6b859a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-upload-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud-upload.svg b/dist/assets/vendors/bootstrap-icons/cloud-upload.svg deleted file mode 100644 index 26b26556e..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cloud.svg b/dist/assets/vendors/bootstrap-icons/cloud.svg deleted file mode 100644 index b1267f9d4..000000000 --- a/dist/assets/vendors/bootstrap-icons/cloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/code-slash.svg b/dist/assets/vendors/bootstrap-icons/code-slash.svg deleted file mode 100644 index cfe5134f1..000000000 --- a/dist/assets/vendors/bootstrap-icons/code-slash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/code-square.svg b/dist/assets/vendors/bootstrap-icons/code-square.svg deleted file mode 100644 index 683fb47b9..000000000 --- a/dist/assets/vendors/bootstrap-icons/code-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/code.svg b/dist/assets/vendors/bootstrap-icons/code.svg deleted file mode 100644 index 079f5c67f..000000000 --- a/dist/assets/vendors/bootstrap-icons/code.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/collection-fill.svg b/dist/assets/vendors/bootstrap-icons/collection-fill.svg deleted file mode 100644 index 84698d279..000000000 --- a/dist/assets/vendors/bootstrap-icons/collection-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/collection-play-fill.svg b/dist/assets/vendors/bootstrap-icons/collection-play-fill.svg deleted file mode 100644 index ac40d1acf..000000000 --- a/dist/assets/vendors/bootstrap-icons/collection-play-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/collection-play.svg b/dist/assets/vendors/bootstrap-icons/collection-play.svg deleted file mode 100644 index 5cf3472ef..000000000 --- a/dist/assets/vendors/bootstrap-icons/collection-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/collection.svg b/dist/assets/vendors/bootstrap-icons/collection.svg deleted file mode 100644 index c26002c71..000000000 --- a/dist/assets/vendors/bootstrap-icons/collection.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/columns-gap.svg b/dist/assets/vendors/bootstrap-icons/columns-gap.svg deleted file mode 100644 index 37d8080fe..000000000 --- a/dist/assets/vendors/bootstrap-icons/columns-gap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/columns.svg b/dist/assets/vendors/bootstrap-icons/columns.svg deleted file mode 100644 index caca0b765..000000000 --- a/dist/assets/vendors/bootstrap-icons/columns.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/command.svg b/dist/assets/vendors/bootstrap-icons/command.svg deleted file mode 100644 index 636dc1020..000000000 --- a/dist/assets/vendors/bootstrap-icons/command.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/compass-fill.svg b/dist/assets/vendors/bootstrap-icons/compass-fill.svg deleted file mode 100644 index f2223cf07..000000000 --- a/dist/assets/vendors/bootstrap-icons/compass-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/compass.svg b/dist/assets/vendors/bootstrap-icons/compass.svg deleted file mode 100644 index 027f08d34..000000000 --- a/dist/assets/vendors/bootstrap-icons/compass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cone-striped.svg b/dist/assets/vendors/bootstrap-icons/cone-striped.svg deleted file mode 100644 index 5495c9199..000000000 --- a/dist/assets/vendors/bootstrap-icons/cone-striped.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cone.svg b/dist/assets/vendors/bootstrap-icons/cone.svg deleted file mode 100644 index e196e5ddb..000000000 --- a/dist/assets/vendors/bootstrap-icons/cone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/controller.svg b/dist/assets/vendors/bootstrap-icons/controller.svg deleted file mode 100644 index ae697d546..000000000 --- a/dist/assets/vendors/bootstrap-icons/controller.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cpu-fill.svg b/dist/assets/vendors/bootstrap-icons/cpu-fill.svg deleted file mode 100644 index e91aab146..000000000 --- a/dist/assets/vendors/bootstrap-icons/cpu-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cpu.svg b/dist/assets/vendors/bootstrap-icons/cpu.svg deleted file mode 100644 index 6bfd9344e..000000000 --- a/dist/assets/vendors/bootstrap-icons/cpu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/credit-card-2-back-fill.svg b/dist/assets/vendors/bootstrap-icons/credit-card-2-back-fill.svg deleted file mode 100644 index b0b250502..000000000 --- a/dist/assets/vendors/bootstrap-icons/credit-card-2-back-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/credit-card-2-back.svg b/dist/assets/vendors/bootstrap-icons/credit-card-2-back.svg deleted file mode 100644 index a69d341a5..000000000 --- a/dist/assets/vendors/bootstrap-icons/credit-card-2-back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/credit-card-2-front-fill.svg b/dist/assets/vendors/bootstrap-icons/credit-card-2-front-fill.svg deleted file mode 100644 index c77b29f0c..000000000 --- a/dist/assets/vendors/bootstrap-icons/credit-card-2-front-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/credit-card-2-front.svg b/dist/assets/vendors/bootstrap-icons/credit-card-2-front.svg deleted file mode 100644 index 95b071df9..000000000 --- a/dist/assets/vendors/bootstrap-icons/credit-card-2-front.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/credit-card-fill.svg b/dist/assets/vendors/bootstrap-icons/credit-card-fill.svg deleted file mode 100644 index 51043759b..000000000 --- a/dist/assets/vendors/bootstrap-icons/credit-card-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/credit-card.svg b/dist/assets/vendors/bootstrap-icons/credit-card.svg deleted file mode 100644 index 9ad1c6eac..000000000 --- a/dist/assets/vendors/bootstrap-icons/credit-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/crop.svg b/dist/assets/vendors/bootstrap-icons/crop.svg deleted file mode 100644 index d50108c50..000000000 --- a/dist/assets/vendors/bootstrap-icons/crop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cup-fill.svg b/dist/assets/vendors/bootstrap-icons/cup-fill.svg deleted file mode 100644 index 43b58d9c0..000000000 --- a/dist/assets/vendors/bootstrap-icons/cup-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cup-straw.svg b/dist/assets/vendors/bootstrap-icons/cup-straw.svg deleted file mode 100644 index dd0e0adeb..000000000 --- a/dist/assets/vendors/bootstrap-icons/cup-straw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cup.svg b/dist/assets/vendors/bootstrap-icons/cup.svg deleted file mode 100644 index 3420ff161..000000000 --- a/dist/assets/vendors/bootstrap-icons/cup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cursor-fill.svg b/dist/assets/vendors/bootstrap-icons/cursor-fill.svg deleted file mode 100644 index 7681ef045..000000000 --- a/dist/assets/vendors/bootstrap-icons/cursor-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cursor-text.svg b/dist/assets/vendors/bootstrap-icons/cursor-text.svg deleted file mode 100644 index 9c3966a6f..000000000 --- a/dist/assets/vendors/bootstrap-icons/cursor-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/cursor.svg b/dist/assets/vendors/bootstrap-icons/cursor.svg deleted file mode 100644 index 5c4fc07f0..000000000 --- a/dist/assets/vendors/bootstrap-icons/cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash-circle-dotted.svg b/dist/assets/vendors/bootstrap-icons/dash-circle-dotted.svg deleted file mode 100644 index 7e29372df..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash-circle-dotted.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/dash-circle-fill.svg deleted file mode 100644 index 2ac7c61be..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash-circle.svg b/dist/assets/vendors/bootstrap-icons/dash-circle.svg deleted file mode 100644 index c3fab2909..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash-square-dotted.svg b/dist/assets/vendors/bootstrap-icons/dash-square-dotted.svg deleted file mode 100644 index fcaf3524a..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash-square-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash-square-fill.svg b/dist/assets/vendors/bootstrap-icons/dash-square-fill.svg deleted file mode 100644 index 85a95b2cd..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash-square-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash-square.svg b/dist/assets/vendors/bootstrap-icons/dash-square.svg deleted file mode 100644 index 674fdca54..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dash.svg b/dist/assets/vendors/bootstrap-icons/dash.svg deleted file mode 100644 index f3bc753e5..000000000 --- a/dist/assets/vendors/bootstrap-icons/dash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diagram-2-fill.svg b/dist/assets/vendors/bootstrap-icons/diagram-2-fill.svg deleted file mode 100644 index 2ea8a6fb8..000000000 --- a/dist/assets/vendors/bootstrap-icons/diagram-2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diagram-2.svg b/dist/assets/vendors/bootstrap-icons/diagram-2.svg deleted file mode 100644 index ba5fa8a1d..000000000 --- a/dist/assets/vendors/bootstrap-icons/diagram-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diagram-3-fill.svg b/dist/assets/vendors/bootstrap-icons/diagram-3-fill.svg deleted file mode 100644 index 6cc31c04c..000000000 --- a/dist/assets/vendors/bootstrap-icons/diagram-3-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diagram-3.svg b/dist/assets/vendors/bootstrap-icons/diagram-3.svg deleted file mode 100644 index ab3d0140c..000000000 --- a/dist/assets/vendors/bootstrap-icons/diagram-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diamond-fill.svg b/dist/assets/vendors/bootstrap-icons/diamond-fill.svg deleted file mode 100644 index bf0ad1f03..000000000 --- a/dist/assets/vendors/bootstrap-icons/diamond-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diamond-half.svg b/dist/assets/vendors/bootstrap-icons/diamond-half.svg deleted file mode 100644 index 2470c8dd2..000000000 --- a/dist/assets/vendors/bootstrap-icons/diamond-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/diamond.svg b/dist/assets/vendors/bootstrap-icons/diamond.svg deleted file mode 100644 index 4679bbb29..000000000 --- a/dist/assets/vendors/bootstrap-icons/diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-1-fill.svg b/dist/assets/vendors/bootstrap-icons/dice-1-fill.svg deleted file mode 100644 index edecf60de..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-1-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-1.svg b/dist/assets/vendors/bootstrap-icons/dice-1.svg deleted file mode 100644 index f71a8cb9f..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-2-fill.svg b/dist/assets/vendors/bootstrap-icons/dice-2-fill.svg deleted file mode 100644 index d183ac1f9..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-2.svg b/dist/assets/vendors/bootstrap-icons/dice-2.svg deleted file mode 100644 index ab0a563b5..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-3-fill.svg b/dist/assets/vendors/bootstrap-icons/dice-3-fill.svg deleted file mode 100644 index ad1bcd1f7..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-3-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-3.svg b/dist/assets/vendors/bootstrap-icons/dice-3.svg deleted file mode 100644 index b3d39a3a1..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-4-fill.svg b/dist/assets/vendors/bootstrap-icons/dice-4-fill.svg deleted file mode 100644 index f96ca1460..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-4-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-4.svg b/dist/assets/vendors/bootstrap-icons/dice-4.svg deleted file mode 100644 index 21f173472..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-5-fill.svg b/dist/assets/vendors/bootstrap-icons/dice-5-fill.svg deleted file mode 100644 index 284dfec83..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-5-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-5.svg b/dist/assets/vendors/bootstrap-icons/dice-5.svg deleted file mode 100644 index 813cbd8f4..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-6-fill.svg b/dist/assets/vendors/bootstrap-icons/dice-6-fill.svg deleted file mode 100644 index 3132b4bc0..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-6-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dice-6.svg b/dist/assets/vendors/bootstrap-icons/dice-6.svg deleted file mode 100644 index 97131d34e..000000000 --- a/dist/assets/vendors/bootstrap-icons/dice-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/disc-fill.svg b/dist/assets/vendors/bootstrap-icons/disc-fill.svg deleted file mode 100644 index 3a18fb480..000000000 --- a/dist/assets/vendors/bootstrap-icons/disc-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/disc.svg b/dist/assets/vendors/bootstrap-icons/disc.svg deleted file mode 100644 index 1d5ac33e6..000000000 --- a/dist/assets/vendors/bootstrap-icons/disc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/discord.svg b/dist/assets/vendors/bootstrap-icons/discord.svg deleted file mode 100644 index 1ff21c41b..000000000 --- a/dist/assets/vendors/bootstrap-icons/discord.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/display-fill.svg b/dist/assets/vendors/bootstrap-icons/display-fill.svg deleted file mode 100644 index 96124debb..000000000 --- a/dist/assets/vendors/bootstrap-icons/display-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/display.svg b/dist/assets/vendors/bootstrap-icons/display.svg deleted file mode 100644 index 4b84118b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/display.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/distribute-horizontal.svg b/dist/assets/vendors/bootstrap-icons/distribute-horizontal.svg deleted file mode 100644 index 83c4770ab..000000000 --- a/dist/assets/vendors/bootstrap-icons/distribute-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/distribute-vertical.svg b/dist/assets/vendors/bootstrap-icons/distribute-vertical.svg deleted file mode 100644 index 1bcd551ce..000000000 --- a/dist/assets/vendors/bootstrap-icons/distribute-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/door-closed-fill.svg b/dist/assets/vendors/bootstrap-icons/door-closed-fill.svg deleted file mode 100644 index e496f8129..000000000 --- a/dist/assets/vendors/bootstrap-icons/door-closed-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/door-closed.svg b/dist/assets/vendors/bootstrap-icons/door-closed.svg deleted file mode 100644 index 191ac9633..000000000 --- a/dist/assets/vendors/bootstrap-icons/door-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/door-open-fill.svg b/dist/assets/vendors/bootstrap-icons/door-open-fill.svg deleted file mode 100644 index 1ca1e4a87..000000000 --- a/dist/assets/vendors/bootstrap-icons/door-open-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/door-open.svg b/dist/assets/vendors/bootstrap-icons/door-open.svg deleted file mode 100644 index 95f82ba0d..000000000 --- a/dist/assets/vendors/bootstrap-icons/door-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/dot.svg b/dist/assets/vendors/bootstrap-icons/dot.svg deleted file mode 100644 index 30cb9b852..000000000 --- a/dist/assets/vendors/bootstrap-icons/dot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/download.svg b/dist/assets/vendors/bootstrap-icons/download.svg deleted file mode 100644 index 4f4403802..000000000 --- a/dist/assets/vendors/bootstrap-icons/download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/droplet-fill.svg b/dist/assets/vendors/bootstrap-icons/droplet-fill.svg deleted file mode 100644 index 3821d58fd..000000000 --- a/dist/assets/vendors/bootstrap-icons/droplet-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/droplet-half.svg b/dist/assets/vendors/bootstrap-icons/droplet-half.svg deleted file mode 100644 index 85d307238..000000000 --- a/dist/assets/vendors/bootstrap-icons/droplet-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/droplet.svg b/dist/assets/vendors/bootstrap-icons/droplet.svg deleted file mode 100644 index b85ef174b..000000000 --- a/dist/assets/vendors/bootstrap-icons/droplet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/earbuds.svg b/dist/assets/vendors/bootstrap-icons/earbuds.svg deleted file mode 100644 index 1c386a270..000000000 --- a/dist/assets/vendors/bootstrap-icons/earbuds.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/easel-fill.svg b/dist/assets/vendors/bootstrap-icons/easel-fill.svg deleted file mode 100644 index f1309ad5a..000000000 --- a/dist/assets/vendors/bootstrap-icons/easel-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/easel.svg b/dist/assets/vendors/bootstrap-icons/easel.svg deleted file mode 100644 index 1c41a97a8..000000000 --- a/dist/assets/vendors/bootstrap-icons/easel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/egg-fill.svg b/dist/assets/vendors/bootstrap-icons/egg-fill.svg deleted file mode 100644 index 1514cb7b3..000000000 --- a/dist/assets/vendors/bootstrap-icons/egg-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/egg-fried.svg b/dist/assets/vendors/bootstrap-icons/egg-fried.svg deleted file mode 100644 index caf4b4d7c..000000000 --- a/dist/assets/vendors/bootstrap-icons/egg-fried.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/egg.svg b/dist/assets/vendors/bootstrap-icons/egg.svg deleted file mode 100644 index a06795cef..000000000 --- a/dist/assets/vendors/bootstrap-icons/egg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eject-fill.svg b/dist/assets/vendors/bootstrap-icons/eject-fill.svg deleted file mode 100644 index 369a8d60e..000000000 --- a/dist/assets/vendors/bootstrap-icons/eject-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eject.svg b/dist/assets/vendors/bootstrap-icons/eject.svg deleted file mode 100644 index 0260b5d74..000000000 --- a/dist/assets/vendors/bootstrap-icons/eject.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-angry-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-angry-fill.svg deleted file mode 100644 index 2ca367d9d..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-angry-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-angry.svg b/dist/assets/vendors/bootstrap-icons/emoji-angry.svg deleted file mode 100644 index cf364c023..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-angry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-dizzy-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-dizzy-fill.svg deleted file mode 100644 index 189c4ed98..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-dizzy-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-dizzy.svg b/dist/assets/vendors/bootstrap-icons/emoji-dizzy.svg deleted file mode 100644 index ddc568486..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-dizzy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-expressionless-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-expressionless-fill.svg deleted file mode 100644 index 802df2074..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-expressionless-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-expressionless.svg b/dist/assets/vendors/bootstrap-icons/emoji-expressionless.svg deleted file mode 100644 index 6ccd71c99..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-expressionless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-frown-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-frown-fill.svg deleted file mode 100644 index 2562d2c80..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-frown-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-frown.svg b/dist/assets/vendors/bootstrap-icons/emoji-frown.svg deleted file mode 100644 index 24e0814ec..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-frown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-heart-eyes-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-heart-eyes-fill.svg deleted file mode 100644 index cc91552ae..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-heart-eyes-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-heart-eyes.svg b/dist/assets/vendors/bootstrap-icons/emoji-heart-eyes.svg deleted file mode 100644 index 1fd217064..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-heart-eyes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-laughing-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-laughing-fill.svg deleted file mode 100644 index e3aca1a10..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-laughing-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-laughing.svg b/dist/assets/vendors/bootstrap-icons/emoji-laughing.svg deleted file mode 100644 index 9bc2cb52d..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-laughing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-neutral-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-neutral-fill.svg deleted file mode 100644 index 6b047c4f2..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-neutral-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-neutral.svg b/dist/assets/vendors/bootstrap-icons/emoji-neutral.svg deleted file mode 100644 index 12b957c6f..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-neutral.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-smile-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-smile-fill.svg deleted file mode 100644 index c15a4c5f7..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-smile-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down-fill.svg deleted file mode 100644 index c6829332c..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down.svg b/dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down.svg deleted file mode 100644 index 05382176f..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-smile-upside-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-smile.svg b/dist/assets/vendors/bootstrap-icons/emoji-smile.svg deleted file mode 100644 index c1daf4e81..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-smile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-sunglasses-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-sunglasses-fill.svg deleted file mode 100644 index 80a849dd0..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-sunglasses-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-sunglasses.svg b/dist/assets/vendors/bootstrap-icons/emoji-sunglasses.svg deleted file mode 100644 index 702e39b12..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-sunglasses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-wink-fill.svg b/dist/assets/vendors/bootstrap-icons/emoji-wink-fill.svg deleted file mode 100644 index ee6d49f1c..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-wink-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/emoji-wink.svg b/dist/assets/vendors/bootstrap-icons/emoji-wink.svg deleted file mode 100644 index 29b3cf132..000000000 --- a/dist/assets/vendors/bootstrap-icons/emoji-wink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/envelope-fill.svg b/dist/assets/vendors/bootstrap-icons/envelope-fill.svg deleted file mode 100644 index 8e002099d..000000000 --- a/dist/assets/vendors/bootstrap-icons/envelope-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/envelope-open-fill.svg b/dist/assets/vendors/bootstrap-icons/envelope-open-fill.svg deleted file mode 100644 index f470220dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/envelope-open-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/envelope-open.svg b/dist/assets/vendors/bootstrap-icons/envelope-open.svg deleted file mode 100644 index 726c18876..000000000 --- a/dist/assets/vendors/bootstrap-icons/envelope-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/envelope.svg b/dist/assets/vendors/bootstrap-icons/envelope.svg deleted file mode 100644 index 031d8c336..000000000 --- a/dist/assets/vendors/bootstrap-icons/envelope.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eraser-fill.svg b/dist/assets/vendors/bootstrap-icons/eraser-fill.svg deleted file mode 100644 index 10959b3d3..000000000 --- a/dist/assets/vendors/bootstrap-icons/eraser-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eraser.svg b/dist/assets/vendors/bootstrap-icons/eraser.svg deleted file mode 100644 index d516c69b5..000000000 --- a/dist/assets/vendors/bootstrap-icons/eraser.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/exclamation-circle-fill.svg deleted file mode 100644 index 4b1c5ecc0..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-circle.svg b/dist/assets/vendors/bootstrap-icons/exclamation-circle.svg deleted file mode 100644 index 326114e69..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-diamond-fill.svg b/dist/assets/vendors/bootstrap-icons/exclamation-diamond-fill.svg deleted file mode 100644 index ecbea581b..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-diamond-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-diamond.svg b/dist/assets/vendors/bootstrap-icons/exclamation-diamond.svg deleted file mode 100644 index 48b0f4138..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-octagon-fill.svg b/dist/assets/vendors/bootstrap-icons/exclamation-octagon-fill.svg deleted file mode 100644 index 5652db7cb..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-octagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-octagon.svg b/dist/assets/vendors/bootstrap-icons/exclamation-octagon.svg deleted file mode 100644 index b75bf5177..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-square-fill.svg b/dist/assets/vendors/bootstrap-icons/exclamation-square-fill.svg deleted file mode 100644 index 066eb148a..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-square.svg b/dist/assets/vendors/bootstrap-icons/exclamation-square.svg deleted file mode 100644 index 6a506bb17..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-triangle-fill.svg b/dist/assets/vendors/bootstrap-icons/exclamation-triangle-fill.svg deleted file mode 100644 index c329a1559..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-triangle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation-triangle.svg b/dist/assets/vendors/bootstrap-icons/exclamation-triangle.svg deleted file mode 100644 index c73dedddc..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclamation.svg b/dist/assets/vendors/bootstrap-icons/exclamation.svg deleted file mode 100644 index d593c6b7d..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclamation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/exclude.svg b/dist/assets/vendors/bootstrap-icons/exclude.svg deleted file mode 100644 index 3cb98bd16..000000000 --- a/dist/assets/vendors/bootstrap-icons/exclude.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eye-fill.svg b/dist/assets/vendors/bootstrap-icons/eye-fill.svg deleted file mode 100644 index 7d989aa6d..000000000 --- a/dist/assets/vendors/bootstrap-icons/eye-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eye-slash-fill.svg b/dist/assets/vendors/bootstrap-icons/eye-slash-fill.svg deleted file mode 100644 index f2abc04a5..000000000 --- a/dist/assets/vendors/bootstrap-icons/eye-slash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eye-slash.svg b/dist/assets/vendors/bootstrap-icons/eye-slash.svg deleted file mode 100644 index 1dfa025ed..000000000 --- a/dist/assets/vendors/bootstrap-icons/eye-slash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eye.svg b/dist/assets/vendors/bootstrap-icons/eye.svg deleted file mode 100644 index 412ff6928..000000000 --- a/dist/assets/vendors/bootstrap-icons/eye.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eyedropper.svg b/dist/assets/vendors/bootstrap-icons/eyedropper.svg deleted file mode 100644 index b22e089da..000000000 --- a/dist/assets/vendors/bootstrap-icons/eyedropper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/eyeglasses.svg b/dist/assets/vendors/bootstrap-icons/eyeglasses.svg deleted file mode 100644 index 0542cd009..000000000 --- a/dist/assets/vendors/bootstrap-icons/eyeglasses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/facebook.svg b/dist/assets/vendors/bootstrap-icons/facebook.svg deleted file mode 100644 index 6fdd2d4ba..000000000 --- a/dist/assets/vendors/bootstrap-icons/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-arrow-down-fill.svg b/dist/assets/vendors/bootstrap-icons/file-arrow-down-fill.svg deleted file mode 100644 index 40b3f8192..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-arrow-down-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-arrow-down.svg b/dist/assets/vendors/bootstrap-icons/file-arrow-down.svg deleted file mode 100644 index 8f03e3b6f..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-arrow-up-fill.svg b/dist/assets/vendors/bootstrap-icons/file-arrow-up-fill.svg deleted file mode 100644 index fe2189234..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-arrow-up-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-arrow-up.svg b/dist/assets/vendors/bootstrap-icons/file-arrow-up.svg deleted file mode 100644 index d4eed8530..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-bar-graph-fill.svg b/dist/assets/vendors/bootstrap-icons/file-bar-graph-fill.svg deleted file mode 100644 index a0e31d6c9..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-bar-graph-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-bar-graph.svg b/dist/assets/vendors/bootstrap-icons/file-bar-graph.svg deleted file mode 100644 index 519b2157d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-bar-graph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-binary-fill.svg b/dist/assets/vendors/bootstrap-icons/file-binary-fill.svg deleted file mode 100644 index f204e36cf..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-binary-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-binary.svg b/dist/assets/vendors/bootstrap-icons/file-binary.svg deleted file mode 100644 index 2f1ad62c7..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-binary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-break-fill.svg b/dist/assets/vendors/bootstrap-icons/file-break-fill.svg deleted file mode 100644 index 5ba502d7d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-break-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-break.svg b/dist/assets/vendors/bootstrap-icons/file-break.svg deleted file mode 100644 index 01f88718c..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-break.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-check-fill.svg b/dist/assets/vendors/bootstrap-icons/file-check-fill.svg deleted file mode 100644 index 8d97caf97..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-check.svg b/dist/assets/vendors/bootstrap-icons/file-check.svg deleted file mode 100644 index 396241fe2..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-code-fill.svg b/dist/assets/vendors/bootstrap-icons/file-code-fill.svg deleted file mode 100644 index c720dbb70..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-code-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-code.svg b/dist/assets/vendors/bootstrap-icons/file-code.svg deleted file mode 100644 index 82e922adc..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-diff-fill.svg b/dist/assets/vendors/bootstrap-icons/file-diff-fill.svg deleted file mode 100644 index 9d5770689..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-diff-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-diff.svg b/dist/assets/vendors/bootstrap-icons/file-diff.svg deleted file mode 100644 index 6de09facc..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-diff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down-fill.svg deleted file mode 100644 index 300d97a48..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down.svg deleted file mode 100644 index 81cc43ab6..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-down.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up-fill.svg deleted file mode 100644 index dea6715ad..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up.svg deleted file mode 100644 index 33f4ee50c..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph-fill.svg deleted file mode 100644 index 668156346..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph.svg deleted file mode 100644 index 8aecc44f9..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-bar-graph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-binary-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-binary-fill.svg deleted file mode 100644 index d7d3d5492..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-binary-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-binary.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-binary.svg deleted file mode 100644 index 087fc6237..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-binary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-break-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-break-fill.svg deleted file mode 100644 index 0264f527d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-break-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-break.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-break.svg deleted file mode 100644 index e98c6470a..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-break.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-check-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-check-fill.svg deleted file mode 100644 index d21feda20..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-check.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-check.svg deleted file mode 100644 index 52f3192a2..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-code-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-code-fill.svg deleted file mode 100644 index d8fcc0017..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-code-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-code.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-code.svg deleted file mode 100644 index ac8049f4a..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-diff-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-diff-fill.svg deleted file mode 100644 index 15eed03b3..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-diff-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-diff.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-diff.svg deleted file mode 100644 index 69bbbf012..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-diff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-easel-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-easel-fill.svg deleted file mode 100644 index 955909472..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-easel-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-easel.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-easel.svg deleted file mode 100644 index ee043d57a..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-easel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-excel-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-excel-fill.svg deleted file mode 100644 index 363ea3481..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-excel-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-excel.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-excel.svg deleted file mode 100644 index 32cb1b79f..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-fill.svg deleted file mode 100644 index 104cb3522..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-font-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-font-fill.svg deleted file mode 100644 index d79f89363..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-font-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-font.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-font.svg deleted file mode 100644 index 152e95a32..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-font.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-image-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-image-fill.svg deleted file mode 100644 index f2d84080d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-image-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-image.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-image.svg deleted file mode 100644 index 762adb18e..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-lock-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-lock-fill.svg deleted file mode 100644 index e84f6966b..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-lock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-lock.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-lock.svg deleted file mode 100644 index a0901ae5b..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-lock2-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-lock2-fill.svg deleted file mode 100644 index badb011f7..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-lock2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-lock2.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-lock2.svg deleted file mode 100644 index c9cc8d185..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-lock2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-medical-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-medical-fill.svg deleted file mode 100644 index 0ca921e3d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-medical-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-medical.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-medical.svg deleted file mode 100644 index 22509d9b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-medical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-minus-fill.svg deleted file mode 100644 index 25e708ff1..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-minus-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-minus.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-minus.svg deleted file mode 100644 index 6c4ad3fea..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-music-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-music-fill.svg deleted file mode 100644 index f93e297dd..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-music-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-music.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-music.svg deleted file mode 100644 index deb8f478b..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-person-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-person-fill.svg deleted file mode 100644 index a4612aed4..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-person-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-person.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-person.svg deleted file mode 100644 index 2cbec984f..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-person.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-play-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-play-fill.svg deleted file mode 100644 index 523cb5237..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-play-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-play.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-play.svg deleted file mode 100644 index e0fcd2331..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-plus-fill.svg deleted file mode 100644 index 6cead3a48..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-plus-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-plus.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-plus.svg deleted file mode 100644 index 408ea3648..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-post-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-post-fill.svg deleted file mode 100644 index 0aa25f07b..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-post-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-post.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-post.svg deleted file mode 100644 index b5ddb5be7..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-ppt-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-ppt-fill.svg deleted file mode 100644 index 56d44d9df..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-ppt-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-ppt.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-ppt.svg deleted file mode 100644 index b8fdf3c3e..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-ppt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-richtext-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-richtext-fill.svg deleted file mode 100644 index d0fe3f45a..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-richtext-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-richtext.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-richtext.svg deleted file mode 100644 index 86d23d2f2..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-richtext.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-ruled-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-ruled-fill.svg deleted file mode 100644 index 416b9a077..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-ruled-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-ruled.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-ruled.svg deleted file mode 100644 index 338069cba..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-ruled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-slides-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-slides-fill.svg deleted file mode 100644 index 613a9d700..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-slides-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-slides.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-slides.svg deleted file mode 100644 index 525961827..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-slides.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet-fill.svg deleted file mode 100644 index cb4f1a497..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet.svg deleted file mode 100644 index a7b662340..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-spreadsheet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-text-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-text-fill.svg deleted file mode 100644 index b32991979..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-text-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-text.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-text.svg deleted file mode 100644 index 0d60c7957..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-text.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-word-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-word-fill.svg deleted file mode 100644 index 03fa7d6c0..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-word-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-word.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-word.svg deleted file mode 100644 index eaa4b492b..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-word.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-x-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-x-fill.svg deleted file mode 100644 index 68992626b..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-x.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-x.svg deleted file mode 100644 index 4ebdf283c..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-zip-fill.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-zip-fill.svg deleted file mode 100644 index e2aac3e72..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-zip-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark-zip.svg b/dist/assets/vendors/bootstrap-icons/file-earmark-zip.svg deleted file mode 100644 index 0cdc21bcf..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark-zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-earmark.svg b/dist/assets/vendors/bootstrap-icons/file-earmark.svg deleted file mode 100644 index ebdb52801..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-earmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-easel-fill.svg b/dist/assets/vendors/bootstrap-icons/file-easel-fill.svg deleted file mode 100644 index 2e28212f0..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-easel-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-easel.svg b/dist/assets/vendors/bootstrap-icons/file-easel.svg deleted file mode 100644 index 5c006ec82..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-easel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-excel-fill.svg b/dist/assets/vendors/bootstrap-icons/file-excel-fill.svg deleted file mode 100644 index 17154d340..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-excel-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-excel.svg b/dist/assets/vendors/bootstrap-icons/file-excel.svg deleted file mode 100644 index c6f29c92f..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-fill.svg b/dist/assets/vendors/bootstrap-icons/file-fill.svg deleted file mode 100644 index fa4bfd247..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-font-fill.svg b/dist/assets/vendors/bootstrap-icons/file-font-fill.svg deleted file mode 100644 index c879efa40..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-font-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-font.svg b/dist/assets/vendors/bootstrap-icons/file-font.svg deleted file mode 100644 index 9d0d58c6a..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-font.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-image-fill.svg b/dist/assets/vendors/bootstrap-icons/file-image-fill.svg deleted file mode 100644 index 885427881..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-image-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-image.svg b/dist/assets/vendors/bootstrap-icons/file-image.svg deleted file mode 100644 index 66f59c9ef..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-lock-fill.svg b/dist/assets/vendors/bootstrap-icons/file-lock-fill.svg deleted file mode 100644 index 660d353ef..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-lock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-lock.svg b/dist/assets/vendors/bootstrap-icons/file-lock.svg deleted file mode 100644 index 5fc585c72..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-lock2-fill.svg b/dist/assets/vendors/bootstrap-icons/file-lock2-fill.svg deleted file mode 100644 index e5cee23a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-lock2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-lock2.svg b/dist/assets/vendors/bootstrap-icons/file-lock2.svg deleted file mode 100644 index 243d30e28..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-lock2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-medical-fill.svg b/dist/assets/vendors/bootstrap-icons/file-medical-fill.svg deleted file mode 100644 index 7634129bb..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-medical-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-medical.svg b/dist/assets/vendors/bootstrap-icons/file-medical.svg deleted file mode 100644 index 1ab795176..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-medical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/file-minus-fill.svg deleted file mode 100644 index f73778d7d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-minus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-minus.svg b/dist/assets/vendors/bootstrap-icons/file-minus.svg deleted file mode 100644 index 67a45381d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-minus.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-music-fill.svg b/dist/assets/vendors/bootstrap-icons/file-music-fill.svg deleted file mode 100644 index f709196a7..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-music-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-music.svg b/dist/assets/vendors/bootstrap-icons/file-music.svg deleted file mode 100644 index b920e0c60..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-person-fill.svg b/dist/assets/vendors/bootstrap-icons/file-person-fill.svg deleted file mode 100644 index d7e05e401..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-person-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-person.svg b/dist/assets/vendors/bootstrap-icons/file-person.svg deleted file mode 100644 index 5426a588e..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-person.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-play-fill.svg b/dist/assets/vendors/bootstrap-icons/file-play-fill.svg deleted file mode 100644 index ebe5b96aa..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-play-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-play.svg b/dist/assets/vendors/bootstrap-icons/file-play.svg deleted file mode 100644 index 24bc2760a..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/file-plus-fill.svg deleted file mode 100644 index 1730c276e..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-plus-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-plus.svg b/dist/assets/vendors/bootstrap-icons/file-plus.svg deleted file mode 100644 index e4b698511..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-post-fill.svg b/dist/assets/vendors/bootstrap-icons/file-post-fill.svg deleted file mode 100644 index d7335d990..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-post-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-post.svg b/dist/assets/vendors/bootstrap-icons/file-post.svg deleted file mode 100644 index 4cb036efa..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-ppt-fill.svg b/dist/assets/vendors/bootstrap-icons/file-ppt-fill.svg deleted file mode 100644 index 75a6a9894..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-ppt-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-ppt.svg b/dist/assets/vendors/bootstrap-icons/file-ppt.svg deleted file mode 100644 index 5aceff6e7..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-ppt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-richtext-fill.svg b/dist/assets/vendors/bootstrap-icons/file-richtext-fill.svg deleted file mode 100644 index 1a2c68111..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-richtext-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-richtext.svg b/dist/assets/vendors/bootstrap-icons/file-richtext.svg deleted file mode 100644 index 3be9b6710..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-richtext.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-ruled-fill.svg b/dist/assets/vendors/bootstrap-icons/file-ruled-fill.svg deleted file mode 100644 index 350a00786..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-ruled-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-ruled.svg b/dist/assets/vendors/bootstrap-icons/file-ruled.svg deleted file mode 100644 index 0f6e292fd..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-ruled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-slides-fill.svg b/dist/assets/vendors/bootstrap-icons/file-slides-fill.svg deleted file mode 100644 index d3c86fc61..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-slides-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-slides.svg b/dist/assets/vendors/bootstrap-icons/file-slides.svg deleted file mode 100644 index 731ef4c42..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-slides.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-spreadsheet-fill.svg b/dist/assets/vendors/bootstrap-icons/file-spreadsheet-fill.svg deleted file mode 100644 index 4d4170c10..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-spreadsheet-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-spreadsheet.svg b/dist/assets/vendors/bootstrap-icons/file-spreadsheet.svg deleted file mode 100644 index facc18578..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-spreadsheet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-text-fill.svg b/dist/assets/vendors/bootstrap-icons/file-text-fill.svg deleted file mode 100644 index b89e7a960..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-text-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-text.svg b/dist/assets/vendors/bootstrap-icons/file-text.svg deleted file mode 100644 index 326479a59..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-word-fill.svg b/dist/assets/vendors/bootstrap-icons/file-word-fill.svg deleted file mode 100644 index afe2e9ecc..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-word-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-word.svg b/dist/assets/vendors/bootstrap-icons/file-word.svg deleted file mode 100644 index 265c80d94..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-word.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-x-fill.svg b/dist/assets/vendors/bootstrap-icons/file-x-fill.svg deleted file mode 100644 index c6b23985d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-x.svg b/dist/assets/vendors/bootstrap-icons/file-x.svg deleted file mode 100644 index 368999a0d..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-zip-fill.svg b/dist/assets/vendors/bootstrap-icons/file-zip-fill.svg deleted file mode 100644 index 7720371fa..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-zip-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file-zip.svg b/dist/assets/vendors/bootstrap-icons/file-zip.svg deleted file mode 100644 index 541ab6d05..000000000 --- a/dist/assets/vendors/bootstrap-icons/file-zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/file.svg b/dist/assets/vendors/bootstrap-icons/file.svg deleted file mode 100644 index 000208166..000000000 --- a/dist/assets/vendors/bootstrap-icons/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/files-alt.svg b/dist/assets/vendors/bootstrap-icons/files-alt.svg deleted file mode 100644 index c5c78c3e1..000000000 --- a/dist/assets/vendors/bootstrap-icons/files-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/files.svg b/dist/assets/vendors/bootstrap-icons/files.svg deleted file mode 100644 index 0b04ed487..000000000 --- a/dist/assets/vendors/bootstrap-icons/files.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/film.svg b/dist/assets/vendors/bootstrap-icons/film.svg deleted file mode 100644 index bcbcf5ded..000000000 --- a/dist/assets/vendors/bootstrap-icons/film.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/filter-circle-fill.svg deleted file mode 100644 index 65d35bbd1..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter-circle.svg b/dist/assets/vendors/bootstrap-icons/filter-circle.svg deleted file mode 100644 index 6f3b0422c..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter-left.svg b/dist/assets/vendors/bootstrap-icons/filter-left.svg deleted file mode 100644 index e484a45ce..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter-right.svg b/dist/assets/vendors/bootstrap-icons/filter-right.svg deleted file mode 100644 index a448df96e..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter-square-fill.svg b/dist/assets/vendors/bootstrap-icons/filter-square-fill.svg deleted file mode 100644 index 7f28cffcb..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter-square.svg b/dist/assets/vendors/bootstrap-icons/filter-square.svg deleted file mode 100644 index a0f06e923..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/filter.svg b/dist/assets/vendors/bootstrap-icons/filter.svg deleted file mode 100644 index f2bbb87f0..000000000 --- a/dist/assets/vendors/bootstrap-icons/filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/flag-fill.svg b/dist/assets/vendors/bootstrap-icons/flag-fill.svg deleted file mode 100644 index 215ea99b4..000000000 --- a/dist/assets/vendors/bootstrap-icons/flag-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/flag.svg b/dist/assets/vendors/bootstrap-icons/flag.svg deleted file mode 100644 index 4b1f77417..000000000 --- a/dist/assets/vendors/bootstrap-icons/flag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/flower1.svg b/dist/assets/vendors/bootstrap-icons/flower1.svg deleted file mode 100644 index 10dc524dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/flower1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/flower2.svg b/dist/assets/vendors/bootstrap-icons/flower2.svg deleted file mode 100644 index 96e46eff6..000000000 --- a/dist/assets/vendors/bootstrap-icons/flower2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/flower3.svg b/dist/assets/vendors/bootstrap-icons/flower3.svg deleted file mode 100644 index 00c49152e..000000000 --- a/dist/assets/vendors/bootstrap-icons/flower3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-check.svg b/dist/assets/vendors/bootstrap-icons/folder-check.svg deleted file mode 100644 index 311b2614a..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-fill.svg b/dist/assets/vendors/bootstrap-icons/folder-fill.svg deleted file mode 100644 index 72b5c3252..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-minus.svg b/dist/assets/vendors/bootstrap-icons/folder-minus.svg deleted file mode 100644 index 45045c1ec..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-plus.svg b/dist/assets/vendors/bootstrap-icons/folder-plus.svg deleted file mode 100644 index 77a683270..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-symlink-fill.svg b/dist/assets/vendors/bootstrap-icons/folder-symlink-fill.svg deleted file mode 100644 index 5caebaabe..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-symlink-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-symlink.svg b/dist/assets/vendors/bootstrap-icons/folder-symlink.svg deleted file mode 100644 index bda5d01de..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-symlink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder-x.svg b/dist/assets/vendors/bootstrap-icons/folder-x.svg deleted file mode 100644 index aba5a8b9e..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder.svg b/dist/assets/vendors/bootstrap-icons/folder.svg deleted file mode 100644 index 7ed8e3110..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder2-open.svg b/dist/assets/vendors/bootstrap-icons/folder2-open.svg deleted file mode 100644 index 333c93664..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder2-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/folder2.svg b/dist/assets/vendors/bootstrap-icons/folder2.svg deleted file mode 100644 index aa4066577..000000000 --- a/dist/assets/vendors/bootstrap-icons/folder2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/fonts.svg b/dist/assets/vendors/bootstrap-icons/fonts.svg deleted file mode 100644 index c4567ec05..000000000 --- a/dist/assets/vendors/bootstrap-icons/fonts.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/fonts/bootstrap-icons.woff b/dist/assets/vendors/bootstrap-icons/fonts/bootstrap-icons.woff deleted file mode 100644 index 73c62705ea2f4efcac6e724d1b8f163ca23cc977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106812 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�T;zNAO=kiErUT6SFK$~vc6|kBkv)aoAZjc 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 OW7R)z^B(sA0002Jb}iKa diff --git a/dist/assets/vendors/bootstrap-icons/forward-fill.svg b/dist/assets/vendors/bootstrap-icons/forward-fill.svg deleted file mode 100644 index 10303383a..000000000 --- a/dist/assets/vendors/bootstrap-icons/forward-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/forward.svg b/dist/assets/vendors/bootstrap-icons/forward.svg deleted file mode 100644 index aa9a3da15..000000000 --- a/dist/assets/vendors/bootstrap-icons/forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/front.svg b/dist/assets/vendors/bootstrap-icons/front.svg deleted file mode 100644 index b909a42fb..000000000 --- a/dist/assets/vendors/bootstrap-icons/front.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/fullscreen-exit.svg b/dist/assets/vendors/bootstrap-icons/fullscreen-exit.svg deleted file mode 100644 index 014fa00ad..000000000 --- a/dist/assets/vendors/bootstrap-icons/fullscreen-exit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/fullscreen.svg b/dist/assets/vendors/bootstrap-icons/fullscreen.svg deleted file mode 100644 index ee98986c0..000000000 --- a/dist/assets/vendors/bootstrap-icons/fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/funnel-fill.svg b/dist/assets/vendors/bootstrap-icons/funnel-fill.svg deleted file mode 100644 index ab20db5a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/funnel-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/funnel.svg b/dist/assets/vendors/bootstrap-icons/funnel.svg deleted file mode 100644 index 7e9125148..000000000 --- a/dist/assets/vendors/bootstrap-icons/funnel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gear-fill.svg b/dist/assets/vendors/bootstrap-icons/gear-fill.svg deleted file mode 100644 index 2aa36a1d5..000000000 --- a/dist/assets/vendors/bootstrap-icons/gear-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gear-wide-connected.svg b/dist/assets/vendors/bootstrap-icons/gear-wide-connected.svg deleted file mode 100644 index 5fb2fcd3b..000000000 --- a/dist/assets/vendors/bootstrap-icons/gear-wide-connected.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gear-wide.svg b/dist/assets/vendors/bootstrap-icons/gear-wide.svg deleted file mode 100644 index 83194ce45..000000000 --- a/dist/assets/vendors/bootstrap-icons/gear-wide.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gear.svg b/dist/assets/vendors/bootstrap-icons/gear.svg deleted file mode 100644 index 18cb8db0a..000000000 --- a/dist/assets/vendors/bootstrap-icons/gear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gem.svg b/dist/assets/vendors/bootstrap-icons/gem.svg deleted file mode 100644 index 62c79f6b8..000000000 --- a/dist/assets/vendors/bootstrap-icons/gem.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/geo-alt-fill.svg b/dist/assets/vendors/bootstrap-icons/geo-alt-fill.svg deleted file mode 100644 index 050d753fb..000000000 --- a/dist/assets/vendors/bootstrap-icons/geo-alt-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/geo-alt.svg b/dist/assets/vendors/bootstrap-icons/geo-alt.svg deleted file mode 100644 index 17799cb59..000000000 --- a/dist/assets/vendors/bootstrap-icons/geo-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/geo-fill.svg b/dist/assets/vendors/bootstrap-icons/geo-fill.svg deleted file mode 100644 index e11595001..000000000 --- a/dist/assets/vendors/bootstrap-icons/geo-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/geo.svg b/dist/assets/vendors/bootstrap-icons/geo.svg deleted file mode 100644 index e392331cb..000000000 --- a/dist/assets/vendors/bootstrap-icons/geo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gift-fill.svg b/dist/assets/vendors/bootstrap-icons/gift-fill.svg deleted file mode 100644 index 868f6004a..000000000 --- a/dist/assets/vendors/bootstrap-icons/gift-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/gift.svg b/dist/assets/vendors/bootstrap-icons/gift.svg deleted file mode 100644 index 10b54669f..000000000 --- a/dist/assets/vendors/bootstrap-icons/gift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/github.svg b/dist/assets/vendors/bootstrap-icons/github.svg deleted file mode 100644 index 0749e1914..000000000 --- a/dist/assets/vendors/bootstrap-icons/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/globe.svg b/dist/assets/vendors/bootstrap-icons/globe.svg deleted file mode 100644 index 98496ab45..000000000 --- a/dist/assets/vendors/bootstrap-icons/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/globe2.svg b/dist/assets/vendors/bootstrap-icons/globe2.svg deleted file mode 100644 index 24121582c..000000000 --- a/dist/assets/vendors/bootstrap-icons/globe2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/google.svg b/dist/assets/vendors/bootstrap-icons/google.svg deleted file mode 100644 index c369b3558..000000000 --- a/dist/assets/vendors/bootstrap-icons/google.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/graph-down.svg b/dist/assets/vendors/bootstrap-icons/graph-down.svg deleted file mode 100644 index 40c8b0757..000000000 --- a/dist/assets/vendors/bootstrap-icons/graph-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/graph-up.svg b/dist/assets/vendors/bootstrap-icons/graph-up.svg deleted file mode 100644 index d38d17b6e..000000000 --- a/dist/assets/vendors/bootstrap-icons/graph-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-1x2-fill.svg b/dist/assets/vendors/bootstrap-icons/grid-1x2-fill.svg deleted file mode 100644 index 61f527f9a..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-1x2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-1x2.svg b/dist/assets/vendors/bootstrap-icons/grid-1x2.svg deleted file mode 100644 index 22e4bdc6c..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-1x2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-3x2-gap-fill.svg b/dist/assets/vendors/bootstrap-icons/grid-3x2-gap-fill.svg deleted file mode 100644 index b5be7c26c..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-3x2-gap-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-3x2-gap.svg b/dist/assets/vendors/bootstrap-icons/grid-3x2-gap.svg deleted file mode 100644 index b77884641..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-3x2-gap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-3x2.svg b/dist/assets/vendors/bootstrap-icons/grid-3x2.svg deleted file mode 100644 index d95bfe468..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-3x2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-3x3-gap-fill.svg b/dist/assets/vendors/bootstrap-icons/grid-3x3-gap-fill.svg deleted file mode 100644 index 8787a8577..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-3x3-gap-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-3x3-gap.svg b/dist/assets/vendors/bootstrap-icons/grid-3x3-gap.svg deleted file mode 100644 index b2c35808f..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-3x3-gap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-3x3.svg b/dist/assets/vendors/bootstrap-icons/grid-3x3.svg deleted file mode 100644 index 3446156fe..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-3x3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid-fill.svg b/dist/assets/vendors/bootstrap-icons/grid-fill.svg deleted file mode 100644 index 6061754ba..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grid.svg b/dist/assets/vendors/bootstrap-icons/grid.svg deleted file mode 100644 index 12cdc0407..000000000 --- a/dist/assets/vendors/bootstrap-icons/grid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grip-horizontal.svg b/dist/assets/vendors/bootstrap-icons/grip-horizontal.svg deleted file mode 100644 index 1a85ef290..000000000 --- a/dist/assets/vendors/bootstrap-icons/grip-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/grip-vertical.svg b/dist/assets/vendors/bootstrap-icons/grip-vertical.svg deleted file mode 100644 index a520049ab..000000000 --- a/dist/assets/vendors/bootstrap-icons/grip-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hammer.svg b/dist/assets/vendors/bootstrap-icons/hammer.svg deleted file mode 100644 index e916e723e..000000000 --- a/dist/assets/vendors/bootstrap-icons/hammer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-index-fill.svg b/dist/assets/vendors/bootstrap-icons/hand-index-fill.svg deleted file mode 100644 index 99236df46..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-index-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-index-thumb-fill.svg b/dist/assets/vendors/bootstrap-icons/hand-index-thumb-fill.svg deleted file mode 100644 index 0f8f47b12..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-index-thumb-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-index-thumb.svg b/dist/assets/vendors/bootstrap-icons/hand-index-thumb.svg deleted file mode 100644 index 2ed277325..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-index-thumb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-index.svg b/dist/assets/vendors/bootstrap-icons/hand-index.svg deleted file mode 100644 index 5b1a0334d..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-index.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-thumbs-down-fill.svg b/dist/assets/vendors/bootstrap-icons/hand-thumbs-down-fill.svg deleted file mode 100644 index a8e9b3f19..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-thumbs-down-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-thumbs-down.svg b/dist/assets/vendors/bootstrap-icons/hand-thumbs-down.svg deleted file mode 100644 index 09aa0c726..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-thumbs-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-thumbs-up-fill.svg b/dist/assets/vendors/bootstrap-icons/hand-thumbs-up-fill.svg deleted file mode 100644 index d706c4f5f..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-thumbs-up-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hand-thumbs-up.svg b/dist/assets/vendors/bootstrap-icons/hand-thumbs-up.svg deleted file mode 100644 index 840c7bac5..000000000 --- a/dist/assets/vendors/bootstrap-icons/hand-thumbs-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/handbag-fill.svg b/dist/assets/vendors/bootstrap-icons/handbag-fill.svg deleted file mode 100644 index d47282b42..000000000 --- a/dist/assets/vendors/bootstrap-icons/handbag-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/handbag.svg b/dist/assets/vendors/bootstrap-icons/handbag.svg deleted file mode 100644 index c755996c9..000000000 --- a/dist/assets/vendors/bootstrap-icons/handbag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hash.svg b/dist/assets/vendors/bootstrap-icons/hash.svg deleted file mode 100644 index 2f08c013e..000000000 --- a/dist/assets/vendors/bootstrap-icons/hash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-fill.svg b/dist/assets/vendors/bootstrap-icons/hdd-fill.svg deleted file mode 100644 index 200b67470..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-network-fill.svg b/dist/assets/vendors/bootstrap-icons/hdd-network-fill.svg deleted file mode 100644 index ac6b85d47..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-network-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-network.svg b/dist/assets/vendors/bootstrap-icons/hdd-network.svg deleted file mode 100644 index 21722c462..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-rack-fill.svg b/dist/assets/vendors/bootstrap-icons/hdd-rack-fill.svg deleted file mode 100644 index 0a4ca20c1..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-rack-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-rack.svg b/dist/assets/vendors/bootstrap-icons/hdd-rack.svg deleted file mode 100644 index 5fc9f297a..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-rack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-stack-fill.svg b/dist/assets/vendors/bootstrap-icons/hdd-stack-fill.svg deleted file mode 100644 index 197659455..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-stack-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd-stack.svg b/dist/assets/vendors/bootstrap-icons/hdd-stack.svg deleted file mode 100644 index 7d48a2f12..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd-stack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hdd.svg b/dist/assets/vendors/bootstrap-icons/hdd.svg deleted file mode 100644 index e223ab90a..000000000 --- a/dist/assets/vendors/bootstrap-icons/hdd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/headphones.svg b/dist/assets/vendors/bootstrap-icons/headphones.svg deleted file mode 100644 index 9a08fc5ae..000000000 --- a/dist/assets/vendors/bootstrap-icons/headphones.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/headset.svg b/dist/assets/vendors/bootstrap-icons/headset.svg deleted file mode 100644 index 638538a78..000000000 --- a/dist/assets/vendors/bootstrap-icons/headset.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/heart-fill.svg b/dist/assets/vendors/bootstrap-icons/heart-fill.svg deleted file mode 100644 index 2d6703f13..000000000 --- a/dist/assets/vendors/bootstrap-icons/heart-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/heart-half.svg b/dist/assets/vendors/bootstrap-icons/heart-half.svg deleted file mode 100644 index 9fca1c9bf..000000000 --- a/dist/assets/vendors/bootstrap-icons/heart-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/heart.svg b/dist/assets/vendors/bootstrap-icons/heart.svg deleted file mode 100644 index 5535b2667..000000000 --- a/dist/assets/vendors/bootstrap-icons/heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/heptagon-fill.svg b/dist/assets/vendors/bootstrap-icons/heptagon-fill.svg deleted file mode 100644 index e3a32b7ae..000000000 --- a/dist/assets/vendors/bootstrap-icons/heptagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/heptagon-half.svg b/dist/assets/vendors/bootstrap-icons/heptagon-half.svg deleted file mode 100644 index 8ca6eb9b6..000000000 --- a/dist/assets/vendors/bootstrap-icons/heptagon-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/heptagon.svg b/dist/assets/vendors/bootstrap-icons/heptagon.svg deleted file mode 100644 index 396949432..000000000 --- a/dist/assets/vendors/bootstrap-icons/heptagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hexagon-fill.svg b/dist/assets/vendors/bootstrap-icons/hexagon-fill.svg deleted file mode 100644 index 785374f14..000000000 --- a/dist/assets/vendors/bootstrap-icons/hexagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hexagon-half.svg b/dist/assets/vendors/bootstrap-icons/hexagon-half.svg deleted file mode 100644 index dc0f2b201..000000000 --- a/dist/assets/vendors/bootstrap-icons/hexagon-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hexagon.svg b/dist/assets/vendors/bootstrap-icons/hexagon.svg deleted file mode 100644 index 0db36a2e7..000000000 --- a/dist/assets/vendors/bootstrap-icons/hexagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hourglass-bottom.svg b/dist/assets/vendors/bootstrap-icons/hourglass-bottom.svg deleted file mode 100644 index d576c2929..000000000 --- a/dist/assets/vendors/bootstrap-icons/hourglass-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hourglass-split.svg b/dist/assets/vendors/bootstrap-icons/hourglass-split.svg deleted file mode 100644 index 908cade2c..000000000 --- a/dist/assets/vendors/bootstrap-icons/hourglass-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hourglass-top.svg b/dist/assets/vendors/bootstrap-icons/hourglass-top.svg deleted file mode 100644 index dee1566b5..000000000 --- a/dist/assets/vendors/bootstrap-icons/hourglass-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hourglass.svg b/dist/assets/vendors/bootstrap-icons/hourglass.svg deleted file mode 100644 index 89ee59ad1..000000000 --- a/dist/assets/vendors/bootstrap-icons/hourglass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/house-door-fill.svg b/dist/assets/vendors/bootstrap-icons/house-door-fill.svg deleted file mode 100644 index ca9125d86..000000000 --- a/dist/assets/vendors/bootstrap-icons/house-door-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/house-door.svg b/dist/assets/vendors/bootstrap-icons/house-door.svg deleted file mode 100644 index a1b590d61..000000000 --- a/dist/assets/vendors/bootstrap-icons/house-door.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/house-fill.svg b/dist/assets/vendors/bootstrap-icons/house-fill.svg deleted file mode 100644 index 51bb60218..000000000 --- a/dist/assets/vendors/bootstrap-icons/house-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/house.svg b/dist/assets/vendors/bootstrap-icons/house.svg deleted file mode 100644 index 6324b67ad..000000000 --- a/dist/assets/vendors/bootstrap-icons/house.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/hr.svg b/dist/assets/vendors/bootstrap-icons/hr.svg deleted file mode 100644 index 5e9122629..000000000 --- a/dist/assets/vendors/bootstrap-icons/hr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/image-alt.svg b/dist/assets/vendors/bootstrap-icons/image-alt.svg deleted file mode 100644 index 9db11cf54..000000000 --- a/dist/assets/vendors/bootstrap-icons/image-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/image-fill.svg b/dist/assets/vendors/bootstrap-icons/image-fill.svg deleted file mode 100644 index b61bf99d3..000000000 --- a/dist/assets/vendors/bootstrap-icons/image-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/image.svg b/dist/assets/vendors/bootstrap-icons/image.svg deleted file mode 100644 index e21fb44db..000000000 --- a/dist/assets/vendors/bootstrap-icons/image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/images.svg b/dist/assets/vendors/bootstrap-icons/images.svg deleted file mode 100644 index 108563185..000000000 --- a/dist/assets/vendors/bootstrap-icons/images.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/inbox-fill.svg b/dist/assets/vendors/bootstrap-icons/inbox-fill.svg deleted file mode 100644 index bf5c8c912..000000000 --- a/dist/assets/vendors/bootstrap-icons/inbox-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/inbox.svg b/dist/assets/vendors/bootstrap-icons/inbox.svg deleted file mode 100644 index 7ba7b21cc..000000000 --- a/dist/assets/vendors/bootstrap-icons/inbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/inboxes-fill.svg b/dist/assets/vendors/bootstrap-icons/inboxes-fill.svg deleted file mode 100644 index c00e5c2c5..000000000 --- a/dist/assets/vendors/bootstrap-icons/inboxes-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/inboxes.svg b/dist/assets/vendors/bootstrap-icons/inboxes.svg deleted file mode 100644 index 98b01ab03..000000000 --- a/dist/assets/vendors/bootstrap-icons/inboxes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/index.html b/dist/assets/vendors/bootstrap-icons/index.html deleted file mode 100644 index 5ad00d3c6..000000000 --- a/dist/assets/vendors/bootstrap-icons/index.html +++ /dev/null @@ -1,5114 +0,0 @@ - - - - - - bootstrap-icons - - - - - - - - - -

bootstrap-icons

- -
-
- -
alarm-fill
-
-
- -
alarm
-
-
- -
align-bottom
-
-
- -
align-center
-
-
- -
align-end
-
-
- -
align-middle
-
-
- -
align-start
-
-
- -
align-top
-
-
- -
alt
-
-
- -
app-indicator
-
-
- -
app
-
-
- -
archive-fill
-
-
- -
archive
-
-
- -
arrow-90deg-down
-
-
- -
arrow-90deg-left
-
-
- -
arrow-90deg-right
-
-
- -
arrow-90deg-up
-
-
- -
arrow-bar-down
-
-
- -
arrow-bar-left
-
-
- -
arrow-bar-right
-
-
- -
arrow-bar-up
-
-
- -
arrow-clockwise
-
-
- -
arrow-counterclockwise
-
-
- -
arrow-down-circle-fill
-
-
- -
arrow-down-circle
-
-
- -
arrow-down-left-circle-fill
-
-
- -
arrow-down-left-circle
-
-
- -
arrow-down-left-square-fill
-
-
- -
arrow-down-left-square
-
-
- -
arrow-down-left
-
-
- -
arrow-down-right-circle-fill
-
-
- -
arrow-down-right-circle
-
-
- -
arrow-down-right-square-fill
-
-
- -
arrow-down-right-square
-
-
- -
arrow-down-right
-
-
- -
arrow-down-short
-
-
- -
arrow-down-square-fill
-
-
- -
arrow-down-square
-
-
- -
arrow-down-up
-
-
- -
arrow-down
-
-
- -
arrow-left-circle-fill
-
-
- -
arrow-left-circle
-
-
- -
arrow-left-right
-
-
- -
arrow-left-short
-
-
- -
arrow-left-square-fill
-
-
- -
arrow-left-square
-
-
- -
arrow-left
-
-
- -
arrow-repeat
-
-
- -
arrow-return-left
-
-
- -
arrow-return-right
-
-
- -
arrow-right-circle-fill
-
-
- -
arrow-right-circle
-
-
- -
arrow-right-short
-
-
- -
arrow-right-square-fill
-
-
- -
arrow-right-square
-
-
- -
arrow-right
-
-
- -
arrow-up-circle-fill
-
-
- -
arrow-up-circle
-
-
- -
arrow-up-left-circle-fill
-
-
- -
arrow-up-left-circle
-
-
- -
arrow-up-left-square-fill
-
-
- -
arrow-up-left-square
-
-
- -
arrow-up-left
-
-
- -
arrow-up-right-circle-fill
-
-
- -
arrow-up-right-circle
-
-
- -
arrow-up-right-square-fill
-
-
- -
arrow-up-right-square
-
-
- -
arrow-up-right
-
-
- -
arrow-up-short
-
-
- -
arrow-up-square-fill
-
-
- -
arrow-up-square
-
-
- -
arrow-up
-
-
- -
arrows-angle-contract
-
-
- -
arrows-angle-expand
-
-
- -
arrows-collapse
-
-
- -
arrows-expand
-
-
- -
arrows-fullscreen
-
-
- -
arrows-move
-
-
- -
aspect-ratio-fill
-
-
- -
aspect-ratio
-
-
- -
asterisk
-
-
- -
at
-
-
- -
award-fill
-
-
- -
award
-
-
- -
back
-
-
- -
backspace-fill
-
-
- -
backspace-reverse-fill
-
-
- -
backspace-reverse
-
-
- -
backspace
-
-
- -
badge-3d-fill
-
-
- -
badge-3d
-
-
- -
badge-4k-fill
-
-
- -
badge-4k
-
-
- -
badge-8k-fill
-
-
- -
badge-8k
-
-
- -
badge-ad-fill
-
-
- -
badge-ad
-
-
- -
badge-ar-fill
-
-
- -
badge-ar
-
-
- -
badge-cc-fill
-
-
- -
badge-cc
-
-
- -
badge-hd-fill
-
-
- -
badge-hd
-
-
- -
badge-tm-fill
-
-
- -
badge-tm
-
-
- -
badge-vo-fill
-
-
- -
badge-vo
-
-
- -
badge-vr-fill
-
-
- -
badge-vr
-
-
- -
badge-wc-fill
-
-
- -
badge-wc
-
-
- -
bag-check-fill
-
-
- -
bag-check
-
-
- -
bag-dash-fill
-
-
- -
bag-dash
-
-
- -
bag-fill
-
-
- -
bag-plus-fill
-
-
- -
bag-plus
-
-
- -
bag-x-fill
-
-
- -
bag-x
-
-
- -
bag
-
-
- -
bar-chart-fill
-
-
- -
bar-chart-line-fill
-
-
- -
bar-chart-line
-
-
- -
bar-chart-steps
-
-
- -
bar-chart
-
-
- -
basket-fill
-
-
- -
basket
-
-
- -
basket2-fill
-
-
- -
basket2
-
-
- -
basket3-fill
-
-
- -
basket3
-
-
- -
battery-charging
-
-
- -
battery-full
-
-
- -
battery-half
-
-
- -
battery
-
-
- -
bell-fill
-
-
- -
bell
-
-
- -
bezier
-
-
- -
bezier2
-
-
- -
bicycle
-
-
- -
binoculars-fill
-
-
- -
binoculars
-
-
- -
blockquote-left
-
-
- -
blockquote-right
-
-
- -
book-fill
-
-
- -
book-half
-
-
- -
book
-
-
- -
bookmark-check-fill
-
-
- -
bookmark-check
-
-
- -
bookmark-dash-fill
-
-
- -
bookmark-dash
-
-
- -
bookmark-fill
-
-
- -
bookmark-heart-fill
-
-
- -
bookmark-heart
-
-
- -
bookmark-plus-fill
-
-
- -
bookmark-plus
-
-
- -
bookmark-star-fill
-
-
- -
bookmark-star
-
-
- -
bookmark-x-fill
-
-
- -
bookmark-x
-
-
- -
bookmark
-
-
- -
bookmarks-fill
-
-
- -
bookmarks
-
-
- -
bookshelf
-
-
- -
bootstrap-fill
-
-
- -
bootstrap-reboot
-
-
- -
bootstrap
-
-
- -
border-all
-
-
- -
border-bottom
-
-
- -
border-center
-
-
- -
border-inner
-
-
- -
border-left
-
-
- -
border-middle
-
-
- -
border-outer
-
-
- -
border-right
-
-
- -
border-style
-
-
- -
border-top
-
-
- -
border-width
-
-
- -
border
-
-
- -
bounding-box-circles
-
-
- -
bounding-box
-
-
- -
box-arrow-down-left
-
-
- -
box-arrow-down-right
-
-
- -
box-arrow-down
-
-
- -
box-arrow-in-down-left
-
-
- -
box-arrow-in-down-right
-
-
- -
box-arrow-in-down
-
-
- -
box-arrow-in-left
-
-
- -
box-arrow-in-right
-
-
- -
box-arrow-in-up-left
-
-
- -
box-arrow-in-up-right
-
-
- -
box-arrow-in-up
-
-
- -
box-arrow-left
-
-
- -
box-arrow-right
-
-
- -
box-arrow-up-left
-
-
- -
box-arrow-up-right
-
-
- -
box-arrow-up
-
-
- -
box-seam
-
-
- -
box
-
-
- -
braces
-
-
- -
bricks
-
-
- -
briefcase-fill
-
-
- -
briefcase
-
-
- -
brightness-alt-high-fill
-
-
- -
brightness-alt-high
-
-
- -
brightness-alt-low-fill
-
-
- -
brightness-alt-low
-
-
- -
brightness-high-fill
-
-
- -
brightness-high
-
-
- -
brightness-low-fill
-
-
- -
brightness-low
-
-
- -
broadcast-pin
-
-
- -
broadcast
-
-
- -
brush-fill
-
-
- -
brush
-
-
- -
bucket-fill
-
-
- -
bucket
-
-
- -
bug-fill
-
-
- -
bug
-
-
- -
building
-
-
- -
bullseye
-
-
- -
calculator-fill
-
-
- -
calculator
-
-
- -
calendar-check-fill
-
-
- -
calendar-check
-
-
- -
calendar-date-fill
-
-
- -
calendar-date
-
-
- -
calendar-day-fill
-
-
- -
calendar-day
-
-
- -
calendar-event-fill
-
-
- -
calendar-event
-
-
- -
calendar-fill
-
-
- -
calendar-minus-fill
-
-
- -
calendar-minus
-
-
- -
calendar-month-fill
-
-
- -
calendar-month
-
-
- -
calendar-plus-fill
-
-
- -
calendar-plus
-
-
- -
calendar-range-fill
-
-
- -
calendar-range
-
-
- -
calendar-week-fill
-
-
- -
calendar-week
-
-
- -
calendar-x-fill
-
-
- -
calendar-x
-
-
- -
calendar
-
-
- -
calendar2-check-fill
-
-
- -
calendar2-check
-
-
- -
calendar2-date-fill
-
-
- -
calendar2-date
-
-
- -
calendar2-day-fill
-
-
- -
calendar2-day
-
-
- -
calendar2-event-fill
-
-
- -
calendar2-event
-
-
- -
calendar2-fill
-
-
- -
calendar2-minus-fill
-
-
- -
calendar2-minus
-
-
- -
calendar2-month-fill
-
-
- -
calendar2-month
-
-
- -
calendar2-plus-fill
-
-
- -
calendar2-plus
-
-
- -
calendar2-range-fill
-
-
- -
calendar2-range
-
-
- -
calendar2-week-fill
-
-
- -
calendar2-week
-
-
- -
calendar2-x-fill
-
-
- -
calendar2-x
-
-
- -
calendar2
-
-
- -
calendar3-event-fill
-
-
- -
calendar3-event
-
-
- -
calendar3-fill
-
-
- -
calendar3-range-fill
-
-
- -
calendar3-range
-
-
- -
calendar3-week-fill
-
-
- -
calendar3-week
-
-
- -
calendar3
-
-
- -
calendar4-event
-
-
- -
calendar4-range
-
-
- -
calendar4-week
-
-
- -
calendar4
-
-
- -
camera-fill
-
-
- -
camera-reels-fill
-
-
- -
camera-reels
-
-
- -
camera-video-fill
-
-
- -
camera-video-off-fill
-
-
- -
camera-video-off
-
-
- -
camera-video
-
-
- -
camera
-
-
- -
camera2
-
-
- -
capslock-fill
-
-
- -
capslock
-
-
- -
card-checklist
-
-
- -
card-heading
-
-
- -
card-image
-
-
- -
card-list
-
-
- -
card-text
-
-
- -
caret-down-fill
-
-
- -
caret-down-square-fill
-
-
- -
caret-down-square
-
-
- -
caret-down
-
-
- -
caret-left-fill
-
-
- -
caret-left-square-fill
-
-
- -
caret-left-square
-
-
- -
caret-left
-
-
- -
caret-right-fill
-
-
- -
caret-right-square-fill
-
-
- -
caret-right-square
-
-
- -
caret-right
-
-
- -
caret-up-fill
-
-
- -
caret-up-square-fill
-
-
- -
caret-up-square
-
-
- -
caret-up
-
-
- -
cart-check-fill
-
-
- -
cart-check
-
-
- -
cart-dash-fill
-
-
- -
cart-dash
-
-
- -
cart-fill
-
-
- -
cart-plus-fill
-
-
- -
cart-plus
-
-
- -
cart-x-fill
-
-
- -
cart-x
-
-
- -
cart
-
-
- -
cart2
-
-
- -
cart3
-
-
- -
cart4
-
-
- -
cash-stack
-
-
- -
cash
-
-
- -
cast
-
-
- -
chat-dots-fill
-
-
- -
chat-dots
-
-
- -
chat-fill
-
-
- -
chat-left-dots-fill
-
-
- -
chat-left-dots
-
-
- -
chat-left-fill
-
-
- -
chat-left-quote-fill
-
-
- -
chat-left-quote
-
-
- -
chat-left-text-fill
-
-
- -
chat-left-text
-
-
- -
chat-left
-
-
- -
chat-quote-fill
-
-
- -
chat-quote
-
-
- -
chat-right-dots-fill
-
-
- -
chat-right-dots
-
-
- -
chat-right-fill
-
-
- -
chat-right-quote-fill
-
-
- -
chat-right-quote
-
-
- -
chat-right-text-fill
-
-
- -
chat-right-text
-
-
- -
chat-right
-
-
- -
chat-square-dots-fill
-
-
- -
chat-square-dots
-
-
- -
chat-square-fill
-
-
- -
chat-square-quote-fill
-
-
- -
chat-square-quote
-
-
- -
chat-square-text-fill
-
-
- -
chat-square-text
-
-
- -
chat-square
-
-
- -
chat-text-fill
-
-
- -
chat-text
-
-
- -
chat
-
-
- -
check-all
-
-
- -
check-circle-fill
-
-
- -
check-circle
-
-
- -
check-square-fill
-
-
- -
check-square
-
-
- -
check
-
-
- -
check2-all
-
-
- -
check2-circle
-
-
- -
check2-square
-
-
- -
check2
-
-
- -
chevron-bar-contract
-
-
- -
chevron-bar-down
-
-
- -
chevron-bar-expand
-
-
- -
chevron-bar-left
-
-
- -
chevron-bar-right
-
-
- -
chevron-bar-up
-
-
- -
chevron-compact-down
-
-
- -
chevron-compact-left
-
-
- -
chevron-compact-right
-
-
- -
chevron-compact-up
-
-
- -
chevron-contract
-
-
- -
chevron-double-down
-
-
- -
chevron-double-left
-
-
- -
chevron-double-right
-
-
- -
chevron-double-up
-
-
- -
chevron-down
-
-
- -
chevron-expand
-
-
- -
chevron-left
-
-
- -
chevron-right
-
-
- -
chevron-up
-
-
- -
circle-fill
-
-
- -
circle-half
-
-
- -
circle-square
-
-
- -
circle
-
-
- -
clipboard-check
-
-
- -
clipboard-data
-
-
- -
clipboard-minus
-
-
- -
clipboard-plus
-
-
- -
clipboard-x
-
-
- -
clipboard
-
-
- -
clock-fill
-
-
- -
clock-history
-
-
- -
clock
-
-
- -
cloud-arrow-down-fill
-
-
- -
cloud-arrow-down
-
-
- -
cloud-arrow-up-fill
-
-
- -
cloud-arrow-up
-
-
- -
cloud-check-fill
-
-
- -
cloud-check
-
-
- -
cloud-download-fill
-
-
- -
cloud-download
-
-
- -
cloud-fill
-
-
- -
cloud-minus-fill
-
-
- -
cloud-minus
-
-
- -
cloud-plus-fill
-
-
- -
cloud-plus
-
-
- -
cloud-slash-fill
-
-
- -
cloud-slash
-
-
- -
cloud-upload-fill
-
-
- -
cloud-upload
-
-
- -
cloud
-
-
- -
code-slash
-
-
- -
code-square
-
-
- -
code
-
-
- -
collection-fill
-
-
- -
collection-play-fill
-
-
- -
collection-play
-
-
- -
collection
-
-
- -
columns-gap
-
-
- -
columns
-
-
- -
command
-
-
- -
compass-fill
-
-
- -
compass
-
-
- -
cone-striped
-
-
- -
cone
-
-
- -
controller
-
-
- -
cpu-fill
-
-
- -
cpu
-
-
- -
credit-card-2-back-fill
-
-
- -
credit-card-2-back
-
-
- -
credit-card-2-front-fill
-
-
- -
credit-card-2-front
-
-
- -
credit-card-fill
-
-
- -
credit-card
-
-
- -
crop
-
-
- -
cup-fill
-
-
- -
cup-straw
-
-
- -
cup
-
-
- -
cursor-fill
-
-
- -
cursor-text
-
-
- -
cursor
-
-
- -
dash-circle-dotted
-
-
- -
dash-circle-fill
-
-
- -
dash-circle
-
-
- -
dash-square-dotted
-
-
- -
dash-square-fill
-
-
- -
dash-square
-
-
- -
dash
-
-
- -
diagram-2-fill
-
-
- -
diagram-2
-
-
- -
diagram-3-fill
-
-
- -
diagram-3
-
-
- -
diamond-fill
-
-
- -
diamond-half
-
-
- -
diamond
-
-
- -
dice-1-fill
-
-
- -
dice-1
-
-
- -
dice-2-fill
-
-
- -
dice-2
-
-
- -
dice-3-fill
-
-
- -
dice-3
-
-
- -
dice-4-fill
-
-
- -
dice-4
-
-
- -
dice-5-fill
-
-
- -
dice-5
-
-
- -
dice-6-fill
-
-
- -
dice-6
-
-
- -
disc-fill
-
-
- -
disc
-
-
- -
discord
-
-
- -
display-fill
-
-
- -
display
-
-
- -
distribute-horizontal
-
-
- -
distribute-vertical
-
-
- -
door-closed-fill
-
-
- -
door-closed
-
-
- -
door-open-fill
-
-
- -
door-open
-
-
- -
dot
-
-
- -
download
-
-
- -
droplet-fill
-
-
- -
droplet-half
-
-
- -
droplet
-
-
- -
earbuds
-
-
- -
easel-fill
-
-
- -
easel
-
-
- -
egg-fill
-
-
- -
egg-fried
-
-
- -
egg
-
-
- -
eject-fill
-
-
- -
eject
-
-
- -
emoji-angry-fill
-
-
- -
emoji-angry
-
-
- -
emoji-dizzy-fill
-
-
- -
emoji-dizzy
-
-
- -
emoji-expressionless-fill
-
-
- -
emoji-expressionless
-
-
- -
emoji-frown-fill
-
-
- -
emoji-frown
-
-
- -
emoji-heart-eyes-fill
-
-
- -
emoji-heart-eyes
-
-
- -
emoji-laughing-fill
-
-
- -
emoji-laughing
-
-
- -
emoji-neutral-fill
-
-
- -
emoji-neutral
-
-
- -
emoji-smile-fill
-
-
- -
emoji-smile-upside-down-fill
-
-
- -
emoji-smile-upside-down
-
-
- -
emoji-smile
-
-
- -
emoji-sunglasses-fill
-
-
- -
emoji-sunglasses
-
-
- -
emoji-wink-fill
-
-
- -
emoji-wink
-
-
- -
envelope-fill
-
-
- -
envelope-open-fill
-
-
- -
envelope-open
-
-
- -
envelope
-
-
- -
eraser-fill
-
-
- -
eraser
-
-
- -
exclamation-circle-fill
-
-
- -
exclamation-circle
-
-
- -
exclamation-diamond-fill
-
-
- -
exclamation-diamond
-
-
- -
exclamation-octagon-fill
-
-
- -
exclamation-octagon
-
-
- -
exclamation-square-fill
-
-
- -
exclamation-square
-
-
- -
exclamation-triangle-fill
-
-
- -
exclamation-triangle
-
-
- -
exclamation
-
-
- -
exclude
-
-
- -
eye-fill
-
-
- -
eye-slash-fill
-
-
- -
eye-slash
-
-
- -
eye
-
-
- -
eyedropper
-
-
- -
eyeglasses
-
-
- -
facebook
-
-
- -
file-arrow-down-fill
-
-
- -
file-arrow-down
-
-
- -
file-arrow-up-fill
-
-
- -
file-arrow-up
-
-
- -
file-bar-graph-fill
-
-
- -
file-bar-graph
-
-
- -
file-binary-fill
-
-
- -
file-binary
-
-
- -
file-break-fill
-
-
- -
file-break
-
-
- -
file-check-fill
-
-
- -
file-check
-
-
- -
file-code-fill
-
-
- -
file-code
-
-
- -
file-diff-fill
-
-
- -
file-diff
-
-
- -
file-earmark-arrow-down-fill
-
-
- -
file-earmark-arrow-down
-
-
- -
file-earmark-arrow-up-fill
-
-
- -
file-earmark-arrow-up
-
-
- -
file-earmark-bar-graph-fill
-
-
- -
file-earmark-bar-graph
-
-
- -
file-earmark-binary-fill
-
-
- -
file-earmark-binary
-
-
- -
file-earmark-break-fill
-
-
- -
file-earmark-break
-
-
- -
file-earmark-check-fill
-
-
- -
file-earmark-check
-
-
- -
file-earmark-code-fill
-
-
- -
file-earmark-code
-
-
- -
file-earmark-diff-fill
-
-
- -
file-earmark-diff
-
-
- -
file-earmark-easel-fill
-
-
- -
file-earmark-easel
-
-
- -
file-earmark-excel-fill
-
-
- -
file-earmark-excel
-
-
- -
file-earmark-fill
-
-
- -
file-earmark-font-fill
-
-
- -
file-earmark-font
-
-
- -
file-earmark-image-fill
-
-
- -
file-earmark-image
-
-
- -
file-earmark-lock-fill
-
-
- -
file-earmark-lock
-
-
- -
file-earmark-lock2-fill
-
-
- -
file-earmark-lock2
-
-
- -
file-earmark-medical-fill
-
-
- -
file-earmark-medical
-
-
- -
file-earmark-minus-fill
-
-
- -
file-earmark-minus
-
-
- -
file-earmark-music-fill
-
-
- -
file-earmark-music
-
-
- -
file-earmark-person-fill
-
-
- -
file-earmark-person
-
-
- -
file-earmark-play-fill
-
-
- -
file-earmark-play
-
-
- -
file-earmark-plus-fill
-
-
- -
file-earmark-plus
-
-
- -
file-earmark-post-fill
-
-
- -
file-earmark-post
-
-
- -
file-earmark-ppt-fill
-
-
- -
file-earmark-ppt
-
-
- -
file-earmark-richtext-fill
-
-
- -
file-earmark-richtext
-
-
- -
file-earmark-ruled-fill
-
-
- -
file-earmark-ruled
-
-
- -
file-earmark-slides-fill
-
-
- -
file-earmark-slides
-
-
- -
file-earmark-spreadsheet-fill
-
-
- -
file-earmark-spreadsheet
-
-
- -
file-earmark-text-fill
-
-
- -
file-earmark-text
-
-
- -
file-earmark-word-fill
-
-
- -
file-earmark-word
-
-
- -
file-earmark-x-fill
-
-
- -
file-earmark-x
-
-
- -
file-earmark-zip-fill
-
-
- -
file-earmark-zip
-
-
- -
file-earmark
-
-
- -
file-easel-fill
-
-
- -
file-easel
-
-
- -
file-excel-fill
-
-
- -
file-excel
-
-
- -
file-fill
-
-
- -
file-font-fill
-
-
- -
file-font
-
-
- -
file-image-fill
-
-
- -
file-image
-
-
- -
file-lock-fill
-
-
- -
file-lock
-
-
- -
file-lock2-fill
-
-
- -
file-lock2
-
-
- -
file-medical-fill
-
-
- -
file-medical
-
-
- -
file-minus-fill
-
-
- -
file-minus
-
-
- -
file-music-fill
-
-
- -
file-music
-
-
- -
file-person-fill
-
-
- -
file-person
-
-
- -
file-play-fill
-
-
- -
file-play
-
-
- -
file-plus-fill
-
-
- -
file-plus
-
-
- -
file-post-fill
-
-
- -
file-post
-
-
- -
file-ppt-fill
-
-
- -
file-ppt
-
-
- -
file-richtext-fill
-
-
- -
file-richtext
-
-
- -
file-ruled-fill
-
-
- -
file-ruled
-
-
- -
file-slides-fill
-
-
- -
file-slides
-
-
- -
file-spreadsheet-fill
-
-
- -
file-spreadsheet
-
-
- -
file-text-fill
-
-
- -
file-text
-
-
- -
file-word-fill
-
-
- -
file-word
-
-
- -
file-x-fill
-
-
- -
file-x
-
-
- -
file-zip-fill
-
-
- -
file-zip
-
-
- -
file
-
-
- -
files-alt
-
-
- -
files
-
-
- -
film
-
-
- -
filter-circle-fill
-
-
- -
filter-circle
-
-
- -
filter-left
-
-
- -
filter-right
-
-
- -
filter-square-fill
-
-
- -
filter-square
-
-
- -
filter
-
-
- -
flag-fill
-
-
- -
flag
-
-
- -
flower1
-
-
- -
flower2
-
-
- -
flower3
-
-
- -
folder-check
-
-
- -
folder-fill
-
-
- -
folder-minus
-
-
- -
folder-plus
-
-
- -
folder-symlink-fill
-
-
- -
folder-symlink
-
-
- -
folder-x
-
-
- -
folder
-
-
- -
folder2-open
-
-
- -
folder2
-
-
- -
fonts
-
-
- -
forward-fill
-
-
- -
forward
-
-
- -
front
-
-
- -
fullscreen-exit
-
-
- -
fullscreen
-
-
- -
funnel-fill
-
-
- -
funnel
-
-
- -
gear-fill
-
-
- -
gear-wide-connected
-
-
- -
gear-wide
-
-
- -
gear
-
-
- -
gem
-
-
- -
geo-alt-fill
-
-
- -
geo-alt
-
-
- -
geo-fill
-
-
- -
geo
-
-
- -
gift-fill
-
-
- -
gift
-
-
- -
github
-
-
- -
globe
-
-
- -
globe2
-
-
- -
google
-
-
- -
graph-down
-
-
- -
graph-up
-
-
- -
grid-1x2-fill
-
-
- -
grid-1x2
-
-
- -
grid-3x2-gap-fill
-
-
- -
grid-3x2-gap
-
-
- -
grid-3x2
-
-
- -
grid-3x3-gap-fill
-
-
- -
grid-3x3-gap
-
-
- -
grid-3x3
-
-
- -
grid-fill
-
-
- -
grid
-
-
- -
grip-horizontal
-
-
- -
grip-vertical
-
-
- -
hammer
-
-
- -
hand-index-fill
-
-
- -
hand-index-thumb-fill
-
-
- -
hand-index-thumb
-
-
- -
hand-index
-
-
- -
hand-thumbs-down-fill
-
-
- -
hand-thumbs-down
-
-
- -
hand-thumbs-up-fill
-
-
- -
hand-thumbs-up
-
-
- -
handbag-fill
-
-
- -
handbag
-
-
- -
hash
-
-
- -
hdd-fill
-
-
- -
hdd-network-fill
-
-
- -
hdd-network
-
-
- -
hdd-rack-fill
-
-
- -
hdd-rack
-
-
- -
hdd-stack-fill
-
-
- -
hdd-stack
-
-
- -
hdd
-
-
- -
headphones
-
-
- -
headset
-
-
- -
heart-fill
-
-
- -
heart-half
-
-
- -
heart
-
-
- -
heptagon-fill
-
-
- -
heptagon-half
-
-
- -
heptagon
-
-
- -
hexagon-fill
-
-
- -
hexagon-half
-
-
- -
hexagon
-
-
- -
hourglass-bottom
-
-
- -
hourglass-split
-
-
- -
hourglass-top
-
-
- -
hourglass
-
-
- -
house-door-fill
-
-
- -
house-door
-
-
- -
house-fill
-
-
- -
house
-
-
- -
hr
-
-
- -
image-alt
-
-
- -
image-fill
-
-
- -
image
-
-
- -
images
-
-
- -
inbox-fill
-
-
- -
inbox
-
-
- -
inboxes-fill
-
-
- -
inboxes
-
-
- -
info-circle-fill
-
-
- -
info-circle
-
-
- -
info-square-fill
-
-
- -
info-square
-
-
- -
info
-
-
- -
input-cursor-text
-
-
- -
input-cursor
-
-
- -
instagram
-
-
- -
intersect
-
-
- -
journal-album
-
-
- -
journal-arrow-down
-
-
- -
journal-arrow-up
-
-
- -
journal-bookmark-fill
-
-
- -
journal-bookmark
-
-
- -
journal-check
-
-
- -
journal-code
-
-
- -
journal-medical
-
-
- -
journal-minus
-
-
- -
journal-plus
-
-
- -
journal-richtext
-
-
- -
journal-text
-
-
- -
journal-x
-
-
- -
journal
-
-
- -
journals
-
-
- -
joystick
-
-
- -
justify-left
-
-
- -
justify-right
-
-
- -
justify
-
-
- -
kanban-fill
-
-
- -
kanban
-
-
- -
key-fill
-
-
- -
key
-
-
- -
keyboard-fill
-
-
- -
keyboard
-
-
- -
ladder
-
-
- -
lamp-fill
-
-
- -
lamp
-
-
- -
laptop-fill
-
-
- -
laptop
-
-
- -
layer-backward
-
-
- -
layer-forward
-
-
- -
layers-fill
-
-
- -
layers-half
-
-
- -
layers
-
-
- -
layout-sidebar-inset-reverse
-
-
- -
layout-sidebar-inset
-
-
- -
layout-sidebar-reverse
-
-
- -
layout-sidebar
-
-
- -
layout-split
-
-
- -
layout-text-sidebar-reverse
-
-
- -
layout-text-sidebar
-
-
- -
layout-text-window-reverse
-
-
- -
layout-text-window
-
-
- -
layout-three-columns
-
-
- -
layout-wtf
-
-
- -
life-preserver
-
-
- -
lightbulb-fill
-
-
- -
lightbulb-off-fill
-
-
- -
lightbulb-off
-
-
- -
lightbulb
-
-
- -
lightning-fill
-
-
- -
lightning
-
-
- -
link-45deg
-
-
- -
link
-
-
- -
linkedin
-
-
- -
list-check
-
-
- -
list-nested
-
-
- -
list-ol
-
-
- -
list-stars
-
-
- -
list-task
-
-
- -
list-ul
-
-
- -
list
-
-
- -
lock-fill
-
-
- -
lock
-
-
- -
mailbox
-
-
- -
mailbox2
-
-
- -
map-fill
-
-
- -
map
-
-
- -
markdown-fill
-
-
- -
markdown
-
-
- -
mask
-
-
- -
megaphone-fill
-
-
- -
megaphone
-
-
- -
menu-app-fill
-
-
- -
menu-app
-
-
- -
menu-button-fill
-
-
- -
menu-button-wide-fill
-
-
- -
menu-button-wide
-
-
- -
menu-button
-
-
- -
menu-down
-
-
- -
menu-up
-
-
- -
mic-fill
-
-
- -
mic-mute-fill
-
-
- -
mic-mute
-
-
- -
mic
-
-
- -
minecart-loaded
-
-
- -
minecart
-
-
- -
moon
-
-
- -
mouse-fill
-
-
- -
mouse
-
-
- -
mouse2-fill
-
-
- -
mouse2
-
-
- -
mouse3-fill
-
-
- -
mouse3
-
-
- -
music-note-beamed
-
-
- -
music-note-list
-
-
- -
music-note
-
-
- -
music-player-fill
-
-
- -
music-player
-
-
- -
newspaper
-
-
- -
node-minus-fill
-
-
- -
node-minus
-
-
- -
node-plus-fill
-
-
- -
node-plus
-
-
- -
nut-fill
-
-
- -
nut
-
-
- -
octagon-fill
-
-
- -
octagon-half
-
-
- -
octagon
-
-
- -
option
-
-
- -
outlet
-
-
- -
paint-bucket
-
-
- -
palette-fill
-
-
- -
palette
-
-
- -
palette2
-
-
- -
paperclip
-
-
- -
paragraph
-
-
- -
patch-check-fill
-
-
- -
patch-check
-
-
- -
patch-exclamation-fill
-
-
- -
patch-exclamation
-
-
- -
patch-minus-fill
-
-
- -
patch-minus
-
-
- -
patch-plus-fill
-
-
- -
patch-plus
-
-
- -
patch-question-fill
-
-
- -
patch-question
-
-
- -
pause-btn-fill
-
-
- -
pause-btn
-
-
- -
pause-circle-fill
-
-
- -
pause-circle
-
-
- -
pause-fill
-
-
- -
pause
-
-
- -
peace-fill
-
-
- -
peace
-
-
- -
pen-fill
-
-
- -
pen
-
-
- -
pencil-fill
-
-
- -
pencil-square
-
-
- -
pencil
-
-
- -
pentagon-fill
-
-
- -
pentagon-half
-
-
- -
pentagon
-
-
- -
people-fill
-
-
- -
people
-
-
- -
percent
-
-
- -
person-badge-fill
-
-
- -
person-badge
-
-
- -
person-bounding-box
-
-
- -
person-check-fill
-
-
- -
person-check
-
-
- -
person-circle
-
-
- -
person-dash-fill
-
-
- -
person-dash
-
-
- -
person-fill
-
-
- -
person-lines-fill
-
-
- -
person-plus-fill
-
-
- -
person-plus
-
-
- -
person-square
-
-
- -
person-x-fill
-
-
- -
person-x
-
-
- -
person
-
-
- -
phone-fill
-
-
- -
phone-landscape-fill
-
-
- -
phone-landscape
-
-
- -
phone-vibrate-fill
-
-
- -
phone-vibrate
-
-
- -
phone
-
-
- -
pie-chart-fill
-
-
- -
pie-chart
-
-
- -
pin-angle-fill
-
-
- -
pin-angle
-
-
- -
pin-fill
-
-
- -
pin
-
-
- -
pip-fill
-
-
- -
pip
-
-
- -
play-btn-fill
-
-
- -
play-btn
-
-
- -
play-circle-fill
-
-
- -
play-circle
-
-
- -
play-fill
-
-
- -
play
-
-
- -
plug-fill
-
-
- -
plug
-
-
- -
plus-circle-dotted
-
-
- -
plus-circle-fill
-
-
- -
plus-circle
-
-
- -
plus-square-dotted
-
-
- -
plus-square-fill
-
-
- -
plus-square
-
-
- -
plus
-
-
- -
power
-
-
- -
printer-fill
-
-
- -
printer
-
-
- -
puzzle-fill
-
-
- -
puzzle
-
-
- -
question-circle-fill
-
-
- -
question-circle
-
-
- -
question-diamond-fill
-
-
- -
question-diamond
-
-
- -
question-octagon-fill
-
-
- -
question-octagon
-
-
- -
question-square-fill
-
-
- -
question-square
-
-
- -
question
-
-
- -
receipt-cutoff
-
-
- -
receipt
-
-
- -
reception-0
-
-
- -
reception-1
-
-
- -
reception-2
-
-
- -
reception-3
-
-
- -
reception-4
-
-
- -
record-btn-fill
-
-
- -
record-btn
-
-
- -
record-circle-fill
-
-
- -
record-circle
-
-
- -
record-fill
-
-
- -
record
-
-
- -
record2-fill
-
-
- -
record2
-
-
- -
reply-all-fill
-
-
- -
reply-all
-
-
- -
reply-fill
-
-
- -
reply
-
-
- -
rss-fill
-
-
- -
rss
-
-
- -
rulers
-
-
- -
save-fill
-
-
- -
save
-
-
- -
save2-fill
-
-
- -
save2
-
-
- -
scissors
-
-
- -
screwdriver
-
-
- -
search
-
-
- -
segmented-nav
-
-
- -
server
-
-
- -
share-fill
-
-
- -
share
-
-
- -
shield-check
-
-
- -
shield-exclamation
-
-
- -
shield-fill-check
-
-
- -
shield-fill-exclamation
-
-
- -
shield-fill-minus
-
-
- -
shield-fill-plus
-
-
- -
shield-fill-x
-
-
- -
shield-fill
-
-
- -
shield-lock-fill
-
-
- -
shield-lock
-
-
- -
shield-minus
-
-
- -
shield-plus
-
-
- -
shield-shaded
-
-
- -
shield-slash-fill
-
-
- -
shield-slash
-
-
- -
shield-x
-
-
- -
shield
-
-
- -
shift-fill
-
-
- -
shift
-
-
- -
shop-window
-
-
- -
shop
-
-
- -
shuffle
-
-
- -
signpost-2-fill
-
-
- -
signpost-2
-
-
- -
signpost-fill
-
-
- -
signpost-split-fill
-
-
- -
signpost-split
-
-
- -
signpost
-
-
- -
sim-fill
-
-
- -
sim
-
-
- -
skip-backward-btn-fill
-
-
- -
skip-backward-btn
-
-
- -
skip-backward-circle-fill
-
-
- -
skip-backward-circle
-
-
- -
skip-backward-fill
-
-
- -
skip-backward
-
-
- -
skip-end-btn-fill
-
-
- -
skip-end-btn
-
-
- -
skip-end-circle-fill
-
-
- -
skip-end-circle
-
-
- -
skip-end-fill
-
-
- -
skip-end
-
-
- -
skip-forward-btn-fill
-
-
- -
skip-forward-btn
-
-
- -
skip-forward-circle-fill
-
-
- -
skip-forward-circle
-
-
- -
skip-forward-fill
-
-
- -
skip-forward
-
-
- -
skip-start-btn-fill
-
-
- -
skip-start-btn
-
-
- -
skip-start-circle-fill
-
-
- -
skip-start-circle
-
-
- -
skip-start-fill
-
-
- -
skip-start
-
-
- -
slack
-
-
- -
slash-circle-fill
-
-
- -
slash-circle
-
-
- -
slash-square-fill
-
-
- -
slash-square
-
-
- -
slash
-
-
- -
sliders
-
-
- -
smartwatch
-
-
- -
sort-alpha-down-alt
-
-
- -
sort-alpha-down
-
-
- -
sort-alpha-up-alt
-
-
- -
sort-alpha-up
-
-
- -
sort-down-alt
-
-
- -
sort-down
-
-
- -
sort-numeric-down-alt
-
-
- -
sort-numeric-down
-
-
- -
sort-numeric-up-alt
-
-
- -
sort-numeric-up
-
-
- -
sort-up-alt
-
-
- -
sort-up
-
-
- -
soundwave
-
-
- -
speaker-fill
-
-
- -
speaker
-
-
- -
speedometer
-
-
- -
speedometer2
-
-
- -
spellcheck
-
-
- -
square-fill
-
-
- -
square-half
-
-
- -
square
-
-
- -
stack
-
-
- -
star-fill
-
-
- -
star-half
-
-
- -
star
-
-
- -
stickies-fill
-
-
- -
stickies
-
-
- -
sticky-fill
-
-
- -
sticky
-
-
- -
stop-btn-fill
-
-
- -
stop-btn
-
-
- -
stop-circle-fill
-
-
- -
stop-circle
-
-
- -
stop-fill
-
-
- -
stop
-
-
- -
stoplights-fill
-
-
- -
stoplights
-
-
- -
stopwatch-fill
-
-
- -
stopwatch
-
-
- -
subtract
-
-
- -
suit-club-fill
-
-
- -
suit-club
-
-
- -
suit-diamond-fill
-
-
- -
suit-diamond
-
-
- -
suit-heart-fill
-
-
- -
suit-heart
-
-
- -
suit-spade-fill
-
-
- -
suit-spade
-
-
- -
sun
-
-
- -
sunglasses
-
-
- -
symmetry-horizontal
-
-
- -
symmetry-vertical
-
-
- -
table
-
-
- -
tablet-fill
-
-
- -
tablet-landscape-fill
-
-
- -
tablet-landscape
-
-
- -
tablet
-
-
- -
tag-fill
-
-
- -
tag
-
-
- -
tags-fill
-
-
- -
tags
-
-
- -
telegram
-
-
- -
telephone-fill
-
-
- -
telephone-forward-fill
-
-
- -
telephone-forward
-
-
- -
telephone-inbound-fill
-
-
- -
telephone-inbound
-
-
- -
telephone-minus-fill
-
-
- -
telephone-minus
-
-
- -
telephone-outbound-fill
-
-
- -
telephone-outbound
-
-
- -
telephone-plus-fill
-
-
- -
telephone-plus
-
-
- -
telephone-x-fill
-
-
- -
telephone-x
-
-
- -
telephone
-
-
- -
terminal-fill
-
-
- -
terminal
-
-
- -
text-center
-
-
- -
text-indent-left
-
-
- -
text-indent-right
-
-
- -
text-left
-
-
- -
text-paragraph
-
-
- -
text-right
-
-
- -
textarea-resize
-
-
- -
textarea-t
-
-
- -
textarea
-
-
- -
thermometer-half
-
-
- -
thermometer
-
-
- -
three-dots-vertical
-
-
- -
three-dots
-
-
- -
toggle-off
-
-
- -
toggle-on
-
-
- -
toggle2-off
-
-
- -
toggle2-on
-
-
- -
toggles
-
-
- -
toggles2
-
-
- -
tools
-
-
- -
trash-fill
-
-
- -
trash
-
-
- -
trash2-fill
-
-
- -
trash2
-
-
- -
tree-fill
-
-
- -
tree
-
-
- -
triangle-fill
-
-
- -
triangle-half
-
-
- -
triangle
-
-
- -
trophy-fill
-
-
- -
trophy
-
-
- -
truck-flatbed
-
-
- -
truck
-
-
- -
tv-fill
-
-
- -
tv
-
-
- -
twitch
-
-
- -
twitter
-
-
- -
type-bold
-
-
- -
type-h1
-
-
- -
type-h2
-
-
- -
type-h3
-
-
- -
type-italic
-
-
- -
type-strikethrough
-
-
- -
type-underline
-
-
- -
type
-
-
- -
ui-checks-grid
-
-
- -
ui-checks
-
-
- -
ui-radios-grid
-
-
- -
ui-radios
-
-
- -
union
-
-
- -
unlock-fill
-
-
- -
unlock
-
-
- -
upc-scan
-
-
- -
upc
-
-
- -
upload
-
-
- -
vector-pen
-
-
- -
view-list
-
-
- -
view-stacked
-
-
- -
vinyl-fill
-
-
- -
vinyl
-
-
- -
voicemail
-
-
- -
volume-down-fill
-
-
- -
volume-down
-
-
- -
volume-mute-fill
-
-
- -
volume-mute
-
-
- -
volume-off-fill
-
-
- -
volume-off
-
-
- -
volume-up-fill
-
-
- -
volume-up
-
-
- -
vr
-
-
- -
wallet-fill
-
-
- -
wallet
-
-
- -
wallet2
-
-
- -
watch
-
-
- -
whatsapp
-
-
- -
wifi-1
-
-
- -
wifi-2
-
-
- -
wifi-off
-
-
- -
wifi
-
-
- -
window-dock
-
-
- -
window-sidebar
-
-
- -
window
-
-
- -
wrench
-
-
- -
x-circle-fill
-
-
- -
x-circle
-
-
- -
x-diamond-fill
-
-
- -
x-diamond
-
-
- -
x-octagon-fill
-
-
- -
x-octagon
-
-
- -
x-square-fill
-
-
- -
x-square
-
-
- -
x
-
-
- -
youtube
-
-
- -
zoom-in
-
-
- -
zoom-out
-
-
- - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/info-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/info-circle-fill.svg deleted file mode 100644 index f5bdc3d1b..000000000 --- a/dist/assets/vendors/bootstrap-icons/info-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/info-circle.svg b/dist/assets/vendors/bootstrap-icons/info-circle.svg deleted file mode 100644 index 05085d997..000000000 --- a/dist/assets/vendors/bootstrap-icons/info-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/info-square-fill.svg b/dist/assets/vendors/bootstrap-icons/info-square-fill.svg deleted file mode 100644 index 46716431a..000000000 --- a/dist/assets/vendors/bootstrap-icons/info-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/info-square.svg b/dist/assets/vendors/bootstrap-icons/info-square.svg deleted file mode 100644 index 8b8f0fd23..000000000 --- a/dist/assets/vendors/bootstrap-icons/info-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/info.svg b/dist/assets/vendors/bootstrap-icons/info.svg deleted file mode 100644 index d2cdcdfc2..000000000 --- a/dist/assets/vendors/bootstrap-icons/info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/input-cursor-text.svg b/dist/assets/vendors/bootstrap-icons/input-cursor-text.svg deleted file mode 100644 index 4c4bf20e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/input-cursor-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/input-cursor.svg b/dist/assets/vendors/bootstrap-icons/input-cursor.svg deleted file mode 100644 index 548b2e29f..000000000 --- a/dist/assets/vendors/bootstrap-icons/input-cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/instagram.svg b/dist/assets/vendors/bootstrap-icons/instagram.svg deleted file mode 100644 index 414cc9664..000000000 --- a/dist/assets/vendors/bootstrap-icons/instagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/intersect.svg b/dist/assets/vendors/bootstrap-icons/intersect.svg deleted file mode 100644 index 00f7cd02b..000000000 --- a/dist/assets/vendors/bootstrap-icons/intersect.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-album.svg b/dist/assets/vendors/bootstrap-icons/journal-album.svg deleted file mode 100644 index c6ad368da..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-album.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-arrow-down.svg b/dist/assets/vendors/bootstrap-icons/journal-arrow-down.svg deleted file mode 100644 index e95d47119..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-arrow-up.svg b/dist/assets/vendors/bootstrap-icons/journal-arrow-up.svg deleted file mode 100644 index f1d4c21a9..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-bookmark-fill.svg b/dist/assets/vendors/bootstrap-icons/journal-bookmark-fill.svg deleted file mode 100644 index 18450386d..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-bookmark-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-bookmark.svg b/dist/assets/vendors/bootstrap-icons/journal-bookmark.svg deleted file mode 100644 index 473c5eca1..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-bookmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-check.svg b/dist/assets/vendors/bootstrap-icons/journal-check.svg deleted file mode 100644 index 94a465f06..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-code.svg b/dist/assets/vendors/bootstrap-icons/journal-code.svg deleted file mode 100644 index d7bb55ea9..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-medical.svg b/dist/assets/vendors/bootstrap-icons/journal-medical.svg deleted file mode 100644 index 5500110ab..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-medical.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-minus.svg b/dist/assets/vendors/bootstrap-icons/journal-minus.svg deleted file mode 100644 index a26c2e42f..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-plus.svg b/dist/assets/vendors/bootstrap-icons/journal-plus.svg deleted file mode 100644 index 6d5d9cac9..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-richtext.svg b/dist/assets/vendors/bootstrap-icons/journal-richtext.svg deleted file mode 100644 index 7d1ba43d8..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-richtext.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-text.svg b/dist/assets/vendors/bootstrap-icons/journal-text.svg deleted file mode 100644 index a398910b1..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal-x.svg b/dist/assets/vendors/bootstrap-icons/journal-x.svg deleted file mode 100644 index 15d515e21..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journal.svg b/dist/assets/vendors/bootstrap-icons/journal.svg deleted file mode 100644 index 0f9963266..000000000 --- a/dist/assets/vendors/bootstrap-icons/journal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/journals.svg b/dist/assets/vendors/bootstrap-icons/journals.svg deleted file mode 100644 index 70091ff89..000000000 --- a/dist/assets/vendors/bootstrap-icons/journals.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/joystick.svg b/dist/assets/vendors/bootstrap-icons/joystick.svg deleted file mode 100644 index b7af4eb76..000000000 --- a/dist/assets/vendors/bootstrap-icons/joystick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/justify-left.svg b/dist/assets/vendors/bootstrap-icons/justify-left.svg deleted file mode 100644 index 84632478f..000000000 --- a/dist/assets/vendors/bootstrap-icons/justify-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/justify-right.svg b/dist/assets/vendors/bootstrap-icons/justify-right.svg deleted file mode 100644 index e236b5477..000000000 --- a/dist/assets/vendors/bootstrap-icons/justify-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/justify.svg b/dist/assets/vendors/bootstrap-icons/justify.svg deleted file mode 100644 index a8234204a..000000000 --- a/dist/assets/vendors/bootstrap-icons/justify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/kanban-fill.svg b/dist/assets/vendors/bootstrap-icons/kanban-fill.svg deleted file mode 100644 index d633a5383..000000000 --- a/dist/assets/vendors/bootstrap-icons/kanban-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/kanban.svg b/dist/assets/vendors/bootstrap-icons/kanban.svg deleted file mode 100644 index 28cd68608..000000000 --- a/dist/assets/vendors/bootstrap-icons/kanban.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/key-fill.svg b/dist/assets/vendors/bootstrap-icons/key-fill.svg deleted file mode 100644 index 7bfb4a432..000000000 --- a/dist/assets/vendors/bootstrap-icons/key-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/key.svg b/dist/assets/vendors/bootstrap-icons/key.svg deleted file mode 100644 index 7a00f0db1..000000000 --- a/dist/assets/vendors/bootstrap-icons/key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/keyboard-fill.svg b/dist/assets/vendors/bootstrap-icons/keyboard-fill.svg deleted file mode 100644 index 876321d24..000000000 --- a/dist/assets/vendors/bootstrap-icons/keyboard-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/keyboard.svg b/dist/assets/vendors/bootstrap-icons/keyboard.svg deleted file mode 100644 index feb490c1a..000000000 --- a/dist/assets/vendors/bootstrap-icons/keyboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/ladder.svg b/dist/assets/vendors/bootstrap-icons/ladder.svg deleted file mode 100644 index 0b18ce5b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/ladder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lamp-fill.svg b/dist/assets/vendors/bootstrap-icons/lamp-fill.svg deleted file mode 100644 index a7f0c675d..000000000 --- a/dist/assets/vendors/bootstrap-icons/lamp-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lamp.svg b/dist/assets/vendors/bootstrap-icons/lamp.svg deleted file mode 100644 index daf802c93..000000000 --- a/dist/assets/vendors/bootstrap-icons/lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/laptop-fill.svg b/dist/assets/vendors/bootstrap-icons/laptop-fill.svg deleted file mode 100644 index 5b1755dac..000000000 --- a/dist/assets/vendors/bootstrap-icons/laptop-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/laptop.svg b/dist/assets/vendors/bootstrap-icons/laptop.svg deleted file mode 100644 index 2993e8202..000000000 --- a/dist/assets/vendors/bootstrap-icons/laptop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layer-backward.svg b/dist/assets/vendors/bootstrap-icons/layer-backward.svg deleted file mode 100644 index 133a2f212..000000000 --- a/dist/assets/vendors/bootstrap-icons/layer-backward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layer-forward.svg b/dist/assets/vendors/bootstrap-icons/layer-forward.svg deleted file mode 100644 index aadb79cdb..000000000 --- a/dist/assets/vendors/bootstrap-icons/layer-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layers-fill.svg b/dist/assets/vendors/bootstrap-icons/layers-fill.svg deleted file mode 100644 index 09127b015..000000000 --- a/dist/assets/vendors/bootstrap-icons/layers-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layers-half.svg b/dist/assets/vendors/bootstrap-icons/layers-half.svg deleted file mode 100644 index 8fed48506..000000000 --- a/dist/assets/vendors/bootstrap-icons/layers-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layers.svg b/dist/assets/vendors/bootstrap-icons/layers.svg deleted file mode 100644 index aefdbf87b..000000000 --- a/dist/assets/vendors/bootstrap-icons/layers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-sidebar-inset-reverse.svg b/dist/assets/vendors/bootstrap-icons/layout-sidebar-inset-reverse.svg deleted file mode 100644 index 5b6f32460..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-sidebar-inset-reverse.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-sidebar-inset.svg b/dist/assets/vendors/bootstrap-icons/layout-sidebar-inset.svg deleted file mode 100644 index b98b812e8..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-sidebar-inset.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-sidebar-reverse.svg b/dist/assets/vendors/bootstrap-icons/layout-sidebar-reverse.svg deleted file mode 100644 index 8ab950907..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-sidebar-reverse.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-sidebar.svg b/dist/assets/vendors/bootstrap-icons/layout-sidebar.svg deleted file mode 100644 index 712cd2153..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-sidebar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-split.svg b/dist/assets/vendors/bootstrap-icons/layout-split.svg deleted file mode 100644 index fdbb81213..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-text-sidebar-reverse.svg b/dist/assets/vendors/bootstrap-icons/layout-text-sidebar-reverse.svg deleted file mode 100644 index 0d02d55a4..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-text-sidebar-reverse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-text-sidebar.svg b/dist/assets/vendors/bootstrap-icons/layout-text-sidebar.svg deleted file mode 100644 index dd4f13131..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-text-sidebar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-text-window-reverse.svg b/dist/assets/vendors/bootstrap-icons/layout-text-window-reverse.svg deleted file mode 100644 index 39521143e..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-text-window-reverse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-text-window.svg b/dist/assets/vendors/bootstrap-icons/layout-text-window.svg deleted file mode 100644 index 029e0e5af..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-text-window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-three-columns.svg b/dist/assets/vendors/bootstrap-icons/layout-three-columns.svg deleted file mode 100644 index 0074412c4..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-three-columns.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/layout-wtf.svg b/dist/assets/vendors/bootstrap-icons/layout-wtf.svg deleted file mode 100644 index e9b8f863b..000000000 --- a/dist/assets/vendors/bootstrap-icons/layout-wtf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/life-preserver.svg b/dist/assets/vendors/bootstrap-icons/life-preserver.svg deleted file mode 100644 index bd07f4a3f..000000000 --- a/dist/assets/vendors/bootstrap-icons/life-preserver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lightbulb-fill.svg b/dist/assets/vendors/bootstrap-icons/lightbulb-fill.svg deleted file mode 100644 index 1ca0259a3..000000000 --- a/dist/assets/vendors/bootstrap-icons/lightbulb-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lightbulb-off-fill.svg b/dist/assets/vendors/bootstrap-icons/lightbulb-off-fill.svg deleted file mode 100644 index 7d9600e48..000000000 --- a/dist/assets/vendors/bootstrap-icons/lightbulb-off-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lightbulb-off.svg b/dist/assets/vendors/bootstrap-icons/lightbulb-off.svg deleted file mode 100644 index 32334fc85..000000000 --- a/dist/assets/vendors/bootstrap-icons/lightbulb-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lightbulb.svg b/dist/assets/vendors/bootstrap-icons/lightbulb.svg deleted file mode 100644 index a7c988d16..000000000 --- a/dist/assets/vendors/bootstrap-icons/lightbulb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lightning-fill.svg b/dist/assets/vendors/bootstrap-icons/lightning-fill.svg deleted file mode 100644 index fae9f122f..000000000 --- a/dist/assets/vendors/bootstrap-icons/lightning-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lightning.svg b/dist/assets/vendors/bootstrap-icons/lightning.svg deleted file mode 100644 index a9585fd83..000000000 --- a/dist/assets/vendors/bootstrap-icons/lightning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/link-45deg.svg b/dist/assets/vendors/bootstrap-icons/link-45deg.svg deleted file mode 100644 index d0c8970a6..000000000 --- a/dist/assets/vendors/bootstrap-icons/link-45deg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/link.svg b/dist/assets/vendors/bootstrap-icons/link.svg deleted file mode 100644 index df35bc8a1..000000000 --- a/dist/assets/vendors/bootstrap-icons/link.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/linkedin.svg b/dist/assets/vendors/bootstrap-icons/linkedin.svg deleted file mode 100644 index e80e8f3bc..000000000 --- a/dist/assets/vendors/bootstrap-icons/linkedin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list-check.svg b/dist/assets/vendors/bootstrap-icons/list-check.svg deleted file mode 100644 index afce007f6..000000000 --- a/dist/assets/vendors/bootstrap-icons/list-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list-nested.svg b/dist/assets/vendors/bootstrap-icons/list-nested.svg deleted file mode 100644 index 7d95606a5..000000000 --- a/dist/assets/vendors/bootstrap-icons/list-nested.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list-ol.svg b/dist/assets/vendors/bootstrap-icons/list-ol.svg deleted file mode 100644 index d2cb7d102..000000000 --- a/dist/assets/vendors/bootstrap-icons/list-ol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list-stars.svg b/dist/assets/vendors/bootstrap-icons/list-stars.svg deleted file mode 100644 index 941433e22..000000000 --- a/dist/assets/vendors/bootstrap-icons/list-stars.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list-task.svg b/dist/assets/vendors/bootstrap-icons/list-task.svg deleted file mode 100644 index 47e152f97..000000000 --- a/dist/assets/vendors/bootstrap-icons/list-task.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list-ul.svg b/dist/assets/vendors/bootstrap-icons/list-ul.svg deleted file mode 100644 index 217d1539c..000000000 --- a/dist/assets/vendors/bootstrap-icons/list-ul.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/list.svg b/dist/assets/vendors/bootstrap-icons/list.svg deleted file mode 100644 index 6a9d55043..000000000 --- a/dist/assets/vendors/bootstrap-icons/list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lock-fill.svg b/dist/assets/vendors/bootstrap-icons/lock-fill.svg deleted file mode 100644 index 7df004c75..000000000 --- a/dist/assets/vendors/bootstrap-icons/lock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/lock.svg b/dist/assets/vendors/bootstrap-icons/lock.svg deleted file mode 100644 index d69c9cc34..000000000 --- a/dist/assets/vendors/bootstrap-icons/lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mailbox.svg b/dist/assets/vendors/bootstrap-icons/mailbox.svg deleted file mode 100644 index e2ac2f978..000000000 --- a/dist/assets/vendors/bootstrap-icons/mailbox.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mailbox2.svg b/dist/assets/vendors/bootstrap-icons/mailbox2.svg deleted file mode 100644 index 466c39611..000000000 --- a/dist/assets/vendors/bootstrap-icons/mailbox2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/map-fill.svg b/dist/assets/vendors/bootstrap-icons/map-fill.svg deleted file mode 100644 index b8c788e3f..000000000 --- a/dist/assets/vendors/bootstrap-icons/map-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/map.svg b/dist/assets/vendors/bootstrap-icons/map.svg deleted file mode 100644 index bbbb9d8ae..000000000 --- a/dist/assets/vendors/bootstrap-icons/map.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/markdown-fill.svg b/dist/assets/vendors/bootstrap-icons/markdown-fill.svg deleted file mode 100644 index 926df6566..000000000 --- a/dist/assets/vendors/bootstrap-icons/markdown-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/markdown.svg b/dist/assets/vendors/bootstrap-icons/markdown.svg deleted file mode 100644 index 5abf4e40c..000000000 --- a/dist/assets/vendors/bootstrap-icons/markdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mask.svg b/dist/assets/vendors/bootstrap-icons/mask.svg deleted file mode 100644 index cf907f58d..000000000 --- a/dist/assets/vendors/bootstrap-icons/mask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/megaphone-fill.svg b/dist/assets/vendors/bootstrap-icons/megaphone-fill.svg deleted file mode 100644 index 4f5d37816..000000000 --- a/dist/assets/vendors/bootstrap-icons/megaphone-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/megaphone.svg b/dist/assets/vendors/bootstrap-icons/megaphone.svg deleted file mode 100644 index 5aa51faea..000000000 --- a/dist/assets/vendors/bootstrap-icons/megaphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-app-fill.svg b/dist/assets/vendors/bootstrap-icons/menu-app-fill.svg deleted file mode 100644 index a497e0ef6..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-app-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-app.svg b/dist/assets/vendors/bootstrap-icons/menu-app.svg deleted file mode 100644 index 3fb97807c..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-button-fill.svg b/dist/assets/vendors/bootstrap-icons/menu-button-fill.svg deleted file mode 100644 index f99a3e708..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-button-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-button-wide-fill.svg b/dist/assets/vendors/bootstrap-icons/menu-button-wide-fill.svg deleted file mode 100644 index 57fd5e7b0..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-button-wide-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-button-wide.svg b/dist/assets/vendors/bootstrap-icons/menu-button-wide.svg deleted file mode 100644 index 0fd20d13a..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-button-wide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-button.svg b/dist/assets/vendors/bootstrap-icons/menu-button.svg deleted file mode 100644 index 3360799ce..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-button.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-down.svg b/dist/assets/vendors/bootstrap-icons/menu-down.svg deleted file mode 100644 index 5cab97465..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/menu-up.svg b/dist/assets/vendors/bootstrap-icons/menu-up.svg deleted file mode 100644 index 402d824dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/menu-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mic-fill.svg b/dist/assets/vendors/bootstrap-icons/mic-fill.svg deleted file mode 100644 index 8846ceffe..000000000 --- a/dist/assets/vendors/bootstrap-icons/mic-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mic-mute-fill.svg b/dist/assets/vendors/bootstrap-icons/mic-mute-fill.svg deleted file mode 100644 index 62bc6b886..000000000 --- a/dist/assets/vendors/bootstrap-icons/mic-mute-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mic-mute.svg b/dist/assets/vendors/bootstrap-icons/mic-mute.svg deleted file mode 100644 index 57f56d479..000000000 --- a/dist/assets/vendors/bootstrap-icons/mic-mute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mic.svg b/dist/assets/vendors/bootstrap-icons/mic.svg deleted file mode 100644 index 0d243e764..000000000 --- a/dist/assets/vendors/bootstrap-icons/mic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/minecart-loaded.svg b/dist/assets/vendors/bootstrap-icons/minecart-loaded.svg deleted file mode 100644 index cc4fff146..000000000 --- a/dist/assets/vendors/bootstrap-icons/minecart-loaded.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/minecart.svg b/dist/assets/vendors/bootstrap-icons/minecart.svg deleted file mode 100644 index 4fbd4978a..000000000 --- a/dist/assets/vendors/bootstrap-icons/minecart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/moon.svg b/dist/assets/vendors/bootstrap-icons/moon.svg deleted file mode 100644 index b5e94e74b..000000000 --- a/dist/assets/vendors/bootstrap-icons/moon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mouse-fill.svg b/dist/assets/vendors/bootstrap-icons/mouse-fill.svg deleted file mode 100644 index a5d91e6d8..000000000 --- a/dist/assets/vendors/bootstrap-icons/mouse-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mouse.svg b/dist/assets/vendors/bootstrap-icons/mouse.svg deleted file mode 100644 index 1ee24e5b4..000000000 --- a/dist/assets/vendors/bootstrap-icons/mouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mouse2-fill.svg b/dist/assets/vendors/bootstrap-icons/mouse2-fill.svg deleted file mode 100644 index 42bb1b7cd..000000000 --- a/dist/assets/vendors/bootstrap-icons/mouse2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mouse2.svg b/dist/assets/vendors/bootstrap-icons/mouse2.svg deleted file mode 100644 index 9afc37478..000000000 --- a/dist/assets/vendors/bootstrap-icons/mouse2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mouse3-fill.svg b/dist/assets/vendors/bootstrap-icons/mouse3-fill.svg deleted file mode 100644 index 328ec9c0c..000000000 --- a/dist/assets/vendors/bootstrap-icons/mouse3-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/mouse3.svg b/dist/assets/vendors/bootstrap-icons/mouse3.svg deleted file mode 100644 index 50eabeba8..000000000 --- a/dist/assets/vendors/bootstrap-icons/mouse3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/music-note-beamed.svg b/dist/assets/vendors/bootstrap-icons/music-note-beamed.svg deleted file mode 100644 index 74084ba80..000000000 --- a/dist/assets/vendors/bootstrap-icons/music-note-beamed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/music-note-list.svg b/dist/assets/vendors/bootstrap-icons/music-note-list.svg deleted file mode 100644 index fee82ec33..000000000 --- a/dist/assets/vendors/bootstrap-icons/music-note-list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/music-note.svg b/dist/assets/vendors/bootstrap-icons/music-note.svg deleted file mode 100644 index b3a3cb2b8..000000000 --- a/dist/assets/vendors/bootstrap-icons/music-note.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/music-player-fill.svg b/dist/assets/vendors/bootstrap-icons/music-player-fill.svg deleted file mode 100644 index c903f8a74..000000000 --- a/dist/assets/vendors/bootstrap-icons/music-player-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/music-player.svg b/dist/assets/vendors/bootstrap-icons/music-player.svg deleted file mode 100644 index 283fc27e9..000000000 --- a/dist/assets/vendors/bootstrap-icons/music-player.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/newspaper.svg b/dist/assets/vendors/bootstrap-icons/newspaper.svg deleted file mode 100644 index 099cef2d5..000000000 --- a/dist/assets/vendors/bootstrap-icons/newspaper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/node-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/node-minus-fill.svg deleted file mode 100644 index a0f20bbc6..000000000 --- a/dist/assets/vendors/bootstrap-icons/node-minus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/node-minus.svg b/dist/assets/vendors/bootstrap-icons/node-minus.svg deleted file mode 100644 index eb0a947e5..000000000 --- a/dist/assets/vendors/bootstrap-icons/node-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/node-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/node-plus-fill.svg deleted file mode 100644 index 131a411ff..000000000 --- a/dist/assets/vendors/bootstrap-icons/node-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/node-plus.svg b/dist/assets/vendors/bootstrap-icons/node-plus.svg deleted file mode 100644 index d2a981e95..000000000 --- a/dist/assets/vendors/bootstrap-icons/node-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/nut-fill.svg b/dist/assets/vendors/bootstrap-icons/nut-fill.svg deleted file mode 100644 index d33b38625..000000000 --- a/dist/assets/vendors/bootstrap-icons/nut-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/nut.svg b/dist/assets/vendors/bootstrap-icons/nut.svg deleted file mode 100644 index 8b68b4fea..000000000 --- a/dist/assets/vendors/bootstrap-icons/nut.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/octagon-fill.svg b/dist/assets/vendors/bootstrap-icons/octagon-fill.svg deleted file mode 100644 index 632a40f8a..000000000 --- a/dist/assets/vendors/bootstrap-icons/octagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/octagon-half.svg b/dist/assets/vendors/bootstrap-icons/octagon-half.svg deleted file mode 100644 index 288eed5a3..000000000 --- a/dist/assets/vendors/bootstrap-icons/octagon-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/octagon.svg b/dist/assets/vendors/bootstrap-icons/octagon.svg deleted file mode 100644 index 054ac826d..000000000 --- a/dist/assets/vendors/bootstrap-icons/octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/option.svg b/dist/assets/vendors/bootstrap-icons/option.svg deleted file mode 100644 index 43ce09a4d..000000000 --- a/dist/assets/vendors/bootstrap-icons/option.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/outlet.svg b/dist/assets/vendors/bootstrap-icons/outlet.svg deleted file mode 100644 index 3642b7a6b..000000000 --- a/dist/assets/vendors/bootstrap-icons/outlet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/paint-bucket.svg b/dist/assets/vendors/bootstrap-icons/paint-bucket.svg deleted file mode 100644 index 7f2c85032..000000000 --- a/dist/assets/vendors/bootstrap-icons/paint-bucket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/palette-fill.svg b/dist/assets/vendors/bootstrap-icons/palette-fill.svg deleted file mode 100644 index 240b0f5dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/palette-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/palette.svg b/dist/assets/vendors/bootstrap-icons/palette.svg deleted file mode 100644 index cfec396f6..000000000 --- a/dist/assets/vendors/bootstrap-icons/palette.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/palette2.svg b/dist/assets/vendors/bootstrap-icons/palette2.svg deleted file mode 100644 index d6ed08cb1..000000000 --- a/dist/assets/vendors/bootstrap-icons/palette2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/paperclip.svg b/dist/assets/vendors/bootstrap-icons/paperclip.svg deleted file mode 100644 index e1d74fe54..000000000 --- a/dist/assets/vendors/bootstrap-icons/paperclip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/paragraph.svg b/dist/assets/vendors/bootstrap-icons/paragraph.svg deleted file mode 100644 index 6a464eedd..000000000 --- a/dist/assets/vendors/bootstrap-icons/paragraph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-check-fill.svg b/dist/assets/vendors/bootstrap-icons/patch-check-fill.svg deleted file mode 100644 index 35f5b8561..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-check.svg b/dist/assets/vendors/bootstrap-icons/patch-check.svg deleted file mode 100644 index 9ae1a76b7..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-exclamation-fill.svg b/dist/assets/vendors/bootstrap-icons/patch-exclamation-fill.svg deleted file mode 100644 index c4796b77d..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-exclamation-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-exclamation.svg b/dist/assets/vendors/bootstrap-icons/patch-exclamation.svg deleted file mode 100644 index 575929e64..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-exclamation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/patch-minus-fill.svg deleted file mode 100644 index 12f35c23b..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-minus-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-minus.svg b/dist/assets/vendors/bootstrap-icons/patch-minus.svg deleted file mode 100644 index 3bf45e9c9..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/patch-plus-fill.svg deleted file mode 100644 index 260cdfd20..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-plus.svg b/dist/assets/vendors/bootstrap-icons/patch-plus.svg deleted file mode 100644 index 757735f07..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-question-fill.svg b/dist/assets/vendors/bootstrap-icons/patch-question-fill.svg deleted file mode 100644 index 665588b3c..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-question-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/patch-question.svg b/dist/assets/vendors/bootstrap-icons/patch-question.svg deleted file mode 100644 index 182734ac1..000000000 --- a/dist/assets/vendors/bootstrap-icons/patch-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pause-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/pause-btn-fill.svg deleted file mode 100644 index b3ba6edc6..000000000 --- a/dist/assets/vendors/bootstrap-icons/pause-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pause-btn.svg b/dist/assets/vendors/bootstrap-icons/pause-btn.svg deleted file mode 100644 index 1f4ee7f3e..000000000 --- a/dist/assets/vendors/bootstrap-icons/pause-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pause-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/pause-circle-fill.svg deleted file mode 100644 index c1497ee20..000000000 --- a/dist/assets/vendors/bootstrap-icons/pause-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pause-circle.svg b/dist/assets/vendors/bootstrap-icons/pause-circle.svg deleted file mode 100644 index 7b89cbc18..000000000 --- a/dist/assets/vendors/bootstrap-icons/pause-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pause-fill.svg b/dist/assets/vendors/bootstrap-icons/pause-fill.svg deleted file mode 100644 index c38d7b02a..000000000 --- a/dist/assets/vendors/bootstrap-icons/pause-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pause.svg b/dist/assets/vendors/bootstrap-icons/pause.svg deleted file mode 100644 index ab1430374..000000000 --- a/dist/assets/vendors/bootstrap-icons/pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/peace-fill.svg b/dist/assets/vendors/bootstrap-icons/peace-fill.svg deleted file mode 100644 index d2a751a8c..000000000 --- a/dist/assets/vendors/bootstrap-icons/peace-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/peace.svg b/dist/assets/vendors/bootstrap-icons/peace.svg deleted file mode 100644 index a7353a758..000000000 --- a/dist/assets/vendors/bootstrap-icons/peace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pen-fill.svg b/dist/assets/vendors/bootstrap-icons/pen-fill.svg deleted file mode 100644 index e1e6d9ba8..000000000 --- a/dist/assets/vendors/bootstrap-icons/pen-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pen.svg b/dist/assets/vendors/bootstrap-icons/pen.svg deleted file mode 100644 index a35b50562..000000000 --- a/dist/assets/vendors/bootstrap-icons/pen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pencil-fill.svg b/dist/assets/vendors/bootstrap-icons/pencil-fill.svg deleted file mode 100644 index 47a1c30d9..000000000 --- a/dist/assets/vendors/bootstrap-icons/pencil-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pencil-square.svg b/dist/assets/vendors/bootstrap-icons/pencil-square.svg deleted file mode 100644 index dae491fdc..000000000 --- a/dist/assets/vendors/bootstrap-icons/pencil-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pencil.svg b/dist/assets/vendors/bootstrap-icons/pencil.svg deleted file mode 100644 index 841e87de7..000000000 --- a/dist/assets/vendors/bootstrap-icons/pencil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pentagon-fill.svg b/dist/assets/vendors/bootstrap-icons/pentagon-fill.svg deleted file mode 100644 index 6234a47e0..000000000 --- a/dist/assets/vendors/bootstrap-icons/pentagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pentagon-half.svg b/dist/assets/vendors/bootstrap-icons/pentagon-half.svg deleted file mode 100644 index 4e76c0537..000000000 --- a/dist/assets/vendors/bootstrap-icons/pentagon-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pentagon.svg b/dist/assets/vendors/bootstrap-icons/pentagon.svg deleted file mode 100644 index 9f4ede211..000000000 --- a/dist/assets/vendors/bootstrap-icons/pentagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/people-fill.svg b/dist/assets/vendors/bootstrap-icons/people-fill.svg deleted file mode 100644 index f351e9a95..000000000 --- a/dist/assets/vendors/bootstrap-icons/people-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/people.svg b/dist/assets/vendors/bootstrap-icons/people.svg deleted file mode 100644 index 7eccd3a52..000000000 --- a/dist/assets/vendors/bootstrap-icons/people.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/percent.svg b/dist/assets/vendors/bootstrap-icons/percent.svg deleted file mode 100644 index e4ffe7953..000000000 --- a/dist/assets/vendors/bootstrap-icons/percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-badge-fill.svg b/dist/assets/vendors/bootstrap-icons/person-badge-fill.svg deleted file mode 100644 index 76c88e6c5..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-badge-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-badge.svg b/dist/assets/vendors/bootstrap-icons/person-badge.svg deleted file mode 100644 index 6a1295665..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-bounding-box.svg b/dist/assets/vendors/bootstrap-icons/person-bounding-box.svg deleted file mode 100644 index bd1932be1..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-bounding-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-check-fill.svg b/dist/assets/vendors/bootstrap-icons/person-check-fill.svg deleted file mode 100644 index d83ed08b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-check-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-check.svg b/dist/assets/vendors/bootstrap-icons/person-check.svg deleted file mode 100644 index 5ff11c8a8..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-circle.svg b/dist/assets/vendors/bootstrap-icons/person-circle.svg deleted file mode 100644 index e5f9407dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-dash-fill.svg b/dist/assets/vendors/bootstrap-icons/person-dash-fill.svg deleted file mode 100644 index 4d8413dc8..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-dash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-dash.svg b/dist/assets/vendors/bootstrap-icons/person-dash.svg deleted file mode 100644 index 4518fec8d..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-dash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-fill.svg b/dist/assets/vendors/bootstrap-icons/person-fill.svg deleted file mode 100644 index 95b0ee0e2..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-lines-fill.svg b/dist/assets/vendors/bootstrap-icons/person-lines-fill.svg deleted file mode 100644 index e1231112f..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-lines-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/person-plus-fill.svg deleted file mode 100644 index c14d96aaf..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-plus.svg b/dist/assets/vendors/bootstrap-icons/person-plus.svg deleted file mode 100644 index 22f4dfd5c..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-square.svg b/dist/assets/vendors/bootstrap-icons/person-square.svg deleted file mode 100644 index ba5589274..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-x-fill.svg b/dist/assets/vendors/bootstrap-icons/person-x-fill.svg deleted file mode 100644 index 016088f04..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person-x.svg b/dist/assets/vendors/bootstrap-icons/person-x.svg deleted file mode 100644 index 7be30ab84..000000000 --- a/dist/assets/vendors/bootstrap-icons/person-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/person.svg b/dist/assets/vendors/bootstrap-icons/person.svg deleted file mode 100644 index e6326f137..000000000 --- a/dist/assets/vendors/bootstrap-icons/person.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/phone-fill.svg b/dist/assets/vendors/bootstrap-icons/phone-fill.svg deleted file mode 100644 index 15fe9294b..000000000 --- a/dist/assets/vendors/bootstrap-icons/phone-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/phone-landscape-fill.svg b/dist/assets/vendors/bootstrap-icons/phone-landscape-fill.svg deleted file mode 100644 index 98ed48e2d..000000000 --- a/dist/assets/vendors/bootstrap-icons/phone-landscape-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/phone-landscape.svg b/dist/assets/vendors/bootstrap-icons/phone-landscape.svg deleted file mode 100644 index 9b6f8473d..000000000 --- a/dist/assets/vendors/bootstrap-icons/phone-landscape.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/phone-vibrate-fill.svg b/dist/assets/vendors/bootstrap-icons/phone-vibrate-fill.svg deleted file mode 100644 index 7fa0dcfb7..000000000 --- a/dist/assets/vendors/bootstrap-icons/phone-vibrate-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/phone-vibrate.svg b/dist/assets/vendors/bootstrap-icons/phone-vibrate.svg deleted file mode 100644 index 64aaa0ed0..000000000 --- a/dist/assets/vendors/bootstrap-icons/phone-vibrate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/phone.svg b/dist/assets/vendors/bootstrap-icons/phone.svg deleted file mode 100644 index d940b21c3..000000000 --- a/dist/assets/vendors/bootstrap-icons/phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pie-chart-fill.svg b/dist/assets/vendors/bootstrap-icons/pie-chart-fill.svg deleted file mode 100644 index a63d66f93..000000000 --- a/dist/assets/vendors/bootstrap-icons/pie-chart-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pie-chart.svg b/dist/assets/vendors/bootstrap-icons/pie-chart.svg deleted file mode 100644 index 53ebf6bad..000000000 --- a/dist/assets/vendors/bootstrap-icons/pie-chart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pin-angle-fill.svg b/dist/assets/vendors/bootstrap-icons/pin-angle-fill.svg deleted file mode 100644 index 6bfd0e9e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/pin-angle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pin-angle.svg b/dist/assets/vendors/bootstrap-icons/pin-angle.svg deleted file mode 100644 index 9c0c35ba6..000000000 --- a/dist/assets/vendors/bootstrap-icons/pin-angle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pin-fill.svg b/dist/assets/vendors/bootstrap-icons/pin-fill.svg deleted file mode 100644 index 5c9c8f898..000000000 --- a/dist/assets/vendors/bootstrap-icons/pin-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pin.svg b/dist/assets/vendors/bootstrap-icons/pin.svg deleted file mode 100644 index 268543745..000000000 --- a/dist/assets/vendors/bootstrap-icons/pin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pip-fill.svg b/dist/assets/vendors/bootstrap-icons/pip-fill.svg deleted file mode 100644 index 00beb336c..000000000 --- a/dist/assets/vendors/bootstrap-icons/pip-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/pip.svg b/dist/assets/vendors/bootstrap-icons/pip.svg deleted file mode 100644 index 31f09aab8..000000000 --- a/dist/assets/vendors/bootstrap-icons/pip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/play-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/play-btn-fill.svg deleted file mode 100644 index a6d17e5e0..000000000 --- a/dist/assets/vendors/bootstrap-icons/play-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/play-btn.svg b/dist/assets/vendors/bootstrap-icons/play-btn.svg deleted file mode 100644 index 0b1a23825..000000000 --- a/dist/assets/vendors/bootstrap-icons/play-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/play-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/play-circle-fill.svg deleted file mode 100644 index 099e68a92..000000000 --- a/dist/assets/vendors/bootstrap-icons/play-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/play-circle.svg b/dist/assets/vendors/bootstrap-icons/play-circle.svg deleted file mode 100644 index 29f5e8d35..000000000 --- a/dist/assets/vendors/bootstrap-icons/play-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/play-fill.svg b/dist/assets/vendors/bootstrap-icons/play-fill.svg deleted file mode 100644 index 8eab55e0f..000000000 --- a/dist/assets/vendors/bootstrap-icons/play-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/play.svg b/dist/assets/vendors/bootstrap-icons/play.svg deleted file mode 100644 index 51250ad90..000000000 --- a/dist/assets/vendors/bootstrap-icons/play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plug-fill.svg b/dist/assets/vendors/bootstrap-icons/plug-fill.svg deleted file mode 100644 index fcda7cd56..000000000 --- a/dist/assets/vendors/bootstrap-icons/plug-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plug.svg b/dist/assets/vendors/bootstrap-icons/plug.svg deleted file mode 100644 index 2317b9b58..000000000 --- a/dist/assets/vendors/bootstrap-icons/plug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus-circle-dotted.svg b/dist/assets/vendors/bootstrap-icons/plus-circle-dotted.svg deleted file mode 100644 index 85640fc65..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus-circle-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/plus-circle-fill.svg deleted file mode 100644 index d0a2cfac3..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus-circle.svg b/dist/assets/vendors/bootstrap-icons/plus-circle.svg deleted file mode 100644 index 56328459f..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus-square-dotted.svg b/dist/assets/vendors/bootstrap-icons/plus-square-dotted.svg deleted file mode 100644 index 34a674b7b..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus-square-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus-square-fill.svg b/dist/assets/vendors/bootstrap-icons/plus-square-fill.svg deleted file mode 100644 index 5af0876be..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus-square.svg b/dist/assets/vendors/bootstrap-icons/plus-square.svg deleted file mode 100644 index a0c5d3b8d..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/plus.svg b/dist/assets/vendors/bootstrap-icons/plus.svg deleted file mode 100644 index b76067f87..000000000 --- a/dist/assets/vendors/bootstrap-icons/plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/power.svg b/dist/assets/vendors/bootstrap-icons/power.svg deleted file mode 100644 index 86b630a2f..000000000 --- a/dist/assets/vendors/bootstrap-icons/power.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/printer-fill.svg b/dist/assets/vendors/bootstrap-icons/printer-fill.svg deleted file mode 100644 index 626156a48..000000000 --- a/dist/assets/vendors/bootstrap-icons/printer-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/printer.svg b/dist/assets/vendors/bootstrap-icons/printer.svg deleted file mode 100644 index 8d43cbceb..000000000 --- a/dist/assets/vendors/bootstrap-icons/printer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/puzzle-fill.svg b/dist/assets/vendors/bootstrap-icons/puzzle-fill.svg deleted file mode 100644 index 9f1bd5a7f..000000000 --- a/dist/assets/vendors/bootstrap-icons/puzzle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/puzzle.svg b/dist/assets/vendors/bootstrap-icons/puzzle.svg deleted file mode 100644 index 33f0dea08..000000000 --- a/dist/assets/vendors/bootstrap-icons/puzzle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/question-circle-fill.svg deleted file mode 100644 index 83e4f3121..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-circle.svg b/dist/assets/vendors/bootstrap-icons/question-circle.svg deleted file mode 100644 index 53e86f85d..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-diamond-fill.svg b/dist/assets/vendors/bootstrap-icons/question-diamond-fill.svg deleted file mode 100644 index aa296e31f..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-diamond-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-diamond.svg b/dist/assets/vendors/bootstrap-icons/question-diamond.svg deleted file mode 100644 index a4af6b102..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-octagon-fill.svg b/dist/assets/vendors/bootstrap-icons/question-octagon-fill.svg deleted file mode 100644 index dcd33c949..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-octagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-octagon.svg b/dist/assets/vendors/bootstrap-icons/question-octagon.svg deleted file mode 100644 index 93084a0ce..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-square-fill.svg b/dist/assets/vendors/bootstrap-icons/question-square-fill.svg deleted file mode 100644 index f5060ce93..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question-square.svg b/dist/assets/vendors/bootstrap-icons/question-square.svg deleted file mode 100644 index b07d41f9d..000000000 --- a/dist/assets/vendors/bootstrap-icons/question-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/question.svg b/dist/assets/vendors/bootstrap-icons/question.svg deleted file mode 100644 index 05abe29c7..000000000 --- a/dist/assets/vendors/bootstrap-icons/question.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/receipt-cutoff.svg b/dist/assets/vendors/bootstrap-icons/receipt-cutoff.svg deleted file mode 100644 index 3126901a8..000000000 --- a/dist/assets/vendors/bootstrap-icons/receipt-cutoff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/receipt.svg b/dist/assets/vendors/bootstrap-icons/receipt.svg deleted file mode 100644 index fc5917caa..000000000 --- a/dist/assets/vendors/bootstrap-icons/receipt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reception-0.svg b/dist/assets/vendors/bootstrap-icons/reception-0.svg deleted file mode 100644 index d011054a8..000000000 --- a/dist/assets/vendors/bootstrap-icons/reception-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reception-1.svg b/dist/assets/vendors/bootstrap-icons/reception-1.svg deleted file mode 100644 index 4e81f5748..000000000 --- a/dist/assets/vendors/bootstrap-icons/reception-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reception-2.svg b/dist/assets/vendors/bootstrap-icons/reception-2.svg deleted file mode 100644 index 09f2dfca1..000000000 --- a/dist/assets/vendors/bootstrap-icons/reception-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reception-3.svg b/dist/assets/vendors/bootstrap-icons/reception-3.svg deleted file mode 100644 index 75421cf16..000000000 --- a/dist/assets/vendors/bootstrap-icons/reception-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reception-4.svg b/dist/assets/vendors/bootstrap-icons/reception-4.svg deleted file mode 100644 index 3b4fb86be..000000000 --- a/dist/assets/vendors/bootstrap-icons/reception-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/record-btn-fill.svg deleted file mode 100644 index eccc335a3..000000000 --- a/dist/assets/vendors/bootstrap-icons/record-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record-btn.svg b/dist/assets/vendors/bootstrap-icons/record-btn.svg deleted file mode 100644 index 34e1d62f7..000000000 --- a/dist/assets/vendors/bootstrap-icons/record-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/record-circle-fill.svg deleted file mode 100644 index 2398b750f..000000000 --- a/dist/assets/vendors/bootstrap-icons/record-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record-circle.svg b/dist/assets/vendors/bootstrap-icons/record-circle.svg deleted file mode 100644 index 959eee9d2..000000000 --- a/dist/assets/vendors/bootstrap-icons/record-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record-fill.svg b/dist/assets/vendors/bootstrap-icons/record-fill.svg deleted file mode 100644 index e180f322f..000000000 --- a/dist/assets/vendors/bootstrap-icons/record-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record.svg b/dist/assets/vendors/bootstrap-icons/record.svg deleted file mode 100644 index 56a2091de..000000000 --- a/dist/assets/vendors/bootstrap-icons/record.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record2-fill.svg b/dist/assets/vendors/bootstrap-icons/record2-fill.svg deleted file mode 100644 index d56a6b161..000000000 --- a/dist/assets/vendors/bootstrap-icons/record2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/record2.svg b/dist/assets/vendors/bootstrap-icons/record2.svg deleted file mode 100644 index 4c85716b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/record2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reply-all-fill.svg b/dist/assets/vendors/bootstrap-icons/reply-all-fill.svg deleted file mode 100644 index 003d18cd8..000000000 --- a/dist/assets/vendors/bootstrap-icons/reply-all-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reply-all.svg b/dist/assets/vendors/bootstrap-icons/reply-all.svg deleted file mode 100644 index 23bc6a717..000000000 --- a/dist/assets/vendors/bootstrap-icons/reply-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reply-fill.svg b/dist/assets/vendors/bootstrap-icons/reply-fill.svg deleted file mode 100644 index defee8f20..000000000 --- a/dist/assets/vendors/bootstrap-icons/reply-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/reply.svg b/dist/assets/vendors/bootstrap-icons/reply.svg deleted file mode 100644 index c58725bf7..000000000 --- a/dist/assets/vendors/bootstrap-icons/reply.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/rss-fill.svg b/dist/assets/vendors/bootstrap-icons/rss-fill.svg deleted file mode 100644 index d993f9762..000000000 --- a/dist/assets/vendors/bootstrap-icons/rss-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/rss.svg b/dist/assets/vendors/bootstrap-icons/rss.svg deleted file mode 100644 index 2f85589c4..000000000 --- a/dist/assets/vendors/bootstrap-icons/rss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/rulers.svg b/dist/assets/vendors/bootstrap-icons/rulers.svg deleted file mode 100644 index 5b22c8cb0..000000000 --- a/dist/assets/vendors/bootstrap-icons/rulers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/save-fill.svg b/dist/assets/vendors/bootstrap-icons/save-fill.svg deleted file mode 100644 index 14e767d87..000000000 --- a/dist/assets/vendors/bootstrap-icons/save-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/save.svg b/dist/assets/vendors/bootstrap-icons/save.svg deleted file mode 100644 index 72ef21658..000000000 --- a/dist/assets/vendors/bootstrap-icons/save.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/save2-fill.svg b/dist/assets/vendors/bootstrap-icons/save2-fill.svg deleted file mode 100644 index 2a041b9a0..000000000 --- a/dist/assets/vendors/bootstrap-icons/save2-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/save2.svg b/dist/assets/vendors/bootstrap-icons/save2.svg deleted file mode 100644 index 689c02e7a..000000000 --- a/dist/assets/vendors/bootstrap-icons/save2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/scissors.svg b/dist/assets/vendors/bootstrap-icons/scissors.svg deleted file mode 100644 index 8aac06f25..000000000 --- a/dist/assets/vendors/bootstrap-icons/scissors.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/screwdriver.svg b/dist/assets/vendors/bootstrap-icons/screwdriver.svg deleted file mode 100644 index d6d6b7f25..000000000 --- a/dist/assets/vendors/bootstrap-icons/screwdriver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/search.svg b/dist/assets/vendors/bootstrap-icons/search.svg deleted file mode 100644 index 4af29729b..000000000 --- a/dist/assets/vendors/bootstrap-icons/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/segmented-nav.svg b/dist/assets/vendors/bootstrap-icons/segmented-nav.svg deleted file mode 100644 index 42323b2f9..000000000 --- a/dist/assets/vendors/bootstrap-icons/segmented-nav.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/server.svg b/dist/assets/vendors/bootstrap-icons/server.svg deleted file mode 100644 index 68671b05e..000000000 --- a/dist/assets/vendors/bootstrap-icons/server.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/share-fill.svg b/dist/assets/vendors/bootstrap-icons/share-fill.svg deleted file mode 100644 index 337fe8413..000000000 --- a/dist/assets/vendors/bootstrap-icons/share-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/share.svg b/dist/assets/vendors/bootstrap-icons/share.svg deleted file mode 100644 index 5e50256c6..000000000 --- a/dist/assets/vendors/bootstrap-icons/share.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-check.svg b/dist/assets/vendors/bootstrap-icons/shield-check.svg deleted file mode 100644 index 524498afc..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-exclamation.svg b/dist/assets/vendors/bootstrap-icons/shield-exclamation.svg deleted file mode 100644 index 8f5f5890a..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-exclamation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-fill-check.svg b/dist/assets/vendors/bootstrap-icons/shield-fill-check.svg deleted file mode 100644 index 0fbb914a7..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-fill-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-fill-exclamation.svg b/dist/assets/vendors/bootstrap-icons/shield-fill-exclamation.svg deleted file mode 100644 index b489a6816..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-fill-exclamation.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-fill-minus.svg b/dist/assets/vendors/bootstrap-icons/shield-fill-minus.svg deleted file mode 100644 index b91434d23..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-fill-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-fill-plus.svg b/dist/assets/vendors/bootstrap-icons/shield-fill-plus.svg deleted file mode 100644 index d98e26912..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-fill-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-fill-x.svg b/dist/assets/vendors/bootstrap-icons/shield-fill-x.svg deleted file mode 100644 index bdd8472d9..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-fill-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-fill.svg b/dist/assets/vendors/bootstrap-icons/shield-fill.svg deleted file mode 100644 index cf9cecc65..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-lock-fill.svg b/dist/assets/vendors/bootstrap-icons/shield-lock-fill.svg deleted file mode 100644 index ce0195da9..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-lock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-lock.svg b/dist/assets/vendors/bootstrap-icons/shield-lock.svg deleted file mode 100644 index 2f692516d..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-minus.svg b/dist/assets/vendors/bootstrap-icons/shield-minus.svg deleted file mode 100644 index 6cc0fd6fc..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-plus.svg b/dist/assets/vendors/bootstrap-icons/shield-plus.svg deleted file mode 100644 index f40374f1e..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-shaded.svg b/dist/assets/vendors/bootstrap-icons/shield-shaded.svg deleted file mode 100644 index 5f45e6e6d..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-shaded.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-slash-fill.svg b/dist/assets/vendors/bootstrap-icons/shield-slash-fill.svg deleted file mode 100644 index a51f5203d..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-slash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-slash.svg b/dist/assets/vendors/bootstrap-icons/shield-slash.svg deleted file mode 100644 index 2d9032809..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-slash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield-x.svg b/dist/assets/vendors/bootstrap-icons/shield-x.svg deleted file mode 100644 index c07ca65a0..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shield.svg b/dist/assets/vendors/bootstrap-icons/shield.svg deleted file mode 100644 index 05eb7bcde..000000000 --- a/dist/assets/vendors/bootstrap-icons/shield.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shift-fill.svg b/dist/assets/vendors/bootstrap-icons/shift-fill.svg deleted file mode 100644 index 70b8feb7d..000000000 --- a/dist/assets/vendors/bootstrap-icons/shift-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shift.svg b/dist/assets/vendors/bootstrap-icons/shift.svg deleted file mode 100644 index 3caf37112..000000000 --- a/dist/assets/vendors/bootstrap-icons/shift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shop-window.svg b/dist/assets/vendors/bootstrap-icons/shop-window.svg deleted file mode 100644 index 4d964ca75..000000000 --- a/dist/assets/vendors/bootstrap-icons/shop-window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shop.svg b/dist/assets/vendors/bootstrap-icons/shop.svg deleted file mode 100644 index 8bea2011d..000000000 --- a/dist/assets/vendors/bootstrap-icons/shop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/shuffle.svg b/dist/assets/vendors/bootstrap-icons/shuffle.svg deleted file mode 100644 index b648c80e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/shuffle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/signpost-2-fill.svg b/dist/assets/vendors/bootstrap-icons/signpost-2-fill.svg deleted file mode 100644 index cc51e517d..000000000 --- a/dist/assets/vendors/bootstrap-icons/signpost-2-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/signpost-2.svg b/dist/assets/vendors/bootstrap-icons/signpost-2.svg deleted file mode 100644 index 238f3747b..000000000 --- a/dist/assets/vendors/bootstrap-icons/signpost-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/signpost-fill.svg b/dist/assets/vendors/bootstrap-icons/signpost-fill.svg deleted file mode 100644 index 5e318d236..000000000 --- a/dist/assets/vendors/bootstrap-icons/signpost-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/signpost-split-fill.svg b/dist/assets/vendors/bootstrap-icons/signpost-split-fill.svg deleted file mode 100644 index 4dd4cfa79..000000000 --- a/dist/assets/vendors/bootstrap-icons/signpost-split-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/signpost-split.svg b/dist/assets/vendors/bootstrap-icons/signpost-split.svg deleted file mode 100644 index facbf2757..000000000 --- a/dist/assets/vendors/bootstrap-icons/signpost-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/signpost.svg b/dist/assets/vendors/bootstrap-icons/signpost.svg deleted file mode 100644 index d7c8a2696..000000000 --- a/dist/assets/vendors/bootstrap-icons/signpost.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sim-fill.svg b/dist/assets/vendors/bootstrap-icons/sim-fill.svg deleted file mode 100644 index fa5b69d02..000000000 --- a/dist/assets/vendors/bootstrap-icons/sim-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sim.svg b/dist/assets/vendors/bootstrap-icons/sim.svg deleted file mode 100644 index 0e356ce1e..000000000 --- a/dist/assets/vendors/bootstrap-icons/sim.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-backward-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-backward-btn-fill.svg deleted file mode 100644 index 5ef402961..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-backward-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-backward-btn.svg b/dist/assets/vendors/bootstrap-icons/skip-backward-btn.svg deleted file mode 100644 index ac77f1f2e..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-backward-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-backward-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-backward-circle-fill.svg deleted file mode 100644 index ef6be9391..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-backward-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-backward-circle.svg b/dist/assets/vendors/bootstrap-icons/skip-backward-circle.svg deleted file mode 100644 index 852de72fb..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-backward-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-backward-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-backward-fill.svg deleted file mode 100644 index ef0a63992..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-backward-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-backward.svg b/dist/assets/vendors/bootstrap-icons/skip-backward.svg deleted file mode 100644 index 9be60fe7f..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-backward.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-end-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-end-btn-fill.svg deleted file mode 100644 index df7ea3997..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-end-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-end-btn.svg b/dist/assets/vendors/bootstrap-icons/skip-end-btn.svg deleted file mode 100644 index d59416bad..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-end-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-end-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-end-circle-fill.svg deleted file mode 100644 index aac080076..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-end-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-end-circle.svg b/dist/assets/vendors/bootstrap-icons/skip-end-circle.svg deleted file mode 100644 index cde0c208e..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-end-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-end-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-end-fill.svg deleted file mode 100644 index fa90d3fc2..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-end-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-end.svg b/dist/assets/vendors/bootstrap-icons/skip-end.svg deleted file mode 100644 index cd104fca8..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-forward-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-forward-btn-fill.svg deleted file mode 100644 index b29809e94..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-forward-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-forward-btn.svg b/dist/assets/vendors/bootstrap-icons/skip-forward-btn.svg deleted file mode 100644 index bd9ae4983..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-forward-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-forward-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-forward-circle-fill.svg deleted file mode 100644 index 703697a67..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-forward-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-forward-circle.svg b/dist/assets/vendors/bootstrap-icons/skip-forward-circle.svg deleted file mode 100644 index e63345fc4..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-forward-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-forward-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-forward-fill.svg deleted file mode 100644 index 5e213c5fb..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-forward-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-forward.svg b/dist/assets/vendors/bootstrap-icons/skip-forward.svg deleted file mode 100644 index 50c4209a3..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-start-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-start-btn-fill.svg deleted file mode 100644 index 2beb6370c..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-start-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-start-btn.svg b/dist/assets/vendors/bootstrap-icons/skip-start-btn.svg deleted file mode 100644 index e86ddd9d2..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-start-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-start-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-start-circle-fill.svg deleted file mode 100644 index 2dacfbae9..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-start-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-start-circle.svg b/dist/assets/vendors/bootstrap-icons/skip-start-circle.svg deleted file mode 100644 index 3c4f80438..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-start-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-start-fill.svg b/dist/assets/vendors/bootstrap-icons/skip-start-fill.svg deleted file mode 100644 index 75efd79f9..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-start-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/skip-start.svg b/dist/assets/vendors/bootstrap-icons/skip-start.svg deleted file mode 100644 index 60a43e9fa..000000000 --- a/dist/assets/vendors/bootstrap-icons/skip-start.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/slack.svg b/dist/assets/vendors/bootstrap-icons/slack.svg deleted file mode 100644 index 5860ac201..000000000 --- a/dist/assets/vendors/bootstrap-icons/slack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/slash-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/slash-circle-fill.svg deleted file mode 100644 index f7031017a..000000000 --- a/dist/assets/vendors/bootstrap-icons/slash-circle-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/slash-circle.svg b/dist/assets/vendors/bootstrap-icons/slash-circle.svg deleted file mode 100644 index caa295f7c..000000000 --- a/dist/assets/vendors/bootstrap-icons/slash-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/slash-square-fill.svg b/dist/assets/vendors/bootstrap-icons/slash-square-fill.svg deleted file mode 100644 index 6df80c3e2..000000000 --- a/dist/assets/vendors/bootstrap-icons/slash-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/slash-square.svg b/dist/assets/vendors/bootstrap-icons/slash-square.svg deleted file mode 100644 index 98efbf959..000000000 --- a/dist/assets/vendors/bootstrap-icons/slash-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/slash.svg b/dist/assets/vendors/bootstrap-icons/slash.svg deleted file mode 100644 index 98f25e54a..000000000 --- a/dist/assets/vendors/bootstrap-icons/slash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sliders.svg b/dist/assets/vendors/bootstrap-icons/sliders.svg deleted file mode 100644 index 0daf0af2e..000000000 --- a/dist/assets/vendors/bootstrap-icons/sliders.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/smartwatch.svg b/dist/assets/vendors/bootstrap-icons/smartwatch.svg deleted file mode 100644 index e56399274..000000000 --- a/dist/assets/vendors/bootstrap-icons/smartwatch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-alpha-down-alt.svg b/dist/assets/vendors/bootstrap-icons/sort-alpha-down-alt.svg deleted file mode 100644 index 7477d950e..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-alpha-down-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-alpha-down.svg b/dist/assets/vendors/bootstrap-icons/sort-alpha-down.svg deleted file mode 100644 index be5e02d7c..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-alpha-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-alpha-up-alt.svg b/dist/assets/vendors/bootstrap-icons/sort-alpha-up-alt.svg deleted file mode 100644 index 76bf9337f..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-alpha-up-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-alpha-up.svg b/dist/assets/vendors/bootstrap-icons/sort-alpha-up.svg deleted file mode 100644 index 6b1bb1cb1..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-alpha-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-down-alt.svg b/dist/assets/vendors/bootstrap-icons/sort-down-alt.svg deleted file mode 100644 index d7f7fc8f7..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-down-alt.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-down.svg b/dist/assets/vendors/bootstrap-icons/sort-down.svg deleted file mode 100644 index 95de741ac..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-numeric-down-alt.svg b/dist/assets/vendors/bootstrap-icons/sort-numeric-down-alt.svg deleted file mode 100644 index 3080ebaf3..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-numeric-down-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-numeric-down.svg b/dist/assets/vendors/bootstrap-icons/sort-numeric-down.svg deleted file mode 100644 index ccbb25eb9..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-numeric-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-numeric-up-alt.svg b/dist/assets/vendors/bootstrap-icons/sort-numeric-up-alt.svg deleted file mode 100644 index df4c694fa..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-numeric-up-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-numeric-up.svg b/dist/assets/vendors/bootstrap-icons/sort-numeric-up.svg deleted file mode 100644 index f2e6addd4..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-numeric-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-up-alt.svg b/dist/assets/vendors/bootstrap-icons/sort-up-alt.svg deleted file mode 100644 index 96650d5aa..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-up-alt.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sort-up.svg b/dist/assets/vendors/bootstrap-icons/sort-up.svg deleted file mode 100644 index 1fb9fa096..000000000 --- a/dist/assets/vendors/bootstrap-icons/sort-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/soundwave.svg b/dist/assets/vendors/bootstrap-icons/soundwave.svg deleted file mode 100644 index 288f108b2..000000000 --- a/dist/assets/vendors/bootstrap-icons/soundwave.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/speaker-fill.svg b/dist/assets/vendors/bootstrap-icons/speaker-fill.svg deleted file mode 100644 index e738df461..000000000 --- a/dist/assets/vendors/bootstrap-icons/speaker-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/speaker.svg b/dist/assets/vendors/bootstrap-icons/speaker.svg deleted file mode 100644 index ba37dedf3..000000000 --- a/dist/assets/vendors/bootstrap-icons/speaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/speedometer.svg b/dist/assets/vendors/bootstrap-icons/speedometer.svg deleted file mode 100644 index d231f03bb..000000000 --- a/dist/assets/vendors/bootstrap-icons/speedometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/speedometer2.svg b/dist/assets/vendors/bootstrap-icons/speedometer2.svg deleted file mode 100644 index 0f9493cb5..000000000 --- a/dist/assets/vendors/bootstrap-icons/speedometer2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/spellcheck.svg b/dist/assets/vendors/bootstrap-icons/spellcheck.svg deleted file mode 100644 index 029950f5a..000000000 --- a/dist/assets/vendors/bootstrap-icons/spellcheck.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/square-fill.svg b/dist/assets/vendors/bootstrap-icons/square-fill.svg deleted file mode 100644 index 731b024b3..000000000 --- a/dist/assets/vendors/bootstrap-icons/square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/square-half.svg b/dist/assets/vendors/bootstrap-icons/square-half.svg deleted file mode 100644 index 73bb440d6..000000000 --- a/dist/assets/vendors/bootstrap-icons/square-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/square.svg b/dist/assets/vendors/bootstrap-icons/square.svg deleted file mode 100644 index ded82d436..000000000 --- a/dist/assets/vendors/bootstrap-icons/square.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stack.svg b/dist/assets/vendors/bootstrap-icons/stack.svg deleted file mode 100644 index a9dad5aa7..000000000 --- a/dist/assets/vendors/bootstrap-icons/stack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/star-fill.svg b/dist/assets/vendors/bootstrap-icons/star-fill.svg deleted file mode 100644 index f01db7a8d..000000000 --- a/dist/assets/vendors/bootstrap-icons/star-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/star-half.svg b/dist/assets/vendors/bootstrap-icons/star-half.svg deleted file mode 100644 index 20a6d2d42..000000000 --- a/dist/assets/vendors/bootstrap-icons/star-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/star.svg b/dist/assets/vendors/bootstrap-icons/star.svg deleted file mode 100644 index 8c5971ccf..000000000 --- a/dist/assets/vendors/bootstrap-icons/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stickies-fill.svg b/dist/assets/vendors/bootstrap-icons/stickies-fill.svg deleted file mode 100644 index a0252da0f..000000000 --- a/dist/assets/vendors/bootstrap-icons/stickies-fill.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stickies.svg b/dist/assets/vendors/bootstrap-icons/stickies.svg deleted file mode 100644 index 2aea246f4..000000000 --- a/dist/assets/vendors/bootstrap-icons/stickies.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sticky-fill.svg b/dist/assets/vendors/bootstrap-icons/sticky-fill.svg deleted file mode 100644 index f47ff7a0c..000000000 --- a/dist/assets/vendors/bootstrap-icons/sticky-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sticky.svg b/dist/assets/vendors/bootstrap-icons/sticky.svg deleted file mode 100644 index b44cc2e36..000000000 --- a/dist/assets/vendors/bootstrap-icons/sticky.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stop-btn-fill.svg b/dist/assets/vendors/bootstrap-icons/stop-btn-fill.svg deleted file mode 100644 index 0a08f0d2a..000000000 --- a/dist/assets/vendors/bootstrap-icons/stop-btn-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stop-btn.svg b/dist/assets/vendors/bootstrap-icons/stop-btn.svg deleted file mode 100644 index fae6c5619..000000000 --- a/dist/assets/vendors/bootstrap-icons/stop-btn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stop-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/stop-circle-fill.svg deleted file mode 100644 index 0576e7c10..000000000 --- a/dist/assets/vendors/bootstrap-icons/stop-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stop-circle.svg b/dist/assets/vendors/bootstrap-icons/stop-circle.svg deleted file mode 100644 index 6b009b00e..000000000 --- a/dist/assets/vendors/bootstrap-icons/stop-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stop-fill.svg b/dist/assets/vendors/bootstrap-icons/stop-fill.svg deleted file mode 100644 index a45f312ad..000000000 --- a/dist/assets/vendors/bootstrap-icons/stop-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stop.svg b/dist/assets/vendors/bootstrap-icons/stop.svg deleted file mode 100644 index 2b86647fe..000000000 --- a/dist/assets/vendors/bootstrap-icons/stop.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stoplights-fill.svg b/dist/assets/vendors/bootstrap-icons/stoplights-fill.svg deleted file mode 100644 index 91abfe44e..000000000 --- a/dist/assets/vendors/bootstrap-icons/stoplights-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stoplights.svg b/dist/assets/vendors/bootstrap-icons/stoplights.svg deleted file mode 100644 index f765ab2ba..000000000 --- a/dist/assets/vendors/bootstrap-icons/stoplights.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stopwatch-fill.svg b/dist/assets/vendors/bootstrap-icons/stopwatch-fill.svg deleted file mode 100644 index ee49b0e2e..000000000 --- a/dist/assets/vendors/bootstrap-icons/stopwatch-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/stopwatch.svg b/dist/assets/vendors/bootstrap-icons/stopwatch.svg deleted file mode 100644 index f73f42bce..000000000 --- a/dist/assets/vendors/bootstrap-icons/stopwatch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/subtract.svg b/dist/assets/vendors/bootstrap-icons/subtract.svg deleted file mode 100644 index 88f197cd0..000000000 --- a/dist/assets/vendors/bootstrap-icons/subtract.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-club-fill.svg b/dist/assets/vendors/bootstrap-icons/suit-club-fill.svg deleted file mode 100644 index eef513c31..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-club-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-club.svg b/dist/assets/vendors/bootstrap-icons/suit-club.svg deleted file mode 100644 index 57951e4e7..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-club.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-diamond-fill.svg b/dist/assets/vendors/bootstrap-icons/suit-diamond-fill.svg deleted file mode 100644 index b121b8231..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-diamond-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-diamond.svg b/dist/assets/vendors/bootstrap-icons/suit-diamond.svg deleted file mode 100644 index cae1705eb..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-heart-fill.svg b/dist/assets/vendors/bootstrap-icons/suit-heart-fill.svg deleted file mode 100644 index 86fb791bb..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-heart-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-heart.svg b/dist/assets/vendors/bootstrap-icons/suit-heart.svg deleted file mode 100644 index 8ba24f2ed..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-spade-fill.svg b/dist/assets/vendors/bootstrap-icons/suit-spade-fill.svg deleted file mode 100644 index 63bb0c63f..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-spade-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/suit-spade.svg b/dist/assets/vendors/bootstrap-icons/suit-spade.svg deleted file mode 100644 index c35e8eec9..000000000 --- a/dist/assets/vendors/bootstrap-icons/suit-spade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sun.svg b/dist/assets/vendors/bootstrap-icons/sun.svg deleted file mode 100644 index cde2f96ee..000000000 --- a/dist/assets/vendors/bootstrap-icons/sun.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/sunglasses.svg b/dist/assets/vendors/bootstrap-icons/sunglasses.svg deleted file mode 100644 index 72aeecee5..000000000 --- a/dist/assets/vendors/bootstrap-icons/sunglasses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/symmetry-horizontal.svg b/dist/assets/vendors/bootstrap-icons/symmetry-horizontal.svg deleted file mode 100644 index cfafcb410..000000000 --- a/dist/assets/vendors/bootstrap-icons/symmetry-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/symmetry-vertical.svg b/dist/assets/vendors/bootstrap-icons/symmetry-vertical.svg deleted file mode 100644 index 0929d2f0d..000000000 --- a/dist/assets/vendors/bootstrap-icons/symmetry-vertical.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/table.svg b/dist/assets/vendors/bootstrap-icons/table.svg deleted file mode 100644 index e5a7afee5..000000000 --- a/dist/assets/vendors/bootstrap-icons/table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tablet-fill.svg b/dist/assets/vendors/bootstrap-icons/tablet-fill.svg deleted file mode 100644 index 5e6d38ce1..000000000 --- a/dist/assets/vendors/bootstrap-icons/tablet-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tablet-landscape-fill.svg b/dist/assets/vendors/bootstrap-icons/tablet-landscape-fill.svg deleted file mode 100644 index ea3de13f7..000000000 --- a/dist/assets/vendors/bootstrap-icons/tablet-landscape-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tablet-landscape.svg b/dist/assets/vendors/bootstrap-icons/tablet-landscape.svg deleted file mode 100644 index e1d9a783e..000000000 --- a/dist/assets/vendors/bootstrap-icons/tablet-landscape.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tablet.svg b/dist/assets/vendors/bootstrap-icons/tablet.svg deleted file mode 100644 index fc57a122f..000000000 --- a/dist/assets/vendors/bootstrap-icons/tablet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tag-fill.svg b/dist/assets/vendors/bootstrap-icons/tag-fill.svg deleted file mode 100644 index 27fda9030..000000000 --- a/dist/assets/vendors/bootstrap-icons/tag-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tag.svg b/dist/assets/vendors/bootstrap-icons/tag.svg deleted file mode 100644 index 620d6f3cf..000000000 --- a/dist/assets/vendors/bootstrap-icons/tag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tags-fill.svg b/dist/assets/vendors/bootstrap-icons/tags-fill.svg deleted file mode 100644 index ce8d3249e..000000000 --- a/dist/assets/vendors/bootstrap-icons/tags-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tags.svg b/dist/assets/vendors/bootstrap-icons/tags.svg deleted file mode 100644 index 9f6d67646..000000000 --- a/dist/assets/vendors/bootstrap-icons/tags.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telegram.svg b/dist/assets/vendors/bootstrap-icons/telegram.svg deleted file mode 100644 index 30bee0808..000000000 --- a/dist/assets/vendors/bootstrap-icons/telegram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-fill.svg deleted file mode 100644 index 44d099d94..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-forward-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-forward-fill.svg deleted file mode 100644 index 9556c7f95..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-forward-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-forward.svg b/dist/assets/vendors/bootstrap-icons/telephone-forward.svg deleted file mode 100644 index bcf171565..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-inbound-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-inbound-fill.svg deleted file mode 100644 index c16b026fb..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-inbound-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-inbound.svg b/dist/assets/vendors/bootstrap-icons/telephone-inbound.svg deleted file mode 100644 index 66e9b6413..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-inbound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-minus-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-minus-fill.svg deleted file mode 100644 index 28a76e945..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-minus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-minus.svg b/dist/assets/vendors/bootstrap-icons/telephone-minus.svg deleted file mode 100644 index ed520584c..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-outbound-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-outbound-fill.svg deleted file mode 100644 index 971faa3b7..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-outbound-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-outbound.svg b/dist/assets/vendors/bootstrap-icons/telephone-outbound.svg deleted file mode 100644 index 8c05bdba1..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-outbound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-plus-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-plus-fill.svg deleted file mode 100644 index d6d594dc7..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-plus-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-plus.svg b/dist/assets/vendors/bootstrap-icons/telephone-plus.svg deleted file mode 100644 index 62f413bfc..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-x-fill.svg b/dist/assets/vendors/bootstrap-icons/telephone-x-fill.svg deleted file mode 100644 index 8c8bb3d1c..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-x-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone-x.svg b/dist/assets/vendors/bootstrap-icons/telephone-x.svg deleted file mode 100644 index fee9a7f3a..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/telephone.svg b/dist/assets/vendors/bootstrap-icons/telephone.svg deleted file mode 100644 index 59d661ff5..000000000 --- a/dist/assets/vendors/bootstrap-icons/telephone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/terminal-fill.svg b/dist/assets/vendors/bootstrap-icons/terminal-fill.svg deleted file mode 100644 index a2207d14c..000000000 --- a/dist/assets/vendors/bootstrap-icons/terminal-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/terminal.svg b/dist/assets/vendors/bootstrap-icons/terminal.svg deleted file mode 100644 index ec17350f5..000000000 --- a/dist/assets/vendors/bootstrap-icons/terminal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/text-center.svg b/dist/assets/vendors/bootstrap-icons/text-center.svg deleted file mode 100644 index b478fc9c8..000000000 --- a/dist/assets/vendors/bootstrap-icons/text-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/text-indent-left.svg b/dist/assets/vendors/bootstrap-icons/text-indent-left.svg deleted file mode 100644 index 6f6a6127d..000000000 --- a/dist/assets/vendors/bootstrap-icons/text-indent-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/text-indent-right.svg b/dist/assets/vendors/bootstrap-icons/text-indent-right.svg deleted file mode 100644 index ed19bfbb4..000000000 --- a/dist/assets/vendors/bootstrap-icons/text-indent-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/text-left.svg b/dist/assets/vendors/bootstrap-icons/text-left.svg deleted file mode 100644 index af323e27a..000000000 --- a/dist/assets/vendors/bootstrap-icons/text-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/text-paragraph.svg b/dist/assets/vendors/bootstrap-icons/text-paragraph.svg deleted file mode 100644 index 3d2bfb973..000000000 --- a/dist/assets/vendors/bootstrap-icons/text-paragraph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/text-right.svg b/dist/assets/vendors/bootstrap-icons/text-right.svg deleted file mode 100644 index d9453c2bf..000000000 --- a/dist/assets/vendors/bootstrap-icons/text-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/textarea-resize.svg b/dist/assets/vendors/bootstrap-icons/textarea-resize.svg deleted file mode 100644 index 4b5c9f23e..000000000 --- a/dist/assets/vendors/bootstrap-icons/textarea-resize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/textarea-t.svg b/dist/assets/vendors/bootstrap-icons/textarea-t.svg deleted file mode 100644 index 5cf13ec6c..000000000 --- a/dist/assets/vendors/bootstrap-icons/textarea-t.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/textarea.svg b/dist/assets/vendors/bootstrap-icons/textarea.svg deleted file mode 100644 index c37b6c299..000000000 --- a/dist/assets/vendors/bootstrap-icons/textarea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/thermometer-half.svg b/dist/assets/vendors/bootstrap-icons/thermometer-half.svg deleted file mode 100644 index 49e0ad24b..000000000 --- a/dist/assets/vendors/bootstrap-icons/thermometer-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/thermometer.svg b/dist/assets/vendors/bootstrap-icons/thermometer.svg deleted file mode 100644 index c808e5869..000000000 --- a/dist/assets/vendors/bootstrap-icons/thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/three-dots-vertical.svg b/dist/assets/vendors/bootstrap-icons/three-dots-vertical.svg deleted file mode 100644 index d542db94b..000000000 --- a/dist/assets/vendors/bootstrap-icons/three-dots-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/three-dots.svg b/dist/assets/vendors/bootstrap-icons/three-dots.svg deleted file mode 100644 index f6014cc24..000000000 --- a/dist/assets/vendors/bootstrap-icons/three-dots.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/toggle-off.svg b/dist/assets/vendors/bootstrap-icons/toggle-off.svg deleted file mode 100644 index d07d8988a..000000000 --- a/dist/assets/vendors/bootstrap-icons/toggle-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/toggle-on.svg b/dist/assets/vendors/bootstrap-icons/toggle-on.svg deleted file mode 100644 index b4ad62cf3..000000000 --- a/dist/assets/vendors/bootstrap-icons/toggle-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/toggle2-off.svg b/dist/assets/vendors/bootstrap-icons/toggle2-off.svg deleted file mode 100644 index 40368dc05..000000000 --- a/dist/assets/vendors/bootstrap-icons/toggle2-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/toggle2-on.svg b/dist/assets/vendors/bootstrap-icons/toggle2-on.svg deleted file mode 100644 index 37f2b3a38..000000000 --- a/dist/assets/vendors/bootstrap-icons/toggle2-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/toggles.svg b/dist/assets/vendors/bootstrap-icons/toggles.svg deleted file mode 100644 index 0cb03dacb..000000000 --- a/dist/assets/vendors/bootstrap-icons/toggles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/toggles2.svg b/dist/assets/vendors/bootstrap-icons/toggles2.svg deleted file mode 100644 index 6c26d7f06..000000000 --- a/dist/assets/vendors/bootstrap-icons/toggles2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tools.svg b/dist/assets/vendors/bootstrap-icons/tools.svg deleted file mode 100644 index 3ee640572..000000000 --- a/dist/assets/vendors/bootstrap-icons/tools.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/trash-fill.svg b/dist/assets/vendors/bootstrap-icons/trash-fill.svg deleted file mode 100644 index 2c5bb4c63..000000000 --- a/dist/assets/vendors/bootstrap-icons/trash-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/trash.svg b/dist/assets/vendors/bootstrap-icons/trash.svg deleted file mode 100644 index 356b99cd4..000000000 --- a/dist/assets/vendors/bootstrap-icons/trash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/trash2-fill.svg b/dist/assets/vendors/bootstrap-icons/trash2-fill.svg deleted file mode 100644 index bc78b6d6a..000000000 --- a/dist/assets/vendors/bootstrap-icons/trash2-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/trash2.svg b/dist/assets/vendors/bootstrap-icons/trash2.svg deleted file mode 100644 index 2f3cb45e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/trash2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tree-fill.svg b/dist/assets/vendors/bootstrap-icons/tree-fill.svg deleted file mode 100644 index 4d45dd430..000000000 --- a/dist/assets/vendors/bootstrap-icons/tree-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tree.svg b/dist/assets/vendors/bootstrap-icons/tree.svg deleted file mode 100644 index ccdacc308..000000000 --- a/dist/assets/vendors/bootstrap-icons/tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/triangle-fill.svg b/dist/assets/vendors/bootstrap-icons/triangle-fill.svg deleted file mode 100644 index e88220454..000000000 --- a/dist/assets/vendors/bootstrap-icons/triangle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/triangle-half.svg b/dist/assets/vendors/bootstrap-icons/triangle-half.svg deleted file mode 100644 index 5b7a07b7d..000000000 --- a/dist/assets/vendors/bootstrap-icons/triangle-half.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/triangle.svg b/dist/assets/vendors/bootstrap-icons/triangle.svg deleted file mode 100644 index 84e78cb75..000000000 --- a/dist/assets/vendors/bootstrap-icons/triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/trophy-fill.svg b/dist/assets/vendors/bootstrap-icons/trophy-fill.svg deleted file mode 100644 index ce69a02c9..000000000 --- a/dist/assets/vendors/bootstrap-icons/trophy-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/trophy.svg b/dist/assets/vendors/bootstrap-icons/trophy.svg deleted file mode 100644 index be153e97b..000000000 --- a/dist/assets/vendors/bootstrap-icons/trophy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/truck-flatbed.svg b/dist/assets/vendors/bootstrap-icons/truck-flatbed.svg deleted file mode 100644 index 34d2a2d4b..000000000 --- a/dist/assets/vendors/bootstrap-icons/truck-flatbed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/truck.svg b/dist/assets/vendors/bootstrap-icons/truck.svg deleted file mode 100644 index 6fea631e3..000000000 --- a/dist/assets/vendors/bootstrap-icons/truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tv-fill.svg b/dist/assets/vendors/bootstrap-icons/tv-fill.svg deleted file mode 100644 index 3da01b0fb..000000000 --- a/dist/assets/vendors/bootstrap-icons/tv-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/tv.svg b/dist/assets/vendors/bootstrap-icons/tv.svg deleted file mode 100644 index 982c49791..000000000 --- a/dist/assets/vendors/bootstrap-icons/tv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/twitch.svg b/dist/assets/vendors/bootstrap-icons/twitch.svg deleted file mode 100644 index 60b68c00b..000000000 --- a/dist/assets/vendors/bootstrap-icons/twitch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/twitter.svg b/dist/assets/vendors/bootstrap-icons/twitter.svg deleted file mode 100644 index c892086dc..000000000 --- a/dist/assets/vendors/bootstrap-icons/twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-bold.svg b/dist/assets/vendors/bootstrap-icons/type-bold.svg deleted file mode 100644 index bda7c0353..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-h1.svg b/dist/assets/vendors/bootstrap-icons/type-h1.svg deleted file mode 100644 index dbf48e2cf..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-h1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-h2.svg b/dist/assets/vendors/bootstrap-icons/type-h2.svg deleted file mode 100644 index 1b7c1ed4b..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-h2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-h3.svg b/dist/assets/vendors/bootstrap-icons/type-h3.svg deleted file mode 100644 index f979f3f90..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-h3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-italic.svg b/dist/assets/vendors/bootstrap-icons/type-italic.svg deleted file mode 100644 index 22a24d5eb..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-italic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-strikethrough.svg b/dist/assets/vendors/bootstrap-icons/type-strikethrough.svg deleted file mode 100644 index fc8e0f05d..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-strikethrough.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type-underline.svg b/dist/assets/vendors/bootstrap-icons/type-underline.svg deleted file mode 100644 index 0bbc6f89d..000000000 --- a/dist/assets/vendors/bootstrap-icons/type-underline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/type.svg b/dist/assets/vendors/bootstrap-icons/type.svg deleted file mode 100644 index 4391bbe8b..000000000 --- a/dist/assets/vendors/bootstrap-icons/type.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/ui-checks-grid.svg b/dist/assets/vendors/bootstrap-icons/ui-checks-grid.svg deleted file mode 100644 index 8395438a8..000000000 --- a/dist/assets/vendors/bootstrap-icons/ui-checks-grid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/ui-checks.svg b/dist/assets/vendors/bootstrap-icons/ui-checks.svg deleted file mode 100644 index 8cd7f5acb..000000000 --- a/dist/assets/vendors/bootstrap-icons/ui-checks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/ui-radios-grid.svg b/dist/assets/vendors/bootstrap-icons/ui-radios-grid.svg deleted file mode 100644 index 00c7b0802..000000000 --- a/dist/assets/vendors/bootstrap-icons/ui-radios-grid.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/ui-radios.svg b/dist/assets/vendors/bootstrap-icons/ui-radios.svg deleted file mode 100644 index 6bf602366..000000000 --- a/dist/assets/vendors/bootstrap-icons/ui-radios.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/union.svg b/dist/assets/vendors/bootstrap-icons/union.svg deleted file mode 100644 index d9245d37e..000000000 --- a/dist/assets/vendors/bootstrap-icons/union.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/unlock-fill.svg b/dist/assets/vendors/bootstrap-icons/unlock-fill.svg deleted file mode 100644 index be25e26a0..000000000 --- a/dist/assets/vendors/bootstrap-icons/unlock-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/unlock.svg b/dist/assets/vendors/bootstrap-icons/unlock.svg deleted file mode 100644 index e60233e2e..000000000 --- a/dist/assets/vendors/bootstrap-icons/unlock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/upc-scan.svg b/dist/assets/vendors/bootstrap-icons/upc-scan.svg deleted file mode 100644 index 0541dc109..000000000 --- a/dist/assets/vendors/bootstrap-icons/upc-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/upc.svg b/dist/assets/vendors/bootstrap-icons/upc.svg deleted file mode 100644 index 407d8d446..000000000 --- a/dist/assets/vendors/bootstrap-icons/upc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/upload.svg b/dist/assets/vendors/bootstrap-icons/upload.svg deleted file mode 100644 index 9b13dc072..000000000 --- a/dist/assets/vendors/bootstrap-icons/upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/vector-pen.svg b/dist/assets/vendors/bootstrap-icons/vector-pen.svg deleted file mode 100644 index 051056f5d..000000000 --- a/dist/assets/vendors/bootstrap-icons/vector-pen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/view-list.svg b/dist/assets/vendors/bootstrap-icons/view-list.svg deleted file mode 100644 index a050d35d0..000000000 --- a/dist/assets/vendors/bootstrap-icons/view-list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/view-stacked.svg b/dist/assets/vendors/bootstrap-icons/view-stacked.svg deleted file mode 100644 index 838239218..000000000 --- a/dist/assets/vendors/bootstrap-icons/view-stacked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/vinyl-fill.svg b/dist/assets/vendors/bootstrap-icons/vinyl-fill.svg deleted file mode 100644 index 6bc9c756f..000000000 --- a/dist/assets/vendors/bootstrap-icons/vinyl-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/vinyl.svg b/dist/assets/vendors/bootstrap-icons/vinyl.svg deleted file mode 100644 index cdfda143f..000000000 --- a/dist/assets/vendors/bootstrap-icons/vinyl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/voicemail.svg b/dist/assets/vendors/bootstrap-icons/voicemail.svg deleted file mode 100644 index 16ac8e381..000000000 --- a/dist/assets/vendors/bootstrap-icons/voicemail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-down-fill.svg b/dist/assets/vendors/bootstrap-icons/volume-down-fill.svg deleted file mode 100644 index 1fae37d68..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-down-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-down.svg b/dist/assets/vendors/bootstrap-icons/volume-down.svg deleted file mode 100644 index 8db0daad7..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-mute-fill.svg b/dist/assets/vendors/bootstrap-icons/volume-mute-fill.svg deleted file mode 100644 index e8e9a31be..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-mute-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-mute.svg b/dist/assets/vendors/bootstrap-icons/volume-mute.svg deleted file mode 100644 index a96e04e87..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-mute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-off-fill.svg b/dist/assets/vendors/bootstrap-icons/volume-off-fill.svg deleted file mode 100644 index 1297fbfee..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-off-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-off.svg b/dist/assets/vendors/bootstrap-icons/volume-off.svg deleted file mode 100644 index 0bdda8eb8..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-up-fill.svg b/dist/assets/vendors/bootstrap-icons/volume-up-fill.svg deleted file mode 100644 index 99bbbd2ed..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-up-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/volume-up.svg b/dist/assets/vendors/bootstrap-icons/volume-up.svg deleted file mode 100644 index 8c30d57ec..000000000 --- a/dist/assets/vendors/bootstrap-icons/volume-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/vr.svg b/dist/assets/vendors/bootstrap-icons/vr.svg deleted file mode 100644 index 42f8ce23c..000000000 --- a/dist/assets/vendors/bootstrap-icons/vr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wallet-fill.svg b/dist/assets/vendors/bootstrap-icons/wallet-fill.svg deleted file mode 100644 index b4281390a..000000000 --- a/dist/assets/vendors/bootstrap-icons/wallet-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wallet.svg b/dist/assets/vendors/bootstrap-icons/wallet.svg deleted file mode 100644 index 17796e80c..000000000 --- a/dist/assets/vendors/bootstrap-icons/wallet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wallet2.svg b/dist/assets/vendors/bootstrap-icons/wallet2.svg deleted file mode 100644 index af29f0625..000000000 --- a/dist/assets/vendors/bootstrap-icons/wallet2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/watch.svg b/dist/assets/vendors/bootstrap-icons/watch.svg deleted file mode 100644 index 8c3ee988e..000000000 --- a/dist/assets/vendors/bootstrap-icons/watch.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/whatsapp.svg b/dist/assets/vendors/bootstrap-icons/whatsapp.svg deleted file mode 100644 index a07da8d13..000000000 --- a/dist/assets/vendors/bootstrap-icons/whatsapp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wifi-1.svg b/dist/assets/vendors/bootstrap-icons/wifi-1.svg deleted file mode 100644 index 4d75ef524..000000000 --- a/dist/assets/vendors/bootstrap-icons/wifi-1.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wifi-2.svg b/dist/assets/vendors/bootstrap-icons/wifi-2.svg deleted file mode 100644 index 12461a2d5..000000000 --- a/dist/assets/vendors/bootstrap-icons/wifi-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wifi-off.svg b/dist/assets/vendors/bootstrap-icons/wifi-off.svg deleted file mode 100644 index 3b04f7def..000000000 --- a/dist/assets/vendors/bootstrap-icons/wifi-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wifi.svg b/dist/assets/vendors/bootstrap-icons/wifi.svg deleted file mode 100644 index 73766b468..000000000 --- a/dist/assets/vendors/bootstrap-icons/wifi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/window-dock.svg b/dist/assets/vendors/bootstrap-icons/window-dock.svg deleted file mode 100644 index e66f728a3..000000000 --- a/dist/assets/vendors/bootstrap-icons/window-dock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/window-sidebar.svg b/dist/assets/vendors/bootstrap-icons/window-sidebar.svg deleted file mode 100644 index 98476ce87..000000000 --- a/dist/assets/vendors/bootstrap-icons/window-sidebar.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/window.svg b/dist/assets/vendors/bootstrap-icons/window.svg deleted file mode 100644 index adf1687d0..000000000 --- a/dist/assets/vendors/bootstrap-icons/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/wrench.svg b/dist/assets/vendors/bootstrap-icons/wrench.svg deleted file mode 100644 index 8ea68f8c1..000000000 --- a/dist/assets/vendors/bootstrap-icons/wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-circle-fill.svg b/dist/assets/vendors/bootstrap-icons/x-circle-fill.svg deleted file mode 100644 index d4bc88c21..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-circle-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-circle.svg b/dist/assets/vendors/bootstrap-icons/x-circle.svg deleted file mode 100644 index 5ceebe885..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-diamond-fill.svg b/dist/assets/vendors/bootstrap-icons/x-diamond-fill.svg deleted file mode 100644 index 46b5fd303..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-diamond-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-diamond.svg b/dist/assets/vendors/bootstrap-icons/x-diamond.svg deleted file mode 100644 index cd24eb4ad..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-octagon-fill.svg b/dist/assets/vendors/bootstrap-icons/x-octagon-fill.svg deleted file mode 100644 index a8ceedb71..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-octagon-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-octagon.svg b/dist/assets/vendors/bootstrap-icons/x-octagon.svg deleted file mode 100644 index 703213af1..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-square-fill.svg b/dist/assets/vendors/bootstrap-icons/x-square-fill.svg deleted file mode 100644 index 6c352cc28..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-square-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x-square.svg b/dist/assets/vendors/bootstrap-icons/x-square.svg deleted file mode 100644 index 80b83e159..000000000 --- a/dist/assets/vendors/bootstrap-icons/x-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/x.svg b/dist/assets/vendors/bootstrap-icons/x.svg deleted file mode 100644 index aacb96652..000000000 --- a/dist/assets/vendors/bootstrap-icons/x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/youtube.svg b/dist/assets/vendors/bootstrap-icons/youtube.svg deleted file mode 100644 index 936874eae..000000000 --- a/dist/assets/vendors/bootstrap-icons/youtube.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/zoom-in.svg b/dist/assets/vendors/bootstrap-icons/zoom-in.svg deleted file mode 100644 index e07f56947..000000000 --- a/dist/assets/vendors/bootstrap-icons/zoom-in.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/bootstrap-icons/zoom-out.svg b/dist/assets/vendors/bootstrap-icons/zoom-out.svg deleted file mode 100644 index 195f27cf5..000000000 --- a/dist/assets/vendors/bootstrap-icons/zoom-out.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dist/assets/vendors/sweetalert2/sweetalert2.all.js b/dist/assets/vendors/sweetalert2/sweetalert2.all.js deleted file mode 100644 index 23f550851..000000000 --- a/dist/assets/vendors/sweetalert2/sweetalert2.all.js +++ /dev/null @@ -1,3122 +0,0 @@ -/*! -* sweetalert2 v11.1.7 -* Released under the MIT License. -*/ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.Sweetalert2 = factory()); -}(this, function () { 'use strict'; - - const DismissReason = Object.freeze({ - cancel: 'cancel', - backdrop: 'backdrop', - close: 'close', - esc: 'esc', - timer: 'timer' - }); - - const consolePrefix = 'SweetAlert2:'; - /** - * Filter the unique values into a new array - * @param arr - */ - - const uniqueArray = arr => { - const result = []; - - for (let i = 0; i < arr.length; i++) { - if (result.indexOf(arr[i]) === -1) { - result.push(arr[i]); - } - } - - return result; - }; - /** - * Capitalize the first letter of a string - * @param str - */ - - const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1); - /** - * Convert NodeList to Array - * @param nodeList - */ - - const toArray = nodeList => Array.prototype.slice.call(nodeList); - /** - * Standardise console warnings - * @param message - */ - - const warn = message => { - console.warn("".concat(consolePrefix, " ").concat(typeof message === 'object' ? message.join(' ') : message)); - }; - /** - * Standardise console errors - * @param message - */ - - const error = message => { - console.error("".concat(consolePrefix, " ").concat(message)); - }; - /** - * Private global state for `warnOnce` - * @type {Array} - * @private - */ - - const previousWarnOnceMessages = []; - /** - * Show a console warning, but only if it hasn't already been shown - * @param message - */ - - const warnOnce = message => { - if (!previousWarnOnceMessages.includes(message)) { - previousWarnOnceMessages.push(message); - warn(message); - } - }; - /** - * Show a one-time console warning about deprecated params/methods - */ - - const warnAboutDeprecation = (deprecatedParam, useInstead) => { - warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead.")); - }; - /** - * If `arg` is a function, call it (with no arguments or context) and return the result. - * Otherwise, just pass the value through - * @param arg - */ - - const callIfFunction = arg => typeof arg === 'function' ? arg() : arg; - const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function'; - const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg); - const isPromise = arg => arg && Promise.resolve(arg) === arg; - - const isJqueryElement = elem => typeof elem === 'object' && elem.jquery; - - const isElement = elem => elem instanceof Element || isJqueryElement(elem); - - const argsToParams = args => { - const params = {}; - - if (typeof args[0] === 'object' && !isElement(args[0])) { - Object.assign(params, args[0]); - } else { - ['title', 'html', 'icon'].forEach((name, index) => { - const arg = args[index]; - - if (typeof arg === 'string' || isElement(arg)) { - params[name] = arg; - } else if (arg !== undefined) { - error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg)); - } - }); - } - - return params; - }; - - const swalPrefix = 'swal2-'; - const prefix = items => { - const result = {}; - - for (const i in items) { - result[items[i]] = swalPrefix + items[i]; - } - - return result; - }; - const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']); - const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); - - const getContainer = () => document.body.querySelector(".".concat(swalClasses.container)); - const elementBySelector = selectorString => { - const container = getContainer(); - return container ? container.querySelector(selectorString) : null; - }; - - const elementByClass = className => { - return elementBySelector(".".concat(className)); - }; - - const getPopup = () => elementByClass(swalClasses.popup); - const getIcon = () => elementByClass(swalClasses.icon); - const getTitle = () => elementByClass(swalClasses.title); - const getHtmlContainer = () => elementByClass(swalClasses['html-container']); - const getImage = () => elementByClass(swalClasses.image); - const getProgressSteps = () => elementByClass(swalClasses['progress-steps']); - const getValidationMessage = () => elementByClass(swalClasses['validation-message']); - const getConfirmButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm)); - const getDenyButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny)); - const getInputLabel = () => elementByClass(swalClasses['input-label']); - const getLoader = () => elementBySelector(".".concat(swalClasses.loader)); - const getCancelButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel)); - const getActions = () => elementByClass(swalClasses.actions); - const getFooter = () => elementByClass(swalClasses.footer); - const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']); - const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js - - const focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n"; - const getFocusableElements = () => { - const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex - .sort((a, b) => { - a = parseInt(a.getAttribute('tabindex')); - b = parseInt(b.getAttribute('tabindex')); - - if (a > b) { - return 1; - } else if (a < b) { - return -1; - } - - return 0; - }); - const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1'); - return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el)); - }; - const isModal = () => { - return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']); - }; - const isToast = () => { - return document.body.classList.contains(swalClasses['toast-shown']); - }; - const isLoading = () => { - return getPopup().hasAttribute('data-loading'); - }; - - const states = { - previousBodyPadding: null - }; - const setInnerHtml = (elem, html) => { - // #1926 - elem.textContent = ''; - - if (html) { - const parser = new DOMParser(); - const parsed = parser.parseFromString(html, "text/html"); - toArray(parsed.querySelector('head').childNodes).forEach(child => { - elem.appendChild(child); - }); - toArray(parsed.querySelector('body').childNodes).forEach(child => { - elem.appendChild(child); - }); - } - }; - const hasClass = (elem, className) => { - if (!className) { - return false; - } - - const classList = className.split(/\s+/); - - for (let i = 0; i < classList.length; i++) { - if (!elem.classList.contains(classList[i])) { - return false; - } - } - - return true; - }; - - const removeCustomClasses = (elem, params) => { - toArray(elem.classList).forEach(className => { - if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) { - elem.classList.remove(className); - } - }); - }; - - const applyCustomClass = (elem, params, className) => { - removeCustomClasses(elem, params); - - if (params.customClass && params.customClass[className]) { - if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) { - return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(typeof params.customClass[className], "\"")); - } - - addClass(elem, params.customClass[className]); - } - }; - const getInput = (popup, inputType) => { - if (!inputType) { - return null; - } - - switch (inputType) { - case 'select': - case 'textarea': - case 'file': - return getChildByClass(popup, swalClasses[inputType]); - - case 'checkbox': - return popup.querySelector(".".concat(swalClasses.checkbox, " input")); - - case 'radio': - return popup.querySelector(".".concat(swalClasses.radio, " input:checked")) || popup.querySelector(".".concat(swalClasses.radio, " input:first-child")); - - case 'range': - return popup.querySelector(".".concat(swalClasses.range, " input")); - - default: - return getChildByClass(popup, swalClasses.input); - } - }; - const focusInput = input => { - input.focus(); // place cursor at end of text in text input - - if (input.type !== 'file') { - // http://stackoverflow.com/a/2345915 - const val = input.value; - input.value = ''; - input.value = val; - } - }; - const toggleClass = (target, classList, condition) => { - if (!target || !classList) { - return; - } - - if (typeof classList === 'string') { - classList = classList.split(/\s+/).filter(Boolean); - } - - classList.forEach(className => { - if (target.forEach) { - target.forEach(elem => { - condition ? elem.classList.add(className) : elem.classList.remove(className); - }); - } else { - condition ? target.classList.add(className) : target.classList.remove(className); - } - }); - }; - const addClass = (target, classList) => { - toggleClass(target, classList, true); - }; - const removeClass = (target, classList) => { - toggleClass(target, classList, false); - }; - const getChildByClass = (elem, className) => { - for (let i = 0; i < elem.childNodes.length; i++) { - if (hasClass(elem.childNodes[i], className)) { - return elem.childNodes[i]; - } - } - }; - const applyNumericalStyle = (elem, property, value) => { - if (value === "".concat(parseInt(value))) { - value = parseInt(value); - } - - if (value || parseInt(value) === 0) { - elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value; - } else { - elem.style.removeProperty(property); - } - }; - const show = (elem, display = 'flex') => { - elem.style.display = display; - }; - const hide = elem => { - elem.style.display = 'none'; - }; - const setStyle = (parent, selector, property, value) => { - const el = parent.querySelector(selector); - - if (el) { - el.style[property] = value; - } - }; - const toggle = (elem, condition, display) => { - condition ? show(elem, display) : hide(elem); - }; // borrowed from jquery $(elem).is(':visible') implementation - - const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)); - const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton()); - const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); // borrowed from https://stackoverflow.com/a/46352119 - - const hasCssAnimation = elem => { - const style = window.getComputedStyle(elem); - const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0'); - const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0'); - return animDuration > 0 || transDuration > 0; - }; - const animateTimerProgressBar = (timer, reset = false) => { - const timerProgressBar = getTimerProgressBar(); - - if (isVisible(timerProgressBar)) { - if (reset) { - timerProgressBar.style.transition = 'none'; - timerProgressBar.style.width = '100%'; - } - - setTimeout(() => { - timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear"); - timerProgressBar.style.width = '0%'; - }, 10); - } - }; - const stopTimerProgressBar = () => { - const timerProgressBar = getTimerProgressBar(); - const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width); - timerProgressBar.style.removeProperty('transition'); - timerProgressBar.style.width = '100%'; - const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width); - const timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100); - timerProgressBar.style.removeProperty('transition'); - timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%"); - }; - - // Detect Node env - const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined'; - - const sweetHTML = "\n
\n \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n").replace(/(^|\n)\s*/g, ''); - - const resetOldContainer = () => { - const oldContainer = getContainer(); - - if (!oldContainer) { - return false; - } - - oldContainer.remove(); - removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]); - return true; - }; - - const resetValidationMessage = () => { - if (Swal.isVisible()) { - Swal.resetValidationMessage(); - } - }; - - const addInputChangeListeners = () => { - const popup = getPopup(); - const input = getChildByClass(popup, swalClasses.input); - const file = getChildByClass(popup, swalClasses.file); - const range = popup.querySelector(".".concat(swalClasses.range, " input")); - const rangeOutput = popup.querySelector(".".concat(swalClasses.range, " output")); - const select = getChildByClass(popup, swalClasses.select); - const checkbox = popup.querySelector(".".concat(swalClasses.checkbox, " input")); - const textarea = getChildByClass(popup, swalClasses.textarea); - input.oninput = resetValidationMessage; - file.onchange = resetValidationMessage; - select.onchange = resetValidationMessage; - checkbox.onchange = resetValidationMessage; - textarea.oninput = resetValidationMessage; - - range.oninput = () => { - resetValidationMessage(); - rangeOutput.value = range.value; - }; - - range.onchange = () => { - resetValidationMessage(); - range.nextSibling.value = range.value; - }; - }; - - const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target; - - const setupAccessibility = params => { - const popup = getPopup(); - popup.setAttribute('role', params.toast ? 'alert' : 'dialog'); - popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive'); - - if (!params.toast) { - popup.setAttribute('aria-modal', 'true'); - } - }; - - const setupRTL = targetElement => { - if (window.getComputedStyle(targetElement).direction === 'rtl') { - addClass(getContainer(), swalClasses.rtl); - } - }; - /* - * Add modal + backdrop to DOM - */ - - - const init = params => { - // Clean up the old popup container if it exists - const oldContainerExisted = resetOldContainer(); - /* istanbul ignore if */ - - if (isNodeEnv()) { - error('SweetAlert2 requires document to initialize'); - return; - } - - const container = document.createElement('div'); - container.className = swalClasses.container; - - if (oldContainerExisted) { - addClass(container, swalClasses['no-transition']); - } - - setInnerHtml(container, sweetHTML); - const targetElement = getTarget(params.target); - targetElement.appendChild(container); - setupAccessibility(params); - setupRTL(targetElement); - addInputChangeListeners(); - }; - - const parseHtmlToContainer = (param, target) => { - // DOM element - if (param instanceof HTMLElement) { - target.appendChild(param); // Object - } else if (typeof param === 'object') { - handleObject(param, target); // Plain string - } else if (param) { - setInnerHtml(target, param); - } - }; - - const handleObject = (param, target) => { - // JQuery element(s) - if (param.jquery) { - handleJqueryElem(target, param); // For other objects use their string representation - } else { - setInnerHtml(target, param.toString()); - } - }; - - const handleJqueryElem = (target, elem) => { - target.textContent = ''; - - if (0 in elem) { - for (let i = 0; (i in elem); i++) { - target.appendChild(elem[i].cloneNode(true)); - } - } else { - target.appendChild(elem.cloneNode(true)); - } - }; - - const animationEndEvent = (() => { - // Prevent run in Node env - - /* istanbul ignore if */ - if (isNodeEnv()) { - return false; - } - - const testEl = document.createElement('div'); - const transEndEventNames = { - WebkitAnimation: 'webkitAnimationEnd', - OAnimation: 'oAnimationEnd oanimationend', - animation: 'animationend' - }; - - for (const i in transEndEventNames) { - if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') { - return transEndEventNames[i]; - } - } - - return false; - })(); - - // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js - - const measureScrollbar = () => { - const scrollDiv = document.createElement('div'); - scrollDiv.className = swalClasses['scrollbar-measure']; - document.body.appendChild(scrollDiv); - const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - return scrollbarWidth; - }; - - const renderActions = (instance, params) => { - const actions = getActions(); - const loader = getLoader(); - const confirmButton = getConfirmButton(); - const denyButton = getDenyButton(); - const cancelButton = getCancelButton(); // Actions (buttons) wrapper - - if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) { - hide(actions); - } else { - show(actions); - } // Custom class - - - applyCustomClass(actions, params, 'actions'); // Render buttons - - renderButton(confirmButton, 'confirm', params); - renderButton(denyButton, 'deny', params); - renderButton(cancelButton, 'cancel', params); - handleButtonsStyling(confirmButton, denyButton, cancelButton, params); - - if (params.reverseButtons) { - actions.insertBefore(cancelButton, loader); - actions.insertBefore(denyButton, loader); - actions.insertBefore(confirmButton, loader); - } // Loader - - - setInnerHtml(loader, params.loaderHtml); - applyCustomClass(loader, params, 'loader'); - }; - - function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) { - if (!params.buttonsStyling) { - return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled); - } - - addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors - - if (params.confirmButtonColor) { - confirmButton.style.backgroundColor = params.confirmButtonColor; - addClass(confirmButton, swalClasses['default-outline']); - } - - if (params.denyButtonColor) { - denyButton.style.backgroundColor = params.denyButtonColor; - addClass(denyButton, swalClasses['default-outline']); - } - - if (params.cancelButtonColor) { - cancelButton.style.backgroundColor = params.cancelButtonColor; - addClass(cancelButton, swalClasses['default-outline']); - } - } - - function renderButton(button, buttonType, params) { - toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block'); - setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text - - button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label - // Add buttons custom classes - - button.className = swalClasses[buttonType]; - applyCustomClass(button, params, "".concat(buttonType, "Button")); - addClass(button, params["".concat(buttonType, "ButtonClass")]); - } - - function handleBackdropParam(container, backdrop) { - if (typeof backdrop === 'string') { - container.style.background = backdrop; - } else if (!backdrop) { - addClass([document.documentElement, document.body], swalClasses['no-backdrop']); - } - } - - function handlePositionParam(container, position) { - if (position in swalClasses) { - addClass(container, swalClasses[position]); - } else { - warn('The "position" parameter is not valid, defaulting to "center"'); - addClass(container, swalClasses.center); - } - } - - function handleGrowParam(container, grow) { - if (grow && typeof grow === 'string') { - const growClass = "grow-".concat(grow); - - if (growClass in swalClasses) { - addClass(container, swalClasses[growClass]); - } - } - } - - const renderContainer = (instance, params) => { - const container = getContainer(); - - if (!container) { - return; - } - - handleBackdropParam(container, params.backdrop); - handlePositionParam(container, params.position); - handleGrowParam(container, params.grow); // Custom class - - applyCustomClass(container, params, 'container'); - }; - - /** - * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. - * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` - * This is the approach that Babel will probably take to implement private methods/fields - * https://github.com/tc39/proposal-private-methods - * https://github.com/babel/babel/pull/7555 - * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* - * then we can use that language feature. - */ - var privateProps = { - promise: new WeakMap(), - innerParams: new WeakMap(), - domCache: new WeakMap() - }; - - const inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; - const renderInput = (instance, params) => { - const popup = getPopup(); - const innerParams = privateProps.innerParams.get(instance); - const rerender = !innerParams || params.input !== innerParams.input; - inputTypes.forEach(inputType => { - const inputClass = swalClasses[inputType]; - const inputContainer = getChildByClass(popup, inputClass); // set attributes - - setAttributes(inputType, params.inputAttributes); // set class - - inputContainer.className = inputClass; - - if (rerender) { - hide(inputContainer); - } - }); - - if (params.input) { - if (rerender) { - showInput(params); - } // set custom class - - - setCustomClass(params); - } - }; - - const showInput = params => { - if (!renderInputType[params.input]) { - return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\"")); - } - - const inputContainer = getInputContainer(params.input); - const input = renderInputType[params.input](inputContainer, params); - show(input); // input autofocus - - setTimeout(() => { - focusInput(input); - }); - }; - - const removeAttributes = input => { - for (let i = 0; i < input.attributes.length; i++) { - const attrName = input.attributes[i].name; - - if (!['type', 'value', 'style'].includes(attrName)) { - input.removeAttribute(attrName); - } - } - }; - - const setAttributes = (inputType, inputAttributes) => { - const input = getInput(getPopup(), inputType); - - if (!input) { - return; - } - - removeAttributes(input); - - for (const attr in inputAttributes) { - input.setAttribute(attr, inputAttributes[attr]); - } - }; - - const setCustomClass = params => { - const inputContainer = getInputContainer(params.input); - - if (params.customClass) { - addClass(inputContainer, params.customClass.input); - } - }; - - const setInputPlaceholder = (input, params) => { - if (!input.placeholder || params.inputPlaceholder) { - input.placeholder = params.inputPlaceholder; - } - }; - - const setInputLabel = (input, prependTo, params) => { - if (params.inputLabel) { - input.id = swalClasses.input; - const label = document.createElement('label'); - const labelClass = swalClasses['input-label']; - label.setAttribute('for', input.id); - label.className = labelClass; - addClass(label, params.customClass.inputLabel); - label.innerText = params.inputLabel; - prependTo.insertAdjacentElement('beforebegin', label); - } - }; - - const getInputContainer = inputType => { - const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input; - return getChildByClass(getPopup(), inputClass); - }; - - const renderInputType = {}; - - renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => { - if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { - input.value = params.inputValue; - } else if (!isPromise(params.inputValue)) { - warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof params.inputValue, "\"")); - } - - setInputLabel(input, input, params); - setInputPlaceholder(input, params); - input.type = params.input; - return input; - }; - - renderInputType.file = (input, params) => { - setInputLabel(input, input, params); - setInputPlaceholder(input, params); - return input; - }; - - renderInputType.range = (range, params) => { - const rangeInput = range.querySelector('input'); - const rangeOutput = range.querySelector('output'); - rangeInput.value = params.inputValue; - rangeInput.type = params.input; - rangeOutput.value = params.inputValue; - setInputLabel(rangeInput, range, params); - return range; - }; - - renderInputType.select = (select, params) => { - select.textContent = ''; - - if (params.inputPlaceholder) { - const placeholder = document.createElement('option'); - setInnerHtml(placeholder, params.inputPlaceholder); - placeholder.value = ''; - placeholder.disabled = true; - placeholder.selected = true; - select.appendChild(placeholder); - } - - setInputLabel(select, select, params); - return select; - }; - - renderInputType.radio = radio => { - radio.textContent = ''; - return radio; - }; - - renderInputType.checkbox = (checkboxContainer, params) => { - const checkbox = getInput(getPopup(), 'checkbox'); - checkbox.value = 1; - checkbox.id = swalClasses.checkbox; - checkbox.checked = Boolean(params.inputValue); - const label = checkboxContainer.querySelector('span'); - setInnerHtml(label, params.inputPlaceholder); - return checkboxContainer; - }; - - renderInputType.textarea = (textarea, params) => { - textarea.value = params.inputValue; - setInputPlaceholder(textarea, params); - setInputLabel(textarea, textarea, params); - - const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); - - setTimeout(() => { - // #2291 - if ('MutationObserver' in window) { - // #1699 - const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); - - const textareaResizeHandler = () => { - const textareaWidth = textarea.offsetWidth + getMargin(textarea); - - if (textareaWidth > initialPopupWidth) { - getPopup().style.width = "".concat(textareaWidth, "px"); - } else { - getPopup().style.width = null; - } - }; - - new MutationObserver(textareaResizeHandler).observe(textarea, { - attributes: true, - attributeFilter: ['style'] - }); - } - }); - return textarea; - }; - - const renderContent = (instance, params) => { - const htmlContainer = getHtmlContainer(); - applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML - - if (params.html) { - parseHtmlToContainer(params.html, htmlContainer); - show(htmlContainer, 'block'); // Content as plain text - } else if (params.text) { - htmlContainer.textContent = params.text; - show(htmlContainer, 'block'); // No content - } else { - hide(htmlContainer); - } - - renderInput(instance, params); - }; - - const renderFooter = (instance, params) => { - const footer = getFooter(); - toggle(footer, params.footer); - - if (params.footer) { - parseHtmlToContainer(params.footer, footer); - } // Custom class - - - applyCustomClass(footer, params, 'footer'); - }; - - const renderCloseButton = (instance, params) => { - const closeButton = getCloseButton(); - setInnerHtml(closeButton, params.closeButtonHtml); // Custom class - - applyCustomClass(closeButton, params, 'closeButton'); - toggle(closeButton, params.showCloseButton); - closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); - }; - - const renderIcon = (instance, params) => { - const innerParams = privateProps.innerParams.get(instance); - const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon - - if (innerParams && params.icon === innerParams.icon) { - // Custom or default content - setContent(icon, params); - applyStyles(icon, params); - return; - } - - if (!params.icon && !params.iconHtml) { - return hide(icon); - } - - if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) { - error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\"")); - return hide(icon); - } - - show(icon); // Custom or default content - - setContent(icon, params); - applyStyles(icon, params); // Animate icon - - addClass(icon, params.showClass.icon); - }; - - const applyStyles = (icon, params) => { - for (const iconType in iconTypes) { - if (params.icon !== iconType) { - removeClass(icon, iconTypes[iconType]); - } - } - - addClass(icon, iconTypes[params.icon]); // Icon color - - setColor(icon, params); // Success icon background color - - adjustSuccessIconBackgoundColor(); // Custom class - - applyCustomClass(icon, params, 'icon'); - }; // Adjust success icon background color to match the popup background color - - - const adjustSuccessIconBackgoundColor = () => { - const popup = getPopup(); - const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); - const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); - - for (let i = 0; i < successIconParts.length; i++) { - successIconParts[i].style.backgroundColor = popupBackgroundColor; - } - }; - - const setContent = (icon, params) => { - icon.textContent = ''; - - if (params.iconHtml) { - setInnerHtml(icon, iconContent(params.iconHtml)); - } else if (params.icon === 'success') { - setInnerHtml(icon, "\n
    \n \n
    \n
    \n "); - } else if (params.icon === 'error') { - setInnerHtml(icon, "\n \n \n \n \n "); - } else { - const defaultIconHtml = { - question: '?', - warning: '!', - info: 'i' - }; - setInnerHtml(icon, iconContent(defaultIconHtml[params.icon])); - } - }; - - const setColor = (icon, params) => { - if (!params.iconColor) { - return; - } - - icon.style.color = params.iconColor; - icon.style.borderColor = params.iconColor; - - for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) { - setStyle(icon, sel, 'backgroundColor', params.iconColor); - } - - setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor); - }; - - const iconContent = content => "
    ").concat(content, "
    "); - - const renderImage = (instance, params) => { - const image = getImage(); - - if (!params.imageUrl) { - return hide(image); - } - - show(image, ''); // Src, alt - - image.setAttribute('src', params.imageUrl); - image.setAttribute('alt', params.imageAlt); // Width, height - - applyNumericalStyle(image, 'width', params.imageWidth); - applyNumericalStyle(image, 'height', params.imageHeight); // Class - - image.className = swalClasses.image; - applyCustomClass(image, params, 'image'); - }; - - const createStepElement = step => { - const stepEl = document.createElement('li'); - addClass(stepEl, swalClasses['progress-step']); - setInnerHtml(stepEl, step); - return stepEl; - }; - - const createLineElement = params => { - const lineEl = document.createElement('li'); - addClass(lineEl, swalClasses['progress-step-line']); - - if (params.progressStepsDistance) { - lineEl.style.width = params.progressStepsDistance; - } - - return lineEl; - }; - - const renderProgressSteps = (instance, params) => { - const progressStepsContainer = getProgressSteps(); - - if (!params.progressSteps || params.progressSteps.length === 0) { - return hide(progressStepsContainer); - } - - show(progressStepsContainer); - progressStepsContainer.textContent = ''; - - if (params.currentProgressStep >= params.progressSteps.length) { - warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)'); - } - - params.progressSteps.forEach((step, index) => { - const stepEl = createStepElement(step); - progressStepsContainer.appendChild(stepEl); - - if (index === params.currentProgressStep) { - addClass(stepEl, swalClasses['active-progress-step']); - } - - if (index !== params.progressSteps.length - 1) { - const lineEl = createLineElement(params); - progressStepsContainer.appendChild(lineEl); - } - }); - }; - - const renderTitle = (instance, params) => { - const title = getTitle(); - toggle(title, params.title || params.titleText, 'block'); - - if (params.title) { - parseHtmlToContainer(params.title, title); - } - - if (params.titleText) { - title.innerText = params.titleText; - } // Custom class - - - applyCustomClass(title, params, 'title'); - }; - - const renderPopup = (instance, params) => { - const container = getContainer(); - const popup = getPopup(); // Width - - if (params.toast) { - // #2170 - applyNumericalStyle(container, 'width', params.width); - popup.style.width = '100%'; - popup.insertBefore(getLoader(), getIcon()); - } else { - applyNumericalStyle(popup, 'width', params.width); - } // Padding - - - applyNumericalStyle(popup, 'padding', params.padding); // Background - - if (params.background) { - popup.style.background = params.background; - } - - hide(getValidationMessage()); // Classes - - addClasses(popup, params); - }; - - const addClasses = (popup, params) => { - // Default Class + showClass when updating Swal.update({}) - popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : ''); - - if (params.toast) { - addClass([document.documentElement, document.body], swalClasses['toast-shown']); - addClass(popup, swalClasses.toast); - } else { - addClass(popup, swalClasses.modal); - } // Custom class - - - applyCustomClass(popup, params, 'popup'); - - if (typeof params.customClass === 'string') { - addClass(popup, params.customClass); - } // Icon class (#1842) - - - if (params.icon) { - addClass(popup, swalClasses["icon-".concat(params.icon)]); - } - }; - - const render = (instance, params) => { - renderPopup(instance, params); - renderContainer(instance, params); - renderProgressSteps(instance, params); - renderIcon(instance, params); - renderImage(instance, params); - renderTitle(instance, params); - renderCloseButton(instance, params); - renderContent(instance, params); - renderActions(instance, params); - renderFooter(instance, params); - - if (typeof params.didRender === 'function') { - params.didRender(getPopup()); - } - }; - - /* - * Global function to determine if SweetAlert2 popup is shown - */ - - const isVisible$1 = () => { - return isVisible(getPopup()); - }; - /* - * Global function to click 'Confirm' button - */ - - const clickConfirm = () => getConfirmButton() && getConfirmButton().click(); - /* - * Global function to click 'Deny' button - */ - - const clickDeny = () => getDenyButton() && getDenyButton().click(); - /* - * Global function to click 'Cancel' button - */ - - const clickCancel = () => getCancelButton() && getCancelButton().click(); - - function fire(...args) { - const Swal = this; - return new Swal(...args); - } - - /** - * Returns an extended version of `Swal` containing `params` as defaults. - * Useful for reusing Swal configuration. - * - * For example: - * - * Before: - * const textPromptOptions = { input: 'text', showCancelButton: true } - * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) - * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) - * - * After: - * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) - * const {value: firstName} = await TextPrompt('What is your first name?') - * const {value: lastName} = await TextPrompt('What is your last name?') - * - * @param mixinParams - */ - function mixin(mixinParams) { - class MixinSwal extends this { - _main(params, priorityMixinParams) { - return super._main(params, Object.assign({}, mixinParams, priorityMixinParams)); - } - - } - - return MixinSwal; - } - - /** - * Shows loader (spinner), this is useful with AJAX requests. - * By default the loader be shown instead of the "Confirm" button. - */ - - const showLoading = buttonToReplace => { - let popup = getPopup(); - - if (!popup) { - Swal.fire(); - } - - popup = getPopup(); - const loader = getLoader(); - - if (isToast()) { - hide(getIcon()); - } else { - replaceButton(popup, buttonToReplace); - } - - show(loader); - popup.setAttribute('data-loading', true); - popup.setAttribute('aria-busy', true); - popup.focus(); - }; - - const replaceButton = (popup, buttonToReplace) => { - const actions = getActions(); - const loader = getLoader(); - - if (!buttonToReplace && isVisible(getConfirmButton())) { - buttonToReplace = getConfirmButton(); - } - - show(actions); - - if (buttonToReplace) { - hide(buttonToReplace); - loader.setAttribute('data-button-to-replace', buttonToReplace.className); - } - - loader.parentNode.insertBefore(loader, buttonToReplace); - addClass([popup, actions], swalClasses.loading); - }; - - const RESTORE_FOCUS_TIMEOUT = 100; - - const globalState = {}; - - const focusPreviousActiveElement = () => { - if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { - globalState.previousActiveElement.focus(); - globalState.previousActiveElement = null; - } else if (document.body) { - document.body.focus(); - } - }; // Restore previous active (focused) element - - - const restoreActiveElement = returnFocus => { - return new Promise(resolve => { - if (!returnFocus) { - return resolve(); - } - - const x = window.scrollX; - const y = window.scrollY; - globalState.restoreFocusTimeout = setTimeout(() => { - focusPreviousActiveElement(); - resolve(); - }, RESTORE_FOCUS_TIMEOUT); // issues/900 - - window.scrollTo(x, y); - }); - }; - - /** - * If `timer` parameter is set, returns number of milliseconds of timer remained. - * Otherwise, returns undefined. - */ - - const getTimerLeft = () => { - return globalState.timeout && globalState.timeout.getTimerLeft(); - }; - /** - * Stop timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const stopTimer = () => { - if (globalState.timeout) { - stopTimerProgressBar(); - return globalState.timeout.stop(); - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const resumeTimer = () => { - if (globalState.timeout) { - const remaining = globalState.timeout.start(); - animateTimerProgressBar(remaining); - return remaining; - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const toggleTimer = () => { - const timer = globalState.timeout; - return timer && (timer.running ? stopTimer() : resumeTimer()); - }; - /** - * Increase timer. Returns number of milliseconds of an updated timer. - * If `timer` parameter isn't set, returns undefined. - */ - - const increaseTimer = n => { - if (globalState.timeout) { - const remaining = globalState.timeout.increase(n); - animateTimerProgressBar(remaining, true); - return remaining; - } - }; - /** - * Check if timer is running. Returns true if timer is running - * or false if timer is paused or stopped. - * If `timer` parameter isn't set, returns undefined - */ - - const isTimerRunning = () => { - return globalState.timeout && globalState.timeout.isRunning(); - }; - - let bodyClickListenerAdded = false; - const clickHandlers = {}; - function bindClickHandler(attr = 'data-swal-template') { - clickHandlers[attr] = this; - - if (!bodyClickListenerAdded) { - document.body.addEventListener('click', bodyClickListener); - bodyClickListenerAdded = true; - } - } - - const bodyClickListener = event => { - for (let el = event.target; el && el !== document; el = el.parentNode) { - for (const attr in clickHandlers) { - const template = el.getAttribute(attr); - - if (template) { - clickHandlers[attr].fire({ - template - }); - return; - } - } - } - }; - - const defaultParams = { - title: '', - titleText: '', - text: '', - html: '', - footer: '', - icon: undefined, - iconColor: undefined, - iconHtml: undefined, - template: undefined, - toast: false, - showClass: { - popup: 'swal2-show', - backdrop: 'swal2-backdrop-show', - icon: 'swal2-icon-show' - }, - hideClass: { - popup: 'swal2-hide', - backdrop: 'swal2-backdrop-hide', - icon: 'swal2-icon-hide' - }, - customClass: {}, - target: 'body', - backdrop: true, - heightAuto: true, - allowOutsideClick: true, - allowEscapeKey: true, - allowEnterKey: true, - stopKeydownPropagation: true, - keydownListenerCapture: false, - showConfirmButton: true, - showDenyButton: false, - showCancelButton: false, - preConfirm: undefined, - preDeny: undefined, - confirmButtonText: 'OK', - confirmButtonAriaLabel: '', - confirmButtonColor: undefined, - denyButtonText: 'No', - denyButtonAriaLabel: '', - denyButtonColor: undefined, - cancelButtonText: 'Cancel', - cancelButtonAriaLabel: '', - cancelButtonColor: undefined, - buttonsStyling: true, - reverseButtons: false, - focusConfirm: true, - focusDeny: false, - focusCancel: false, - returnFocus: true, - showCloseButton: false, - closeButtonHtml: '×', - closeButtonAriaLabel: 'Close this dialog', - loaderHtml: '', - showLoaderOnConfirm: false, - showLoaderOnDeny: false, - imageUrl: undefined, - imageWidth: undefined, - imageHeight: undefined, - imageAlt: '', - timer: undefined, - timerProgressBar: false, - width: undefined, - padding: undefined, - background: undefined, - input: undefined, - inputPlaceholder: '', - inputLabel: '', - inputValue: '', - inputOptions: {}, - inputAutoTrim: true, - inputAttributes: {}, - inputValidator: undefined, - returnInputValueOnDeny: false, - validationMessage: undefined, - grow: false, - position: 'center', - progressSteps: [], - currentProgressStep: undefined, - progressStepsDistance: undefined, - willOpen: undefined, - didOpen: undefined, - didRender: undefined, - willClose: undefined, - didClose: undefined, - didDestroy: undefined, - scrollbarPadding: true - }; - const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose']; - const deprecatedParams = {}; - const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture']; - /** - * Is valid parameter - * @param {String} paramName - */ - - const isValidParameter = paramName => { - return Object.prototype.hasOwnProperty.call(defaultParams, paramName); - }; - /** - * Is valid parameter for Swal.update() method - * @param {String} paramName - */ - - const isUpdatableParameter = paramName => { - return updatableParams.indexOf(paramName) !== -1; - }; - /** - * Is deprecated parameter - * @param {String} paramName - */ - - const isDeprecatedParameter = paramName => { - return deprecatedParams[paramName]; - }; - - const checkIfParamIsValid = param => { - if (!isValidParameter(param)) { - warn("Unknown parameter \"".concat(param, "\"")); - } - }; - - const checkIfToastParamIsValid = param => { - if (toastIncompatibleParams.includes(param)) { - warn("The parameter \"".concat(param, "\" is incompatible with toasts")); - } - }; - - const checkIfParamIsDeprecated = param => { - if (isDeprecatedParameter(param)) { - warnAboutDeprecation(param, isDeprecatedParameter(param)); - } - }; - /** - * Show relevant warnings for given params - * - * @param params - */ - - - const showWarningsForParams = params => { - if (!params.backdrop && params.allowOutsideClick) { - warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'); - } - - for (const param in params) { - checkIfParamIsValid(param); - - if (params.toast) { - checkIfToastParamIsValid(param); - } - - checkIfParamIsDeprecated(param); - } - }; - - - - var staticMethods = /*#__PURE__*/Object.freeze({ - isValidParameter: isValidParameter, - isUpdatableParameter: isUpdatableParameter, - isDeprecatedParameter: isDeprecatedParameter, - argsToParams: argsToParams, - isVisible: isVisible$1, - clickConfirm: clickConfirm, - clickDeny: clickDeny, - clickCancel: clickCancel, - getContainer: getContainer, - getPopup: getPopup, - getTitle: getTitle, - getHtmlContainer: getHtmlContainer, - getImage: getImage, - getIcon: getIcon, - getInputLabel: getInputLabel, - getCloseButton: getCloseButton, - getActions: getActions, - getConfirmButton: getConfirmButton, - getDenyButton: getDenyButton, - getCancelButton: getCancelButton, - getLoader: getLoader, - getFooter: getFooter, - getTimerProgressBar: getTimerProgressBar, - getFocusableElements: getFocusableElements, - getValidationMessage: getValidationMessage, - isLoading: isLoading, - fire: fire, - mixin: mixin, - showLoading: showLoading, - enableLoading: showLoading, - getTimerLeft: getTimerLeft, - stopTimer: stopTimer, - resumeTimer: resumeTimer, - toggleTimer: toggleTimer, - increaseTimer: increaseTimer, - isTimerRunning: isTimerRunning, - bindClickHandler: bindClickHandler - }); - - /** - * Hides loader and shows back the button which was hidden by .showLoading() - */ - - function hideLoading() { - // do nothing if popup is closed - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - return; - } - - const domCache = privateProps.domCache.get(this); - hide(domCache.loader); - - if (isToast()) { - if (innerParams.icon) { - show(getIcon()); - } - } else { - showRelatedButton(domCache); - } - - removeClass([domCache.popup, domCache.actions], swalClasses.loading); - domCache.popup.removeAttribute('aria-busy'); - domCache.popup.removeAttribute('data-loading'); - domCache.confirmButton.disabled = false; - domCache.denyButton.disabled = false; - domCache.cancelButton.disabled = false; - } - - const showRelatedButton = domCache => { - const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace')); - - if (buttonToReplace.length) { - show(buttonToReplace[0], 'inline-block'); - } else if (allButtonsAreHidden()) { - hide(domCache.actions); - } - }; - - function getInput$1(instance) { - const innerParams = privateProps.innerParams.get(instance || this); - const domCache = privateProps.domCache.get(instance || this); - - if (!domCache) { - return null; - } - - return getInput(domCache.popup, innerParams.input); - } - - const fixScrollbar = () => { - // for queues, do not do this more than once - if (states.previousBodyPadding !== null) { - return; - } // if the body has overflow - - - if (document.body.scrollHeight > window.innerHeight) { - // add padding so the content doesn't shift after removal of scrollbar - states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right')); - document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px"); - } - }; - const undoScrollbar = () => { - if (states.previousBodyPadding !== null) { - document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px"); - states.previousBodyPadding = null; - } - }; - - /* istanbul ignore file */ - - const iOSfix = () => { - const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; - - if (iOS && !hasClass(document.body, swalClasses.iosfix)) { - const offset = document.body.scrollTop; - document.body.style.top = "".concat(offset * -1, "px"); - addClass(document.body, swalClasses.iosfix); - lockBodyScroll(); - addBottomPaddingForTallPopups(); // #1948 - } - }; - - const addBottomPaddingForTallPopups = () => { - const safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i); - - if (safari) { - const bottomPanelHeight = 44; - - if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) { - getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px"); - } - } - }; - - const lockBodyScroll = () => { - // #1246 - const container = getContainer(); - let preventTouchMove; - - container.ontouchstart = e => { - preventTouchMove = shouldPreventTouchMove(e); - }; - - container.ontouchmove = e => { - if (preventTouchMove) { - e.preventDefault(); - e.stopPropagation(); - } - }; - }; - - const shouldPreventTouchMove = event => { - const target = event.target; - const container = getContainer(); - - if (isStylys(event) || isZoom(event)) { - return false; - } - - if (target === container) { - return true; - } - - if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603 - target.tagName !== 'TEXTAREA' && // #2266 - !(isScrollable(getHtmlContainer()) && // #1944 - getHtmlContainer().contains(target))) { - return true; - } - - return false; - }; - - const isStylys = event => { - // #1786 - return event.touches && event.touches.length && event.touches[0].touchType === 'stylus'; - }; - - const isZoom = event => { - // #1891 - return event.touches && event.touches.length > 1; - }; - - const undoIOSfix = () => { - if (hasClass(document.body, swalClasses.iosfix)) { - const offset = parseInt(document.body.style.top, 10); - removeClass(document.body, swalClasses.iosfix); - document.body.style.top = ''; - document.body.scrollTop = offset * -1; - } - }; - - // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that - // elements not within the active modal dialog will not be surfaced if a user opens a screen - // reader’s list of elements (headings, form controls, landmarks, etc.) in the document. - - const setAriaHidden = () => { - const bodyChildren = toArray(document.body.children); - bodyChildren.forEach(el => { - if (el === getContainer() || el.contains(getContainer())) { - return; - } - - if (el.hasAttribute('aria-hidden')) { - el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden')); - } - - el.setAttribute('aria-hidden', 'true'); - }); - }; - const unsetAriaHidden = () => { - const bodyChildren = toArray(document.body.children); - bodyChildren.forEach(el => { - if (el.hasAttribute('data-previous-aria-hidden')) { - el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden')); - el.removeAttribute('data-previous-aria-hidden'); - } else { - el.removeAttribute('aria-hidden'); - } - }); - }; - - /** - * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. - * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` - * This is the approach that Babel will probably take to implement private methods/fields - * https://github.com/tc39/proposal-private-methods - * https://github.com/babel/babel/pull/7555 - * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* - * then we can use that language feature. - */ - var privateMethods = { - swalPromiseResolve: new WeakMap() - }; - - /* - * Instance method to close sweetAlert - */ - - function removePopupAndResetState(instance, container, returnFocus, didClose) { - if (isToast()) { - triggerDidCloseAndDispose(instance, didClose); - } else { - restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose)); - globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = false; - } - - const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088 - // for some reason removing the container in Safari will scroll the document to bottom - - if (isSafari) { - container.setAttribute('style', 'display:none !important'); - container.removeAttribute('class'); - container.innerHTML = ''; - } else { - container.remove(); - } - - if (isModal()) { - undoScrollbar(); - undoIOSfix(); - unsetAriaHidden(); - } - - removeBodyClasses(); - } - - function removeBodyClasses() { - removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]); - } - - function close(resolveValue) { - const popup = getPopup(); - - if (!popup) { - return; - } - - resolveValue = prepareResolveValue(resolveValue); - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) { - return; - } - - const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this); - removeClass(popup, innerParams.showClass.popup); - addClass(popup, innerParams.hideClass.popup); - const backdrop = getContainer(); - removeClass(backdrop, innerParams.showClass.backdrop); - addClass(backdrop, innerParams.hideClass.backdrop); - handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise - - swalPromiseResolve(resolveValue); - } - - const prepareResolveValue = resolveValue => { - // When user calls Swal.close() - if (typeof resolveValue === 'undefined') { - return { - isConfirmed: false, - isDenied: false, - isDismissed: true - }; - } - - return Object.assign({ - isConfirmed: false, - isDenied: false, - isDismissed: false - }, resolveValue); - }; - - const handlePopupAnimation = (instance, popup, innerParams) => { - const container = getContainer(); // If animation is supported, animate - - const animationIsSupported = animationEndEvent && hasCssAnimation(popup); - - if (typeof innerParams.willClose === 'function') { - innerParams.willClose(popup); - } - - if (animationIsSupported) { - animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose); - } else { - // Otherwise, remove immediately - removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose); - } - }; - - const animatePopup = (instance, popup, container, returnFocus, didClose) => { - globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose); - popup.addEventListener(animationEndEvent, function (e) { - if (e.target === popup) { - globalState.swalCloseEventFinishedCallback(); - delete globalState.swalCloseEventFinishedCallback; - } - }); - }; - - const triggerDidCloseAndDispose = (instance, didClose) => { - setTimeout(() => { - if (typeof didClose === 'function') { - didClose.bind(instance.params)(); - } - - instance._destroy(); - }); - }; - - function setButtonsDisabled(instance, buttons, disabled) { - const domCache = privateProps.domCache.get(instance); - buttons.forEach(button => { - domCache[button].disabled = disabled; - }); - } - - function setInputDisabled(input, disabled) { - if (!input) { - return false; - } - - if (input.type === 'radio') { - const radiosContainer = input.parentNode.parentNode; - const radios = radiosContainer.querySelectorAll('input'); - - for (let i = 0; i < radios.length; i++) { - radios[i].disabled = disabled; - } - } else { - input.disabled = disabled; - } - } - - function enableButtons() { - setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false); - } - function disableButtons() { - setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true); - } - function enableInput() { - return setInputDisabled(this.getInput(), false); - } - function disableInput() { - return setInputDisabled(this.getInput(), true); - } - - function showValidationMessage(error) { - const domCache = privateProps.domCache.get(this); - const params = privateProps.innerParams.get(this); - setInnerHtml(domCache.validationMessage, error); - domCache.validationMessage.className = swalClasses['validation-message']; - - if (params.customClass && params.customClass.validationMessage) { - addClass(domCache.validationMessage, params.customClass.validationMessage); - } - - show(domCache.validationMessage); - const input = this.getInput(); - - if (input) { - input.setAttribute('aria-invalid', true); - input.setAttribute('aria-describedby', swalClasses['validation-message']); - focusInput(input); - addClass(input, swalClasses.inputerror); - } - } // Hide block with validation message - - function resetValidationMessage$1() { - const domCache = privateProps.domCache.get(this); - - if (domCache.validationMessage) { - hide(domCache.validationMessage); - } - - const input = this.getInput(); - - if (input) { - input.removeAttribute('aria-invalid'); - input.removeAttribute('aria-describedby'); - removeClass(input, swalClasses.inputerror); - } - } - - function getProgressSteps$1() { - const domCache = privateProps.domCache.get(this); - return domCache.progressSteps; - } - - class Timer { - constructor(callback, delay) { - this.callback = callback; - this.remaining = delay; - this.running = false; - this.start(); - } - - start() { - if (!this.running) { - this.running = true; - this.started = new Date(); - this.id = setTimeout(this.callback, this.remaining); - } - - return this.remaining; - } - - stop() { - if (this.running) { - this.running = false; - clearTimeout(this.id); - this.remaining -= new Date() - this.started; - } - - return this.remaining; - } - - increase(n) { - const running = this.running; - - if (running) { - this.stop(); - } - - this.remaining += n; - - if (running) { - this.start(); - } - - return this.remaining; - } - - getTimerLeft() { - if (this.running) { - this.stop(); - this.start(); - } - - return this.remaining; - } - - isRunning() { - return this.running; - } - - } - - var defaultInputValidators = { - email: (string, validationMessage) => { - return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); - }, - url: (string, validationMessage) => { - // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013 - return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); - } - }; - - function setDefaultInputValidators(params) { - // Use default `inputValidator` for supported input types if not provided - if (!params.inputValidator) { - Object.keys(defaultInputValidators).forEach(key => { - if (params.input === key) { - params.inputValidator = defaultInputValidators[key]; - } - }); - } - } - - function validateCustomTargetElement(params) { - // Determine if the custom target element is valid - if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) { - warn('Target parameter is not valid, defaulting to "body"'); - params.target = 'body'; - } - } - /** - * Set type, text and actions on popup - * - * @param params - * @returns {boolean} - */ - - - function setParameters(params) { - setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm - - if (params.showLoaderOnConfirm && !params.preConfirm) { - warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request'); - } - - validateCustomTargetElement(params); // Replace newlines with
    in title - - if (typeof params.title === 'string') { - params.title = params.title.split('\n').join('
    '); - } - - init(params); - } - - const swalStringParams = ['swal-title', 'swal-html', 'swal-footer']; - const getTemplateParams = params => { - const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template; - - if (!template) { - return {}; - } - - const templateContent = template.content; - showWarningsForElements(templateContent); - const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams)); - return result; - }; - - const getSwalParams = templateContent => { - const result = {}; - toArray(templateContent.querySelectorAll('swal-param')).forEach(param => { - showWarningsForAttributes(param, ['name', 'value']); - const paramName = param.getAttribute('name'); - let value = param.getAttribute('value'); - - if (typeof defaultParams[paramName] === 'boolean' && value === 'false') { - value = false; - } - - if (typeof defaultParams[paramName] === 'object') { - value = JSON.parse(value); - } - - result[paramName] = value; - }); - return result; - }; - - const getSwalButtons = templateContent => { - const result = {}; - toArray(templateContent.querySelectorAll('swal-button')).forEach(button => { - showWarningsForAttributes(button, ['type', 'color', 'aria-label']); - const type = button.getAttribute('type'); - result["".concat(type, "ButtonText")] = button.innerHTML; - result["show".concat(capitalizeFirstLetter(type), "Button")] = true; - - if (button.hasAttribute('color')) { - result["".concat(type, "ButtonColor")] = button.getAttribute('color'); - } - - if (button.hasAttribute('aria-label')) { - result["".concat(type, "ButtonAriaLabel")] = button.getAttribute('aria-label'); - } - }); - return result; - }; - - const getSwalImage = templateContent => { - const result = {}; - const image = templateContent.querySelector('swal-image'); - - if (image) { - showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']); - - if (image.hasAttribute('src')) { - result.imageUrl = image.getAttribute('src'); - } - - if (image.hasAttribute('width')) { - result.imageWidth = image.getAttribute('width'); - } - - if (image.hasAttribute('height')) { - result.imageHeight = image.getAttribute('height'); - } - - if (image.hasAttribute('alt')) { - result.imageAlt = image.getAttribute('alt'); - } - } - - return result; - }; - - const getSwalIcon = templateContent => { - const result = {}; - const icon = templateContent.querySelector('swal-icon'); - - if (icon) { - showWarningsForAttributes(icon, ['type', 'color']); - - if (icon.hasAttribute('type')) { - result.icon = icon.getAttribute('type'); - } - - if (icon.hasAttribute('color')) { - result.iconColor = icon.getAttribute('color'); - } - - result.iconHtml = icon.innerHTML; - } - - return result; - }; - - const getSwalInput = templateContent => { - const result = {}; - const input = templateContent.querySelector('swal-input'); - - if (input) { - showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']); - result.input = input.getAttribute('type') || 'text'; - - if (input.hasAttribute('label')) { - result.inputLabel = input.getAttribute('label'); - } - - if (input.hasAttribute('placeholder')) { - result.inputPlaceholder = input.getAttribute('placeholder'); - } - - if (input.hasAttribute('value')) { - result.inputValue = input.getAttribute('value'); - } - } - - const inputOptions = templateContent.querySelectorAll('swal-input-option'); - - if (inputOptions.length) { - result.inputOptions = {}; - toArray(inputOptions).forEach(option => { - showWarningsForAttributes(option, ['value']); - const optionValue = option.getAttribute('value'); - const optionName = option.innerHTML; - result.inputOptions[optionValue] = optionName; - }); - } - - return result; - }; - - const getSwalStringParams = (templateContent, paramNames) => { - const result = {}; - - for (const i in paramNames) { - const paramName = paramNames[i]; - const tag = templateContent.querySelector(paramName); - - if (tag) { - showWarningsForAttributes(tag, []); - result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim(); - } - } - - return result; - }; - - const showWarningsForElements = template => { - const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']); - toArray(template.children).forEach(el => { - const tagName = el.tagName.toLowerCase(); - - if (allowedElements.indexOf(tagName) === -1) { - warn("Unrecognized element <".concat(tagName, ">")); - } - }); - }; - - const showWarningsForAttributes = (el, allowedAttributes) => { - toArray(el.attributes).forEach(attribute => { - if (allowedAttributes.indexOf(attribute.name) === -1) { - warn(["Unrecognized attribute \"".concat(attribute.name, "\" on <").concat(el.tagName.toLowerCase(), ">."), "".concat(allowedAttributes.length ? "Allowed attributes are: ".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]); - } - }); - }; - - const SHOW_CLASS_TIMEOUT = 10; - /** - * Open popup, add necessary classes and styles, fix scrollbar - * - * @param params - */ - - const openPopup = params => { - const container = getContainer(); - const popup = getPopup(); - - if (typeof params.willOpen === 'function') { - params.willOpen(popup); - } - - const bodyStyles = window.getComputedStyle(document.body); - const initialBodyOverflow = bodyStyles.overflowY; - addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto' - - setTimeout(() => { - setScrollingVisibility(container, popup); - }, SHOW_CLASS_TIMEOUT); - - if (isModal()) { - fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow); - setAriaHidden(); - } - - if (!isToast() && !globalState.previousActiveElement) { - globalState.previousActiveElement = document.activeElement; - } - - if (typeof params.didOpen === 'function') { - setTimeout(() => params.didOpen(popup)); - } - - removeClass(container, swalClasses['no-transition']); - }; - - const swalOpenAnimationFinished = event => { - const popup = getPopup(); - - if (event.target !== popup) { - return; - } - - const container = getContainer(); - popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished); - container.style.overflowY = 'auto'; - }; - - const setScrollingVisibility = (container, popup) => { - if (animationEndEvent && hasCssAnimation(popup)) { - container.style.overflowY = 'hidden'; - popup.addEventListener(animationEndEvent, swalOpenAnimationFinished); - } else { - container.style.overflowY = 'auto'; - } - }; - - const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => { - iOSfix(); - - if (scrollbarPadding && initialBodyOverflow !== 'hidden') { - fixScrollbar(); - } // sweetalert2/issues/1247 - - - setTimeout(() => { - container.scrollTop = 0; - }); - }; - - const addClasses$1 = (container, popup, params) => { - addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059 - - popup.style.setProperty('opacity', '0', 'important'); - show(popup, 'grid'); - setTimeout(() => { - // Animate popup right after showing it - addClass(popup, params.showClass.popup); // and remove the opacity workaround - - popup.style.removeProperty('opacity'); - }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062 - - addClass([document.documentElement, document.body], swalClasses.shown); - - if (params.heightAuto && params.backdrop && !params.toast) { - addClass([document.documentElement, document.body], swalClasses['height-auto']); - } - }; - - const handleInputOptionsAndValue = (instance, params) => { - if (params.input === 'select' || params.input === 'radio') { - handleInputOptions(instance, params); - } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) { - showLoading(getConfirmButton()); - handleInputValue(instance, params); - } - }; - const getInputValue = (instance, innerParams) => { - const input = instance.getInput(); - - if (!input) { - return null; - } - - switch (innerParams.input) { - case 'checkbox': - return getCheckboxValue(input); - - case 'radio': - return getRadioValue(input); - - case 'file': - return getFileValue(input); - - default: - return innerParams.inputAutoTrim ? input.value.trim() : input.value; - } - }; - - const getCheckboxValue = input => input.checked ? 1 : 0; - - const getRadioValue = input => input.checked ? input.value : null; - - const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null; - - const handleInputOptions = (instance, params) => { - const popup = getPopup(); - - const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params); - - if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) { - showLoading(getConfirmButton()); - asPromise(params.inputOptions).then(inputOptions => { - instance.hideLoading(); - processInputOptions(inputOptions); - }); - } else if (typeof params.inputOptions === 'object') { - processInputOptions(params.inputOptions); - } else { - error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof params.inputOptions)); - } - }; - - const handleInputValue = (instance, params) => { - const input = instance.getInput(); - hide(input); - asPromise(params.inputValue).then(inputValue => { - input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue); - show(input); - input.focus(); - instance.hideLoading(); - }).catch(err => { - error("Error in inputValue promise: ".concat(err)); - input.value = ''; - show(input); - input.focus(); - instance.hideLoading(); - }); - }; - - const populateInputOptions = { - select: (popup, inputOptions, params) => { - const select = getChildByClass(popup, swalClasses.select); - - const renderOption = (parent, optionLabel, optionValue) => { - const option = document.createElement('option'); - option.value = optionValue; - setInnerHtml(option, optionLabel); - option.selected = isSelected(optionValue, params.inputValue); - parent.appendChild(option); - }; - - inputOptions.forEach(inputOption => { - const optionValue = inputOption[0]; - const optionLabel = inputOption[1]; // spec: - // https://www.w3.org/TR/html401/interact/forms.html#h-17.6 - // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..." - // check whether this is a - - if (Array.isArray(optionLabel)) { - // if it is an array, then it is an - const optgroup = document.createElement('optgroup'); - optgroup.label = optionValue; - optgroup.disabled = false; // not configurable for now - - select.appendChild(optgroup); - optionLabel.forEach(o => renderOption(optgroup, o[1], o[0])); - } else { - // case of - valueFormatted = formatInputOptions(valueFormatted); - } - - result.push([key, valueFormatted]); - }); - } else { - Object.keys(inputOptions).forEach(key => { - let valueFormatted = inputOptions[key]; - - if (typeof valueFormatted === 'object') { - // case of - valueFormatted = formatInputOptions(valueFormatted); - } - - result.push([key, valueFormatted]); - }); - } - - return result; - }; - - const isSelected = (optionValue, inputValue) => { - return inputValue && inputValue.toString() === optionValue.toString(); - }; - - const handleConfirmButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); - - if (innerParams.input) { - handleConfirmOrDenyWithInput(instance, 'confirm'); - } else { - confirm(instance, true); - } - }; - const handleDenyButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); - - if (innerParams.returnInputValueOnDeny) { - handleConfirmOrDenyWithInput(instance, 'deny'); - } else { - deny(instance, false); - } - }; - const handleCancelButtonClick = (instance, dismissWith) => { - instance.disableButtons(); - dismissWith(DismissReason.cancel); - }; - - const handleConfirmOrDenyWithInput = (instance, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - const inputValue = getInputValue(instance, innerParams); - - if (innerParams.inputValidator) { - handleInputValidator(instance, inputValue, type); - } else if (!instance.getInput().checkValidity()) { - instance.enableButtons(); - instance.showValidationMessage(innerParams.validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); - } - }; - - const handleInputValidator = (instance, inputValue, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableInput(); - const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))); - validationPromise.then(validationMessage => { - instance.enableButtons(); - instance.enableInput(); - - if (validationMessage) { - instance.showValidationMessage(validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); - } - }); - }; - - const deny = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnDeny) { - showLoading(getDenyButton()); - } - - if (innerParams.preDeny) { - const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage))); - preDenyPromise.then(preDenyValue => { - if (preDenyValue === false) { - instance.hideLoading(); - } else { - instance.closePopup({ - isDenied: true, - value: typeof preDenyValue === 'undefined' ? value : preDenyValue - }); - } - }); - } else { - instance.closePopup({ - isDenied: true, - value - }); - } - }; - - const succeedWith = (instance, value) => { - instance.closePopup({ - isConfirmed: true, - value - }); - }; - - const confirm = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnConfirm) { - showLoading(); - } - - if (innerParams.preConfirm) { - instance.resetValidationMessage(); - const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage))); - preConfirmPromise.then(preConfirmValue => { - if (isVisible(getValidationMessage()) || preConfirmValue === false) { - instance.hideLoading(); - } else { - succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); - } - }); - } else { - succeedWith(instance, value); - } - }; - - const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => { - if (globalState.keydownTarget && globalState.keydownHandlerAdded) { - globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = false; - } - - if (!innerParams.toast) { - globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith); - - globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup(); - globalState.keydownListenerCapture = innerParams.keydownListenerCapture; - globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = true; - } - }; // Focus handling - - const setFocus = (innerParams, index, increment) => { - const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match - - if (focusableElements.length) { - index = index + increment; // rollover to first item - - if (index === focusableElements.length) { - index = 0; // go to last item - } else if (index === -1) { - index = focusableElements.length - 1; - } - - return focusableElements[index].focus(); - } // no visible focusable elements, focus the popup - - - getPopup().focus(); - }; - const arrowKeysNextButton = ['ArrowRight', 'ArrowDown']; - const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp']; - - const keydownHandler = (instance, e, dismissWith) => { - const innerParams = privateProps.innerParams.get(instance); - - if (!innerParams) { - return; // This instance has already been destroyed - } - - if (innerParams.stopKeydownPropagation) { - e.stopPropagation(); - } // ENTER - - - if (e.key === 'Enter') { - handleEnter(instance, e, innerParams); // TAB - } else if (e.key === 'Tab') { - handleTab(e, innerParams); // ARROWS - switch focus between buttons - } else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) { - handleArrows(e.key); // ESC - } else if (e.key === 'Escape') { - handleEsc(e, innerParams, dismissWith); - } - }; - - const handleEnter = (instance, e, innerParams) => { - // #720 #721 - if (e.isComposing) { - return; - } - - if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { - if (['textarea', 'file'].includes(innerParams.input)) { - return; // do not submit - } - - clickConfirm(); - e.preventDefault(); - } - }; - - const handleTab = (e, innerParams) => { - const targetElement = e.target; - const focusableElements = getFocusableElements(); - let btnIndex = -1; - - for (let i = 0; i < focusableElements.length; i++) { - if (targetElement === focusableElements[i]) { - btnIndex = i; - break; - } - } - - if (!e.shiftKey) { - // Cycle to the next button - setFocus(innerParams, btnIndex, 1); - } else { - // Cycle to the prev button - setFocus(innerParams, btnIndex, -1); - } - - e.stopPropagation(); - e.preventDefault(); - }; - - const handleArrows = key => { - const confirmButton = getConfirmButton(); - const denyButton = getDenyButton(); - const cancelButton = getCancelButton(); - - if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) { - return; - } - - const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling'; - const buttonToFocus = document.activeElement[sibling]; - - if (buttonToFocus) { - buttonToFocus.focus(); - } - }; - - const handleEsc = (e, innerParams, dismissWith) => { - if (callIfFunction(innerParams.allowEscapeKey)) { - e.preventDefault(); - dismissWith(DismissReason.esc); - } - }; - - const handlePopupClick = (instance, domCache, dismissWith) => { - const innerParams = privateProps.innerParams.get(instance); - - if (innerParams.toast) { - handleToastClick(instance, domCache, dismissWith); - } else { - // Ignore click events that had mousedown on the popup but mouseup on the container - // This can happen when the user drags a slider - handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup - - handleContainerMousedown(domCache); - handleModalClick(instance, domCache, dismissWith); - } - }; - - const handleToastClick = (instance, domCache, dismissWith) => { - // Closing toast by internal click - domCache.popup.onclick = () => { - const innerParams = privateProps.innerParams.get(instance); - - if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) { - return; - } - - dismissWith(DismissReason.close); - }; - }; - - let ignoreOutsideClick = false; - - const handleModalMousedown = domCache => { - domCache.popup.onmousedown = () => { - domCache.container.onmouseup = function (e) { - domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't - // have any other direct children aside of the popup - - if (e.target === domCache.container) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleContainerMousedown = domCache => { - domCache.container.onmousedown = () => { - domCache.popup.onmouseup = function (e) { - domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup - - if (e.target === domCache.popup || domCache.popup.contains(e.target)) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleModalClick = (instance, domCache, dismissWith) => { - domCache.container.onclick = e => { - const innerParams = privateProps.innerParams.get(instance); - - if (ignoreOutsideClick) { - ignoreOutsideClick = false; - return; - } - - if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { - dismissWith(DismissReason.backdrop); - } - }; - }; - - function _main(userParams, mixinParams = {}) { - showWarningsForParams(Object.assign({}, mixinParams, userParams)); - - if (globalState.currentInstance) { - globalState.currentInstance._destroy(); - - if (isModal()) { - unsetAriaHidden(); - } - } - - globalState.currentInstance = this; - const innerParams = prepareParams(userParams, mixinParams); - setParameters(innerParams); - Object.freeze(innerParams); // clear the previous timer - - if (globalState.timeout) { - globalState.timeout.stop(); - delete globalState.timeout; - } // clear the restore focus timeout - - - clearTimeout(globalState.restoreFocusTimeout); - const domCache = populateDomCache(this); - render(this, innerParams); - privateProps.innerParams.set(this, innerParams); - return swalPromise(this, domCache, innerParams); - } - - const prepareParams = (userParams, mixinParams) => { - const templateParams = getTemplateParams(userParams); - const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131 - - params.showClass = Object.assign({}, defaultParams.showClass, params.showClass); - params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass); - return params; - }; - - const swalPromise = (instance, domCache, innerParams) => { - return new Promise(resolve => { - // functions to handle all closings/dismissals - const dismissWith = dismiss => { - instance.closePopup({ - isDismissed: true, - dismiss - }); - }; - - privateMethods.swalPromiseResolve.set(instance, resolve); - - domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance); - - domCache.denyButton.onclick = () => handleDenyButtonClick(instance); - - domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith); - - domCache.closeButton.onclick = () => dismissWith(DismissReason.close); - - handlePopupClick(instance, domCache, dismissWith); - addKeydownHandler(instance, globalState, innerParams, dismissWith); - handleInputOptionsAndValue(instance, innerParams); - openPopup(innerParams); - setupTimer(globalState, innerParams, dismissWith); - initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946) - - setTimeout(() => { - domCache.container.scrollTop = 0; - }); - }); - }; - - const populateDomCache = instance => { - const domCache = { - popup: getPopup(), - container: getContainer(), - actions: getActions(), - confirmButton: getConfirmButton(), - denyButton: getDenyButton(), - cancelButton: getCancelButton(), - loader: getLoader(), - closeButton: getCloseButton(), - validationMessage: getValidationMessage(), - progressSteps: getProgressSteps() - }; - privateProps.domCache.set(instance, domCache); - return domCache; - }; - - const setupTimer = (globalState$$1, innerParams, dismissWith) => { - const timerProgressBar = getTimerProgressBar(); - hide(timerProgressBar); - - if (innerParams.timer) { - globalState$$1.timeout = new Timer(() => { - dismissWith('timer'); - delete globalState$$1.timeout; - }, innerParams.timer); - - if (innerParams.timerProgressBar) { - show(timerProgressBar); - setTimeout(() => { - if (globalState$$1.timeout && globalState$$1.timeout.running) { - // timer can be already stopped or unset at this point - animateTimerProgressBar(innerParams.timer); - } - }); - } - } - }; - - const initFocus = (domCache, innerParams) => { - if (innerParams.toast) { - return; - } - - if (!callIfFunction(innerParams.allowEnterKey)) { - return blurActiveElement(); - } - - if (!focusButton(domCache, innerParams)) { - setFocus(innerParams, -1, 1); - } - }; - - const focusButton = (domCache, innerParams) => { - if (innerParams.focusDeny && isVisible(domCache.denyButton)) { - domCache.denyButton.focus(); - return true; - } - - if (innerParams.focusCancel && isVisible(domCache.cancelButton)) { - domCache.cancelButton.focus(); - return true; - } - - if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) { - domCache.confirmButton.focus(); - return true; - } - - return false; - }; - - const blurActiveElement = () => { - if (document.activeElement && typeof document.activeElement.blur === 'function') { - document.activeElement.blur(); - } - }; - - /** - * Updates popup parameters. - */ - - function update(params) { - const popup = getPopup(); - const innerParams = privateProps.innerParams.get(this); - - if (!popup || hasClass(popup, innerParams.hideClass.popup)) { - return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); - } - - const validUpdatableParams = {}; // assign valid params from `params` to `defaults` - - Object.keys(params).forEach(param => { - if (Swal.isUpdatableParameter(param)) { - validUpdatableParams[param] = params[param]; - } else { - warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md")); - } - }); - const updatedParams = Object.assign({}, innerParams, validUpdatableParams); - render(this, updatedParams); - privateProps.innerParams.set(this, updatedParams); - Object.defineProperties(this, { - params: { - value: Object.assign({}, this.params, params), - writable: false, - enumerable: true - } - }); - } - - function _destroy() { - const domCache = privateProps.domCache.get(this); - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - return; // This instance has already been destroyed - } // Check if there is another Swal closing - - - if (domCache.popup && globalState.swalCloseEventFinishedCallback) { - globalState.swalCloseEventFinishedCallback(); - delete globalState.swalCloseEventFinishedCallback; - } // Check if there is a swal disposal defer timer - - - if (globalState.deferDisposalTimer) { - clearTimeout(globalState.deferDisposalTimer); - delete globalState.deferDisposalTimer; - } - - if (typeof innerParams.didDestroy === 'function') { - innerParams.didDestroy(); - } - - disposeSwal(this); - } - - const disposeSwal = instance => { - // Unset this.params so GC will dispose it (#1569) - delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) - - delete globalState.keydownHandler; - delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569) - - unsetWeakMaps(privateProps); - unsetWeakMaps(privateMethods); // Unset currentInstance - - delete globalState.currentInstance; - }; - - const unsetWeakMaps = obj => { - for (const i in obj) { - obj[i] = new WeakMap(); - } - }; - - - - var instanceMethods = /*#__PURE__*/Object.freeze({ - hideLoading: hideLoading, - disableLoading: hideLoading, - getInput: getInput$1, - close: close, - closePopup: close, - closeModal: close, - closeToast: close, - enableButtons: enableButtons, - disableButtons: disableButtons, - enableInput: enableInput, - disableInput: disableInput, - showValidationMessage: showValidationMessage, - resetValidationMessage: resetValidationMessage$1, - getProgressSteps: getProgressSteps$1, - _main: _main, - update: update, - _destroy: _destroy - }); - - let currentInstance; - - class SweetAlert { - constructor(...args) { - // Prevent run in Node env - if (typeof window === 'undefined') { - return; - } - - currentInstance = this; - const outerParams = Object.freeze(this.constructor.argsToParams(args)); - Object.defineProperties(this, { - params: { - value: outerParams, - writable: false, - enumerable: true, - configurable: true - } - }); - - const promise = this._main(this.params); - - privateProps.promise.set(this, promise); - } // `catch` cannot be the name of a module export, so we define our thenable methods here instead - - - then(onFulfilled) { - const promise = privateProps.promise.get(this); - return promise.then(onFulfilled); - } - - finally(onFinally) { - const promise = privateProps.promise.get(this); - return promise.finally(onFinally); - } - - } // Assign instance methods from src/instanceMethods/*.js to prototype - - - Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor - - Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility - - Object.keys(instanceMethods).forEach(key => { - SweetAlert[key] = function (...args) { - if (currentInstance) { - return currentInstance[key](...args); - } - }; - }); - SweetAlert.DismissReason = DismissReason; - SweetAlert.version = '11.1.7'; - - const Swal = SweetAlert; - Swal.default = Swal; - - return Swal; - -})); -if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2} - -"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7367f0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(115,103,240,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#ea5455;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(234,84,85,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7d88;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,125,136,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 0}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 0;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}"); \ No newline at end of file diff --git a/dist/assets/vendors/sweetalert2/sweetalert2.all.min.js b/dist/assets/vendors/sweetalert2/sweetalert2.all.min.js deleted file mode 100644 index 7a84d6cdf..000000000 --- a/dist/assets/vendors/sweetalert2/sweetalert2.all.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const l=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),t="SweetAlert2:",o=e=>e.charAt(0).toUpperCase()+e.slice(1),a=e=>Array.prototype.slice.call(e),s=e=>{console.warn("".concat(t," ").concat("object"==typeof e?e.join(" "):e))},r=e=>{console.error("".concat(t," ").concat(e))},n=[],i=(e,t)=>{t='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),n.includes(t)||(n.push(t),s(t))},c=e=>"function"==typeof e?e():e,u=e=>e&&"function"==typeof e.toPromise,d=e=>u(e)?e.toPromise():Promise.resolve(e),p=e=>e&&Promise.resolve(e)===e,m=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const h=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),g=e(["success","warning","info","question","error"]),b=()=>document.body.querySelector(".".concat(h.container)),f=e=>{const t=b();return t?t.querySelector(e):null},y=e=>f(".".concat(e)),v=()=>y(h.popup),w=()=>y(h.icon),C=()=>y(h.title),k=()=>y(h["html-container"]),A=()=>y(h.image),B=()=>y(h["progress-steps"]),x=()=>y(h["validation-message"]),P=()=>f(".".concat(h.actions," .").concat(h.confirm)),E=()=>f(".".concat(h.actions," .").concat(h.deny));const S=()=>f(".".concat(h.loader)),T=()=>f(".".concat(h.actions," .").concat(h.cancel)),L=()=>y(h.actions),O=()=>y(h.footer),j=()=>y(h["timer-progress-bar"]),D=()=>y(h.close),I=()=>{const e=a(v().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>(e=parseInt(e.getAttribute("tabindex")),(t=parseInt(t.getAttribute("tabindex")))"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;eG(e))},M=()=>!H()&&!document.body.classList.contains(h["no-backdrop"]),H=()=>document.body.classList.contains(h["toast-shown"]);const q={previousBodyPadding:null},V=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");a(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),a(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},N=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e{var o,i;if(o=e,i=t,a(o.classList).forEach(e=>{Object.values(h).includes(e)||Object.values(g).includes(e)||Object.values(i.showClass).includes(e)||o.classList.remove(e)}),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return s("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));W(e,t.customClass[n])}},F=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return K(e,h[t]);case"checkbox":return e.querySelector(".".concat(h.checkbox," input"));case"radio":return e.querySelector(".".concat(h.radio," input:checked"))||e.querySelector(".".concat(h.radio," input:first-child"));case"range":return e.querySelector(".".concat(h.range," input"));default:return K(e,h.input)}},R=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},z=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{e.forEach?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},W=(e,t)=>{z(e,t,!0)},_=(e,t)=>{z(e,t,!1)},K=(t,n)=>{for(let e=0;e{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},Z=(e,t="flex")=>{e.style.display=t},J=e=>{e.style.display="none"},X=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},$=(e,t,n)=>{t?Z(e,n):J(e)},G=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),Q=()=>!G(P())&&!G(E())&&!G(T()),ee=e=>!!(e.scrollHeight>e.clientHeight),te=e=>{const t=window.getComputedStyle(e);var n=parseFloat(t.getPropertyValue("animation-duration")||"0"),e=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0{const n=j();G(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout(()=>{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))},oe=()=>"undefined"==typeof window||"undefined"==typeof document,ie='\n
    \n \n
      \n
      \n \n

      \n
      \n \n \n
      \n \n \n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n').replace(/(^|\n)\s*/g,""),ae=()=>{ln.isVisible()&&ln.resetValidationMessage()},se=e=>{var t=(()=>{const e=b();return!!e&&(e.remove(),_([document.documentElement,document.body],[h["no-backdrop"],h["toast-shown"],h["has-column"]]),!0)})();if(oe())r("SweetAlert2 requires document to initialize");else{const n=document.createElement("div");n.className=h.container,t&&W(n,h["no-transition"]),V(n,ie);const o="string"==typeof(t=e.target)?document.querySelector(t):t;o.appendChild(n),(e=>{const t=v();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),e=o,"rtl"===window.getComputedStyle(e).direction&&W(b(),h.rtl),(()=>{const e=v(),t=K(e,h.input),n=K(e,h.file),o=e.querySelector(".".concat(h.range," input")),i=e.querySelector(".".concat(h.range," output")),a=K(e,h.select),s=e.querySelector(".".concat(h.checkbox," input")),r=K(e,h.textarea);t.oninput=ae,n.onchange=ae,a.onchange=ae,s.onchange=ae,r.oninput=ae,o.oninput=()=>{ae(),i.value=o.value},o.onchange=()=>{ae(),o.nextSibling.value=o.value}})()}},re=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?ce(e,t):e&&V(t,e)},ce=(e,t)=>{e.jquery?le(t,e):V(t,e.toString())},le=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},ue=(()=>{if(oe())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),de=(e,t)=>{const n=L();var o=S(),i=P(),a=E(),s=T();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Z:J)(n),U(n,t,"actions"),pe(i,"confirm",t),pe(a,"deny",t),pe(s,"cancel",t),function(e,t,n,o){if(!o.buttonsStyling)return _([e,t,n],h.styled);W([e,t,n],h.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,W(e,h["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,W(t,h["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,W(n,h["default-outline"]))}(i,a,s,t),t.reverseButtons&&(n.insertBefore(s,o),n.insertBefore(a,o),n.insertBefore(i,o)),V(o,t.loaderHtml),U(o,t,"loader")};function pe(e,t,n){$(e,n["show".concat(o(t),"Button")],"inline-block"),V(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=h[t],U(e,n,"".concat(t,"Button")),W(e,n["".concat(t,"ButtonClass")])}const me=(e,t)=>{var n,o,i=b();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||W([document.documentElement,document.body],h["no-backdrop"]),o=i,(n=t.position)in h?W(o,h[n]):(s('The "position" parameter is not valid, defaulting to "center"'),W(o,h.center)),n=i,!(o=t.grow)||"string"!=typeof o||(o="grow-".concat(o))in h&&W(n,h[o]),U(i,t,"container"))};var he={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const ge=["input","file","range","select","radio","checkbox","textarea"],be=e=>{if(!ke[e.input])return r('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));var t=Ce(e.input);const n=ke[e.input](t,e);Z(n),setTimeout(()=>{R(n)})},fe=(e,t)=>{const n=F(v(),e);if(n){(t=>{for(let e=0;e{var t=Ce(e.input);e.customClass&&W(t,e.customClass.input)},ve=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},we=(e,t,n)=>{if(n.inputLabel){e.id=h.input;const i=document.createElement("label");var o=h["input-label"];i.setAttribute("for",e.id),i.className=o,W(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Ce=e=>{e=h[e]||h.input;return K(v(),e)},ke={};ke.text=ke.email=ke.password=ke.number=ke.tel=ke.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:p(t.inputValue)||s('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t.inputValue,'"')),we(e,e,t),ve(e,t),e.type=t.input,e),ke.file=(e,t)=>(we(e,e,t),ve(e,t),e),ke.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return n.value=t.inputValue,n.type=t.input,o.value=t.inputValue,we(n,e,t),e},ke.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");V(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return we(e,e,t),e},ke.radio=e=>(e.textContent="",e),ke.checkbox=(e,t)=>{const n=F(v(),"checkbox");n.value=1,n.id=h.checkbox,n.checked=Boolean(t.inputValue);var o=e.querySelector("span");return V(o,t.inputPlaceholder),e},ke.textarea=(n,e)=>{n.value=e.inputValue,ve(n,e),we(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(v()).width);new MutationObserver(()=>{var e,e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?v().style.width="".concat(e,"px"):v().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n};const Ae=(e,t)=>{const n=k();U(n,t,"htmlContainer"),t.html?(re(t.html,n),Z(n,"block")):t.text?(n.textContent=t.text,Z(n,"block")):J(n),((e,o)=>{const i=v();e=he.innerParams.get(e);const a=!e||o.input!==e.input;ge.forEach(e=>{var t=h[e];const n=K(i,t);fe(e,o.inputAttributes),n.className=t,a&&J(n)}),o.input&&(a&&be(o),ye(o))})(e,t)},Be=(e,t)=>{for(const n in g)t.icon!==n&&_(e,g[n]);W(e,g[t.icon]),Ee(e,t),xe(),U(e,t,"icon")},xe=()=>{const e=v();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{var n;e.textContent="",t.iconHtml?V(e,Se(t.iconHtml)):"success"===t.icon?V(e,'\n
      \n \n
      \n
      \n '):"error"===t.icon?V(e,'\n \n \n \n \n '):(n={question:"?",warning:"!",info:"i"},V(e,Se(n[t.icon])))},Ee=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])X(e,n,"backgroundColor",t.iconColor);X(e,".swal2-success-ring","borderColor",t.iconColor)}},Se=e=>'
      ').concat(e,"
      "),Te=(e,o)=>{const i=B();if(!o.progressSteps||0===o.progressSteps.length)return J(i);Z(i),i.textContent="",o.currentProgressStep>=o.progressSteps.length&&s("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach((e,t)=>{var n,e=(n=e,e=document.createElement("li"),W(e,h["progress-step"]),V(e,n),e);i.appendChild(e),t===o.currentProgressStep&&W(e,h["active-progress-step"]),t!==o.progressSteps.length-1&&(t=(e=>{const t=document.createElement("li");return W(t,h["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t})(o),i.appendChild(t))})},Le=(e,t)=>{e.className="".concat(h.popup," ").concat(G(e)?t.showClass.popup:""),t.toast?(W([document.documentElement,document.body],h["toast-shown"]),W(e,h.toast)):W(e,h.modal),U(e,t,"popup"),"string"==typeof t.customClass&&W(e,t.customClass),t.icon&&W(e,h["icon-".concat(t.icon)])},Oe=(e,t)=>{var n,o,i;(e=>{var t=b();const n=v();e.toast?(Y(t,"width",e.width),n.style.width="100%",n.insertBefore(S(),w())):Y(n,"width",e.width),Y(n,"padding",e.padding),e.background&&(n.style.background=e.background),J(x()),Le(n,e)})(t),me(0,t),Te(0,t),i=e,n=t,o=he.innerParams.get(i),i=w(),o&&n.icon===o.icon?(Pe(i,n),Be(i,n)):n.icon||n.iconHtml?n.icon&&-1===Object.keys(g).indexOf(n.icon)?(r('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(n.icon,'"')),J(i)):(Z(i),Pe(i,n),Be(i,n),W(i,n.showClass.icon)):J(i),(e=>{const t=A();if(!e.imageUrl)return J(t);Z(t,""),t.setAttribute("src",e.imageUrl),t.setAttribute("alt",e.imageAlt),Y(t,"width",e.imageWidth),Y(t,"height",e.imageHeight),t.className=h.image,U(t,e,"image")})(t),(e=>{const t=C();$(t,e.title||e.titleText,"block"),e.title&&re(e.title,t),e.titleText&&(t.innerText=e.titleText),U(t,e,"title")})(t),(e=>{const t=D();V(t,e.closeButtonHtml),U(t,e,"closeButton"),$(t,e.showCloseButton),t.setAttribute("aria-label",e.closeButtonAriaLabel)})(t),Ae(e,t),de(0,t),i=t,e=O(),$(e,i.footer),i.footer&&re(i.footer,e),U(e,i,"footer"),"function"==typeof t.didRender&&t.didRender(v())};const je=()=>P()&&P().click();const De=e=>{let t=v();t||ln.fire(),t=v();var n=S();H()?J(w()):Ie(t,e),Z(n),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},Ie=(e,t)=>{var n=L();const o=S();!t&&G(P())&&(t=P()),Z(n),t&&(J(t),o.setAttribute("data-button-to-replace",t.className)),o.parentNode.insertBefore(o,t),W([e,n],h.loading)},Me={},He=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;Me.restoreFocusTimeout=setTimeout(()=>{Me.previousActiveElement&&Me.previousActiveElement.focus?(Me.previousActiveElement.focus(),Me.previousActiveElement=null):document.body&&document.body.focus(),e()},100),window.scrollTo(t,n)});const qe=()=>{if(Me.timeout)return(()=>{const e=j();var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=parseInt(window.getComputedStyle(e).width),n=parseInt(t/n*100);e.style.removeProperty("transition"),e.style.width="".concat(n,"%")})(),Me.timeout.stop()},Ve=()=>{if(Me.timeout){var e=Me.timeout.start();return ne(e),e}};let Ne=!1;const Ue={};const Fe=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in Ue){var n=e.getAttribute(o);if(n)return void Ue[o].fire({template:n})}},Re={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},ze=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],We={},_e=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],Ke=e=>Object.prototype.hasOwnProperty.call(Re,e);const Ye=e=>We[e],Ze=e=>{!e.backdrop&&e.allowOutsideClick&&s('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const o in e)n=o,Ke(n)||s('Unknown parameter "'.concat(n,'"')),e.toast&&(t=o,_e.includes(t)&&s('The parameter "'.concat(t,'" is incompatible with toasts'))),t=o,Ye(t)&&i(t,Ye(t));var t,n};var Je=Object.freeze({isValidParameter:Ke,isUpdatableParameter:e=>-1!==ze.indexOf(e),isDeprecatedParameter:Ye,argsToParams:n=>{const o={};return"object"!=typeof n[0]||m(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||m(t)?o[e]=t:void 0!==t&&r("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>G(v()),clickConfirm:je,clickDeny:()=>E()&&E().click(),clickCancel:()=>T()&&T().click(),getContainer:b,getPopup:v,getTitle:C,getHtmlContainer:k,getImage:A,getIcon:w,getInputLabel:()=>y(h["input-label"]),getCloseButton:D,getActions:L,getConfirmButton:P,getDenyButton:E,getCancelButton:T,getLoader:S,getFooter:O,getTimerProgressBar:j,getFocusableElements:I,getValidationMessage:x,isLoading:()=>v().hasAttribute("data-loading"),fire:function(...e){return new this(...e)},mixin:function(n){class e extends this{_main(e,t){return super._main(e,Object.assign({},n,t))}}return e},showLoading:De,enableLoading:De,getTimerLeft:()=>Me.timeout&&Me.timeout.getTimerLeft(),stopTimer:qe,resumeTimer:Ve,toggleTimer:()=>{var e=Me.timeout;return e&&(e.running?qe:Ve)()},increaseTimer:e=>{if(Me.timeout){e=Me.timeout.increase(e);return ne(e,!0),e}},isTimerRunning:()=>Me.timeout&&Me.timeout.isRunning(),bindClickHandler:function(e="data-swal-template"){Ue[e]=this,Ne||(document.body.addEventListener("click",Fe),Ne=!0)}});function Xe(){var e=he.innerParams.get(this);if(e){const t=he.domCache.get(this);J(t.loader),H()?e.icon&&Z(w()):(e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));if(t.length)Z(t[0],"inline-block");else if(Q())J(e.actions)})(t),_([t.popup,t.actions],h.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}const $e=()=>{null===q.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(q.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(q.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=h["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},Ge=()=>{navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||v().scrollHeight>window.innerHeight-44&&(b().style.paddingBottom="".concat(44,"px"))},Qe=()=>{const e=b();let t;e.ontouchstart=e=>{t=et(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},et=e=>{var t=e.target,n=b();return!tt(e)&&!nt(e)&&(t===n||!(ee(n)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||ee(k())&&k().contains(t)))},tt=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,nt=e=>e.touches&&1{const e=a(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})};var it={swalPromiseResolve:new WeakMap};function at(e,t,n,o){H()?ct(e,o):(He(n).then(()=>ct(e,o)),Me.keydownTarget.removeEventListener("keydown",Me.keydownHandler,{capture:Me.keydownListenerCapture}),Me.keydownHandlerAdded=!1),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),M()&&(null!==q.previousBodyPadding&&(document.body.style.paddingRight="".concat(q.previousBodyPadding,"px"),q.previousBodyPadding=null),N(document.body,h.iosfix)&&(t=parseInt(document.body.style.top,10),_(document.body,h.iosfix),document.body.style.top="",document.body.scrollTop=-1*t),ot()),_([document.documentElement,document.body],[h.shown,h["height-auto"],h["no-backdrop"],h["toast-shown"]])}function st(e){var t=v();if(t){e=void 0!==(o=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},o):{isConfirmed:!1,isDenied:!1,isDismissed:!0};var n=he.innerParams.get(this);if(n&&!N(t,n.hideClass.popup)){const i=it.swalPromiseResolve.get(this);_(t,n.showClass.popup),W(t,n.hideClass.popup);var o=b();_(o,n.showClass.backdrop),W(o,n.hideClass.backdrop),((e,t,n)=>{const o=b(),i=ue&&te(t);if(typeof n.willClose==="function")n.willClose(t);if(i)rt(e,t,o,n.returnFocus,n.didClose);else at(e,o,n.returnFocus,n.didClose)})(this,t,n),i(e)}}}const rt=(e,t,n,o,i)=>{Me.swalCloseEventFinishedCallback=at.bind(null,e,n,o,i),t.addEventListener(ue,function(e){e.target===t&&(Me.swalCloseEventFinishedCallback(),delete Me.swalCloseEventFinishedCallback)})},ct=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function lt(e,t,n){const o=he.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function ut(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function mt(e){var t,n;(t=e).inputValidator||Object.keys(pt).forEach(e=>{t.input===e&&(t.inputValidator=pt[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&s("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(s('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
      ")),se(e)}const ht=["swal-title","swal-html","swal-footer"],gt=e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content;return kt(e),Object.assign(bt(e),ft(e),yt(e),vt(e),wt(e),Ct(e,ht))},bt=e=>{const o={};return a(e.querySelectorAll("swal-param")).forEach(e=>{At(e,["name","value"]);var t=e.getAttribute("name");let n=e.getAttribute("value");"boolean"==typeof Re[t]&&"false"===n&&(n=!1),"object"==typeof Re[t]&&(n=JSON.parse(n)),o[t]=n}),o},ft=e=>{const n={};return a(e.querySelectorAll("swal-button")).forEach(e=>{At(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(o(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},yt=e=>{const t={},n=e.querySelector("swal-image");return n&&(At(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},vt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(At(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},wt=e=>{const n={},t=e.querySelector("swal-input");t&&(At(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},a(e).forEach(e=>{At(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},Ct=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(At(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},kt=e=>{const t=ht.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);a(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&s("Unrecognized element <".concat(e,">"))})},At=(t,n)=>{a(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&s(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})},Bt=e=>{const t=b(),n=v();"function"==typeof e.willOpen&&e.willOpen(n);var o=window.getComputedStyle(document.body).overflowY;St(t,n,e),setTimeout(()=>{Pt(t,n)},10),M()&&(Et(t,e.scrollbarPadding,o),(()=>{const e=a(document.body.children);e.forEach(e=>{e===b()||e.contains(b())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})})()),H()||Me.previousActiveElement||(Me.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout(()=>e.didOpen(n)),_(t,h["no-transition"])},xt=e=>{const t=v();if(e.target===t){const n=b();t.removeEventListener(ue,xt),n.style.overflowY="auto"}},Pt=(e,t)=>{ue&&te(t)?(e.style.overflowY="hidden",t.addEventListener(ue,xt)):e.style.overflowY="auto"},Et=(e,t,n)=>{var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1{e.scrollTop=0})},St=(e,t,n)=>{W(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),Z(t,"grid"),setTimeout(()=>{W(t,n.showClass.popup),t.style.removeProperty("opacity")},10),W([document.documentElement,document.body],h.shown),n.heightAuto&&n.backdrop&&!n.toast&&W([document.documentElement,document.body],h["height-auto"])},Tt=e=>e.checked?1:0,Lt=e=>e.checked?e.value:null,Ot=e=>e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,jt=(t,n)=>{const o=v(),i=e=>It[n.input](o,Mt(e),n);u(n.inputOptions)||p(n.inputOptions)?(De(P()),d(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):r("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},Dt=(t,n)=>{const o=t.getInput();J(o),d(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),Z(o),o.focus(),t.hideLoading()}).catch(e=>{r("Error in inputValue promise: ".concat(e)),o.value="",Z(o),o.focus(),t.hideLoading()})},It={select:(e,t,i)=>{const a=K(e,h.select),s=(e,t,n)=>{const o=document.createElement("option");o.value=n,V(o,t),o.selected=Ht(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>s(o,e[1],e[0]))}else s(a,n,t)}),a.focus()},radio:(e,t,a)=>{const s=K(e,h.radio);t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label");n.type="radio",n.name=h.radio,n.value=t,Ht(t,a.inputValue)&&(n.checked=!0);const i=document.createElement("span");V(i,e),i.className=h.label,o.appendChild(n),o.appendChild(i),s.appendChild(o)});const n=s.querySelectorAll("input");n.length&&n[0].focus()}},Mt=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Mt(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Mt(t)),o.push([e,t])}),o},Ht=(e,t)=>t&&t.toString()===e.toString(),qt=(e,t)=>{var n=he.innerParams.get(e),o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Tt(n);case"radio":return Lt(n);case"file":return Ot(n);default:return t.inputAutoTrim?n.value.trim():n.value}})(e,n);n.inputValidator?Vt(e,o,t):e.getInput().checkValidity()?("deny"===t?Nt:Ft)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Vt=(t,n,o)=>{const e=he.innerParams.get(t);t.disableInput();const i=Promise.resolve().then(()=>d(e.inputValidator(n,e.validationMessage)));i.then(e=>{t.enableButtons(),t.enableInput(),e?t.showValidationMessage(e):("deny"===o?Nt:Ft)(t,n)})},Nt=(t,n)=>{const e=he.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&De(E()),e.preDeny){const o=Promise.resolve().then(()=>d(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?t.hideLoading():t.closePopup({isDenied:!0,value:void 0===e?n:e})})}else t.closePopup({isDenied:!0,value:n})},Ut=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Ft=(t,n)=>{const e=he.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&De(),e.preConfirm){t.resetValidationMessage();const o=Promise.resolve().then(()=>d(e.preConfirm(n,e.validationMessage)));o.then(e=>{G(x())||!1===e?t.hideLoading():Ut(t,void 0===e?n:e)})}else Ut(t,n)},Rt=(e,t,n)=>{const o=I();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();v().focus()},zt=["ArrowRight","ArrowDown"],Wt=["ArrowLeft","ArrowUp"],_t=(e,t,n)=>{var o=he.innerParams.get(e);o&&(o.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Kt(e,t,o):"Tab"===t.key?Yt(t,o):[...zt,...Wt].includes(t.key)?Zt(t.key):"Escape"===t.key&&Jt(t,o,n))},Kt=(e,t,n)=>{t.isComposing||t.target&&e.getInput()&&t.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(n.input)||(je(),t.preventDefault()))},Yt=(e,t)=>{var n=e.target,o=I();let i=-1;for(let e=0;e{const t=P(),n=E(),o=T();if([t,n,o].includes(document.activeElement)){e=zt.includes(e)?"nextElementSibling":"previousElementSibling";const i=document.activeElement[e];i&&i.focus()}},Jt=(e,t,n)=>{c(t.allowEscapeKey)&&(e.preventDefault(),n(l.esc))},Xt=(t,e,n)=>{e.popup.onclick=()=>{var e=he.innerParams.get(t);e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||e.timer||e.input||n(l.close)}};let $t=!1;const Gt=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&($t=!0)}}},Qt=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||($t=!0)}}},en=(n,o,i)=>{o.container.onclick=e=>{var t=he.innerParams.get(n);$t?$t=!1:e.target===o.container&&c(t.allowOutsideClick)&&i(l.backdrop)}};const tn=(e,t,n)=>{var o=j();J(o),t.timer&&(e.timeout=new dt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(Z(o),setTimeout(()=>{e.timeout&&e.timeout.running&&ne(t.timer)})))},nn=(e,t)=>{if(!t.toast)return c(t.allowEnterKey)?void(on(e,t)||Rt(0,-1,1)):an()},on=(e,t)=>t.focusDeny&&G(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&G(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!G(e.confirmButton))&&(e.confirmButton.focus(),!0),an=()=>{document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};const sn=e=>{for(const t in e)e[t]=new WeakMap};e=Object.freeze({hideLoading:Xe,disableLoading:Xe,getInput:function(e){var t=he.innerParams.get(e||this);return(e=he.domCache.get(e||this))?F(e.popup,t.input):null},close:st,closePopup:st,closeModal:st,closeToast:st,enableButtons:function(){lt(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){lt(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return ut(this.getInput(),!1)},disableInput:function(){return ut(this.getInput(),!0)},showValidationMessage:function(e){const t=he.domCache.get(this);var n=he.innerParams.get(this);V(t.validationMessage,e),t.validationMessage.className=h["validation-message"],n.customClass&&n.customClass.validationMessage&&W(t.validationMessage,n.customClass.validationMessage),Z(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",h["validation-message"]),R(o),W(o,h.inputerror))},resetValidationMessage:function(){var e=he.domCache.get(this);e.validationMessage&&J(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),_(t,h.inputerror))},getProgressSteps:function(){return he.domCache.get(this).progressSteps},_main:function(e,t={}){Ze(Object.assign({},t,e)),Me.currentInstance&&(Me.currentInstance._destroy(),M()&&ot()),Me.currentInstance=this,mt(e=((e,t)=>{const n=gt(e),o=Object.assign({},Re,t,n,e);return o.showClass=Object.assign({},Re.showClass,o.showClass),o.hideClass=Object.assign({},Re.hideClass,o.hideClass),o})(e,t)),Object.freeze(e),Me.timeout&&(Me.timeout.stop(),delete Me.timeout),clearTimeout(Me.restoreFocusTimeout);var s,r,c,t=(e=>{const t={popup:v(),container:b(),actions:L(),confirmButton:P(),denyButton:E(),cancelButton:T(),loader:S(),closeButton:D(),validationMessage:x(),progressSteps:B()};return he.domCache.set(e,t),t})(this);return Oe(this,e),he.innerParams.set(this,e),s=this,r=t,c=e,new Promise(e=>{const t=e=>{s.closePopup({isDismissed:!0,dismiss:e})};var n,o,i,a;it.swalPromiseResolve.set(s,e),r.confirmButton.onclick=()=>(e=>{var t=he.innerParams.get(e);e.disableButtons(),t.input?qt(e,"confirm"):Ft(e,!0)})(s),r.denyButton.onclick=()=>(e=>{var t=he.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?qt(e,"deny"):Nt(e,!1)})(s),r.cancelButton.onclick=()=>((e,t)=>{e.disableButtons(),t(l.cancel)})(s,t),r.closeButton.onclick=()=>t(l.close),n=s,a=r,e=t,he.innerParams.get(n).toast?Xt(n,a,e):(Gt(a),Qt(a),en(n,a,e)),o=s,a=Me,e=c,i=t,a.keydownTarget&&a.keydownHandlerAdded&&(a.keydownTarget.removeEventListener("keydown",a.keydownHandler,{capture:a.keydownListenerCapture}),a.keydownHandlerAdded=!1),e.toast||(a.keydownHandler=e=>_t(o,e,i),a.keydownTarget=e.keydownListenerCapture?window:v(),a.keydownListenerCapture=e.keydownListenerCapture,a.keydownTarget.addEventListener("keydown",a.keydownHandler,{capture:a.keydownListenerCapture}),a.keydownHandlerAdded=!0),e=s,"select"===(a=c).input||"radio"===a.input?jt(e,a):["text","email","number","tel","textarea"].includes(a.input)&&(u(a.inputValue)||p(a.inputValue))&&(De(P()),Dt(e,a)),Bt(c),tn(Me,c,t),nn(r,c),setTimeout(()=>{r.container.scrollTop=0})})},update:function(t){var e=v(),n=he.innerParams.get(this);if(!e||N(e,n.hideClass.popup))return s("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const o={};Object.keys(t).forEach(e=>{ln.isUpdatableParameter(e)?o[e]=t[e]:s('Invalid parameter to update: "'.concat(e,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=Object.assign({},n,o),Oe(this,n),he.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})},_destroy:function(){var e=he.domCache.get(this);const t=he.innerParams.get(this);t&&(e.popup&&Me.swalCloseEventFinishedCallback&&(Me.swalCloseEventFinishedCallback(),delete Me.swalCloseEventFinishedCallback),Me.deferDisposalTimer&&(clearTimeout(Me.deferDisposalTimer),delete Me.deferDisposalTimer),"function"==typeof t.didDestroy&&t.didDestroy(),delete this.params,delete Me.keydownHandler,delete Me.keydownTarget,sn(he),sn(it),delete Me.currentInstance)}});let rn;class cn{constructor(...e){"undefined"!=typeof window&&(rn=this,e=Object.freeze(this.constructor.argsToParams(e)),Object.defineProperties(this,{params:{value:e,writable:!1,enumerable:!0,configurable:!0}}),e=this._main(this.params),he.promise.set(this,e))}then(e){const t=he.promise.get(this);return t.then(e)}finally(e){const t=he.promise.get(this);return t.finally(e)}}Object.assign(cn.prototype,e),Object.assign(cn,Je),Object.keys(e).forEach(t=>{cn[t]=function(...e){if(rn)return rn[t](...e)}}),cn.DismissReason=l,cn.version="11.1.7";const ln=cn;return ln.default=ln,ln}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); -"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7367f0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(115,103,240,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#ea5455;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(234,84,85,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7d88;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,125,136,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 0}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 0;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}"); \ No newline at end of file diff --git a/dist/assets/vendors/sweetalert2/sweetalert2.css b/dist/assets/vendors/sweetalert2/sweetalert2.css deleted file mode 100644 index 3c7543d3b..000000000 --- a/dist/assets/vendors/sweetalert2/sweetalert2.css +++ /dev/null @@ -1,1316 +0,0 @@ -.swal2-popup.swal2-toast { - box-sizing: border-box; - grid-column: 1/4 !important; - grid-row: 1/4 !important; - grid-template-columns: 1fr 99fr 1fr; - padding: 1em; - overflow-y: hidden; - background: #fff; - box-shadow: 0 0 1px rgba(0, 0, 0, 0.075), 0 1px 2px rgba(0, 0, 0, 0.075), 1px 2px 4px rgba(0, 0, 0, 0.075), 1px 3px 8px rgba(0, 0, 0, 0.075), 2px 4px 16px rgba(0, 0, 0, 0.075); - pointer-events: all; -} -.swal2-popup.swal2-toast > * { - grid-column: 2; -} -.swal2-popup.swal2-toast .swal2-title { - margin: 0.5em 1em; - padding: 0; - font-size: 1em; - text-align: initial; -} -.swal2-popup.swal2-toast .swal2-loading { - justify-content: center; -} -.swal2-popup.swal2-toast .swal2-input { - height: 2em; - margin: 0.5em; - font-size: 1em; -} -.swal2-popup.swal2-toast .swal2-validation-message { - font-size: 1em; -} -.swal2-popup.swal2-toast .swal2-footer { - margin: 0.5em 0 0; - padding: 0.5em 0 0; - font-size: 0.8em; -} -.swal2-popup.swal2-toast .swal2-close { - grid-column: 3/3; - grid-row: 1/99; - align-self: center; - width: 0.8em; - height: 0.8em; - margin: 0; - font-size: 2em; -} -.swal2-popup.swal2-toast .swal2-html-container { - margin: 0.5em 1em; - padding: 0; - font-size: 1em; - text-align: initial; -} -.swal2-popup.swal2-toast .swal2-html-container:empty { - padding: 0; -} -.swal2-popup.swal2-toast .swal2-loader { - grid-column: 1; - grid-row: 1/99; - align-self: center; - width: 2em; - height: 2em; - margin: 0.25em; -} -.swal2-popup.swal2-toast .swal2-icon { - grid-column: 1; - grid-row: 1/99; - align-self: center; - width: 2em; - min-width: 2em; - height: 2em; - margin: 0 0.5em 0 0; -} -.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { - display: flex; - align-items: center; - font-size: 1.8em; - font-weight: bold; -} -.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { - width: 2em; - height: 2em; -} -.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line] { - top: 0.875em; - width: 1.375em; -} -.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { - left: 0.3125em; -} -.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { - right: 0.3125em; -} -.swal2-popup.swal2-toast .swal2-actions { - justify-content: flex-start; - height: auto; - margin: 0; - margin-top: 0.5em; - padding: 0 0.5em; -} -.swal2-popup.swal2-toast .swal2-styled { - margin: 0.25em 0.5em; - padding: 0.4em 0.6em; - font-size: 1em; -} -.swal2-popup.swal2-toast .swal2-success { - border-color: #a5dc86; -} -.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line] { - position: absolute; - width: 1.6em; - height: 3em; - transform: rotate(45deg); - border-radius: 50%; -} -.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left] { - top: -0.8em; - left: -0.5em; - transform: rotate(-45deg); - transform-origin: 2em 2em; - border-radius: 4em 0 0 4em; -} -.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right] { - top: -0.25em; - left: 0.9375em; - transform-origin: 0 1.5em; - border-radius: 0 4em 4em 0; -} -.swal2-popup.swal2-toast .swal2-success .swal2-success-ring { - width: 2em; - height: 2em; -} -.swal2-popup.swal2-toast .swal2-success .swal2-success-fix { - top: 0; - left: 0.4375em; - width: 0.4375em; - height: 2.6875em; -} -.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line] { - height: 0.3125em; -} -.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip] { - top: 1.125em; - left: 0.1875em; - width: 0.75em; -} -.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long] { - top: 0.9375em; - right: 0.1875em; - width: 1.375em; -} -.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip { - -webkit-animation: swal2-toast-animate-success-line-tip 0.75s; - animation: swal2-toast-animate-success-line-tip 0.75s; -} -.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long { - -webkit-animation: swal2-toast-animate-success-line-long 0.75s; - animation: swal2-toast-animate-success-line-long 0.75s; -} -.swal2-popup.swal2-toast.swal2-show { - -webkit-animation: swal2-toast-show 0.5s; - animation: swal2-toast-show 0.5s; -} -.swal2-popup.swal2-toast.swal2-hide { - -webkit-animation: swal2-toast-hide 0.1s forwards; - animation: swal2-toast-hide 0.1s forwards; -} - -.swal2-container { - display: grid; - position: fixed; - z-index: 1060; - top: 0; - right: 0; - bottom: 0; - left: 0; - box-sizing: border-box; - grid-template-areas: "top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end"; - grid-template-rows: minmax(-webkit-min-content, auto) minmax(-webkit-min-content, auto) minmax(-webkit-min-content, auto); - grid-template-rows: minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto); - height: 100%; - padding: 0.625em; - overflow-x: hidden; - transition: background-color 0.1s; - -webkit-overflow-scrolling: touch; -} -.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation { - background: rgba(0, 0, 0, 0.4); -} -.swal2-container.swal2-backdrop-hide { - background: transparent !important; -} -.swal2-container.swal2-top-start, .swal2-container.swal2-center-start, .swal2-container.swal2-bottom-start { - grid-template-columns: minmax(0, 1fr) auto auto; -} -.swal2-container.swal2-top, .swal2-container.swal2-center, .swal2-container.swal2-bottom { - grid-template-columns: auto minmax(0, 1fr) auto; -} -.swal2-container.swal2-top-end, .swal2-container.swal2-center-end, .swal2-container.swal2-bottom-end { - grid-template-columns: auto auto minmax(0, 1fr); -} -.swal2-container.swal2-top-start > .swal2-popup { - align-self: start; -} -.swal2-container.swal2-top > .swal2-popup { - grid-column: 2; - align-self: start; - justify-self: center; -} -.swal2-container.swal2-top-end > .swal2-popup, .swal2-container.swal2-top-right > .swal2-popup { - grid-column: 3; - align-self: start; - justify-self: end; -} -.swal2-container.swal2-center-start > .swal2-popup, .swal2-container.swal2-center-left > .swal2-popup { - grid-row: 2; - align-self: center; -} -.swal2-container.swal2-center > .swal2-popup { - grid-column: 2; - grid-row: 2; - align-self: center; - justify-self: center; -} -.swal2-container.swal2-center-end > .swal2-popup, .swal2-container.swal2-center-right > .swal2-popup { - grid-column: 3; - grid-row: 2; - align-self: center; - justify-self: end; -} -.swal2-container.swal2-bottom-start > .swal2-popup, .swal2-container.swal2-bottom-left > .swal2-popup { - grid-column: 1; - grid-row: 3; - align-self: end; -} -.swal2-container.swal2-bottom > .swal2-popup { - grid-column: 2; - grid-row: 3; - justify-self: center; - align-self: end; -} -.swal2-container.swal2-bottom-end > .swal2-popup, .swal2-container.swal2-bottom-right > .swal2-popup { - grid-column: 3; - grid-row: 3; - align-self: end; - justify-self: end; -} -.swal2-container.swal2-grow-row > .swal2-popup, .swal2-container.swal2-grow-fullscreen > .swal2-popup { - grid-column: 1/4; - width: 100%; -} -.swal2-container.swal2-grow-column > .swal2-popup, .swal2-container.swal2-grow-fullscreen > .swal2-popup { - grid-row: 1/4; - align-self: stretch; -} -.swal2-container.swal2-no-transition { - transition: none !important; -} - -.swal2-popup { - display: none; - position: relative; - box-sizing: border-box; - grid-template-columns: minmax(0, 100%); - width: 32em; - max-width: 100%; - padding: 0 0 1.25em; - border: none; - border-radius: 5px; - background: #fff; - color: #545454; - font-family: inherit; - font-size: 1rem; -} -.swal2-popup:focus { - outline: none; -} -.swal2-popup.swal2-loading { - overflow-y: hidden; -} - -.swal2-title { - position: relative; - max-width: 100%; - margin: 0; - padding: 0.8em 1em 0; - color: #595959; - font-size: 1.875em; - font-weight: 600; - text-align: center; - text-transform: none; - word-wrap: break-word; -} - -.swal2-actions { - display: flex; - z-index: 1; - box-sizing: border-box; - flex-wrap: wrap; - align-items: center; - justify-content: center; - width: auto; - margin: 1.25em auto 0; - padding: 0; -} -.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { - opacity: 0.4; -} -.swal2-actions:not(.swal2-loading) .swal2-styled:hover { - background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); -} -.swal2-actions:not(.swal2-loading) .swal2-styled:active { - background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); -} - -.swal2-loader { - display: none; - align-items: center; - justify-content: center; - width: 2.2em; - height: 2.2em; - margin: 0 1.875em; - -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; - animation: swal2-rotate-loading 1.5s linear 0s infinite normal; - border-width: 0.25em; - border-style: solid; - border-radius: 100%; - border-color: #2778c4 transparent #2778c4 transparent; -} - -.swal2-styled { - margin: 0.3125em; - padding: 0.625em 1.1em; - transition: box-shadow 0.1s; - box-shadow: 0 0 0 3px transparent; - font-weight: 500; -} -.swal2-styled:not([disabled]) { - cursor: pointer; -} -.swal2-styled.swal2-confirm { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #7367f0; - color: #fff; - font-size: 1em; -} -.swal2-styled.swal2-confirm:focus { - box-shadow: 0 0 0 3px rgba(115, 103, 240, 0.5); -} -.swal2-styled.swal2-deny { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #ea5455; - color: #fff; - font-size: 1em; -} -.swal2-styled.swal2-deny:focus { - box-shadow: 0 0 0 3px rgba(234, 84, 85, 0.5); -} -.swal2-styled.swal2-cancel { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #6e7d88; - color: #fff; - font-size: 1em; -} -.swal2-styled.swal2-cancel:focus { - box-shadow: 0 0 0 3px rgba(110, 125, 136, 0.5); -} -.swal2-styled.swal2-default-outline:focus { - box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); -} -.swal2-styled:focus { - outline: none; -} -.swal2-styled::-moz-focus-inner { - border: 0; -} - -.swal2-footer { - justify-content: center; - margin: 1em 0 0; - padding: 1em 1em 0; - border-top: 1px solid #eee; - color: #545454; - font-size: 1em; -} - -.swal2-timer-progress-bar-container { - position: absolute; - right: 0; - bottom: 0; - left: 0; - grid-column: auto !important; - height: 0.25em; - overflow: hidden; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; -} - -.swal2-timer-progress-bar { - width: 100%; - height: 0.25em; - background: rgba(0, 0, 0, 0.2); -} - -.swal2-image { - max-width: 100%; - margin: 2em auto 1em; -} - -.swal2-close { - z-index: 2; - align-items: center; - justify-content: center; - width: 1.2em; - height: 1.2em; - margin-top: 0; - margin-right: 0; - margin-bottom: -1.2em; - padding: 0; - overflow: hidden; - transition: color 0.1s, box-shadow 0.1s; - border: none; - border-radius: 5px; - background: transparent; - color: #ccc; - font-family: serif; - font-family: monospace; - font-size: 2.5em; - cursor: pointer; - justify-self: end; -} -.swal2-close:hover { - transform: none; - background: transparent; - color: #f27474; -} -.swal2-close:focus { - outline: none; - box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5); -} -.swal2-close::-moz-focus-inner { - border: 0; -} - -.swal2-html-container { - z-index: 1; - justify-content: center; - margin: 1em 1.6em 0.3em; - padding: 0; - overflow: auto; - color: #545454; - font-size: 1.125em; - font-weight: normal; - line-height: normal; - text-align: center; - word-wrap: break-word; - word-break: break-word; -} - -.swal2-input, -.swal2-file, -.swal2-textarea, -.swal2-select, -.swal2-radio, -.swal2-checkbox { - margin: 1em 2em 0; -} - -.swal2-input, -.swal2-file, -.swal2-textarea { - box-sizing: border-box; - width: auto; - transition: border-color 0.1s, box-shadow 0.1s; - border: 1px solid #d9d9d9; - border-radius: 0.1875em; - background: inherit; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent; - color: inherit; - font-size: 1.125em; -} -.swal2-input.swal2-inputerror, -.swal2-file.swal2-inputerror, -.swal2-textarea.swal2-inputerror { - border-color: #f27474 !important; - box-shadow: 0 0 2px #f27474 !important; -} -.swal2-input:focus, -.swal2-file:focus, -.swal2-textarea:focus { - border: 1px solid #b4dbed; - outline: none; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(100, 150, 200, 0.5); -} -.swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder { - color: #ccc; -} -.swal2-input:-ms-input-placeholder, .swal2-file:-ms-input-placeholder, .swal2-textarea:-ms-input-placeholder { - color: #ccc; -} -.swal2-input::placeholder, -.swal2-file::placeholder, -.swal2-textarea::placeholder { - color: #ccc; -} - -.swal2-range { - margin: 1em 2em 0; - background: #fff; -} -.swal2-range input { - width: 80%; -} -.swal2-range output { - width: 20%; - color: inherit; - font-weight: 600; - text-align: center; -} -.swal2-range input, -.swal2-range output { - height: 2.625em; - padding: 0; - font-size: 1.125em; - line-height: 2.625em; -} - -.swal2-input { - height: 2.625em; - padding: 0 0.75em; -} - -.swal2-file { - width: 75%; - margin-right: auto; - margin-left: auto; - background: inherit; - font-size: 1.125em; -} - -.swal2-textarea { - height: 6.75em; - padding: 0.75em; -} - -.swal2-select { - min-width: 50%; - max-width: 100%; - padding: 0.375em 0.625em; - background: inherit; - color: inherit; - font-size: 1.125em; -} - -.swal2-radio, -.swal2-checkbox { - align-items: center; - justify-content: center; - background: #fff; - color: inherit; -} -.swal2-radio label, -.swal2-checkbox label { - margin: 0 0.6em; - font-size: 1.125em; -} -.swal2-radio input, -.swal2-checkbox input { - flex-shrink: 0; - margin: 0 0.4em; -} - -.swal2-input-label { - display: flex; - justify-content: center; - margin: 1em auto 0; -} - -.swal2-validation-message { - align-items: center; - justify-content: center; - margin: 1em 0 0; - padding: 0.625em; - overflow: hidden; - background: #f0f0f0; - color: #666666; - font-size: 1em; - font-weight: 300; -} -.swal2-validation-message::before { - content: "!"; - display: inline-block; - width: 1.5em; - min-width: 1.5em; - height: 1.5em; - margin: 0 0.625em; - border-radius: 50%; - background-color: #f27474; - color: #fff; - font-weight: 600; - line-height: 1.5em; - text-align: center; -} - -.swal2-icon { - position: relative; - box-sizing: content-box; - justify-content: center; - width: 5em; - height: 5em; - margin: 2.5em auto 0.6em; - border: 0.25em solid transparent; - border-radius: 50%; - border-color: #000; - font-family: inherit; - line-height: 5em; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.swal2-icon .swal2-icon-content { - display: flex; - align-items: center; - font-size: 3.75em; -} -.swal2-icon.swal2-error { - border-color: #f27474; - color: #f27474; -} -.swal2-icon.swal2-error .swal2-x-mark { - position: relative; - flex-grow: 1; -} -.swal2-icon.swal2-error [class^=swal2-x-mark-line] { - display: block; - position: absolute; - top: 2.3125em; - width: 2.9375em; - height: 0.3125em; - border-radius: 0.125em; - background-color: #f27474; -} -.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { - left: 1.0625em; - transform: rotate(45deg); -} -.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { - right: 1em; - transform: rotate(-45deg); -} -.swal2-icon.swal2-error.swal2-icon-show { - -webkit-animation: swal2-animate-error-icon 0.5s; - animation: swal2-animate-error-icon 0.5s; -} -.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark { - -webkit-animation: swal2-animate-error-x-mark 0.5s; - animation: swal2-animate-error-x-mark 0.5s; -} -.swal2-icon.swal2-warning { - border-color: #facea8; - color: #f8bb86; -} -.swal2-icon.swal2-info { - border-color: #9de0f6; - color: #3fc3ee; -} -.swal2-icon.swal2-question { - border-color: #c9dae1; - color: #87adbd; -} -.swal2-icon.swal2-success { - border-color: #a5dc86; - color: #a5dc86; -} -.swal2-icon.swal2-success [class^=swal2-success-circular-line] { - position: absolute; - width: 3.75em; - height: 7.5em; - transform: rotate(45deg); - border-radius: 50%; -} -.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] { - top: -0.4375em; - left: -2.0635em; - transform: rotate(-45deg); - transform-origin: 3.75em 3.75em; - border-radius: 7.5em 0 0 7.5em; -} -.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] { - top: -0.6875em; - left: 1.875em; - transform: rotate(-45deg); - transform-origin: 0 3.75em; - border-radius: 0 7.5em 7.5em 0; -} -.swal2-icon.swal2-success .swal2-success-ring { - position: absolute; - z-index: 2; - top: -0.25em; - left: -0.25em; - box-sizing: content-box; - width: 100%; - height: 100%; - border: 0.25em solid rgba(165, 220, 134, 0.3); - border-radius: 50%; -} -.swal2-icon.swal2-success .swal2-success-fix { - position: absolute; - z-index: 1; - top: 0.5em; - left: 1.625em; - width: 0.4375em; - height: 5.625em; - transform: rotate(-45deg); -} -.swal2-icon.swal2-success [class^=swal2-success-line] { - display: block; - position: absolute; - z-index: 2; - height: 0.3125em; - border-radius: 0.125em; - background-color: #a5dc86; -} -.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] { - top: 2.875em; - left: 0.8125em; - width: 1.5625em; - transform: rotate(45deg); -} -.swal2-icon.swal2-success [class^=swal2-success-line][class$=long] { - top: 2.375em; - right: 0.5em; - width: 2.9375em; - transform: rotate(-45deg); -} -.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip { - -webkit-animation: swal2-animate-success-line-tip 0.75s; - animation: swal2-animate-success-line-tip 0.75s; -} -.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long { - -webkit-animation: swal2-animate-success-line-long 0.75s; - animation: swal2-animate-success-line-long 0.75s; -} -.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right { - -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in; - animation: swal2-rotate-success-circular-line 4.25s ease-in; -} - -.swal2-progress-steps { - flex-wrap: wrap; - align-items: center; - max-width: 100%; - margin: 1.25em auto; - padding: 0; - background: inherit; - font-weight: 600; -} -.swal2-progress-steps li { - display: inline-block; - position: relative; -} -.swal2-progress-steps .swal2-progress-step { - z-index: 20; - flex-shrink: 0; - width: 2em; - height: 2em; - border-radius: 2em; - background: #2778c4; - color: #fff; - line-height: 2em; - text-align: center; -} -.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { - background: #2778c4; -} -.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step { - background: #add8e6; - color: #fff; -} -.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line { - background: #add8e6; -} -.swal2-progress-steps .swal2-progress-step-line { - z-index: 10; - flex-shrink: 0; - width: 2.5em; - height: 0.4em; - margin: 0 -1px; - background: #2778c4; -} - -[class^=swal2] { - -webkit-tap-highlight-color: transparent; -} - -.swal2-show { - -webkit-animation: swal2-show 0.3s; - animation: swal2-show 0.3s; -} - -.swal2-hide { - -webkit-animation: swal2-hide 0.15s forwards; - animation: swal2-hide 0.15s forwards; -} - -.swal2-noanimation { - transition: none; -} - -.swal2-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -.swal2-rtl .swal2-close { - margin-right: initial; - margin-left: 0; -} -.swal2-rtl .swal2-timer-progress-bar { - right: 0; - left: auto; -} - -@-webkit-keyframes swal2-toast-show { - 0% { - transform: translateY(-0.625em) rotateZ(2deg); - } - 33% { - transform: translateY(0) rotateZ(-2deg); - } - 66% { - transform: translateY(0.3125em) rotateZ(2deg); - } - 100% { - transform: translateY(0) rotateZ(0deg); - } -} - -@keyframes swal2-toast-show { - 0% { - transform: translateY(-0.625em) rotateZ(2deg); - } - 33% { - transform: translateY(0) rotateZ(-2deg); - } - 66% { - transform: translateY(0.3125em) rotateZ(2deg); - } - 100% { - transform: translateY(0) rotateZ(0deg); - } -} -@-webkit-keyframes swal2-toast-hide { - 100% { - transform: rotateZ(1deg); - opacity: 0; - } -} -@keyframes swal2-toast-hide { - 100% { - transform: rotateZ(1deg); - opacity: 0; - } -} -@-webkit-keyframes swal2-toast-animate-success-line-tip { - 0% { - top: 0.5625em; - left: 0.0625em; - width: 0; - } - 54% { - top: 0.125em; - left: 0.125em; - width: 0; - } - 70% { - top: 0.625em; - left: -0.25em; - width: 1.625em; - } - 84% { - top: 1.0625em; - left: 0.75em; - width: 0.5em; - } - 100% { - top: 1.125em; - left: 0.1875em; - width: 0.75em; - } -} -@keyframes swal2-toast-animate-success-line-tip { - 0% { - top: 0.5625em; - left: 0.0625em; - width: 0; - } - 54% { - top: 0.125em; - left: 0.125em; - width: 0; - } - 70% { - top: 0.625em; - left: -0.25em; - width: 1.625em; - } - 84% { - top: 1.0625em; - left: 0.75em; - width: 0.5em; - } - 100% { - top: 1.125em; - left: 0.1875em; - width: 0.75em; - } -} -@-webkit-keyframes swal2-toast-animate-success-line-long { - 0% { - top: 1.625em; - right: 1.375em; - width: 0; - } - 65% { - top: 1.25em; - right: 0.9375em; - width: 0; - } - 84% { - top: 0.9375em; - right: 0; - width: 1.125em; - } - 100% { - top: 0.9375em; - right: 0.1875em; - width: 1.375em; - } -} -@keyframes swal2-toast-animate-success-line-long { - 0% { - top: 1.625em; - right: 1.375em; - width: 0; - } - 65% { - top: 1.25em; - right: 0.9375em; - width: 0; - } - 84% { - top: 0.9375em; - right: 0; - width: 1.125em; - } - 100% { - top: 0.9375em; - right: 0.1875em; - width: 1.375em; - } -} -@-webkit-keyframes swal2-show { - 0% { - transform: scale(0.7); - } - 45% { - transform: scale(1.05); - } - 80% { - transform: scale(0.95); - } - 100% { - transform: scale(1); - } -} -@keyframes swal2-show { - 0% { - transform: scale(0.7); - } - 45% { - transform: scale(1.05); - } - 80% { - transform: scale(0.95); - } - 100% { - transform: scale(1); - } -} -@-webkit-keyframes swal2-hide { - 0% { - transform: scale(1); - opacity: 1; - } - 100% { - transform: scale(0.5); - opacity: 0; - } -} -@keyframes swal2-hide { - 0% { - transform: scale(1); - opacity: 1; - } - 100% { - transform: scale(0.5); - opacity: 0; - } -} -@-webkit-keyframes swal2-animate-success-line-tip { - 0% { - top: 1.1875em; - left: 0.0625em; - width: 0; - } - 54% { - top: 1.0625em; - left: 0.125em; - width: 0; - } - 70% { - top: 2.1875em; - left: -0.375em; - width: 3.125em; - } - 84% { - top: 3em; - left: 1.3125em; - width: 1.0625em; - } - 100% { - top: 2.8125em; - left: 0.8125em; - width: 1.5625em; - } -} -@keyframes swal2-animate-success-line-tip { - 0% { - top: 1.1875em; - left: 0.0625em; - width: 0; - } - 54% { - top: 1.0625em; - left: 0.125em; - width: 0; - } - 70% { - top: 2.1875em; - left: -0.375em; - width: 3.125em; - } - 84% { - top: 3em; - left: 1.3125em; - width: 1.0625em; - } - 100% { - top: 2.8125em; - left: 0.8125em; - width: 1.5625em; - } -} -@-webkit-keyframes swal2-animate-success-line-long { - 0% { - top: 3.375em; - right: 2.875em; - width: 0; - } - 65% { - top: 3.375em; - right: 2.875em; - width: 0; - } - 84% { - top: 2.1875em; - right: 0; - width: 3.4375em; - } - 100% { - top: 2.375em; - right: 0.5em; - width: 2.9375em; - } -} -@keyframes swal2-animate-success-line-long { - 0% { - top: 3.375em; - right: 2.875em; - width: 0; - } - 65% { - top: 3.375em; - right: 2.875em; - width: 0; - } - 84% { - top: 2.1875em; - right: 0; - width: 3.4375em; - } - 100% { - top: 2.375em; - right: 0.5em; - width: 2.9375em; - } -} -@-webkit-keyframes swal2-rotate-success-circular-line { - 0% { - transform: rotate(-45deg); - } - 5% { - transform: rotate(-45deg); - } - 12% { - transform: rotate(-405deg); - } - 100% { - transform: rotate(-405deg); - } -} -@keyframes swal2-rotate-success-circular-line { - 0% { - transform: rotate(-45deg); - } - 5% { - transform: rotate(-45deg); - } - 12% { - transform: rotate(-405deg); - } - 100% { - transform: rotate(-405deg); - } -} -@-webkit-keyframes swal2-animate-error-x-mark { - 0% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; - } - 50% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; - } - 80% { - margin-top: -0.375em; - transform: scale(1.15); - } - 100% { - margin-top: 0; - transform: scale(1); - opacity: 1; - } -} -@keyframes swal2-animate-error-x-mark { - 0% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; - } - 50% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; - } - 80% { - margin-top: -0.375em; - transform: scale(1.15); - } - 100% { - margin-top: 0; - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes swal2-animate-error-icon { - 0% { - transform: rotateX(100deg); - opacity: 0; - } - 100% { - transform: rotateX(0deg); - opacity: 1; - } -} -@keyframes swal2-animate-error-icon { - 0% { - transform: rotateX(100deg); - opacity: 0; - } - 100% { - transform: rotateX(0deg); - opacity: 1; - } -} -@-webkit-keyframes swal2-rotate-loading { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -@keyframes swal2-rotate-loading { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { - overflow: hidden; -} -body.swal2-height-auto { - height: auto !important; -} -body.swal2-no-backdrop .swal2-container { - background-color: transparent !important; - pointer-events: none; -} -body.swal2-no-backdrop .swal2-container .swal2-popup { - pointer-events: all; -} -body.swal2-no-backdrop .swal2-container .swal2-modal { - box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); -} -@media print { - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { - overflow-y: scroll !important; - } - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden=true] { - display: none; - } - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container { - position: static !important; - } -} -body.swal2-toast-shown .swal2-container { - box-sizing: border-box; - width: 360px; - max-width: 100%; - background-color: transparent; - pointer-events: none; -} -body.swal2-toast-shown .swal2-container.swal2-top { - top: 0; - right: auto; - bottom: auto; - left: 50%; - transform: translateX(-50%); -} -body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right { - top: 0; - right: 0; - bottom: auto; - left: auto; -} -body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left { - top: 0; - right: auto; - bottom: auto; - left: 0; -} -body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left { - top: 50%; - right: auto; - bottom: auto; - left: 0; - transform: translateY(-50%); -} -body.swal2-toast-shown .swal2-container.swal2-center { - top: 50%; - right: auto; - bottom: auto; - left: 50%; - transform: translate(-50%, -50%); -} -body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right { - top: 50%; - right: 0; - bottom: auto; - left: auto; - transform: translateY(-50%); -} -body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left { - top: auto; - right: auto; - bottom: 0; - left: 0; -} -body.swal2-toast-shown .swal2-container.swal2-bottom { - top: auto; - right: auto; - bottom: 0; - left: 50%; - transform: translateX(-50%); -} -body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right { - top: auto; - right: 0; - bottom: 0; - left: auto; -} \ No newline at end of file diff --git a/dist/assets/vendors/sweetalert2/sweetalert2.js b/dist/assets/vendors/sweetalert2/sweetalert2.js deleted file mode 100644 index 5bda4321c..000000000 --- a/dist/assets/vendors/sweetalert2/sweetalert2.js +++ /dev/null @@ -1,3120 +0,0 @@ -/*! -* sweetalert2 v11.1.7 -* Released under the MIT License. -*/ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.Sweetalert2 = factory()); -}(this, function () { 'use strict'; - - const DismissReason = Object.freeze({ - cancel: 'cancel', - backdrop: 'backdrop', - close: 'close', - esc: 'esc', - timer: 'timer' - }); - - const consolePrefix = 'SweetAlert2:'; - /** - * Filter the unique values into a new array - * @param arr - */ - - const uniqueArray = arr => { - const result = []; - - for (let i = 0; i < arr.length; i++) { - if (result.indexOf(arr[i]) === -1) { - result.push(arr[i]); - } - } - - return result; - }; - /** - * Capitalize the first letter of a string - * @param str - */ - - const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1); - /** - * Convert NodeList to Array - * @param nodeList - */ - - const toArray = nodeList => Array.prototype.slice.call(nodeList); - /** - * Standardise console warnings - * @param message - */ - - const warn = message => { - console.warn("".concat(consolePrefix, " ").concat(typeof message === 'object' ? message.join(' ') : message)); - }; - /** - * Standardise console errors - * @param message - */ - - const error = message => { - console.error("".concat(consolePrefix, " ").concat(message)); - }; - /** - * Private global state for `warnOnce` - * @type {Array} - * @private - */ - - const previousWarnOnceMessages = []; - /** - * Show a console warning, but only if it hasn't already been shown - * @param message - */ - - const warnOnce = message => { - if (!previousWarnOnceMessages.includes(message)) { - previousWarnOnceMessages.push(message); - warn(message); - } - }; - /** - * Show a one-time console warning about deprecated params/methods - */ - - const warnAboutDeprecation = (deprecatedParam, useInstead) => { - warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead.")); - }; - /** - * If `arg` is a function, call it (with no arguments or context) and return the result. - * Otherwise, just pass the value through - * @param arg - */ - - const callIfFunction = arg => typeof arg === 'function' ? arg() : arg; - const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function'; - const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg); - const isPromise = arg => arg && Promise.resolve(arg) === arg; - - const isJqueryElement = elem => typeof elem === 'object' && elem.jquery; - - const isElement = elem => elem instanceof Element || isJqueryElement(elem); - - const argsToParams = args => { - const params = {}; - - if (typeof args[0] === 'object' && !isElement(args[0])) { - Object.assign(params, args[0]); - } else { - ['title', 'html', 'icon'].forEach((name, index) => { - const arg = args[index]; - - if (typeof arg === 'string' || isElement(arg)) { - params[name] = arg; - } else if (arg !== undefined) { - error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg)); - } - }); - } - - return params; - }; - - const swalPrefix = 'swal2-'; - const prefix = items => { - const result = {}; - - for (const i in items) { - result[items[i]] = swalPrefix + items[i]; - } - - return result; - }; - const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']); - const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); - - const getContainer = () => document.body.querySelector(".".concat(swalClasses.container)); - const elementBySelector = selectorString => { - const container = getContainer(); - return container ? container.querySelector(selectorString) : null; - }; - - const elementByClass = className => { - return elementBySelector(".".concat(className)); - }; - - const getPopup = () => elementByClass(swalClasses.popup); - const getIcon = () => elementByClass(swalClasses.icon); - const getTitle = () => elementByClass(swalClasses.title); - const getHtmlContainer = () => elementByClass(swalClasses['html-container']); - const getImage = () => elementByClass(swalClasses.image); - const getProgressSteps = () => elementByClass(swalClasses['progress-steps']); - const getValidationMessage = () => elementByClass(swalClasses['validation-message']); - const getConfirmButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm)); - const getDenyButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny)); - const getInputLabel = () => elementByClass(swalClasses['input-label']); - const getLoader = () => elementBySelector(".".concat(swalClasses.loader)); - const getCancelButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel)); - const getActions = () => elementByClass(swalClasses.actions); - const getFooter = () => elementByClass(swalClasses.footer); - const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']); - const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js - - const focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n"; - const getFocusableElements = () => { - const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex - .sort((a, b) => { - a = parseInt(a.getAttribute('tabindex')); - b = parseInt(b.getAttribute('tabindex')); - - if (a > b) { - return 1; - } else if (a < b) { - return -1; - } - - return 0; - }); - const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1'); - return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el)); - }; - const isModal = () => { - return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']); - }; - const isToast = () => { - return document.body.classList.contains(swalClasses['toast-shown']); - }; - const isLoading = () => { - return getPopup().hasAttribute('data-loading'); - }; - - const states = { - previousBodyPadding: null - }; - const setInnerHtml = (elem, html) => { - // #1926 - elem.textContent = ''; - - if (html) { - const parser = new DOMParser(); - const parsed = parser.parseFromString(html, "text/html"); - toArray(parsed.querySelector('head').childNodes).forEach(child => { - elem.appendChild(child); - }); - toArray(parsed.querySelector('body').childNodes).forEach(child => { - elem.appendChild(child); - }); - } - }; - const hasClass = (elem, className) => { - if (!className) { - return false; - } - - const classList = className.split(/\s+/); - - for (let i = 0; i < classList.length; i++) { - if (!elem.classList.contains(classList[i])) { - return false; - } - } - - return true; - }; - - const removeCustomClasses = (elem, params) => { - toArray(elem.classList).forEach(className => { - if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) { - elem.classList.remove(className); - } - }); - }; - - const applyCustomClass = (elem, params, className) => { - removeCustomClasses(elem, params); - - if (params.customClass && params.customClass[className]) { - if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) { - return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(typeof params.customClass[className], "\"")); - } - - addClass(elem, params.customClass[className]); - } - }; - const getInput = (popup, inputType) => { - if (!inputType) { - return null; - } - - switch (inputType) { - case 'select': - case 'textarea': - case 'file': - return getChildByClass(popup, swalClasses[inputType]); - - case 'checkbox': - return popup.querySelector(".".concat(swalClasses.checkbox, " input")); - - case 'radio': - return popup.querySelector(".".concat(swalClasses.radio, " input:checked")) || popup.querySelector(".".concat(swalClasses.radio, " input:first-child")); - - case 'range': - return popup.querySelector(".".concat(swalClasses.range, " input")); - - default: - return getChildByClass(popup, swalClasses.input); - } - }; - const focusInput = input => { - input.focus(); // place cursor at end of text in text input - - if (input.type !== 'file') { - // http://stackoverflow.com/a/2345915 - const val = input.value; - input.value = ''; - input.value = val; - } - }; - const toggleClass = (target, classList, condition) => { - if (!target || !classList) { - return; - } - - if (typeof classList === 'string') { - classList = classList.split(/\s+/).filter(Boolean); - } - - classList.forEach(className => { - if (target.forEach) { - target.forEach(elem => { - condition ? elem.classList.add(className) : elem.classList.remove(className); - }); - } else { - condition ? target.classList.add(className) : target.classList.remove(className); - } - }); - }; - const addClass = (target, classList) => { - toggleClass(target, classList, true); - }; - const removeClass = (target, classList) => { - toggleClass(target, classList, false); - }; - const getChildByClass = (elem, className) => { - for (let i = 0; i < elem.childNodes.length; i++) { - if (hasClass(elem.childNodes[i], className)) { - return elem.childNodes[i]; - } - } - }; - const applyNumericalStyle = (elem, property, value) => { - if (value === "".concat(parseInt(value))) { - value = parseInt(value); - } - - if (value || parseInt(value) === 0) { - elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value; - } else { - elem.style.removeProperty(property); - } - }; - const show = (elem, display = 'flex') => { - elem.style.display = display; - }; - const hide = elem => { - elem.style.display = 'none'; - }; - const setStyle = (parent, selector, property, value) => { - const el = parent.querySelector(selector); - - if (el) { - el.style[property] = value; - } - }; - const toggle = (elem, condition, display) => { - condition ? show(elem, display) : hide(elem); - }; // borrowed from jquery $(elem).is(':visible') implementation - - const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)); - const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton()); - const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); // borrowed from https://stackoverflow.com/a/46352119 - - const hasCssAnimation = elem => { - const style = window.getComputedStyle(elem); - const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0'); - const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0'); - return animDuration > 0 || transDuration > 0; - }; - const animateTimerProgressBar = (timer, reset = false) => { - const timerProgressBar = getTimerProgressBar(); - - if (isVisible(timerProgressBar)) { - if (reset) { - timerProgressBar.style.transition = 'none'; - timerProgressBar.style.width = '100%'; - } - - setTimeout(() => { - timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear"); - timerProgressBar.style.width = '0%'; - }, 10); - } - }; - const stopTimerProgressBar = () => { - const timerProgressBar = getTimerProgressBar(); - const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width); - timerProgressBar.style.removeProperty('transition'); - timerProgressBar.style.width = '100%'; - const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width); - const timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100); - timerProgressBar.style.removeProperty('transition'); - timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%"); - }; - - // Detect Node env - const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined'; - - const sweetHTML = "\n
      \n \n
        \n
        \n \n

        \n
        \n \n \n
        \n \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n").replace(/(^|\n)\s*/g, ''); - - const resetOldContainer = () => { - const oldContainer = getContainer(); - - if (!oldContainer) { - return false; - } - - oldContainer.remove(); - removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]); - return true; - }; - - const resetValidationMessage = () => { - if (Swal.isVisible()) { - Swal.resetValidationMessage(); - } - }; - - const addInputChangeListeners = () => { - const popup = getPopup(); - const input = getChildByClass(popup, swalClasses.input); - const file = getChildByClass(popup, swalClasses.file); - const range = popup.querySelector(".".concat(swalClasses.range, " input")); - const rangeOutput = popup.querySelector(".".concat(swalClasses.range, " output")); - const select = getChildByClass(popup, swalClasses.select); - const checkbox = popup.querySelector(".".concat(swalClasses.checkbox, " input")); - const textarea = getChildByClass(popup, swalClasses.textarea); - input.oninput = resetValidationMessage; - file.onchange = resetValidationMessage; - select.onchange = resetValidationMessage; - checkbox.onchange = resetValidationMessage; - textarea.oninput = resetValidationMessage; - - range.oninput = () => { - resetValidationMessage(); - rangeOutput.value = range.value; - }; - - range.onchange = () => { - resetValidationMessage(); - range.nextSibling.value = range.value; - }; - }; - - const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target; - - const setupAccessibility = params => { - const popup = getPopup(); - popup.setAttribute('role', params.toast ? 'alert' : 'dialog'); - popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive'); - - if (!params.toast) { - popup.setAttribute('aria-modal', 'true'); - } - }; - - const setupRTL = targetElement => { - if (window.getComputedStyle(targetElement).direction === 'rtl') { - addClass(getContainer(), swalClasses.rtl); - } - }; - /* - * Add modal + backdrop to DOM - */ - - - const init = params => { - // Clean up the old popup container if it exists - const oldContainerExisted = resetOldContainer(); - /* istanbul ignore if */ - - if (isNodeEnv()) { - error('SweetAlert2 requires document to initialize'); - return; - } - - const container = document.createElement('div'); - container.className = swalClasses.container; - - if (oldContainerExisted) { - addClass(container, swalClasses['no-transition']); - } - - setInnerHtml(container, sweetHTML); - const targetElement = getTarget(params.target); - targetElement.appendChild(container); - setupAccessibility(params); - setupRTL(targetElement); - addInputChangeListeners(); - }; - - const parseHtmlToContainer = (param, target) => { - // DOM element - if (param instanceof HTMLElement) { - target.appendChild(param); // Object - } else if (typeof param === 'object') { - handleObject(param, target); // Plain string - } else if (param) { - setInnerHtml(target, param); - } - }; - - const handleObject = (param, target) => { - // JQuery element(s) - if (param.jquery) { - handleJqueryElem(target, param); // For other objects use their string representation - } else { - setInnerHtml(target, param.toString()); - } - }; - - const handleJqueryElem = (target, elem) => { - target.textContent = ''; - - if (0 in elem) { - for (let i = 0; (i in elem); i++) { - target.appendChild(elem[i].cloneNode(true)); - } - } else { - target.appendChild(elem.cloneNode(true)); - } - }; - - const animationEndEvent = (() => { - // Prevent run in Node env - - /* istanbul ignore if */ - if (isNodeEnv()) { - return false; - } - - const testEl = document.createElement('div'); - const transEndEventNames = { - WebkitAnimation: 'webkitAnimationEnd', - OAnimation: 'oAnimationEnd oanimationend', - animation: 'animationend' - }; - - for (const i in transEndEventNames) { - if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') { - return transEndEventNames[i]; - } - } - - return false; - })(); - - // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js - - const measureScrollbar = () => { - const scrollDiv = document.createElement('div'); - scrollDiv.className = swalClasses['scrollbar-measure']; - document.body.appendChild(scrollDiv); - const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - return scrollbarWidth; - }; - - const renderActions = (instance, params) => { - const actions = getActions(); - const loader = getLoader(); - const confirmButton = getConfirmButton(); - const denyButton = getDenyButton(); - const cancelButton = getCancelButton(); // Actions (buttons) wrapper - - if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) { - hide(actions); - } else { - show(actions); - } // Custom class - - - applyCustomClass(actions, params, 'actions'); // Render buttons - - renderButton(confirmButton, 'confirm', params); - renderButton(denyButton, 'deny', params); - renderButton(cancelButton, 'cancel', params); - handleButtonsStyling(confirmButton, denyButton, cancelButton, params); - - if (params.reverseButtons) { - actions.insertBefore(cancelButton, loader); - actions.insertBefore(denyButton, loader); - actions.insertBefore(confirmButton, loader); - } // Loader - - - setInnerHtml(loader, params.loaderHtml); - applyCustomClass(loader, params, 'loader'); - }; - - function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) { - if (!params.buttonsStyling) { - return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled); - } - - addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors - - if (params.confirmButtonColor) { - confirmButton.style.backgroundColor = params.confirmButtonColor; - addClass(confirmButton, swalClasses['default-outline']); - } - - if (params.denyButtonColor) { - denyButton.style.backgroundColor = params.denyButtonColor; - addClass(denyButton, swalClasses['default-outline']); - } - - if (params.cancelButtonColor) { - cancelButton.style.backgroundColor = params.cancelButtonColor; - addClass(cancelButton, swalClasses['default-outline']); - } - } - - function renderButton(button, buttonType, params) { - toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block'); - setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text - - button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label - // Add buttons custom classes - - button.className = swalClasses[buttonType]; - applyCustomClass(button, params, "".concat(buttonType, "Button")); - addClass(button, params["".concat(buttonType, "ButtonClass")]); - } - - function handleBackdropParam(container, backdrop) { - if (typeof backdrop === 'string') { - container.style.background = backdrop; - } else if (!backdrop) { - addClass([document.documentElement, document.body], swalClasses['no-backdrop']); - } - } - - function handlePositionParam(container, position) { - if (position in swalClasses) { - addClass(container, swalClasses[position]); - } else { - warn('The "position" parameter is not valid, defaulting to "center"'); - addClass(container, swalClasses.center); - } - } - - function handleGrowParam(container, grow) { - if (grow && typeof grow === 'string') { - const growClass = "grow-".concat(grow); - - if (growClass in swalClasses) { - addClass(container, swalClasses[growClass]); - } - } - } - - const renderContainer = (instance, params) => { - const container = getContainer(); - - if (!container) { - return; - } - - handleBackdropParam(container, params.backdrop); - handlePositionParam(container, params.position); - handleGrowParam(container, params.grow); // Custom class - - applyCustomClass(container, params, 'container'); - }; - - /** - * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. - * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` - * This is the approach that Babel will probably take to implement private methods/fields - * https://github.com/tc39/proposal-private-methods - * https://github.com/babel/babel/pull/7555 - * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* - * then we can use that language feature. - */ - var privateProps = { - promise: new WeakMap(), - innerParams: new WeakMap(), - domCache: new WeakMap() - }; - - const inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; - const renderInput = (instance, params) => { - const popup = getPopup(); - const innerParams = privateProps.innerParams.get(instance); - const rerender = !innerParams || params.input !== innerParams.input; - inputTypes.forEach(inputType => { - const inputClass = swalClasses[inputType]; - const inputContainer = getChildByClass(popup, inputClass); // set attributes - - setAttributes(inputType, params.inputAttributes); // set class - - inputContainer.className = inputClass; - - if (rerender) { - hide(inputContainer); - } - }); - - if (params.input) { - if (rerender) { - showInput(params); - } // set custom class - - - setCustomClass(params); - } - }; - - const showInput = params => { - if (!renderInputType[params.input]) { - return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\"")); - } - - const inputContainer = getInputContainer(params.input); - const input = renderInputType[params.input](inputContainer, params); - show(input); // input autofocus - - setTimeout(() => { - focusInput(input); - }); - }; - - const removeAttributes = input => { - for (let i = 0; i < input.attributes.length; i++) { - const attrName = input.attributes[i].name; - - if (!['type', 'value', 'style'].includes(attrName)) { - input.removeAttribute(attrName); - } - } - }; - - const setAttributes = (inputType, inputAttributes) => { - const input = getInput(getPopup(), inputType); - - if (!input) { - return; - } - - removeAttributes(input); - - for (const attr in inputAttributes) { - input.setAttribute(attr, inputAttributes[attr]); - } - }; - - const setCustomClass = params => { - const inputContainer = getInputContainer(params.input); - - if (params.customClass) { - addClass(inputContainer, params.customClass.input); - } - }; - - const setInputPlaceholder = (input, params) => { - if (!input.placeholder || params.inputPlaceholder) { - input.placeholder = params.inputPlaceholder; - } - }; - - const setInputLabel = (input, prependTo, params) => { - if (params.inputLabel) { - input.id = swalClasses.input; - const label = document.createElement('label'); - const labelClass = swalClasses['input-label']; - label.setAttribute('for', input.id); - label.className = labelClass; - addClass(label, params.customClass.inputLabel); - label.innerText = params.inputLabel; - prependTo.insertAdjacentElement('beforebegin', label); - } - }; - - const getInputContainer = inputType => { - const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input; - return getChildByClass(getPopup(), inputClass); - }; - - const renderInputType = {}; - - renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => { - if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { - input.value = params.inputValue; - } else if (!isPromise(params.inputValue)) { - warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof params.inputValue, "\"")); - } - - setInputLabel(input, input, params); - setInputPlaceholder(input, params); - input.type = params.input; - return input; - }; - - renderInputType.file = (input, params) => { - setInputLabel(input, input, params); - setInputPlaceholder(input, params); - return input; - }; - - renderInputType.range = (range, params) => { - const rangeInput = range.querySelector('input'); - const rangeOutput = range.querySelector('output'); - rangeInput.value = params.inputValue; - rangeInput.type = params.input; - rangeOutput.value = params.inputValue; - setInputLabel(rangeInput, range, params); - return range; - }; - - renderInputType.select = (select, params) => { - select.textContent = ''; - - if (params.inputPlaceholder) { - const placeholder = document.createElement('option'); - setInnerHtml(placeholder, params.inputPlaceholder); - placeholder.value = ''; - placeholder.disabled = true; - placeholder.selected = true; - select.appendChild(placeholder); - } - - setInputLabel(select, select, params); - return select; - }; - - renderInputType.radio = radio => { - radio.textContent = ''; - return radio; - }; - - renderInputType.checkbox = (checkboxContainer, params) => { - const checkbox = getInput(getPopup(), 'checkbox'); - checkbox.value = 1; - checkbox.id = swalClasses.checkbox; - checkbox.checked = Boolean(params.inputValue); - const label = checkboxContainer.querySelector('span'); - setInnerHtml(label, params.inputPlaceholder); - return checkboxContainer; - }; - - renderInputType.textarea = (textarea, params) => { - textarea.value = params.inputValue; - setInputPlaceholder(textarea, params); - setInputLabel(textarea, textarea, params); - - const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); - - setTimeout(() => { - // #2291 - if ('MutationObserver' in window) { - // #1699 - const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); - - const textareaResizeHandler = () => { - const textareaWidth = textarea.offsetWidth + getMargin(textarea); - - if (textareaWidth > initialPopupWidth) { - getPopup().style.width = "".concat(textareaWidth, "px"); - } else { - getPopup().style.width = null; - } - }; - - new MutationObserver(textareaResizeHandler).observe(textarea, { - attributes: true, - attributeFilter: ['style'] - }); - } - }); - return textarea; - }; - - const renderContent = (instance, params) => { - const htmlContainer = getHtmlContainer(); - applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML - - if (params.html) { - parseHtmlToContainer(params.html, htmlContainer); - show(htmlContainer, 'block'); // Content as plain text - } else if (params.text) { - htmlContainer.textContent = params.text; - show(htmlContainer, 'block'); // No content - } else { - hide(htmlContainer); - } - - renderInput(instance, params); - }; - - const renderFooter = (instance, params) => { - const footer = getFooter(); - toggle(footer, params.footer); - - if (params.footer) { - parseHtmlToContainer(params.footer, footer); - } // Custom class - - - applyCustomClass(footer, params, 'footer'); - }; - - const renderCloseButton = (instance, params) => { - const closeButton = getCloseButton(); - setInnerHtml(closeButton, params.closeButtonHtml); // Custom class - - applyCustomClass(closeButton, params, 'closeButton'); - toggle(closeButton, params.showCloseButton); - closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); - }; - - const renderIcon = (instance, params) => { - const innerParams = privateProps.innerParams.get(instance); - const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon - - if (innerParams && params.icon === innerParams.icon) { - // Custom or default content - setContent(icon, params); - applyStyles(icon, params); - return; - } - - if (!params.icon && !params.iconHtml) { - return hide(icon); - } - - if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) { - error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\"")); - return hide(icon); - } - - show(icon); // Custom or default content - - setContent(icon, params); - applyStyles(icon, params); // Animate icon - - addClass(icon, params.showClass.icon); - }; - - const applyStyles = (icon, params) => { - for (const iconType in iconTypes) { - if (params.icon !== iconType) { - removeClass(icon, iconTypes[iconType]); - } - } - - addClass(icon, iconTypes[params.icon]); // Icon color - - setColor(icon, params); // Success icon background color - - adjustSuccessIconBackgoundColor(); // Custom class - - applyCustomClass(icon, params, 'icon'); - }; // Adjust success icon background color to match the popup background color - - - const adjustSuccessIconBackgoundColor = () => { - const popup = getPopup(); - const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); - const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); - - for (let i = 0; i < successIconParts.length; i++) { - successIconParts[i].style.backgroundColor = popupBackgroundColor; - } - }; - - const setContent = (icon, params) => { - icon.textContent = ''; - - if (params.iconHtml) { - setInnerHtml(icon, iconContent(params.iconHtml)); - } else if (params.icon === 'success') { - setInnerHtml(icon, "\n
        \n \n
        \n
        \n "); - } else if (params.icon === 'error') { - setInnerHtml(icon, "\n \n \n \n \n "); - } else { - const defaultIconHtml = { - question: '?', - warning: '!', - info: 'i' - }; - setInnerHtml(icon, iconContent(defaultIconHtml[params.icon])); - } - }; - - const setColor = (icon, params) => { - if (!params.iconColor) { - return; - } - - icon.style.color = params.iconColor; - icon.style.borderColor = params.iconColor; - - for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) { - setStyle(icon, sel, 'backgroundColor', params.iconColor); - } - - setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor); - }; - - const iconContent = content => "
        ").concat(content, "
        "); - - const renderImage = (instance, params) => { - const image = getImage(); - - if (!params.imageUrl) { - return hide(image); - } - - show(image, ''); // Src, alt - - image.setAttribute('src', params.imageUrl); - image.setAttribute('alt', params.imageAlt); // Width, height - - applyNumericalStyle(image, 'width', params.imageWidth); - applyNumericalStyle(image, 'height', params.imageHeight); // Class - - image.className = swalClasses.image; - applyCustomClass(image, params, 'image'); - }; - - const createStepElement = step => { - const stepEl = document.createElement('li'); - addClass(stepEl, swalClasses['progress-step']); - setInnerHtml(stepEl, step); - return stepEl; - }; - - const createLineElement = params => { - const lineEl = document.createElement('li'); - addClass(lineEl, swalClasses['progress-step-line']); - - if (params.progressStepsDistance) { - lineEl.style.width = params.progressStepsDistance; - } - - return lineEl; - }; - - const renderProgressSteps = (instance, params) => { - const progressStepsContainer = getProgressSteps(); - - if (!params.progressSteps || params.progressSteps.length === 0) { - return hide(progressStepsContainer); - } - - show(progressStepsContainer); - progressStepsContainer.textContent = ''; - - if (params.currentProgressStep >= params.progressSteps.length) { - warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)'); - } - - params.progressSteps.forEach((step, index) => { - const stepEl = createStepElement(step); - progressStepsContainer.appendChild(stepEl); - - if (index === params.currentProgressStep) { - addClass(stepEl, swalClasses['active-progress-step']); - } - - if (index !== params.progressSteps.length - 1) { - const lineEl = createLineElement(params); - progressStepsContainer.appendChild(lineEl); - } - }); - }; - - const renderTitle = (instance, params) => { - const title = getTitle(); - toggle(title, params.title || params.titleText, 'block'); - - if (params.title) { - parseHtmlToContainer(params.title, title); - } - - if (params.titleText) { - title.innerText = params.titleText; - } // Custom class - - - applyCustomClass(title, params, 'title'); - }; - - const renderPopup = (instance, params) => { - const container = getContainer(); - const popup = getPopup(); // Width - - if (params.toast) { - // #2170 - applyNumericalStyle(container, 'width', params.width); - popup.style.width = '100%'; - popup.insertBefore(getLoader(), getIcon()); - } else { - applyNumericalStyle(popup, 'width', params.width); - } // Padding - - - applyNumericalStyle(popup, 'padding', params.padding); // Background - - if (params.background) { - popup.style.background = params.background; - } - - hide(getValidationMessage()); // Classes - - addClasses(popup, params); - }; - - const addClasses = (popup, params) => { - // Default Class + showClass when updating Swal.update({}) - popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : ''); - - if (params.toast) { - addClass([document.documentElement, document.body], swalClasses['toast-shown']); - addClass(popup, swalClasses.toast); - } else { - addClass(popup, swalClasses.modal); - } // Custom class - - - applyCustomClass(popup, params, 'popup'); - - if (typeof params.customClass === 'string') { - addClass(popup, params.customClass); - } // Icon class (#1842) - - - if (params.icon) { - addClass(popup, swalClasses["icon-".concat(params.icon)]); - } - }; - - const render = (instance, params) => { - renderPopup(instance, params); - renderContainer(instance, params); - renderProgressSteps(instance, params); - renderIcon(instance, params); - renderImage(instance, params); - renderTitle(instance, params); - renderCloseButton(instance, params); - renderContent(instance, params); - renderActions(instance, params); - renderFooter(instance, params); - - if (typeof params.didRender === 'function') { - params.didRender(getPopup()); - } - }; - - /* - * Global function to determine if SweetAlert2 popup is shown - */ - - const isVisible$1 = () => { - return isVisible(getPopup()); - }; - /* - * Global function to click 'Confirm' button - */ - - const clickConfirm = () => getConfirmButton() && getConfirmButton().click(); - /* - * Global function to click 'Deny' button - */ - - const clickDeny = () => getDenyButton() && getDenyButton().click(); - /* - * Global function to click 'Cancel' button - */ - - const clickCancel = () => getCancelButton() && getCancelButton().click(); - - function fire(...args) { - const Swal = this; - return new Swal(...args); - } - - /** - * Returns an extended version of `Swal` containing `params` as defaults. - * Useful for reusing Swal configuration. - * - * For example: - * - * Before: - * const textPromptOptions = { input: 'text', showCancelButton: true } - * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) - * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) - * - * After: - * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) - * const {value: firstName} = await TextPrompt('What is your first name?') - * const {value: lastName} = await TextPrompt('What is your last name?') - * - * @param mixinParams - */ - function mixin(mixinParams) { - class MixinSwal extends this { - _main(params, priorityMixinParams) { - return super._main(params, Object.assign({}, mixinParams, priorityMixinParams)); - } - - } - - return MixinSwal; - } - - /** - * Shows loader (spinner), this is useful with AJAX requests. - * By default the loader be shown instead of the "Confirm" button. - */ - - const showLoading = buttonToReplace => { - let popup = getPopup(); - - if (!popup) { - Swal.fire(); - } - - popup = getPopup(); - const loader = getLoader(); - - if (isToast()) { - hide(getIcon()); - } else { - replaceButton(popup, buttonToReplace); - } - - show(loader); - popup.setAttribute('data-loading', true); - popup.setAttribute('aria-busy', true); - popup.focus(); - }; - - const replaceButton = (popup, buttonToReplace) => { - const actions = getActions(); - const loader = getLoader(); - - if (!buttonToReplace && isVisible(getConfirmButton())) { - buttonToReplace = getConfirmButton(); - } - - show(actions); - - if (buttonToReplace) { - hide(buttonToReplace); - loader.setAttribute('data-button-to-replace', buttonToReplace.className); - } - - loader.parentNode.insertBefore(loader, buttonToReplace); - addClass([popup, actions], swalClasses.loading); - }; - - const RESTORE_FOCUS_TIMEOUT = 100; - - const globalState = {}; - - const focusPreviousActiveElement = () => { - if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { - globalState.previousActiveElement.focus(); - globalState.previousActiveElement = null; - } else if (document.body) { - document.body.focus(); - } - }; // Restore previous active (focused) element - - - const restoreActiveElement = returnFocus => { - return new Promise(resolve => { - if (!returnFocus) { - return resolve(); - } - - const x = window.scrollX; - const y = window.scrollY; - globalState.restoreFocusTimeout = setTimeout(() => { - focusPreviousActiveElement(); - resolve(); - }, RESTORE_FOCUS_TIMEOUT); // issues/900 - - window.scrollTo(x, y); - }); - }; - - /** - * If `timer` parameter is set, returns number of milliseconds of timer remained. - * Otherwise, returns undefined. - */ - - const getTimerLeft = () => { - return globalState.timeout && globalState.timeout.getTimerLeft(); - }; - /** - * Stop timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const stopTimer = () => { - if (globalState.timeout) { - stopTimerProgressBar(); - return globalState.timeout.stop(); - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const resumeTimer = () => { - if (globalState.timeout) { - const remaining = globalState.timeout.start(); - animateTimerProgressBar(remaining); - return remaining; - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const toggleTimer = () => { - const timer = globalState.timeout; - return timer && (timer.running ? stopTimer() : resumeTimer()); - }; - /** - * Increase timer. Returns number of milliseconds of an updated timer. - * If `timer` parameter isn't set, returns undefined. - */ - - const increaseTimer = n => { - if (globalState.timeout) { - const remaining = globalState.timeout.increase(n); - animateTimerProgressBar(remaining, true); - return remaining; - } - }; - /** - * Check if timer is running. Returns true if timer is running - * or false if timer is paused or stopped. - * If `timer` parameter isn't set, returns undefined - */ - - const isTimerRunning = () => { - return globalState.timeout && globalState.timeout.isRunning(); - }; - - let bodyClickListenerAdded = false; - const clickHandlers = {}; - function bindClickHandler(attr = 'data-swal-template') { - clickHandlers[attr] = this; - - if (!bodyClickListenerAdded) { - document.body.addEventListener('click', bodyClickListener); - bodyClickListenerAdded = true; - } - } - - const bodyClickListener = event => { - for (let el = event.target; el && el !== document; el = el.parentNode) { - for (const attr in clickHandlers) { - const template = el.getAttribute(attr); - - if (template) { - clickHandlers[attr].fire({ - template - }); - return; - } - } - } - }; - - const defaultParams = { - title: '', - titleText: '', - text: '', - html: '', - footer: '', - icon: undefined, - iconColor: undefined, - iconHtml: undefined, - template: undefined, - toast: false, - showClass: { - popup: 'swal2-show', - backdrop: 'swal2-backdrop-show', - icon: 'swal2-icon-show' - }, - hideClass: { - popup: 'swal2-hide', - backdrop: 'swal2-backdrop-hide', - icon: 'swal2-icon-hide' - }, - customClass: {}, - target: 'body', - backdrop: true, - heightAuto: true, - allowOutsideClick: true, - allowEscapeKey: true, - allowEnterKey: true, - stopKeydownPropagation: true, - keydownListenerCapture: false, - showConfirmButton: true, - showDenyButton: false, - showCancelButton: false, - preConfirm: undefined, - preDeny: undefined, - confirmButtonText: 'OK', - confirmButtonAriaLabel: '', - confirmButtonColor: undefined, - denyButtonText: 'No', - denyButtonAriaLabel: '', - denyButtonColor: undefined, - cancelButtonText: 'Cancel', - cancelButtonAriaLabel: '', - cancelButtonColor: undefined, - buttonsStyling: true, - reverseButtons: false, - focusConfirm: true, - focusDeny: false, - focusCancel: false, - returnFocus: true, - showCloseButton: false, - closeButtonHtml: '×', - closeButtonAriaLabel: 'Close this dialog', - loaderHtml: '', - showLoaderOnConfirm: false, - showLoaderOnDeny: false, - imageUrl: undefined, - imageWidth: undefined, - imageHeight: undefined, - imageAlt: '', - timer: undefined, - timerProgressBar: false, - width: undefined, - padding: undefined, - background: undefined, - input: undefined, - inputPlaceholder: '', - inputLabel: '', - inputValue: '', - inputOptions: {}, - inputAutoTrim: true, - inputAttributes: {}, - inputValidator: undefined, - returnInputValueOnDeny: false, - validationMessage: undefined, - grow: false, - position: 'center', - progressSteps: [], - currentProgressStep: undefined, - progressStepsDistance: undefined, - willOpen: undefined, - didOpen: undefined, - didRender: undefined, - willClose: undefined, - didClose: undefined, - didDestroy: undefined, - scrollbarPadding: true - }; - const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose']; - const deprecatedParams = {}; - const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture']; - /** - * Is valid parameter - * @param {String} paramName - */ - - const isValidParameter = paramName => { - return Object.prototype.hasOwnProperty.call(defaultParams, paramName); - }; - /** - * Is valid parameter for Swal.update() method - * @param {String} paramName - */ - - const isUpdatableParameter = paramName => { - return updatableParams.indexOf(paramName) !== -1; - }; - /** - * Is deprecated parameter - * @param {String} paramName - */ - - const isDeprecatedParameter = paramName => { - return deprecatedParams[paramName]; - }; - - const checkIfParamIsValid = param => { - if (!isValidParameter(param)) { - warn("Unknown parameter \"".concat(param, "\"")); - } - }; - - const checkIfToastParamIsValid = param => { - if (toastIncompatibleParams.includes(param)) { - warn("The parameter \"".concat(param, "\" is incompatible with toasts")); - } - }; - - const checkIfParamIsDeprecated = param => { - if (isDeprecatedParameter(param)) { - warnAboutDeprecation(param, isDeprecatedParameter(param)); - } - }; - /** - * Show relevant warnings for given params - * - * @param params - */ - - - const showWarningsForParams = params => { - if (!params.backdrop && params.allowOutsideClick) { - warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'); - } - - for (const param in params) { - checkIfParamIsValid(param); - - if (params.toast) { - checkIfToastParamIsValid(param); - } - - checkIfParamIsDeprecated(param); - } - }; - - - - var staticMethods = /*#__PURE__*/Object.freeze({ - isValidParameter: isValidParameter, - isUpdatableParameter: isUpdatableParameter, - isDeprecatedParameter: isDeprecatedParameter, - argsToParams: argsToParams, - isVisible: isVisible$1, - clickConfirm: clickConfirm, - clickDeny: clickDeny, - clickCancel: clickCancel, - getContainer: getContainer, - getPopup: getPopup, - getTitle: getTitle, - getHtmlContainer: getHtmlContainer, - getImage: getImage, - getIcon: getIcon, - getInputLabel: getInputLabel, - getCloseButton: getCloseButton, - getActions: getActions, - getConfirmButton: getConfirmButton, - getDenyButton: getDenyButton, - getCancelButton: getCancelButton, - getLoader: getLoader, - getFooter: getFooter, - getTimerProgressBar: getTimerProgressBar, - getFocusableElements: getFocusableElements, - getValidationMessage: getValidationMessage, - isLoading: isLoading, - fire: fire, - mixin: mixin, - showLoading: showLoading, - enableLoading: showLoading, - getTimerLeft: getTimerLeft, - stopTimer: stopTimer, - resumeTimer: resumeTimer, - toggleTimer: toggleTimer, - increaseTimer: increaseTimer, - isTimerRunning: isTimerRunning, - bindClickHandler: bindClickHandler - }); - - /** - * Hides loader and shows back the button which was hidden by .showLoading() - */ - - function hideLoading() { - // do nothing if popup is closed - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - return; - } - - const domCache = privateProps.domCache.get(this); - hide(domCache.loader); - - if (isToast()) { - if (innerParams.icon) { - show(getIcon()); - } - } else { - showRelatedButton(domCache); - } - - removeClass([domCache.popup, domCache.actions], swalClasses.loading); - domCache.popup.removeAttribute('aria-busy'); - domCache.popup.removeAttribute('data-loading'); - domCache.confirmButton.disabled = false; - domCache.denyButton.disabled = false; - domCache.cancelButton.disabled = false; - } - - const showRelatedButton = domCache => { - const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace')); - - if (buttonToReplace.length) { - show(buttonToReplace[0], 'inline-block'); - } else if (allButtonsAreHidden()) { - hide(domCache.actions); - } - }; - - function getInput$1(instance) { - const innerParams = privateProps.innerParams.get(instance || this); - const domCache = privateProps.domCache.get(instance || this); - - if (!domCache) { - return null; - } - - return getInput(domCache.popup, innerParams.input); - } - - const fixScrollbar = () => { - // for queues, do not do this more than once - if (states.previousBodyPadding !== null) { - return; - } // if the body has overflow - - - if (document.body.scrollHeight > window.innerHeight) { - // add padding so the content doesn't shift after removal of scrollbar - states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right')); - document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px"); - } - }; - const undoScrollbar = () => { - if (states.previousBodyPadding !== null) { - document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px"); - states.previousBodyPadding = null; - } - }; - - /* istanbul ignore file */ - - const iOSfix = () => { - const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; - - if (iOS && !hasClass(document.body, swalClasses.iosfix)) { - const offset = document.body.scrollTop; - document.body.style.top = "".concat(offset * -1, "px"); - addClass(document.body, swalClasses.iosfix); - lockBodyScroll(); - addBottomPaddingForTallPopups(); // #1948 - } - }; - - const addBottomPaddingForTallPopups = () => { - const safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i); - - if (safari) { - const bottomPanelHeight = 44; - - if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) { - getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px"); - } - } - }; - - const lockBodyScroll = () => { - // #1246 - const container = getContainer(); - let preventTouchMove; - - container.ontouchstart = e => { - preventTouchMove = shouldPreventTouchMove(e); - }; - - container.ontouchmove = e => { - if (preventTouchMove) { - e.preventDefault(); - e.stopPropagation(); - } - }; - }; - - const shouldPreventTouchMove = event => { - const target = event.target; - const container = getContainer(); - - if (isStylys(event) || isZoom(event)) { - return false; - } - - if (target === container) { - return true; - } - - if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603 - target.tagName !== 'TEXTAREA' && // #2266 - !(isScrollable(getHtmlContainer()) && // #1944 - getHtmlContainer().contains(target))) { - return true; - } - - return false; - }; - - const isStylys = event => { - // #1786 - return event.touches && event.touches.length && event.touches[0].touchType === 'stylus'; - }; - - const isZoom = event => { - // #1891 - return event.touches && event.touches.length > 1; - }; - - const undoIOSfix = () => { - if (hasClass(document.body, swalClasses.iosfix)) { - const offset = parseInt(document.body.style.top, 10); - removeClass(document.body, swalClasses.iosfix); - document.body.style.top = ''; - document.body.scrollTop = offset * -1; - } - }; - - // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that - // elements not within the active modal dialog will not be surfaced if a user opens a screen - // reader’s list of elements (headings, form controls, landmarks, etc.) in the document. - - const setAriaHidden = () => { - const bodyChildren = toArray(document.body.children); - bodyChildren.forEach(el => { - if (el === getContainer() || el.contains(getContainer())) { - return; - } - - if (el.hasAttribute('aria-hidden')) { - el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden')); - } - - el.setAttribute('aria-hidden', 'true'); - }); - }; - const unsetAriaHidden = () => { - const bodyChildren = toArray(document.body.children); - bodyChildren.forEach(el => { - if (el.hasAttribute('data-previous-aria-hidden')) { - el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden')); - el.removeAttribute('data-previous-aria-hidden'); - } else { - el.removeAttribute('aria-hidden'); - } - }); - }; - - /** - * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. - * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` - * This is the approach that Babel will probably take to implement private methods/fields - * https://github.com/tc39/proposal-private-methods - * https://github.com/babel/babel/pull/7555 - * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* - * then we can use that language feature. - */ - var privateMethods = { - swalPromiseResolve: new WeakMap() - }; - - /* - * Instance method to close sweetAlert - */ - - function removePopupAndResetState(instance, container, returnFocus, didClose) { - if (isToast()) { - triggerDidCloseAndDispose(instance, didClose); - } else { - restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose)); - globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = false; - } - - const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088 - // for some reason removing the container in Safari will scroll the document to bottom - - if (isSafari) { - container.setAttribute('style', 'display:none !important'); - container.removeAttribute('class'); - container.innerHTML = ''; - } else { - container.remove(); - } - - if (isModal()) { - undoScrollbar(); - undoIOSfix(); - unsetAriaHidden(); - } - - removeBodyClasses(); - } - - function removeBodyClasses() { - removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]); - } - - function close(resolveValue) { - const popup = getPopup(); - - if (!popup) { - return; - } - - resolveValue = prepareResolveValue(resolveValue); - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) { - return; - } - - const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this); - removeClass(popup, innerParams.showClass.popup); - addClass(popup, innerParams.hideClass.popup); - const backdrop = getContainer(); - removeClass(backdrop, innerParams.showClass.backdrop); - addClass(backdrop, innerParams.hideClass.backdrop); - handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise - - swalPromiseResolve(resolveValue); - } - - const prepareResolveValue = resolveValue => { - // When user calls Swal.close() - if (typeof resolveValue === 'undefined') { - return { - isConfirmed: false, - isDenied: false, - isDismissed: true - }; - } - - return Object.assign({ - isConfirmed: false, - isDenied: false, - isDismissed: false - }, resolveValue); - }; - - const handlePopupAnimation = (instance, popup, innerParams) => { - const container = getContainer(); // If animation is supported, animate - - const animationIsSupported = animationEndEvent && hasCssAnimation(popup); - - if (typeof innerParams.willClose === 'function') { - innerParams.willClose(popup); - } - - if (animationIsSupported) { - animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose); - } else { - // Otherwise, remove immediately - removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose); - } - }; - - const animatePopup = (instance, popup, container, returnFocus, didClose) => { - globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose); - popup.addEventListener(animationEndEvent, function (e) { - if (e.target === popup) { - globalState.swalCloseEventFinishedCallback(); - delete globalState.swalCloseEventFinishedCallback; - } - }); - }; - - const triggerDidCloseAndDispose = (instance, didClose) => { - setTimeout(() => { - if (typeof didClose === 'function') { - didClose.bind(instance.params)(); - } - - instance._destroy(); - }); - }; - - function setButtonsDisabled(instance, buttons, disabled) { - const domCache = privateProps.domCache.get(instance); - buttons.forEach(button => { - domCache[button].disabled = disabled; - }); - } - - function setInputDisabled(input, disabled) { - if (!input) { - return false; - } - - if (input.type === 'radio') { - const radiosContainer = input.parentNode.parentNode; - const radios = radiosContainer.querySelectorAll('input'); - - for (let i = 0; i < radios.length; i++) { - radios[i].disabled = disabled; - } - } else { - input.disabled = disabled; - } - } - - function enableButtons() { - setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false); - } - function disableButtons() { - setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true); - } - function enableInput() { - return setInputDisabled(this.getInput(), false); - } - function disableInput() { - return setInputDisabled(this.getInput(), true); - } - - function showValidationMessage(error) { - const domCache = privateProps.domCache.get(this); - const params = privateProps.innerParams.get(this); - setInnerHtml(domCache.validationMessage, error); - domCache.validationMessage.className = swalClasses['validation-message']; - - if (params.customClass && params.customClass.validationMessage) { - addClass(domCache.validationMessage, params.customClass.validationMessage); - } - - show(domCache.validationMessage); - const input = this.getInput(); - - if (input) { - input.setAttribute('aria-invalid', true); - input.setAttribute('aria-describedby', swalClasses['validation-message']); - focusInput(input); - addClass(input, swalClasses.inputerror); - } - } // Hide block with validation message - - function resetValidationMessage$1() { - const domCache = privateProps.domCache.get(this); - - if (domCache.validationMessage) { - hide(domCache.validationMessage); - } - - const input = this.getInput(); - - if (input) { - input.removeAttribute('aria-invalid'); - input.removeAttribute('aria-describedby'); - removeClass(input, swalClasses.inputerror); - } - } - - function getProgressSteps$1() { - const domCache = privateProps.domCache.get(this); - return domCache.progressSteps; - } - - class Timer { - constructor(callback, delay) { - this.callback = callback; - this.remaining = delay; - this.running = false; - this.start(); - } - - start() { - if (!this.running) { - this.running = true; - this.started = new Date(); - this.id = setTimeout(this.callback, this.remaining); - } - - return this.remaining; - } - - stop() { - if (this.running) { - this.running = false; - clearTimeout(this.id); - this.remaining -= new Date() - this.started; - } - - return this.remaining; - } - - increase(n) { - const running = this.running; - - if (running) { - this.stop(); - } - - this.remaining += n; - - if (running) { - this.start(); - } - - return this.remaining; - } - - getTimerLeft() { - if (this.running) { - this.stop(); - this.start(); - } - - return this.remaining; - } - - isRunning() { - return this.running; - } - - } - - var defaultInputValidators = { - email: (string, validationMessage) => { - return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); - }, - url: (string, validationMessage) => { - // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013 - return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); - } - }; - - function setDefaultInputValidators(params) { - // Use default `inputValidator` for supported input types if not provided - if (!params.inputValidator) { - Object.keys(defaultInputValidators).forEach(key => { - if (params.input === key) { - params.inputValidator = defaultInputValidators[key]; - } - }); - } - } - - function validateCustomTargetElement(params) { - // Determine if the custom target element is valid - if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) { - warn('Target parameter is not valid, defaulting to "body"'); - params.target = 'body'; - } - } - /** - * Set type, text and actions on popup - * - * @param params - * @returns {boolean} - */ - - - function setParameters(params) { - setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm - - if (params.showLoaderOnConfirm && !params.preConfirm) { - warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request'); - } - - validateCustomTargetElement(params); // Replace newlines with
        in title - - if (typeof params.title === 'string') { - params.title = params.title.split('\n').join('
        '); - } - - init(params); - } - - const swalStringParams = ['swal-title', 'swal-html', 'swal-footer']; - const getTemplateParams = params => { - const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template; - - if (!template) { - return {}; - } - - const templateContent = template.content; - showWarningsForElements(templateContent); - const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams)); - return result; - }; - - const getSwalParams = templateContent => { - const result = {}; - toArray(templateContent.querySelectorAll('swal-param')).forEach(param => { - showWarningsForAttributes(param, ['name', 'value']); - const paramName = param.getAttribute('name'); - let value = param.getAttribute('value'); - - if (typeof defaultParams[paramName] === 'boolean' && value === 'false') { - value = false; - } - - if (typeof defaultParams[paramName] === 'object') { - value = JSON.parse(value); - } - - result[paramName] = value; - }); - return result; - }; - - const getSwalButtons = templateContent => { - const result = {}; - toArray(templateContent.querySelectorAll('swal-button')).forEach(button => { - showWarningsForAttributes(button, ['type', 'color', 'aria-label']); - const type = button.getAttribute('type'); - result["".concat(type, "ButtonText")] = button.innerHTML; - result["show".concat(capitalizeFirstLetter(type), "Button")] = true; - - if (button.hasAttribute('color')) { - result["".concat(type, "ButtonColor")] = button.getAttribute('color'); - } - - if (button.hasAttribute('aria-label')) { - result["".concat(type, "ButtonAriaLabel")] = button.getAttribute('aria-label'); - } - }); - return result; - }; - - const getSwalImage = templateContent => { - const result = {}; - const image = templateContent.querySelector('swal-image'); - - if (image) { - showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']); - - if (image.hasAttribute('src')) { - result.imageUrl = image.getAttribute('src'); - } - - if (image.hasAttribute('width')) { - result.imageWidth = image.getAttribute('width'); - } - - if (image.hasAttribute('height')) { - result.imageHeight = image.getAttribute('height'); - } - - if (image.hasAttribute('alt')) { - result.imageAlt = image.getAttribute('alt'); - } - } - - return result; - }; - - const getSwalIcon = templateContent => { - const result = {}; - const icon = templateContent.querySelector('swal-icon'); - - if (icon) { - showWarningsForAttributes(icon, ['type', 'color']); - - if (icon.hasAttribute('type')) { - result.icon = icon.getAttribute('type'); - } - - if (icon.hasAttribute('color')) { - result.iconColor = icon.getAttribute('color'); - } - - result.iconHtml = icon.innerHTML; - } - - return result; - }; - - const getSwalInput = templateContent => { - const result = {}; - const input = templateContent.querySelector('swal-input'); - - if (input) { - showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']); - result.input = input.getAttribute('type') || 'text'; - - if (input.hasAttribute('label')) { - result.inputLabel = input.getAttribute('label'); - } - - if (input.hasAttribute('placeholder')) { - result.inputPlaceholder = input.getAttribute('placeholder'); - } - - if (input.hasAttribute('value')) { - result.inputValue = input.getAttribute('value'); - } - } - - const inputOptions = templateContent.querySelectorAll('swal-input-option'); - - if (inputOptions.length) { - result.inputOptions = {}; - toArray(inputOptions).forEach(option => { - showWarningsForAttributes(option, ['value']); - const optionValue = option.getAttribute('value'); - const optionName = option.innerHTML; - result.inputOptions[optionValue] = optionName; - }); - } - - return result; - }; - - const getSwalStringParams = (templateContent, paramNames) => { - const result = {}; - - for (const i in paramNames) { - const paramName = paramNames[i]; - const tag = templateContent.querySelector(paramName); - - if (tag) { - showWarningsForAttributes(tag, []); - result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim(); - } - } - - return result; - }; - - const showWarningsForElements = template => { - const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']); - toArray(template.children).forEach(el => { - const tagName = el.tagName.toLowerCase(); - - if (allowedElements.indexOf(tagName) === -1) { - warn("Unrecognized element <".concat(tagName, ">")); - } - }); - }; - - const showWarningsForAttributes = (el, allowedAttributes) => { - toArray(el.attributes).forEach(attribute => { - if (allowedAttributes.indexOf(attribute.name) === -1) { - warn(["Unrecognized attribute \"".concat(attribute.name, "\" on <").concat(el.tagName.toLowerCase(), ">."), "".concat(allowedAttributes.length ? "Allowed attributes are: ".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]); - } - }); - }; - - const SHOW_CLASS_TIMEOUT = 10; - /** - * Open popup, add necessary classes and styles, fix scrollbar - * - * @param params - */ - - const openPopup = params => { - const container = getContainer(); - const popup = getPopup(); - - if (typeof params.willOpen === 'function') { - params.willOpen(popup); - } - - const bodyStyles = window.getComputedStyle(document.body); - const initialBodyOverflow = bodyStyles.overflowY; - addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto' - - setTimeout(() => { - setScrollingVisibility(container, popup); - }, SHOW_CLASS_TIMEOUT); - - if (isModal()) { - fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow); - setAriaHidden(); - } - - if (!isToast() && !globalState.previousActiveElement) { - globalState.previousActiveElement = document.activeElement; - } - - if (typeof params.didOpen === 'function') { - setTimeout(() => params.didOpen(popup)); - } - - removeClass(container, swalClasses['no-transition']); - }; - - const swalOpenAnimationFinished = event => { - const popup = getPopup(); - - if (event.target !== popup) { - return; - } - - const container = getContainer(); - popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished); - container.style.overflowY = 'auto'; - }; - - const setScrollingVisibility = (container, popup) => { - if (animationEndEvent && hasCssAnimation(popup)) { - container.style.overflowY = 'hidden'; - popup.addEventListener(animationEndEvent, swalOpenAnimationFinished); - } else { - container.style.overflowY = 'auto'; - } - }; - - const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => { - iOSfix(); - - if (scrollbarPadding && initialBodyOverflow !== 'hidden') { - fixScrollbar(); - } // sweetalert2/issues/1247 - - - setTimeout(() => { - container.scrollTop = 0; - }); - }; - - const addClasses$1 = (container, popup, params) => { - addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059 - - popup.style.setProperty('opacity', '0', 'important'); - show(popup, 'grid'); - setTimeout(() => { - // Animate popup right after showing it - addClass(popup, params.showClass.popup); // and remove the opacity workaround - - popup.style.removeProperty('opacity'); - }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062 - - addClass([document.documentElement, document.body], swalClasses.shown); - - if (params.heightAuto && params.backdrop && !params.toast) { - addClass([document.documentElement, document.body], swalClasses['height-auto']); - } - }; - - const handleInputOptionsAndValue = (instance, params) => { - if (params.input === 'select' || params.input === 'radio') { - handleInputOptions(instance, params); - } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) { - showLoading(getConfirmButton()); - handleInputValue(instance, params); - } - }; - const getInputValue = (instance, innerParams) => { - const input = instance.getInput(); - - if (!input) { - return null; - } - - switch (innerParams.input) { - case 'checkbox': - return getCheckboxValue(input); - - case 'radio': - return getRadioValue(input); - - case 'file': - return getFileValue(input); - - default: - return innerParams.inputAutoTrim ? input.value.trim() : input.value; - } - }; - - const getCheckboxValue = input => input.checked ? 1 : 0; - - const getRadioValue = input => input.checked ? input.value : null; - - const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null; - - const handleInputOptions = (instance, params) => { - const popup = getPopup(); - - const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params); - - if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) { - showLoading(getConfirmButton()); - asPromise(params.inputOptions).then(inputOptions => { - instance.hideLoading(); - processInputOptions(inputOptions); - }); - } else if (typeof params.inputOptions === 'object') { - processInputOptions(params.inputOptions); - } else { - error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof params.inputOptions)); - } - }; - - const handleInputValue = (instance, params) => { - const input = instance.getInput(); - hide(input); - asPromise(params.inputValue).then(inputValue => { - input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue); - show(input); - input.focus(); - instance.hideLoading(); - }).catch(err => { - error("Error in inputValue promise: ".concat(err)); - input.value = ''; - show(input); - input.focus(); - instance.hideLoading(); - }); - }; - - const populateInputOptions = { - select: (popup, inputOptions, params) => { - const select = getChildByClass(popup, swalClasses.select); - - const renderOption = (parent, optionLabel, optionValue) => { - const option = document.createElement('option'); - option.value = optionValue; - setInnerHtml(option, optionLabel); - option.selected = isSelected(optionValue, params.inputValue); - parent.appendChild(option); - }; - - inputOptions.forEach(inputOption => { - const optionValue = inputOption[0]; - const optionLabel = inputOption[1]; // spec: - // https://www.w3.org/TR/html401/interact/forms.html#h-17.6 - // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..." - // check whether this is a - - if (Array.isArray(optionLabel)) { - // if it is an array, then it is an - const optgroup = document.createElement('optgroup'); - optgroup.label = optionValue; - optgroup.disabled = false; // not configurable for now - - select.appendChild(optgroup); - optionLabel.forEach(o => renderOption(optgroup, o[1], o[0])); - } else { - // case of - valueFormatted = formatInputOptions(valueFormatted); - } - - result.push([key, valueFormatted]); - }); - } else { - Object.keys(inputOptions).forEach(key => { - let valueFormatted = inputOptions[key]; - - if (typeof valueFormatted === 'object') { - // case of - valueFormatted = formatInputOptions(valueFormatted); - } - - result.push([key, valueFormatted]); - }); - } - - return result; - }; - - const isSelected = (optionValue, inputValue) => { - return inputValue && inputValue.toString() === optionValue.toString(); - }; - - const handleConfirmButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); - - if (innerParams.input) { - handleConfirmOrDenyWithInput(instance, 'confirm'); - } else { - confirm(instance, true); - } - }; - const handleDenyButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); - - if (innerParams.returnInputValueOnDeny) { - handleConfirmOrDenyWithInput(instance, 'deny'); - } else { - deny(instance, false); - } - }; - const handleCancelButtonClick = (instance, dismissWith) => { - instance.disableButtons(); - dismissWith(DismissReason.cancel); - }; - - const handleConfirmOrDenyWithInput = (instance, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - const inputValue = getInputValue(instance, innerParams); - - if (innerParams.inputValidator) { - handleInputValidator(instance, inputValue, type); - } else if (!instance.getInput().checkValidity()) { - instance.enableButtons(); - instance.showValidationMessage(innerParams.validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); - } - }; - - const handleInputValidator = (instance, inputValue, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableInput(); - const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))); - validationPromise.then(validationMessage => { - instance.enableButtons(); - instance.enableInput(); - - if (validationMessage) { - instance.showValidationMessage(validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); - } - }); - }; - - const deny = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnDeny) { - showLoading(getDenyButton()); - } - - if (innerParams.preDeny) { - const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage))); - preDenyPromise.then(preDenyValue => { - if (preDenyValue === false) { - instance.hideLoading(); - } else { - instance.closePopup({ - isDenied: true, - value: typeof preDenyValue === 'undefined' ? value : preDenyValue - }); - } - }); - } else { - instance.closePopup({ - isDenied: true, - value - }); - } - }; - - const succeedWith = (instance, value) => { - instance.closePopup({ - isConfirmed: true, - value - }); - }; - - const confirm = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnConfirm) { - showLoading(); - } - - if (innerParams.preConfirm) { - instance.resetValidationMessage(); - const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage))); - preConfirmPromise.then(preConfirmValue => { - if (isVisible(getValidationMessage()) || preConfirmValue === false) { - instance.hideLoading(); - } else { - succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); - } - }); - } else { - succeedWith(instance, value); - } - }; - - const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => { - if (globalState.keydownTarget && globalState.keydownHandlerAdded) { - globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = false; - } - - if (!innerParams.toast) { - globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith); - - globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup(); - globalState.keydownListenerCapture = innerParams.keydownListenerCapture; - globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = true; - } - }; // Focus handling - - const setFocus = (innerParams, index, increment) => { - const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match - - if (focusableElements.length) { - index = index + increment; // rollover to first item - - if (index === focusableElements.length) { - index = 0; // go to last item - } else if (index === -1) { - index = focusableElements.length - 1; - } - - return focusableElements[index].focus(); - } // no visible focusable elements, focus the popup - - - getPopup().focus(); - }; - const arrowKeysNextButton = ['ArrowRight', 'ArrowDown']; - const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp']; - - const keydownHandler = (instance, e, dismissWith) => { - const innerParams = privateProps.innerParams.get(instance); - - if (!innerParams) { - return; // This instance has already been destroyed - } - - if (innerParams.stopKeydownPropagation) { - e.stopPropagation(); - } // ENTER - - - if (e.key === 'Enter') { - handleEnter(instance, e, innerParams); // TAB - } else if (e.key === 'Tab') { - handleTab(e, innerParams); // ARROWS - switch focus between buttons - } else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) { - handleArrows(e.key); // ESC - } else if (e.key === 'Escape') { - handleEsc(e, innerParams, dismissWith); - } - }; - - const handleEnter = (instance, e, innerParams) => { - // #720 #721 - if (e.isComposing) { - return; - } - - if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { - if (['textarea', 'file'].includes(innerParams.input)) { - return; // do not submit - } - - clickConfirm(); - e.preventDefault(); - } - }; - - const handleTab = (e, innerParams) => { - const targetElement = e.target; - const focusableElements = getFocusableElements(); - let btnIndex = -1; - - for (let i = 0; i < focusableElements.length; i++) { - if (targetElement === focusableElements[i]) { - btnIndex = i; - break; - } - } - - if (!e.shiftKey) { - // Cycle to the next button - setFocus(innerParams, btnIndex, 1); - } else { - // Cycle to the prev button - setFocus(innerParams, btnIndex, -1); - } - - e.stopPropagation(); - e.preventDefault(); - }; - - const handleArrows = key => { - const confirmButton = getConfirmButton(); - const denyButton = getDenyButton(); - const cancelButton = getCancelButton(); - - if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) { - return; - } - - const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling'; - const buttonToFocus = document.activeElement[sibling]; - - if (buttonToFocus) { - buttonToFocus.focus(); - } - }; - - const handleEsc = (e, innerParams, dismissWith) => { - if (callIfFunction(innerParams.allowEscapeKey)) { - e.preventDefault(); - dismissWith(DismissReason.esc); - } - }; - - const handlePopupClick = (instance, domCache, dismissWith) => { - const innerParams = privateProps.innerParams.get(instance); - - if (innerParams.toast) { - handleToastClick(instance, domCache, dismissWith); - } else { - // Ignore click events that had mousedown on the popup but mouseup on the container - // This can happen when the user drags a slider - handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup - - handleContainerMousedown(domCache); - handleModalClick(instance, domCache, dismissWith); - } - }; - - const handleToastClick = (instance, domCache, dismissWith) => { - // Closing toast by internal click - domCache.popup.onclick = () => { - const innerParams = privateProps.innerParams.get(instance); - - if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) { - return; - } - - dismissWith(DismissReason.close); - }; - }; - - let ignoreOutsideClick = false; - - const handleModalMousedown = domCache => { - domCache.popup.onmousedown = () => { - domCache.container.onmouseup = function (e) { - domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't - // have any other direct children aside of the popup - - if (e.target === domCache.container) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleContainerMousedown = domCache => { - domCache.container.onmousedown = () => { - domCache.popup.onmouseup = function (e) { - domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup - - if (e.target === domCache.popup || domCache.popup.contains(e.target)) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleModalClick = (instance, domCache, dismissWith) => { - domCache.container.onclick = e => { - const innerParams = privateProps.innerParams.get(instance); - - if (ignoreOutsideClick) { - ignoreOutsideClick = false; - return; - } - - if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { - dismissWith(DismissReason.backdrop); - } - }; - }; - - function _main(userParams, mixinParams = {}) { - showWarningsForParams(Object.assign({}, mixinParams, userParams)); - - if (globalState.currentInstance) { - globalState.currentInstance._destroy(); - - if (isModal()) { - unsetAriaHidden(); - } - } - - globalState.currentInstance = this; - const innerParams = prepareParams(userParams, mixinParams); - setParameters(innerParams); - Object.freeze(innerParams); // clear the previous timer - - if (globalState.timeout) { - globalState.timeout.stop(); - delete globalState.timeout; - } // clear the restore focus timeout - - - clearTimeout(globalState.restoreFocusTimeout); - const domCache = populateDomCache(this); - render(this, innerParams); - privateProps.innerParams.set(this, innerParams); - return swalPromise(this, domCache, innerParams); - } - - const prepareParams = (userParams, mixinParams) => { - const templateParams = getTemplateParams(userParams); - const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131 - - params.showClass = Object.assign({}, defaultParams.showClass, params.showClass); - params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass); - return params; - }; - - const swalPromise = (instance, domCache, innerParams) => { - return new Promise(resolve => { - // functions to handle all closings/dismissals - const dismissWith = dismiss => { - instance.closePopup({ - isDismissed: true, - dismiss - }); - }; - - privateMethods.swalPromiseResolve.set(instance, resolve); - - domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance); - - domCache.denyButton.onclick = () => handleDenyButtonClick(instance); - - domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith); - - domCache.closeButton.onclick = () => dismissWith(DismissReason.close); - - handlePopupClick(instance, domCache, dismissWith); - addKeydownHandler(instance, globalState, innerParams, dismissWith); - handleInputOptionsAndValue(instance, innerParams); - openPopup(innerParams); - setupTimer(globalState, innerParams, dismissWith); - initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946) - - setTimeout(() => { - domCache.container.scrollTop = 0; - }); - }); - }; - - const populateDomCache = instance => { - const domCache = { - popup: getPopup(), - container: getContainer(), - actions: getActions(), - confirmButton: getConfirmButton(), - denyButton: getDenyButton(), - cancelButton: getCancelButton(), - loader: getLoader(), - closeButton: getCloseButton(), - validationMessage: getValidationMessage(), - progressSteps: getProgressSteps() - }; - privateProps.domCache.set(instance, domCache); - return domCache; - }; - - const setupTimer = (globalState$$1, innerParams, dismissWith) => { - const timerProgressBar = getTimerProgressBar(); - hide(timerProgressBar); - - if (innerParams.timer) { - globalState$$1.timeout = new Timer(() => { - dismissWith('timer'); - delete globalState$$1.timeout; - }, innerParams.timer); - - if (innerParams.timerProgressBar) { - show(timerProgressBar); - setTimeout(() => { - if (globalState$$1.timeout && globalState$$1.timeout.running) { - // timer can be already stopped or unset at this point - animateTimerProgressBar(innerParams.timer); - } - }); - } - } - }; - - const initFocus = (domCache, innerParams) => { - if (innerParams.toast) { - return; - } - - if (!callIfFunction(innerParams.allowEnterKey)) { - return blurActiveElement(); - } - - if (!focusButton(domCache, innerParams)) { - setFocus(innerParams, -1, 1); - } - }; - - const focusButton = (domCache, innerParams) => { - if (innerParams.focusDeny && isVisible(domCache.denyButton)) { - domCache.denyButton.focus(); - return true; - } - - if (innerParams.focusCancel && isVisible(domCache.cancelButton)) { - domCache.cancelButton.focus(); - return true; - } - - if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) { - domCache.confirmButton.focus(); - return true; - } - - return false; - }; - - const blurActiveElement = () => { - if (document.activeElement && typeof document.activeElement.blur === 'function') { - document.activeElement.blur(); - } - }; - - /** - * Updates popup parameters. - */ - - function update(params) { - const popup = getPopup(); - const innerParams = privateProps.innerParams.get(this); - - if (!popup || hasClass(popup, innerParams.hideClass.popup)) { - return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); - } - - const validUpdatableParams = {}; // assign valid params from `params` to `defaults` - - Object.keys(params).forEach(param => { - if (Swal.isUpdatableParameter(param)) { - validUpdatableParams[param] = params[param]; - } else { - warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md")); - } - }); - const updatedParams = Object.assign({}, innerParams, validUpdatableParams); - render(this, updatedParams); - privateProps.innerParams.set(this, updatedParams); - Object.defineProperties(this, { - params: { - value: Object.assign({}, this.params, params), - writable: false, - enumerable: true - } - }); - } - - function _destroy() { - const domCache = privateProps.domCache.get(this); - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - return; // This instance has already been destroyed - } // Check if there is another Swal closing - - - if (domCache.popup && globalState.swalCloseEventFinishedCallback) { - globalState.swalCloseEventFinishedCallback(); - delete globalState.swalCloseEventFinishedCallback; - } // Check if there is a swal disposal defer timer - - - if (globalState.deferDisposalTimer) { - clearTimeout(globalState.deferDisposalTimer); - delete globalState.deferDisposalTimer; - } - - if (typeof innerParams.didDestroy === 'function') { - innerParams.didDestroy(); - } - - disposeSwal(this); - } - - const disposeSwal = instance => { - // Unset this.params so GC will dispose it (#1569) - delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) - - delete globalState.keydownHandler; - delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569) - - unsetWeakMaps(privateProps); - unsetWeakMaps(privateMethods); // Unset currentInstance - - delete globalState.currentInstance; - }; - - const unsetWeakMaps = obj => { - for (const i in obj) { - obj[i] = new WeakMap(); - } - }; - - - - var instanceMethods = /*#__PURE__*/Object.freeze({ - hideLoading: hideLoading, - disableLoading: hideLoading, - getInput: getInput$1, - close: close, - closePopup: close, - closeModal: close, - closeToast: close, - enableButtons: enableButtons, - disableButtons: disableButtons, - enableInput: enableInput, - disableInput: disableInput, - showValidationMessage: showValidationMessage, - resetValidationMessage: resetValidationMessage$1, - getProgressSteps: getProgressSteps$1, - _main: _main, - update: update, - _destroy: _destroy - }); - - let currentInstance; - - class SweetAlert { - constructor(...args) { - // Prevent run in Node env - if (typeof window === 'undefined') { - return; - } - - currentInstance = this; - const outerParams = Object.freeze(this.constructor.argsToParams(args)); - Object.defineProperties(this, { - params: { - value: outerParams, - writable: false, - enumerable: true, - configurable: true - } - }); - - const promise = this._main(this.params); - - privateProps.promise.set(this, promise); - } // `catch` cannot be the name of a module export, so we define our thenable methods here instead - - - then(onFulfilled) { - const promise = privateProps.promise.get(this); - return promise.then(onFulfilled); - } - - finally(onFinally) { - const promise = privateProps.promise.get(this); - return promise.finally(onFinally); - } - - } // Assign instance methods from src/instanceMethods/*.js to prototype - - - Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor - - Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility - - Object.keys(instanceMethods).forEach(key => { - SweetAlert[key] = function (...args) { - if (currentInstance) { - return currentInstance[key](...args); - } - }; - }); - SweetAlert.DismissReason = DismissReason; - SweetAlert.version = '11.1.7'; - - const Swal = SweetAlert; - Swal.default = Swal; - - return Swal; - -})); -if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2} diff --git a/dist/assets/vendors/sweetalert2/sweetalert2.min.css b/dist/assets/vendors/sweetalert2/sweetalert2.min.css deleted file mode 100644 index 342b3bedd..000000000 --- a/dist/assets/vendors/sweetalert2/sweetalert2.min.css +++ /dev/null @@ -1 +0,0 @@ -.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7367f0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(115,103,240,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#ea5455;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(234,84,85,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7d88;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,125,136,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 0}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 0;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto} \ No newline at end of file diff --git a/dist/assets/vendors/sweetalert2/sweetalert2.min.js b/dist/assets/vendors/sweetalert2/sweetalert2.min.js deleted file mode 100644 index fe84b2427..000000000 --- a/dist/assets/vendors/sweetalert2/sweetalert2.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const l=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),t="SweetAlert2:",o=e=>e.charAt(0).toUpperCase()+e.slice(1),a=e=>Array.prototype.slice.call(e),s=e=>{console.warn("".concat(t," ").concat("object"==typeof e?e.join(" "):e))},r=e=>{console.error("".concat(t," ").concat(e))},n=[],i=(e,t)=>{t='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),n.includes(t)||(n.push(t),s(t))},c=e=>"function"==typeof e?e():e,u=e=>e&&"function"==typeof e.toPromise,d=e=>u(e)?e.toPromise():Promise.resolve(e),p=e=>e&&Promise.resolve(e)===e,m=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const h=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),g=e(["success","warning","info","question","error"]),b=()=>document.body.querySelector(".".concat(h.container)),f=e=>{const t=b();return t?t.querySelector(e):null},y=e=>f(".".concat(e)),v=()=>y(h.popup),w=()=>y(h.icon),C=()=>y(h.title),k=()=>y(h["html-container"]),A=()=>y(h.image),B=()=>y(h["progress-steps"]),x=()=>y(h["validation-message"]),P=()=>f(".".concat(h.actions," .").concat(h.confirm)),E=()=>f(".".concat(h.actions," .").concat(h.deny));const S=()=>f(".".concat(h.loader)),T=()=>f(".".concat(h.actions," .").concat(h.cancel)),L=()=>y(h.actions),O=()=>y(h.footer),j=()=>y(h["timer-progress-bar"]),D=()=>y(h.close),I=()=>{const e=a(v().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>(e=parseInt(e.getAttribute("tabindex")),(t=parseInt(t.getAttribute("tabindex")))"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;eG(e))},M=()=>!H()&&!document.body.classList.contains(h["no-backdrop"]),H=()=>document.body.classList.contains(h["toast-shown"]);const q={previousBodyPadding:null},V=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");a(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),a(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},N=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e{var o,i;if(o=e,i=t,a(o.classList).forEach(e=>{Object.values(h).includes(e)||Object.values(g).includes(e)||Object.values(i.showClass).includes(e)||o.classList.remove(e)}),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return s("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));W(e,t.customClass[n])}},F=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return K(e,h[t]);case"checkbox":return e.querySelector(".".concat(h.checkbox," input"));case"radio":return e.querySelector(".".concat(h.radio," input:checked"))||e.querySelector(".".concat(h.radio," input:first-child"));case"range":return e.querySelector(".".concat(h.range," input"));default:return K(e,h.input)}},R=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},z=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{e.forEach?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},W=(e,t)=>{z(e,t,!0)},_=(e,t)=>{z(e,t,!1)},K=(t,n)=>{for(let e=0;e{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},Z=(e,t="flex")=>{e.style.display=t},J=e=>{e.style.display="none"},X=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},$=(e,t,n)=>{t?Z(e,n):J(e)},G=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),Q=()=>!G(P())&&!G(E())&&!G(T()),ee=e=>!!(e.scrollHeight>e.clientHeight),te=e=>{const t=window.getComputedStyle(e);var n=parseFloat(t.getPropertyValue("animation-duration")||"0"),e=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0{const n=j();G(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout(()=>{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))},oe=()=>"undefined"==typeof window||"undefined"==typeof document,ie='\n
        \n \n
          \n
          \n \n

          \n
          \n \n \n
          \n \n \n
          \n \n
          \n \n \n
          \n
          \n
          \n \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n').replace(/(^|\n)\s*/g,""),ae=()=>{ln.isVisible()&&ln.resetValidationMessage()},se=e=>{var t=(()=>{const e=b();return!!e&&(e.remove(),_([document.documentElement,document.body],[h["no-backdrop"],h["toast-shown"],h["has-column"]]),!0)})();if(oe())r("SweetAlert2 requires document to initialize");else{const n=document.createElement("div");n.className=h.container,t&&W(n,h["no-transition"]),V(n,ie);const o="string"==typeof(t=e.target)?document.querySelector(t):t;o.appendChild(n),(e=>{const t=v();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),e=o,"rtl"===window.getComputedStyle(e).direction&&W(b(),h.rtl),(()=>{const e=v(),t=K(e,h.input),n=K(e,h.file),o=e.querySelector(".".concat(h.range," input")),i=e.querySelector(".".concat(h.range," output")),a=K(e,h.select),s=e.querySelector(".".concat(h.checkbox," input")),r=K(e,h.textarea);t.oninput=ae,n.onchange=ae,a.onchange=ae,s.onchange=ae,r.oninput=ae,o.oninput=()=>{ae(),i.value=o.value},o.onchange=()=>{ae(),o.nextSibling.value=o.value}})()}},re=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?ce(e,t):e&&V(t,e)},ce=(e,t)=>{e.jquery?le(t,e):V(t,e.toString())},le=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},ue=(()=>{if(oe())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),de=(e,t)=>{const n=L();var o=S(),i=P(),a=E(),s=T();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Z:J)(n),U(n,t,"actions"),pe(i,"confirm",t),pe(a,"deny",t),pe(s,"cancel",t),function(e,t,n,o){if(!o.buttonsStyling)return _([e,t,n],h.styled);W([e,t,n],h.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,W(e,h["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,W(t,h["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,W(n,h["default-outline"]))}(i,a,s,t),t.reverseButtons&&(n.insertBefore(s,o),n.insertBefore(a,o),n.insertBefore(i,o)),V(o,t.loaderHtml),U(o,t,"loader")};function pe(e,t,n){$(e,n["show".concat(o(t),"Button")],"inline-block"),V(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=h[t],U(e,n,"".concat(t,"Button")),W(e,n["".concat(t,"ButtonClass")])}const me=(e,t)=>{var n,o,i=b();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||W([document.documentElement,document.body],h["no-backdrop"]),o=i,(n=t.position)in h?W(o,h[n]):(s('The "position" parameter is not valid, defaulting to "center"'),W(o,h.center)),n=i,!(o=t.grow)||"string"!=typeof o||(o="grow-".concat(o))in h&&W(n,h[o]),U(i,t,"container"))};var he={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const ge=["input","file","range","select","radio","checkbox","textarea"],be=e=>{if(!ke[e.input])return r('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));var t=Ce(e.input);const n=ke[e.input](t,e);Z(n),setTimeout(()=>{R(n)})},fe=(e,t)=>{const n=F(v(),e);if(n){(t=>{for(let e=0;e{var t=Ce(e.input);e.customClass&&W(t,e.customClass.input)},ve=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},we=(e,t,n)=>{if(n.inputLabel){e.id=h.input;const i=document.createElement("label");var o=h["input-label"];i.setAttribute("for",e.id),i.className=o,W(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Ce=e=>{e=h[e]||h.input;return K(v(),e)},ke={};ke.text=ke.email=ke.password=ke.number=ke.tel=ke.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:p(t.inputValue)||s('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t.inputValue,'"')),we(e,e,t),ve(e,t),e.type=t.input,e),ke.file=(e,t)=>(we(e,e,t),ve(e,t),e),ke.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return n.value=t.inputValue,n.type=t.input,o.value=t.inputValue,we(n,e,t),e},ke.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");V(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return we(e,e,t),e},ke.radio=e=>(e.textContent="",e),ke.checkbox=(e,t)=>{const n=F(v(),"checkbox");n.value=1,n.id=h.checkbox,n.checked=Boolean(t.inputValue);var o=e.querySelector("span");return V(o,t.inputPlaceholder),e},ke.textarea=(n,e)=>{n.value=e.inputValue,ve(n,e),we(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(v()).width);new MutationObserver(()=>{var e,e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?v().style.width="".concat(e,"px"):v().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n};const Ae=(e,t)=>{const n=k();U(n,t,"htmlContainer"),t.html?(re(t.html,n),Z(n,"block")):t.text?(n.textContent=t.text,Z(n,"block")):J(n),((e,o)=>{const i=v();e=he.innerParams.get(e);const a=!e||o.input!==e.input;ge.forEach(e=>{var t=h[e];const n=K(i,t);fe(e,o.inputAttributes),n.className=t,a&&J(n)}),o.input&&(a&&be(o),ye(o))})(e,t)},Be=(e,t)=>{for(const n in g)t.icon!==n&&_(e,g[n]);W(e,g[t.icon]),Ee(e,t),xe(),U(e,t,"icon")},xe=()=>{const e=v();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{var n;e.textContent="",t.iconHtml?V(e,Se(t.iconHtml)):"success"===t.icon?V(e,'\n
          \n \n
          \n
          \n '):"error"===t.icon?V(e,'\n \n \n \n \n '):(n={question:"?",warning:"!",info:"i"},V(e,Se(n[t.icon])))},Ee=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])X(e,n,"backgroundColor",t.iconColor);X(e,".swal2-success-ring","borderColor",t.iconColor)}},Se=e=>'
          ').concat(e,"
          "),Te=(e,o)=>{const i=B();if(!o.progressSteps||0===o.progressSteps.length)return J(i);Z(i),i.textContent="",o.currentProgressStep>=o.progressSteps.length&&s("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach((e,t)=>{var n,e=(n=e,e=document.createElement("li"),W(e,h["progress-step"]),V(e,n),e);i.appendChild(e),t===o.currentProgressStep&&W(e,h["active-progress-step"]),t!==o.progressSteps.length-1&&(t=(e=>{const t=document.createElement("li");return W(t,h["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t})(o),i.appendChild(t))})},Le=(e,t)=>{e.className="".concat(h.popup," ").concat(G(e)?t.showClass.popup:""),t.toast?(W([document.documentElement,document.body],h["toast-shown"]),W(e,h.toast)):W(e,h.modal),U(e,t,"popup"),"string"==typeof t.customClass&&W(e,t.customClass),t.icon&&W(e,h["icon-".concat(t.icon)])},Oe=(e,t)=>{var n,o,i;(e=>{var t=b();const n=v();e.toast?(Y(t,"width",e.width),n.style.width="100%",n.insertBefore(S(),w())):Y(n,"width",e.width),Y(n,"padding",e.padding),e.background&&(n.style.background=e.background),J(x()),Le(n,e)})(t),me(0,t),Te(0,t),i=e,n=t,o=he.innerParams.get(i),i=w(),o&&n.icon===o.icon?(Pe(i,n),Be(i,n)):n.icon||n.iconHtml?n.icon&&-1===Object.keys(g).indexOf(n.icon)?(r('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(n.icon,'"')),J(i)):(Z(i),Pe(i,n),Be(i,n),W(i,n.showClass.icon)):J(i),(e=>{const t=A();if(!e.imageUrl)return J(t);Z(t,""),t.setAttribute("src",e.imageUrl),t.setAttribute("alt",e.imageAlt),Y(t,"width",e.imageWidth),Y(t,"height",e.imageHeight),t.className=h.image,U(t,e,"image")})(t),(e=>{const t=C();$(t,e.title||e.titleText,"block"),e.title&&re(e.title,t),e.titleText&&(t.innerText=e.titleText),U(t,e,"title")})(t),(e=>{const t=D();V(t,e.closeButtonHtml),U(t,e,"closeButton"),$(t,e.showCloseButton),t.setAttribute("aria-label",e.closeButtonAriaLabel)})(t),Ae(e,t),de(0,t),i=t,e=O(),$(e,i.footer),i.footer&&re(i.footer,e),U(e,i,"footer"),"function"==typeof t.didRender&&t.didRender(v())};const je=()=>P()&&P().click();const De=e=>{let t=v();t||ln.fire(),t=v();var n=S();H()?J(w()):Ie(t,e),Z(n),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},Ie=(e,t)=>{var n=L();const o=S();!t&&G(P())&&(t=P()),Z(n),t&&(J(t),o.setAttribute("data-button-to-replace",t.className)),o.parentNode.insertBefore(o,t),W([e,n],h.loading)},Me={},He=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;Me.restoreFocusTimeout=setTimeout(()=>{Me.previousActiveElement&&Me.previousActiveElement.focus?(Me.previousActiveElement.focus(),Me.previousActiveElement=null):document.body&&document.body.focus(),e()},100),window.scrollTo(t,n)});const qe=()=>{if(Me.timeout)return(()=>{const e=j();var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=parseInt(window.getComputedStyle(e).width),n=parseInt(t/n*100);e.style.removeProperty("transition"),e.style.width="".concat(n,"%")})(),Me.timeout.stop()},Ve=()=>{if(Me.timeout){var e=Me.timeout.start();return ne(e),e}};let Ne=!1;const Ue={};const Fe=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in Ue){var n=e.getAttribute(o);if(n)return void Ue[o].fire({template:n})}},Re={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},ze=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],We={},_e=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],Ke=e=>Object.prototype.hasOwnProperty.call(Re,e);const Ye=e=>We[e],Ze=e=>{!e.backdrop&&e.allowOutsideClick&&s('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const o in e)n=o,Ke(n)||s('Unknown parameter "'.concat(n,'"')),e.toast&&(t=o,_e.includes(t)&&s('The parameter "'.concat(t,'" is incompatible with toasts'))),t=o,Ye(t)&&i(t,Ye(t));var t,n};var Je=Object.freeze({isValidParameter:Ke,isUpdatableParameter:e=>-1!==ze.indexOf(e),isDeprecatedParameter:Ye,argsToParams:n=>{const o={};return"object"!=typeof n[0]||m(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||m(t)?o[e]=t:void 0!==t&&r("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>G(v()),clickConfirm:je,clickDeny:()=>E()&&E().click(),clickCancel:()=>T()&&T().click(),getContainer:b,getPopup:v,getTitle:C,getHtmlContainer:k,getImage:A,getIcon:w,getInputLabel:()=>y(h["input-label"]),getCloseButton:D,getActions:L,getConfirmButton:P,getDenyButton:E,getCancelButton:T,getLoader:S,getFooter:O,getTimerProgressBar:j,getFocusableElements:I,getValidationMessage:x,isLoading:()=>v().hasAttribute("data-loading"),fire:function(...e){return new this(...e)},mixin:function(n){class e extends this{_main(e,t){return super._main(e,Object.assign({},n,t))}}return e},showLoading:De,enableLoading:De,getTimerLeft:()=>Me.timeout&&Me.timeout.getTimerLeft(),stopTimer:qe,resumeTimer:Ve,toggleTimer:()=>{var e=Me.timeout;return e&&(e.running?qe:Ve)()},increaseTimer:e=>{if(Me.timeout){e=Me.timeout.increase(e);return ne(e,!0),e}},isTimerRunning:()=>Me.timeout&&Me.timeout.isRunning(),bindClickHandler:function(e="data-swal-template"){Ue[e]=this,Ne||(document.body.addEventListener("click",Fe),Ne=!0)}});function Xe(){var e=he.innerParams.get(this);if(e){const t=he.domCache.get(this);J(t.loader),H()?e.icon&&Z(w()):(e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));if(t.length)Z(t[0],"inline-block");else if(Q())J(e.actions)})(t),_([t.popup,t.actions],h.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}const $e=()=>{null===q.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(q.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(q.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=h["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},Ge=()=>{navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||v().scrollHeight>window.innerHeight-44&&(b().style.paddingBottom="".concat(44,"px"))},Qe=()=>{const e=b();let t;e.ontouchstart=e=>{t=et(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},et=e=>{var t=e.target,n=b();return!tt(e)&&!nt(e)&&(t===n||!(ee(n)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||ee(k())&&k().contains(t)))},tt=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,nt=e=>e.touches&&1{const e=a(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})};var it={swalPromiseResolve:new WeakMap};function at(e,t,n,o){H()?ct(e,o):(He(n).then(()=>ct(e,o)),Me.keydownTarget.removeEventListener("keydown",Me.keydownHandler,{capture:Me.keydownListenerCapture}),Me.keydownHandlerAdded=!1),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),M()&&(null!==q.previousBodyPadding&&(document.body.style.paddingRight="".concat(q.previousBodyPadding,"px"),q.previousBodyPadding=null),N(document.body,h.iosfix)&&(t=parseInt(document.body.style.top,10),_(document.body,h.iosfix),document.body.style.top="",document.body.scrollTop=-1*t),ot()),_([document.documentElement,document.body],[h.shown,h["height-auto"],h["no-backdrop"],h["toast-shown"]])}function st(e){var t=v();if(t){e=void 0!==(o=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},o):{isConfirmed:!1,isDenied:!1,isDismissed:!0};var n=he.innerParams.get(this);if(n&&!N(t,n.hideClass.popup)){const i=it.swalPromiseResolve.get(this);_(t,n.showClass.popup),W(t,n.hideClass.popup);var o=b();_(o,n.showClass.backdrop),W(o,n.hideClass.backdrop),((e,t,n)=>{const o=b(),i=ue&&te(t);if(typeof n.willClose==="function")n.willClose(t);if(i)rt(e,t,o,n.returnFocus,n.didClose);else at(e,o,n.returnFocus,n.didClose)})(this,t,n),i(e)}}}const rt=(e,t,n,o,i)=>{Me.swalCloseEventFinishedCallback=at.bind(null,e,n,o,i),t.addEventListener(ue,function(e){e.target===t&&(Me.swalCloseEventFinishedCallback(),delete Me.swalCloseEventFinishedCallback)})},ct=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function lt(e,t,n){const o=he.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function ut(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function mt(e){var t,n;(t=e).inputValidator||Object.keys(pt).forEach(e=>{t.input===e&&(t.inputValidator=pt[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&s("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(s('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
          ")),se(e)}const ht=["swal-title","swal-html","swal-footer"],gt=e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content;return kt(e),Object.assign(bt(e),ft(e),yt(e),vt(e),wt(e),Ct(e,ht))},bt=e=>{const o={};return a(e.querySelectorAll("swal-param")).forEach(e=>{At(e,["name","value"]);var t=e.getAttribute("name");let n=e.getAttribute("value");"boolean"==typeof Re[t]&&"false"===n&&(n=!1),"object"==typeof Re[t]&&(n=JSON.parse(n)),o[t]=n}),o},ft=e=>{const n={};return a(e.querySelectorAll("swal-button")).forEach(e=>{At(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(o(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},yt=e=>{const t={},n=e.querySelector("swal-image");return n&&(At(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},vt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(At(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},wt=e=>{const n={},t=e.querySelector("swal-input");t&&(At(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},a(e).forEach(e=>{At(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},Ct=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(At(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},kt=e=>{const t=ht.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);a(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&s("Unrecognized element <".concat(e,">"))})},At=(t,n)=>{a(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&s(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})},Bt=e=>{const t=b(),n=v();"function"==typeof e.willOpen&&e.willOpen(n);var o=window.getComputedStyle(document.body).overflowY;St(t,n,e),setTimeout(()=>{Pt(t,n)},10),M()&&(Et(t,e.scrollbarPadding,o),(()=>{const e=a(document.body.children);e.forEach(e=>{e===b()||e.contains(b())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})})()),H()||Me.previousActiveElement||(Me.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout(()=>e.didOpen(n)),_(t,h["no-transition"])},xt=e=>{const t=v();if(e.target===t){const n=b();t.removeEventListener(ue,xt),n.style.overflowY="auto"}},Pt=(e,t)=>{ue&&te(t)?(e.style.overflowY="hidden",t.addEventListener(ue,xt)):e.style.overflowY="auto"},Et=(e,t,n)=>{var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1{e.scrollTop=0})},St=(e,t,n)=>{W(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),Z(t,"grid"),setTimeout(()=>{W(t,n.showClass.popup),t.style.removeProperty("opacity")},10),W([document.documentElement,document.body],h.shown),n.heightAuto&&n.backdrop&&!n.toast&&W([document.documentElement,document.body],h["height-auto"])},Tt=e=>e.checked?1:0,Lt=e=>e.checked?e.value:null,Ot=e=>e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,jt=(t,n)=>{const o=v(),i=e=>It[n.input](o,Mt(e),n);u(n.inputOptions)||p(n.inputOptions)?(De(P()),d(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):r("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},Dt=(t,n)=>{const o=t.getInput();J(o),d(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),Z(o),o.focus(),t.hideLoading()}).catch(e=>{r("Error in inputValue promise: ".concat(e)),o.value="",Z(o),o.focus(),t.hideLoading()})},It={select:(e,t,i)=>{const a=K(e,h.select),s=(e,t,n)=>{const o=document.createElement("option");o.value=n,V(o,t),o.selected=Ht(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>s(o,e[1],e[0]))}else s(a,n,t)}),a.focus()},radio:(e,t,a)=>{const s=K(e,h.radio);t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label");n.type="radio",n.name=h.radio,n.value=t,Ht(t,a.inputValue)&&(n.checked=!0);const i=document.createElement("span");V(i,e),i.className=h.label,o.appendChild(n),o.appendChild(i),s.appendChild(o)});const n=s.querySelectorAll("input");n.length&&n[0].focus()}},Mt=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Mt(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Mt(t)),o.push([e,t])}),o},Ht=(e,t)=>t&&t.toString()===e.toString(),qt=(e,t)=>{var n=he.innerParams.get(e),o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Tt(n);case"radio":return Lt(n);case"file":return Ot(n);default:return t.inputAutoTrim?n.value.trim():n.value}})(e,n);n.inputValidator?Vt(e,o,t):e.getInput().checkValidity()?("deny"===t?Nt:Ft)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Vt=(t,n,o)=>{const e=he.innerParams.get(t);t.disableInput();const i=Promise.resolve().then(()=>d(e.inputValidator(n,e.validationMessage)));i.then(e=>{t.enableButtons(),t.enableInput(),e?t.showValidationMessage(e):("deny"===o?Nt:Ft)(t,n)})},Nt=(t,n)=>{const e=he.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&De(E()),e.preDeny){const o=Promise.resolve().then(()=>d(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?t.hideLoading():t.closePopup({isDenied:!0,value:void 0===e?n:e})})}else t.closePopup({isDenied:!0,value:n})},Ut=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Ft=(t,n)=>{const e=he.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&De(),e.preConfirm){t.resetValidationMessage();const o=Promise.resolve().then(()=>d(e.preConfirm(n,e.validationMessage)));o.then(e=>{G(x())||!1===e?t.hideLoading():Ut(t,void 0===e?n:e)})}else Ut(t,n)},Rt=(e,t,n)=>{const o=I();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();v().focus()},zt=["ArrowRight","ArrowDown"],Wt=["ArrowLeft","ArrowUp"],_t=(e,t,n)=>{var o=he.innerParams.get(e);o&&(o.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Kt(e,t,o):"Tab"===t.key?Yt(t,o):[...zt,...Wt].includes(t.key)?Zt(t.key):"Escape"===t.key&&Jt(t,o,n))},Kt=(e,t,n)=>{t.isComposing||t.target&&e.getInput()&&t.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(n.input)||(je(),t.preventDefault()))},Yt=(e,t)=>{var n=e.target,o=I();let i=-1;for(let e=0;e{const t=P(),n=E(),o=T();if([t,n,o].includes(document.activeElement)){e=zt.includes(e)?"nextElementSibling":"previousElementSibling";const i=document.activeElement[e];i&&i.focus()}},Jt=(e,t,n)=>{c(t.allowEscapeKey)&&(e.preventDefault(),n(l.esc))},Xt=(t,e,n)=>{e.popup.onclick=()=>{var e=he.innerParams.get(t);e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||e.timer||e.input||n(l.close)}};let $t=!1;const Gt=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&($t=!0)}}},Qt=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||($t=!0)}}},en=(n,o,i)=>{o.container.onclick=e=>{var t=he.innerParams.get(n);$t?$t=!1:e.target===o.container&&c(t.allowOutsideClick)&&i(l.backdrop)}};const tn=(e,t,n)=>{var o=j();J(o),t.timer&&(e.timeout=new dt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(Z(o),setTimeout(()=>{e.timeout&&e.timeout.running&&ne(t.timer)})))},nn=(e,t)=>{if(!t.toast)return c(t.allowEnterKey)?void(on(e,t)||Rt(0,-1,1)):an()},on=(e,t)=>t.focusDeny&&G(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&G(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!G(e.confirmButton))&&(e.confirmButton.focus(),!0),an=()=>{document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};const sn=e=>{for(const t in e)e[t]=new WeakMap};e=Object.freeze({hideLoading:Xe,disableLoading:Xe,getInput:function(e){var t=he.innerParams.get(e||this);return(e=he.domCache.get(e||this))?F(e.popup,t.input):null},close:st,closePopup:st,closeModal:st,closeToast:st,enableButtons:function(){lt(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){lt(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return ut(this.getInput(),!1)},disableInput:function(){return ut(this.getInput(),!0)},showValidationMessage:function(e){const t=he.domCache.get(this);var n=he.innerParams.get(this);V(t.validationMessage,e),t.validationMessage.className=h["validation-message"],n.customClass&&n.customClass.validationMessage&&W(t.validationMessage,n.customClass.validationMessage),Z(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",h["validation-message"]),R(o),W(o,h.inputerror))},resetValidationMessage:function(){var e=he.domCache.get(this);e.validationMessage&&J(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),_(t,h.inputerror))},getProgressSteps:function(){return he.domCache.get(this).progressSteps},_main:function(e,t={}){Ze(Object.assign({},t,e)),Me.currentInstance&&(Me.currentInstance._destroy(),M()&&ot()),Me.currentInstance=this,mt(e=((e,t)=>{const n=gt(e),o=Object.assign({},Re,t,n,e);return o.showClass=Object.assign({},Re.showClass,o.showClass),o.hideClass=Object.assign({},Re.hideClass,o.hideClass),o})(e,t)),Object.freeze(e),Me.timeout&&(Me.timeout.stop(),delete Me.timeout),clearTimeout(Me.restoreFocusTimeout);var s,r,c,t=(e=>{const t={popup:v(),container:b(),actions:L(),confirmButton:P(),denyButton:E(),cancelButton:T(),loader:S(),closeButton:D(),validationMessage:x(),progressSteps:B()};return he.domCache.set(e,t),t})(this);return Oe(this,e),he.innerParams.set(this,e),s=this,r=t,c=e,new Promise(e=>{const t=e=>{s.closePopup({isDismissed:!0,dismiss:e})};var n,o,i,a;it.swalPromiseResolve.set(s,e),r.confirmButton.onclick=()=>(e=>{var t=he.innerParams.get(e);e.disableButtons(),t.input?qt(e,"confirm"):Ft(e,!0)})(s),r.denyButton.onclick=()=>(e=>{var t=he.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?qt(e,"deny"):Nt(e,!1)})(s),r.cancelButton.onclick=()=>((e,t)=>{e.disableButtons(),t(l.cancel)})(s,t),r.closeButton.onclick=()=>t(l.close),n=s,a=r,e=t,he.innerParams.get(n).toast?Xt(n,a,e):(Gt(a),Qt(a),en(n,a,e)),o=s,a=Me,e=c,i=t,a.keydownTarget&&a.keydownHandlerAdded&&(a.keydownTarget.removeEventListener("keydown",a.keydownHandler,{capture:a.keydownListenerCapture}),a.keydownHandlerAdded=!1),e.toast||(a.keydownHandler=e=>_t(o,e,i),a.keydownTarget=e.keydownListenerCapture?window:v(),a.keydownListenerCapture=e.keydownListenerCapture,a.keydownTarget.addEventListener("keydown",a.keydownHandler,{capture:a.keydownListenerCapture}),a.keydownHandlerAdded=!0),e=s,"select"===(a=c).input||"radio"===a.input?jt(e,a):["text","email","number","tel","textarea"].includes(a.input)&&(u(a.inputValue)||p(a.inputValue))&&(De(P()),Dt(e,a)),Bt(c),tn(Me,c,t),nn(r,c),setTimeout(()=>{r.container.scrollTop=0})})},update:function(t){var e=v(),n=he.innerParams.get(this);if(!e||N(e,n.hideClass.popup))return s("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const o={};Object.keys(t).forEach(e=>{ln.isUpdatableParameter(e)?o[e]=t[e]:s('Invalid parameter to update: "'.concat(e,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=Object.assign({},n,o),Oe(this,n),he.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})},_destroy:function(){var e=he.domCache.get(this);const t=he.innerParams.get(this);t&&(e.popup&&Me.swalCloseEventFinishedCallback&&(Me.swalCloseEventFinishedCallback(),delete Me.swalCloseEventFinishedCallback),Me.deferDisposalTimer&&(clearTimeout(Me.deferDisposalTimer),delete Me.deferDisposalTimer),"function"==typeof t.didDestroy&&t.didDestroy(),delete this.params,delete Me.keydownHandler,delete Me.keydownTarget,sn(he),sn(it),delete Me.currentInstance)}});let rn;class cn{constructor(...e){"undefined"!=typeof window&&(rn=this,e=Object.freeze(this.constructor.argsToParams(e)),Object.defineProperties(this,{params:{value:e,writable:!1,enumerable:!0,configurable:!0}}),e=this._main(this.params),he.promise.set(this,e))}then(e){const t=he.promise.get(this);return t.then(e)}finally(e){const t=he.promise.get(this);return t.finally(e)}}Object.assign(cn.prototype,e),Object.assign(cn,Je),Object.keys(e).forEach(t=>{cn[t]=function(...e){if(rn)return rn[t](...e)}}),cn.DismissReason=l,cn.version="11.1.7";const ln=cn;return ln.default=ln,ln}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); \ No newline at end of file diff --git a/dist/assets/js/extensions/sweetalert2.js b/src/assets/js/extensions/sweetalert2.js similarity index 99% rename from dist/assets/js/extensions/sweetalert2.js rename to src/assets/js/extensions/sweetalert2.js index d0637e3c4..cd786df15 100644 --- a/dist/assets/js/extensions/sweetalert2.js +++ b/src/assets/js/extensions/sweetalert2.js @@ -1,3 +1,5 @@ +import Swal from "sweetalert2" + document.getElementById('basic').addEventListener('click', (e) => { Swal.fire('Any fool can use a computer') }) diff --git a/src/assets/scss/pages/sweetalert2.scss b/src/assets/scss/pages/sweetalert2.scss new file mode 100644 index 000000000..f97c549a4 --- /dev/null +++ b/src/assets/scss/pages/sweetalert2.scss @@ -0,0 +1 @@ +@import "~sweetalert2/dist/sweetalert2" \ No newline at end of file diff --git a/src/extra-component-sweetalert.html b/src/extra-component-sweetalert.html index 324a8da82..3089384d9 100644 --- a/src/extra-component-sweetalert.html +++ b/src/extra-component-sweetalert.html @@ -130,9 +130,8 @@

          Alert Input

          {% endblock %} {% block styles %} - + {% endblock %} {% block js %} - - +> {% endblock %} \ No newline at end of file diff --git a/webpack.mix.js b/webpack.mix.js index d29d64da5..8ce338156 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -11,10 +11,12 @@ mix .sass(`${assetsPath}scss/pages/email.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/chat.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/toastify.scss`, "assets/css/pages") + .sass(`${assetsPath}scss/pages/sweetalert2.scss`, "assets/css/pages") .sass(`${assetsPath}scss/widgets/chat.scss`, "assets/css/widgets") .sass(`${assetsPath}scss/widgets/todo.scss`, "assets/css/widgets") .js(`${assetsPath}js/mazer.js`, "assets/js") .js(`${assetsPath}js/extensions/toastify.js`, "assets/js/extensions") + .js(`${assetsPath}js/extensions/sweetalert2.js`, "assets/js/extensions") .minify("dist/assets/js/mazer.js") .setPublicPath("dist"); From ebe0d2b96fe0e1dfe8510b2cdea3c5b97ac59204 Mon Sep 17 00:00:00 2001 From: Nik Date: Tue, 8 Mar 2022 17:17:28 +0100 Subject: [PATCH 07/83] Load CkEditor from npm --- dist/assets/vendors/ckeditor/ckeditor.js | 6 - dist/assets/vendors/ckeditor/ckeditor.js.map | 1 - package-lock.json | 827 +++++++++++++++++++ package.json | 1 + src/assets/js/extensions/ckeditor.js | 7 + src/form-editor-ckeditor.html | 10 +- webpack.mix.js | 1 + 7 files changed, 837 insertions(+), 16 deletions(-) delete mode 100644 dist/assets/vendors/ckeditor/ckeditor.js delete mode 100644 dist/assets/vendors/ckeditor/ckeditor.js.map create mode 100644 src/assets/js/extensions/ckeditor.js diff --git a/dist/assets/vendors/ckeditor/ckeditor.js b/dist/assets/vendors/ckeditor/ckeditor.js deleted file mode 100644 index 4fe9077d6..000000000 --- a/dist/assets/vendors/ckeditor/ckeditor.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md. - */ -!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 of %1","Block quote":"Block quote",Bold:"Bold","Bulleted List":"Bulleted List",Cancel:"Cancel","Cannot upload file:":"Cannot upload file:","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Column:"Column","Could not insert image at the current position.":"Could not insert image at the current position.","Could not obtain resized image URL.":"Could not obtain resized image URL.","Decrease indent":"Decrease indent","Delete column":"Delete column","Delete row":"Delete row",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Full size image":"Full size image","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Image toolbar":"Image toolbar","image widget":"image widget","Increase indent":"Increase indent","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image or file":"Insert image or file","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table","Inserting image failed":"Inserting image failed",Italic:"Italic","Left aligned image":"Left aligned image",Link:"Link","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.",Previous:"Previous",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Selecting resized image failed":"Selecting resized image failed","Show more items":"Show more items","Side image":"Side image","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alternative":"Text alternative","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.",Undo:"Undo",Unlink:"Unlink","Upload failed":"Upload failed","Upload in progress":"Upload in progress","Widget toolbar":"Widget toolbar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClassicEditor=e():t.ClassicEditor=e()}(window,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(i,o,function(e){return t[e]}.bind(null,o));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=98)}([function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"c",(function(){return o})),n.d(e,"b",(function(){return r}));class i extends Error{constructor(t,e,n){super(`${t}${n?" "+JSON.stringify(n):""}${s(t)}`),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new i(t.message,e);throw n.stack=t.stack,n}}function o(t,e){console.warn(...a(t,e))}function r(t,e){console.error(...a(t,e))}function s(t){return"\nRead more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-"+t}function a(t,e){const n=s(t);return e?[t,e,n]:[t,n]}},function(t,e,n){"use strict";var i,o=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},r=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}"},function(t,e,n){var i=n(1),o=n(21);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}"},function(t,e,n){var i=n(1),o=n(23);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{z-index:var(--ck-z-modal);position:fixed;top:0}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{top:auto;position:absolute}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:var(--ck-drop-shadow),0 0;border-width:0 1px 1px;border-top-left-radius:0;border-top-right-radius:0}"},function(t,e,n){var i=n(1),o=n(25);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip{display:none}.ck.ck-dropdown .ck-dropdown__panel{-webkit-backface-visibility:hidden;display:none;z-index:var(--ck-z-modal);position:absolute}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{top:100%;bottom:auto}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{right:var(--ck-spacing-standard);margin-left:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:7em;overflow:hidden;text-overflow:ellipsis}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{box-shadow:var(--ck-drop-shadow),0 0;background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}"},function(t,e,n){var i=n(1),o=n(27);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{width:var(--ck-icon-size);height:var(--ck-icon-size);font-size:.8333350694em;will-change:transform}.ck.ck-icon,.ck.ck-icon *{color:inherit;cursor:inherit}.ck.ck-icon :not([fill]){fill:currentColor}"},function(t,e,n){var i=n(1),o=n(29);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports='.ck.ck-tooltip,.ck.ck-tooltip .ck-tooltip__text:after{position:absolute;pointer-events:none;-webkit-backface-visibility:hidden}.ck.ck-tooltip{visibility:hidden;opacity:0;display:none;z-index:var(--ck-z-modal)}.ck.ck-tooltip .ck-tooltip__text{display:inline-block}.ck.ck-tooltip .ck-tooltip__text:after{content:"";width:0;height:0}:root{--ck-tooltip-arrow-size:5px}.ck.ck-tooltip{left:50%;top:0;transition:opacity .2s ease-in-out .2s}.ck.ck-tooltip .ck-tooltip__text{border-radius:0}.ck-rounded-corners .ck.ck-tooltip .ck-tooltip__text,.ck.ck-tooltip .ck-tooltip__text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-tooltip .ck-tooltip__text{font-size:.9em;line-height:1.5;color:var(--ck-color-tooltip-text);padding:var(--ck-spacing-small) var(--ck-spacing-medium);background:var(--ck-color-tooltip-background);position:relative;left:-50%}.ck.ck-tooltip .ck-tooltip__text:after{transition:opacity .2s ease-in-out .2s;border-style:solid;left:50%}.ck.ck-tooltip.ck-tooltip_s,.ck.ck-tooltip.ck-tooltip_se,.ck.ck-tooltip.ck-tooltip_sw{bottom:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateY(100%)}.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text:after,.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text:after,.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text:after{top:calc(var(--ck-tooltip-arrow-size)*-1 + 1px);transform:translateX(-50%);border-left-color:transparent;border-bottom-color:var(--ck-color-tooltip-background);border-right-color:transparent;border-top-color:transparent;border-left-width:var(--ck-tooltip-arrow-size);border-bottom-width:var(--ck-tooltip-arrow-size);border-right-width:var(--ck-tooltip-arrow-size);border-top-width:0}.ck.ck-tooltip.ck-tooltip_sw{right:50%;left:auto}.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text{left:auto;right:calc(var(--ck-tooltip-arrow-size)*-2)}.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text:after{left:auto;right:0}.ck.ck-tooltip.ck-tooltip_se{left:50%;right:auto}.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text{right:auto;left:calc(var(--ck-tooltip-arrow-size)*-2)}.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text:after{right:auto;left:0;transform:translateX(50%)}.ck.ck-tooltip.ck-tooltip_n{top:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateY(-100%)}.ck.ck-tooltip.ck-tooltip_n .ck-tooltip__text:after{bottom:calc(var(--ck-tooltip-arrow-size)*-1);transform:translateX(-50%);border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;border-top-color:var(--ck-color-tooltip-background);border-left-width:var(--ck-tooltip-arrow-size);border-bottom-width:0;border-right-width:var(--ck-tooltip-arrow-size);border-top-width:var(--ck-tooltip-arrow-size)}.ck.ck-tooltip.ck-tooltip_e{left:calc(100% + var(--ck-tooltip-arrow-size));top:50%}.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text{left:0;transform:translateY(-50%)}.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text:after{left:calc(var(--ck-tooltip-arrow-size)*-1);top:calc(50% - var(--ck-tooltip-arrow-size)*1);border-left-color:transparent;border-bottom-color:transparent;border-right-color:var(--ck-color-tooltip-background);border-top-color:transparent;border-left-width:0;border-bottom-width:var(--ck-tooltip-arrow-size);border-right-width:var(--ck-tooltip-arrow-size);border-top-width:var(--ck-tooltip-arrow-size)}.ck.ck-tooltip.ck-tooltip_w{right:calc(100% + var(--ck-tooltip-arrow-size));left:auto;top:50%}.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text{left:0;transform:translateY(-50%)}.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text:after{left:100%;top:calc(50% - var(--ck-tooltip-arrow-size)*1);border-left-color:var(--ck-color-tooltip-background);border-bottom-color:transparent;border-right-color:transparent;border-top-color:transparent;border-left-width:var(--ck-tooltip-arrow-size);border-bottom-width:var(--ck-tooltip-arrow-size);border-right-width:0;border-top-width:var(--ck-tooltip-arrow-size)}'},function(t,e,n){var i=n(1),o=n(31);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-button,a.ck.ck-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-button .ck-tooltip,a.ck.ck-button .ck-tooltip{display:block}@media (hover:none){.ck.ck-button .ck-tooltip,a.ck.ck-button .ck-tooltip{display:none}}.ck.ck-button,a.ck.ck-button{position:relative;display:inline-flex;align-items:center;justify-content:left}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button:hover .ck-tooltip,a.ck.ck-button:hover .ck-tooltip{visibility:visible;opacity:1}.ck.ck-button:focus:not(:hover) .ck-tooltip,a.ck.ck-button:focus:not(:hover) .ck-tooltip{display:none}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-default-active-shadow)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{white-space:nowrap;cursor:default;vertical-align:middle;padding:var(--ck-spacing-tiny);text-align:center;min-width:var(--ck-ui-component-min-height);min-height:var(--ck-ui-component-min-height);line-height:1;font-size:inherit;border:1px solid transparent;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;-webkit-appearance:none}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{font-weight:700;opacity:.7}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__icon{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-right:calc(var(--ck-spacing-small)*-1);margin-left:var(--ck-spacing-small)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-on-active-shadow)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background);box-shadow:inset 0 2px 2px var(--ck-color-button-action-active-shadow)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}"},function(t,e,n){var i=n(1),o=n(33);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-list{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{list-style-type:none;background:var(--ck-color-list-background)}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{min-height:unset;width:100%;text-align:left;border-radius:0;padding:calc(var(--ck-line-height-base)*0.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{height:1px;width:100%;background:var(--ck-color-base-border)}"},function(t,e,n){var i=n(1),o=n(35);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:1.0769230769em;--ck-switch-button-toggle-spacing:1px;--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - var(--ck-switch-button-toggle-spacing)*2)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{transition:background .4s ease;width:var(--ck-switch-button-toggle-width);background:var(--ck-color-switch-button-off-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*0.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{margin:var(--ck-switch-button-toggle-spacing);width:var(--ck-switch-button-toggle-inner-size);height:var(--ck-switch-button-toggle-inner-size);background:var(--ck-color-switch-button-inner-background);transition:all .3s ease}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var(--ck-switch-button-translation))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var(--ck-switch-button-translation)*-1))}"},function(t,e,n){var i=n(1),o=n(37);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown .ck-dropdown__panel{width:max-content;max-width:var(--ck-toolbar-dropdown-max-width)}.ck.ck-toolbar-dropdown .ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}"},function(t,e,n){var i=n(1),o=n(39);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}"},function(t,e,n){var i=n(1),o=n(41);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-toolbar{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-flow:row nowrap;align-items:center}.ck.ck-toolbar>.ck-toolbar__items{display:flex;flex-flow:row wrap;align-items:center;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);padding:0 var(--ck-spacing-small);border:1px solid var(--ck-color-toolbar-border)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;width:1px;min-width:1px;background:var(--ck-color-toolbar-border);margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{width:100%;margin:0;border-radius:0;border:0}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar[dir=rtl].ck-toolbar_compact>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ck.ck-toolbar[dir=rtl].ck-toolbar_compact>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl].ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child){margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar[dir=ltr].ck-toolbar_compact>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ck.ck-toolbar[dir=ltr].ck-toolbar_compact>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr].ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child){margin-right:var(--ck-spacing-small)}"},function(t,e,n){var i=n(1),o=n(43);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}"},function(t,e,n){var i=n(1),o=n(45);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck-content blockquote{overflow:hidden;padding-right:1.5em;padding-left:1.5em;margin-left:0;margin-right:0;font-style:italic;border-left:5px solid #ccc}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}"},function(t,e,n){var i=n(1),o=n(47);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{width:0;height:0;border-style:solid}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-left-width:var(--ck-balloon-arrow-half-width);border-bottom-width:var(--ck-balloon-arrow-height);border-right-width:var(--ck-balloon-arrow-half-width);border-top-width:0}.ck.ck-balloon-panel[class*=arrow_n]:before{border-bottom-color:var(--ck-color-panel-border)}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-left-color:transparent;border-right-color:transparent;border-top-color:transparent}.ck.ck-balloon-panel[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background);margin-top:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-left-width:var(--ck-balloon-arrow-half-width);border-bottom-width:0;border-right-width:var(--ck-balloon-arrow-half-width);border-top-width:var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-top-color:var(--ck-color-panel-border);filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent}.ck.ck-balloon-panel[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background);margin-bottom:var(--ck-balloon-arrow-offset)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{right:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{right:25%;margin-right:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);bottom:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{right:25%;margin-right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}'},function(t,e,n){var i=n(1),o=n(49);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{height:100%;border-right:1px solid var(--ck-color-base-text);margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}"},function(t,e,n){var i=n(1),o=n(51);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports='.ck .ck-widget .ck-widget__type-around__button{display:block;position:absolute;overflow:hidden;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{position:absolute;top:50%;left:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{top:calc(var(--ck-widget-outline-thickness)*-0.5);left:min(10%,30px);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-0.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;position:absolute;top:1px;left:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;position:absolute;left:0;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{top:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{width:var(--ck-widget-type-around-button-size);height:var(--ck-widget-type-around-button-size);background:var(--ck-color-widget-type-around-button);border-radius:100px;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);opacity:0;pointer-events:none}.ck .ck-widget .ck-widget__type-around__button svg{width:10px;height:8px;transform:translate(-50%,-50%);transition:transform .5s ease;margin-top:1px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{width:calc(var(--ck-widget-type-around-button-size) - 2px);height:calc(var(--ck-widget-type-around-button-size) - 2px);border-radius:100px;background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3))}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{pointer-events:none;height:1px;animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;outline:1px solid hsla(0,0%,100%,.5);background:var(--ck-color-base-text)}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}'},function(t,e,n){var i=n(1),o=n(53);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-resizer-size:10px;--ck-resizer-border-width:1px;--ck-resizer-border-radius:2px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-tooltip-offset:10px;--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected .ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover .ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);color:var(--ck-color-resizer-tooltip-text);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);font-size:var(--ck-font-size-tiny);display:block;padding:var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{top:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{top:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-width:var(--ck-widget-outline-thickness);outline-style:solid;outline-color:transparent;transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;background-color:var(--ck-color-widget-editable-focus-background)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{padding:4px;box-sizing:border-box;background-color:transparent;opacity:0;transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;transform:translateY(-100%);left:calc(0px - var(--ck-widget-outline-thickness))}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{width:var(--ck-widget-handler-icon-size);height:var(--ck-widget-handler-icon-size);color:var(--ck-color-widget-drag-handler-icon-color)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover .ck-widget__selection-handle{opacity:1;background-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected .ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover .ck-widget__selection-handle{opacity:1;background-color:var(--ck-color-focus-border)}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle .ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}"},function(t,e,n){var i=n(1),o=n(55);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{pointer-events:none;transform-origin:0 0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);background:var(--ck-color-labeled-field-label-background);padding:0 calc(var(--ck-font-size-tiny)*0.5);line-height:normal;font-weight:400;text-overflow:ellipsis;overflow:hidden;max-width:100%;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-spacing-medium),calc(var(--ck-font-size-base)*0.6)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-spacing-medium)*-1),calc(var(--ck-font-size-base)*0.6)) scale(1)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));background:transparent;padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}"},function(t,e,n){var i=n(1),o=n(57);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=":root{--ck-input-text-width:18em}.ck.ck-input-text{border-radius:0}.ck-rounded-corners .ck.ck-input-text,.ck.ck-input-text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-text{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);min-width:var(--ck-input-text-width);min-height:var(--ck-ui-component-min-height);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input-text:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-input-text[readonly]{border:1px solid var(--ck-color-input-disabled-border);background:var(--ck-color-input-disabled-background);color:var(--ck-color-input-disabled-text)}.ck.ck-input-text[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input-text.ck-error{border-color:var(--ck-color-input-error-border);animation:ck-text-input-shake .3s ease both}.ck.ck-input-text.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-text-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}"},function(t,e,n){var i=n(1),o=n(59);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}"},function(t,e){t.exports='.ck-vertical-form .ck-button:after{content:"";width:0;position:absolute;right:-1px;top:var(--ck-spacing-small);bottom:var(--ck-spacing-small);z-index:1}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{content:"";width:0;position:absolute;right:-1px;top:var(--ck-spacing-small);bottom:var(--ck-spacing-small);z-index:1}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-text-width)*0.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){padding:var(--ck-spacing-standard);margin-top:var(--ck-spacing-large);border-radius:0;border:0;border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after,[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}'},function(t,e,n){var i=n(1),o=n(62);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck .ck-balloon-rotator__navigation{display:flex;align-items:center;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);margin-bottom:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-right:var(--ck-spacing-standard);margin-left:var(--ck-spacing-small)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}"},function(t,e,n){var i=n(1),o=n(64);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);width:100%;height:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}"},function(t,e,n){var i=n(1),o=n(66);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck-content .image{display:table;clear:both;text-align:center;margin:1em auto}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:50px}"},function(t,e,n){var i=n(1),o=n(68);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-editor__editable .image{position:relative}.ck.ck-editor__editable .image .ck-progress-bar{position:absolute;top:0;left:0}.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image .ck-progress-bar{height:2px;width:0;background:var(--ck-color-upload-bar-background);transition:width .1s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}"},function(t,e,n){var i=n(1),o=n(70);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports='.ck-image-upload-complete-icon{display:block;position:absolute;top:10px;right:10px;border-radius:50%}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20px;--ck-image-upload-icon-width:2px}.ck-image-upload-complete-icon{width:var(--ck-image-upload-icon-size);height:var(--ck-image-upload-icon-size);opacity:0;background:var(--ck-color-image-upload-icon-background);animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;animation-fill-mode:forwards,forwards;animation-duration:.5s,.5s;font-size:var(--ck-image-upload-icon-size);animation-delay:0ms,3s}.ck-image-upload-complete-icon:after{left:25%;top:50%;opacity:0;height:0;width:0;transform:scaleX(-1) rotate(135deg);transform-origin:left top;border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);animation-name:ck-upload-complete-icon-check;animation-duration:.5s;animation-delay:.5s;animation-fill-mode:forwards;box-sizing:border-box}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{opacity:1;width:0;height:0}33%{width:.3em;height:0}to{opacity:1;width:.3em;height:.45em}}'},function(t,e,n){var i=n(1),o=n(72);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports='.ck .ck-upload-placeholder-loader{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px}.ck .ck-image-upload-placeholder{width:100%;margin:0}.ck .ck-upload-placeholder-loader{width:100%;height:100%}.ck .ck-upload-placeholder-loader:before{width:var(--ck-upload-placeholder-loader-size);height:var(--ck-upload-placeholder-loader-size);border-radius:50%;border-top:3px solid var(--ck-color-upload-placeholder-loader);border-right:2px solid transparent;animation:ck-upload-placeholder-loader 1s linear infinite}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}'},function(t,e){t.exports=".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}"},function(t,e,n){var i=n(1),o=n(75);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck-content .image>figcaption{display:table-caption;caption-side:bottom;word-break:break-word;color:#333;background-color:#f7f7f7;padding:.6em;font-size:.75em;outline-offset:-1px}"},function(t,e,n){var i=n(1),o=n(77);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=":root{--ck-image-style-spacing:1.5em}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}"},function(t,e,n){var i=n(1),o=n(79);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{padding:0;min-width:var(--ck-input-text-width)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical .ck-button{padding:var(--ck-spacing-standard);margin:0;border-radius:0;border:0;border-top:1px solid var(--ck-color-base-border);width:50%}[dir=ltr] .ck.ck-link-form_layout-vertical .ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical .ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{border:0;padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}"},function(t,e,n){var i=n(1),o=n(81);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{padding:0 var(--ck-spacing-medium);color:var(--ck-color-link-default);text-overflow:ellipsis;cursor:pointer;max-width:var(--ck-input-text-width);min-width:3em;text-align:center}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{min-width:0;max-width:100%}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}"},function(t,e,n){var i=n(1),o=n(83);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports='.ck-media__wrapper .ck-media__placeholder{display:flex;flex-direction:column;align-items:center}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:block}@media (hover:none){.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip{display:none}}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url:hover .ck-tooltip{visibility:visible;opacity:1}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{overflow:hidden;display:block}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{padding:calc(var(--ck-spacing-standard)*3);background:var(--ck-color-base-foreground)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{min-width:var(--ck-media-embed-placeholder-icon-size);height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);background-position:50%;background-size:cover}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{width:100%;height:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);white-space:nowrap;text-align:center;font-style:italic;text-overflow:ellipsis}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-width:300px;max-height:380px}.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMDAzLjc4IDEuNjFoNDkuNjIxYzEuNjk0IDAgMy4xOS0uNzk4IDQuMTQ2LTIuMDM3eiIgZmlsbD0iIzVjODhjNSIvPjxwYXRoIGQ9Ik0yMjYuNzQyIDIyMi45ODhjLTkuMjY2IDAtMTYuNzc3IDcuMTctMTYuNzc3IDE2LjAxNC4wMDcgMi43NjIuNjYzIDUuNDc0IDIuMDkzIDcuODc1LjQzLjcwMy44MyAxLjQwOCAxLjE5IDIuMTA3LjMzMy41MDIuNjUgMS4wMDUuOTUgMS41MDguMzQzLjQ3Ny42NzMuOTU3Ljk4OCAxLjQ0IDEuMzEgMS43NjkgMi41IDMuNTAyIDMuNjM3IDUuMTY4Ljc5MyAxLjI3NSAxLjY4MyAyLjY0IDIuNDY2IDMuOTkgMi4zNjMgNC4wOTQgNC4wMDcgOC4wOTIgNC42IDEzLjkxNHYuMDEyYy4xODIuNDEyLjUxNi42NjYuODc5LjY2Ny40MDMtLjAwMS43NjgtLjMxNC45My0uNzk5LjYwMy01Ljc1NiAyLjIzOC05LjcyOSA0LjU4NS0xMy43OTQuNzgyLTEuMzUgMS42NzMtMi43MTUgMi40NjUtMy45OSAxLjEzNy0xLjY2NiAyLjMyOC0zLjQgMy42MzgtNS4xNjkuMzE1LS40ODIuNjQ1LS45NjIuOTg4LTEuNDM5LjMtLjUwMy42MTctMS4wMDYuOTUtMS41MDguMzU5LS43Ljc2LTEuNDA0IDEuMTktMi4xMDcgMS40MjYtMi40MDIgMi01LjExNCAyLjAwNC03Ljg3NSAwLTguODQ0LTcuNTExLTE2LjAxNC0xNi43NzYtMTYuMDE0eiIgZmlsbD0iI2RkNGIzZSIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48ZWxsaXBzZSByeT0iNS41NjQiIHJ4PSI1LjgyOCIgY3k9IjIzOS4wMDIiIGN4PSIyMjYuNzQyIiBmaWxsPSIjODAyZDI3IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0xOTAuMzAxIDIzNy4yODNjLTQuNjcgMC04LjQ1NyAzLjg1My04LjQ1NyA4LjYwNnMzLjc4NiA4LjYwNyA4LjQ1NyA4LjYwN2MzLjA0MyAwIDQuODA2LS45NTggNi4zMzctMi41MTYgMS41My0xLjU1NyAyLjA4Ny0zLjkxMyAyLjA4Ny02LjI5IDAtLjM2Mi0uMDIzLS43MjItLjA2NC0xLjA3OWgtOC4yNTd2My4wNDNoNC44NWMtLjE5Ny43NTktLjUzMSAxLjQ1LTEuMDU4IDEuOTg2LS45NDIuOTU4LTIuMDI4IDEuNTQ4LTMuOTAxIDEuNTQ4LTIuODc2IDAtNS4yMDgtMi4zNzItNS4yMDgtNS4yOTkgMC0yLjkyNiAyLjMzMi01LjI5OSA1LjIwOC01LjI5OSAxLjM5OSAwIDIuNjE4LjQwNyAzLjU4NCAxLjI5M2wyLjM4MS0yLjM4YzAtLjAwMi0uMDAzLS4wMDQtLjAwNC0uMDA1LTEuNTg4LTEuNTI0LTMuNjItMi4yMTUtNS45NTUtMi4yMTV6bTQuNDMgNS42NmwuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTIxNS4xODQgMjUxLjkyOWwtNy45OCA3Ljk3OSAyOC40NzcgMjguNDc1YTUuMjMzIDUuMjMzIDAgMDAuNDQ5LTIuMTIzdi0zMS4xNjVjLS40NjkuNjc1LS45MzQgMS4zNDktMS4zODIgMi4wMDUtLjc5MiAxLjI3NS0xLjY4MiAyLjY0LTIuNDY1IDMuOTktMi4zNDcgNC4wNjUtMy45ODIgOC4wMzgtNC41ODUgMTMuNzk0LS4xNjIuNDg1LS41MjcuNzk4LS45My43OTktLjM2My0uMDAxLS42OTctLjI1NS0uODc5LS42Njd2LS4wMTJjLS41OTMtNS44MjItMi4yMzctOS44Mi00LjYtMTMuOTE0LS43ODMtMS4zNS0xLjY3My0yLjcxNS0yLjQ2Ni0zLjk5LTEuMTM3LTEuNjY2LTIuMzI3LTMuNC0zLjYzNy01LjE2OWwtLjAwMi0uMDAzeiIgZmlsbD0iI2MzYzNjMyIvPjxwYXRoIGQ9Ik0yMTIuOTgzIDI0OC40OTVsLTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAwNS4yMzggNS4yMzhoMS4wMTVsMzUuNjY2LTM1LjY2NmExMzYuMjc1IDEzNi4yNzUgMCAwMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAwLS45ODktMS40NCAzNS4xMjcgMzUuMTI3IDAgMDAtLjk1LTEuNTA4Yy0uMDgzLS4xNjItLjE3Ni0uMzI2LS4yNjQtLjQ4OXoiIGZpbGw9IiNmZGRjNGYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTIxMS45OTggMjYxLjA4M2wtNi4xNTIgNi4xNTEgMjQuMjY0IDI0LjI2NGguNzgxYTUuMjI3IDUuMjI3IDAgMDA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OXptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OXoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzN6bTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1ek00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIGZpbGw9IiNmZmYiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}'},function(t,e,n){var i=n(1),o=n(85);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-media-form{display:flex;align-items:flex-start;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}"},function(t,e,n){var i=n(1),o=n(87);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck-content .media{clear:both;margin:1em 0;display:block;min-width:15em}"},function(t,e,n){var i=n(1),o=n(89);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=":root{--ck-color-table-focused-cell-background:rgba(158,207,250,0.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}"},function(t,e,n){var i=n(1),o=n(91);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button .ck-tooltip{display:none}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__action{border-top-right-radius:unset;border-bottom-right-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__action{border-top-left-radius:unset;border-bottom-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-radius:0}.ck-rounded-corners [dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow,[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:unset;border-bottom-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-top-right-radius:unset;border-bottom-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled){border-left-color:var(--ck-color-split-button-hover-border)}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled){border-right-color:var(--ck-color-split-button-hover-border)}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}"},function(t,e,n){var i=n(1),o=n(93);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2);padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{width:var(--ck-insert-table-dropdown-box-width);height:var(--ck-insert-table-dropdown-box-height);margin:var(--ck-insert-table-dropdown-box-margin);border:1px solid var(--ck-color-base-border);border-radius:1px}.ck .ck-insert-table-dropdown-grid-box.ck-on{border-color:var(--ck-color-focus-border);background:var(--ck-color-focus-outer-shadow)}"},function(t,e,n){var i=n(1),o=n(95);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=':root{--ck-table-selected-cell-background:rgba(158,207,250,0.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{position:relative;caret-color:transparent;outline:unset;box-shadow:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{content:"";pointer-events:none;background-color:var(--ck-table-selected-cell-background);position:absolute;top:0;left:0;right:0;bottom:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget_selected{outline:unset}'},function(t,e,n){var i=n(1),o=n(97);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[t.i,o,""]]);var r={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};i(o,r);t.exports=o.locals||{}},function(t,e){t.exports=".ck-content .table{margin:1em auto;display:table}.ck-content .table table{border-collapse:collapse;border-spacing:0;width:100%;height:100%;border:1px double #b3b3b3}.ck-content .table table td,.ck-content .table table th{min-width:2em;padding:.4em;border:1px solid #bfbfbf}.ck-content .table table th{font-weight:700;background:hsla(0,0%,0%,5%)}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}"},function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return Vb}));var i=n(3),o=i.a.Symbol,r=Object.prototype,s=r.hasOwnProperty,a=r.toString,c=o?o.toStringTag:void 0;var l=function(t){var e=s.call(t,c),n=t[c];try{t[c]=void 0;var i=!0}catch(t){}var o=a.call(t);return i&&(e?t[c]=n:delete t[c]),o},d=Object.prototype.toString;var u=function(t){return d.call(t)},h=o?o.toStringTag:void 0;var f=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":h&&h in Object(t)?l(t):u(t)};var m=function(t,e){return function(n){return t(e(n))}},g=m(Object.getPrototypeOf,Object);var p=function(t){return null!=t&&"object"==typeof t},b=Function.prototype,w=Object.prototype,k=b.toString,_=w.hasOwnProperty,v=k.call(Object);var y=function(t){if(!p(t)||"[object Object]"!=f(t))return!1;var e=g(t);if(null===e)return!0;var n=_.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&k.call(n)==v};var x=function(){this.__data__=[],this.size=0};var A=function(t,e){return t===e||t!=t&&e!=e};var C=function(t,e){for(var n=t.length;n--;)if(A(t[n][0],e))return n;return-1},T=Array.prototype.splice;var P=function(t){var e=this.__data__,n=C(e,t);return!(n<0)&&(n==e.length-1?e.pop():T.call(e,n,1),--this.size,!0)};var S=function(t){var e=this.__data__,n=C(e,t);return n<0?void 0:e[n][1]};var E=function(t){return C(this.__data__,t)>-1};var M=function(t,e){var n=this.__data__,i=C(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};function I(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991},Bt={};Bt["[object Float32Array]"]=Bt["[object Float64Array]"]=Bt["[object Int8Array]"]=Bt["[object Int16Array]"]=Bt["[object Int32Array]"]=Bt["[object Uint8Array]"]=Bt["[object Uint8ClampedArray]"]=Bt["[object Uint16Array]"]=Bt["[object Uint32Array]"]=!0,Bt["[object Arguments]"]=Bt["[object Array]"]=Bt["[object ArrayBuffer]"]=Bt["[object Boolean]"]=Bt["[object DataView]"]=Bt["[object Date]"]=Bt["[object Error]"]=Bt["[object Function]"]=Bt["[object Map]"]=Bt["[object Number]"]=Bt["[object Object]"]=Bt["[object RegExp]"]=Bt["[object Set]"]=Bt["[object String]"]=Bt["[object WeakMap]"]=!1;var Ft=function(t){return p(t)&&zt(t.length)&&!!Bt[f(t)]};var Ut=function(t){return function(e){return t(e)}},Ht=n(5),Wt=Ht.a&&Ht.a.isTypedArray,qt=Wt?Ut(Wt):Ft,$t=Object.prototype.hasOwnProperty;var Yt=function(t,e){var n=Dt(t),i=!n&&Rt(t),o=!n&&!i&&Object(Lt.a)(t),r=!n&&!i&&!o&&qt(t),s=n||i||o||r,a=s?Et(t.length,String):[],c=a.length;for(var l in t)!e&&!$t.call(t,l)||s&&("length"==l||o&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||jt(l,c))||a.push(l);return a},Gt=Object.prototype;var Kt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Gt)},Qt=m(Object.keys,Object),Jt=Object.prototype.hasOwnProperty;var Zt=function(t){if(!Kt(t))return Qt(t);var e=[];for(var n in Object(t))Jt.call(t,n)&&"constructor"!=n&&e.push(n);return e};var Xt=function(t){return null!=t&&zt(t.length)&&!z(t)};var te=function(t){return Xt(t)?Yt(t):Zt(t)};var ee=function(t,e){return t&&St(e,te(e),t)};var ne=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e},ie=Object.prototype.hasOwnProperty;var oe=function(t){if(!V(t))return ne(t);var e=Kt(t),n=[];for(var i in t)("constructor"!=i||!e&&ie.call(t,i))&&n.push(i);return n};var re=function(t){return Xt(t)?Yt(t,!0):oe(t)};var se=function(t,e){return t&&St(e,re(e),t)},ae=n(9);var ce=function(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n{this._setToTarget(t,i,e[i],n)})}}function rn(t){return en(t,sn)}function sn(t){return nn(t)?t:void 0}var an=function(){return function t(){t.called=!0}};class cn{constructor(t,e){this.source=t,this.name=e,this.path=[],this.stop=an(),this.off=an()}}const ln=new Array(256).fill().map((t,e)=>("0"+e.toString(16)).slice(-2));function dn(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,i=4294967296*Math.random()>>>0;return"e"+ln[t>>0&255]+ln[t>>8&255]+ln[t>>16&255]+ln[t>>24&255]+ln[e>>0&255]+ln[e>>8&255]+ln[e>>16&255]+ln[e>>24&255]+ln[n>>0&255]+ln[n>>8&255]+ln[n>>16&255]+ln[n>>24&255]+ln[i>>0&255]+ln[i>>8&255]+ln[i>>16&255]+ln[i>>24&255]}var un={get(t){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5},hn=(n(6),n(0));const fn=Symbol("listeningTo"),mn=Symbol("emitterId");var gn={on(t,e,n={}){this.listenTo(this,t,e,n)},once(t,e,n){let i=!1;this.listenTo(this,t,(function(t,...n){i||(i=!0,t.off(),e.call(this,t,...n))}),n)},off(t,e){this.stopListening(this,t,e)},listenTo(t,e,n,i={}){let o,r;this[fn]||(this[fn]={});const s=this[fn];bn(t)||pn(t);const a=bn(t);(o=s[a])||(o=s[a]={emitter:t,callbacks:{}}),(r=o.callbacks[e])||(r=o.callbacks[e]=[]),r.push(n),function(t,e){const n=wn(t);if(n[e])return;let i=e,o=null;const r=[];for(;""!==i&&!n[i];)n[i]={callbacks:[],childEvents:[]},r.push(n[i]),o&&n[i].childEvents.push(o),o=i,i=i.substr(0,i.lastIndexOf(":"));if(""!==i){for(const t of r)t.callbacks=n[i].callbacks.slice();n[i].childEvents.push(o)}}(t,e);const c=kn(t,e),l=un.get(i.priority),d={callback:n,priority:l};for(const t of c){let e=!1;for(let n=0;n-1?t(e,n.substr(0,n.lastIndexOf(":"))):null;return i.callbacks}(this,i);if(n.path.push(this),o){const t=[n,...e];o=Array.from(o);for(let e=0;e{this._delegations||(this._delegations=new Map),t.forEach(t=>{const i=this._delegations.get(t);i?i.set(e,n):this._delegations.set(t,new Map([[e,n]]))})}}},stopDelegating(t,e){if(this._delegations)if(t)if(e){const n=this._delegations.get(t);n&&n.delete(e)}else this._delegations.delete(t);else this._delegations.clear()}};function pn(t,e){t[mn]||(t[mn]=e||dn())}function bn(t){return t[mn]}function wn(t){return t._events||Object.defineProperty(t,"_events",{value:{}}),t._events}function kn(t,e){const n=wn(t)[e];if(!n)return[];let i=[n.callbacks];for(let e=0;e{Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)).forEach(n=>{if(n in t.prototype)return;const i=Object.getOwnPropertyDescriptor(e,n);i.enumerable=!1,Object.defineProperty(t.prototype,n,i)})})}class An{constructor(t={},e={}){const n=yn(t);if(n||(e=t),this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],n)for(const e of t)this._items.push(e),this._itemMap.set(this._getItemIdBeforeAdding(e),e)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(t,e){return this.addMany([t],e)}addMany(t,e){if(void 0===e)e=this._items.length;else if(e>this._items.length||e<0)throw new hn.a("collection-add-item-invalid-index",this);for(let n=0;n{this._setUpBindToBinding(e=>new t(e))},using:t=>{"function"==typeof t?this._setUpBindToBinding(e=>t(e)):this._setUpBindToBinding(e=>e[t])}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,i,o)=>{const r=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(i);if(r&&s)this._bindToExternalToInternalMap.set(i,s),this._bindToInternalToExternalMap.set(s,i);else{const n=t(i);if(!n)return void this._skippedIndexesFromExternal.push(o);let r=o;for(const t of this._skippedIndexesFromExternal)o>t&&r--;for(const t of e._skippedIndexesFromExternal)r>=t&&r++;this._bindToExternalToInternalMap.set(i,n),this._bindToInternalToExternalMap.set(n,i),this.add(n,r);for(let t=0;t{const i=this._bindToExternalToInternalMap.get(e);i&&this.remove(i),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce((t,e)=>(ne&&t.push(e),t),[])})}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new hn.a("collection-add-invalid-id",this);if(this.get(n))throw new hn.a("collection-add-item-already-exists",this)}else t[e]=n=dn();return n}_remove(t){let e,n,i,o=!1;const r=this._idProperty;if("string"==typeof t?(n=t,i=this._itemMap.get(n),o=!i,i&&(e=this._items.indexOf(i))):"number"==typeof t?(e=t,i=this._items[e],o=!i,i&&(n=i[r])):(i=t,n=i[r],e=this._items.indexOf(i),o=-1==e||!this._itemMap.get(n)),o)throw new hn.a("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(s),this.fire("remove",i,e),[i,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}xn(An,gn);class Cn{constructor(t,e=[],n=[]){this._context=t,this._plugins=new Map,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new hn.a("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[]){const n=this,i=this._context,o=new Set,r=[],s=h(t),a=h(e),c=function(t){const e=[];for(const n of t)u(n)||e.push(n);return e.length?e:null}(t);if(c){const t="plugincollection-plugin-not-found";return Object(hn.b)(t,{plugins:c}),Promise.reject(new hn.a(t,i,{plugins:c}))}return Promise.all(s.map(l)).then(()=>d(r,"init")).then(()=>d(r,"afterInit")).then(()=>r);function l(t){if(!a.includes(t)&&!n._plugins.has(t)&&!o.has(t))return function(t){return new Promise(s=>{o.add(t),t.requires&&t.requires.forEach(n=>{const o=u(n);if(t.isContextPlugin&&!o.isContextPlugin)throw new hn.a("plugincollection-context-required",null,{plugin:o.name,requiredBy:t.name});if(e.includes(o))throw new hn.a("plugincollection-required",i,{plugin:o.name,requiredBy:t.name});l(o)});const a=n._contextPlugins.get(t)||new t(i);n._add(t,a),r.push(a),s()})}(t).catch(e=>{throw Object(hn.b)("plugincollection-load",{plugin:t}),e})}function d(t,e){return t.reduce((t,i)=>i[e]?n._contextPlugins.has(i)?t:t.then(i[e].bind(i)):t,Promise.resolve())}function u(t){return"function"==typeof t?t:n._availablePlugins.get(t)}function h(t){return t.map(t=>u(t)).filter(t=>!!t)}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new hn.a("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}function Tn(t){return Array.isArray(t)?t:[t]}function Pn(t,e,n=1){if("number"!=typeof n)throw new hn.a("translation-service-quantity-not-a-number",null,{quantity:n});const i=Object.keys(window.CKEDITOR_TRANSLATIONS).length;1===i&&(t=Object.keys(window.CKEDITOR_TRANSLATIONS)[0]);const o=e.id||e.string;if(0===i||!function(t,e){return!!window.CKEDITOR_TRANSLATIONS[t]&&!!window.CKEDITOR_TRANSLATIONS[t].dictionary[e]}(t,o))return 1!==n?e.plural:e.string;const r=window.CKEDITOR_TRANSLATIONS[t].dictionary,s=window.CKEDITOR_TRANSLATIONS[t].getPluralForm||(t=>1===t?0:1);if("string"==typeof r[o])return r[o];const a=Number(s(n));return r[o][a]}xn(Cn,gn),window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={});const Sn=["ar","fa","he","ku","ug"];class En{constructor(t={}){this.uiLanguage=t.uiLanguage||"en",this.contentLanguage=t.contentLanguage||this.uiLanguage,this.uiLanguageDirection=Mn(this.uiLanguage),this.contentLanguageDirection=Mn(this.contentLanguage),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=Tn(e),"string"==typeof t&&(t={string:t});const n=!!t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,(t,n)=>nt.destroy())).then(()=>this.plugins.destroy())}_addEditor(t,e){if(this._contextOwner)throw new hn.a("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise(e=>{const n=new this(t);e(n.initPlugins().then(()=>n))})}}function Nn(t,e){const n=Math.min(t.length,e.length);for(let i=0;it.data.length)throw new hn.a("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new hn.a("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}function Vn(t){return yn(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}class jn{constructor(...t){this._patterns=[],this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),e.classes&&("string"==typeof e.classes||e.classes instanceof RegExp)&&(e.classes=[e.classes]),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=zn(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const i=zn(n,t);i&&e.push({element:n,pattern:t,match:i})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function zn(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){if(t instanceof RegExp)return t.test(e);return t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=[];for(const i in t){const o=t[i];if(!e.hasAttribute(i))return null;{const t=e.getAttribute(i);if(!0===o)n.push(i);else if(o instanceof RegExp){if(!o.test(t))return null;n.push(i)}else{if(t!==o)return null;n.push(i)}}}return n}(e.attributes,t),!n.attributes)?null:!(e.classes&&(n.classes=function(t,e){const n=[];for(const i of t)if(i instanceof RegExp){const t=e.getClassNames();for(const e of t)i.test(e)&&n.push(e);if(0===n.length)return null}else{if(!e.hasClass(i))return null;n.push(i)}return n}(e.classes,t),!n.classes))&&(!(e.styles&&(n.styles=function(t,e){const n=[];for(const i in t){const o=t[i];if(!e.hasStyle(i))return null;{const t=e.getStyle(i);if(o instanceof RegExp){if(!o.test(t))return null;n.push(i)}else{if(t!==o)return null;n.push(i)}}}return n}(e.styles,t),!n.styles))&&n)}var Bn=function(t){return"symbol"==typeof t||p(t)&&"[object Symbol]"==f(t)},Fn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Un=/^\w*$/;var Hn=function(t,e){if(Dt(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Bn(t))||(Un.test(t)||!Fn.test(t)||null!=e&&t in Object(e))};function Wn(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var i=arguments,o=e?e.apply(this,i):i[0],r=n.cache;if(r.has(o))return r.get(o);var s=t.apply(this,i);return n.cache=r.set(o,s)||r,s};return n.cache=new(Wn.Cache||kt),n}Wn.Cache=kt;var qn=Wn;var $n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Yn=/\\(\\)?/g,Gn=function(t){var e=qn(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace($n,(function(t,n,i,o){e.push(i?o.replace(Yn,"$1"):n||t)})),e}));var Kn=function(t,e){for(var n=-1,i=null==t?0:t.length,o=Array(i);++no?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var r=Array(o);++i0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(vi);var Ai=function(t,e){return xi(ki(t,e,pi),t+"")};var Ci=function(t,e,n){if(!V(n))return!1;var i=typeof e;return!!("number"==i?Xt(n)&&jt(e,n.length):"string"==i&&e in n)&&A(n[e],t)};var Ti=function(t){return Ai((function(e,n){var i=-1,o=n.length,r=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(o--,r):void 0,s&&Ci(n[0],n[1],s)&&(r=o<3?void 0:r,o=1),e=Object(e);++ie===t);return Array.isArray(e)}set(t,e){if(V(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Ni(t);ai(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this._getStylesEntries().map(t=>t.join(":")).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!V(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find(([e])=>e===t);return Array.isArray(e)?e[1]:void 0}getStyleNames(){if(this.isEmpty)return[];return this._getStylesEntries().map(([t])=>t)}clear(){this._styles={}}_getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),i=ci(this._styles,n);if(!i)return;!Array.from(Object.keys(i)).length&&this.remove(n)}}class Ii{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(V(e))Oi(n,Ni(t),e);else if(this._normalizers.has(t)){const i=this._normalizers.get(t),{path:o,value:r}=i(e);Oi(n,o,r)}else Oi(n,t,e)}getNormalized(t,e){if(!t)return Pi({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return ci(e,n);const i=n(t,e);if(i)return i}return ci(e,Ni(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);if(void 0===n)return[];if(this._reducers.has(t)){return this._reducers.get(t)(n)}return[[t,n]]}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Ni(t){return t.replace("-",".")}function Oi(t,e,n){let i=n;V(n)&&(i=Pi({},ci(t,e),n)),Ei(t,e,i)}class Ri extends Rn{constructor(t,e,n,i){if(super(t),this.name=e,this._attrs=function(t){t=Vn(t);for(const[e,n]of t)null===n?t.delete(e):"string"!=typeof n&&t.set(e,String(n));return t}(n),this._children=[],i&&this._insertChild(0,i),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");Di(this._classes,t),this._attrs.delete("class")}this._styles=new Mi(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style")),this._customProperties=new Map}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}is(t,e=null){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof Ri))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(){return this._styles.getStyleNames()}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new jn(...t);let n=this.parent;for(;n;){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map(t=>`${t[0]}="${t[1]}"`).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":" "+n)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const i=function(t,e){if("string"==typeof e)return[new Dn(t,e)];yn(e)||(e=[e]);return Array.from(e).map(e=>"string"==typeof e?new Dn(t,e):e instanceof Ln?new Dn(t,e.data):e)}(this.document,e);for(const e of i)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of Tn(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of Tn(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of Tn(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function Di(t,e){const n=e.split(/\s+/);t.clear(),n.forEach(e=>t.add(e))}class Li extends Ri{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=Vi}is(t,e=null){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}}function Vi(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}var ji=Ti((function(t,e){St(e,re(e),t)}));const zi=Symbol("observableProperties"),Bi=Symbol("boundObservables"),Fi=Symbol("boundProperties"),Ui={set(t,e){if(V(t))return void Object.keys(t).forEach(e=>{this.set(e,t[e])},this);Wi(this);const n=this[zi];if(t in this&&!n.has(t))throw new hn.a("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const i=n.get(t);let o=this.fire("set:"+t,t,e,i);void 0===o&&(o=e),i===o&&n.has(t)||(n.set(t,o),this.fire("change:"+t,t,o,i))}}),this[t]=e},bind(...t){if(!t.length||!Yi(t))throw new hn.a("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new hn.a("observable-bind-duplicate-properties",this);Wi(this);const e=this[Fi];t.forEach(t=>{if(e.has(t))throw new hn.a("observable-bind-rebind",this)});const n=new Map;return t.forEach(t=>{const i={property:t,to:[]};e.set(t,i),n.set(t,i)}),{to:qi,toMany:$i,_observable:this,_bindProperties:t,_to:[],_bindings:n}},unbind(...t){if(!this[zi])return;const e=this[Fi],n=this[Bi];if(t.length){if(!Yi(t))throw new hn.a("observable-unbind-wrong-properties",this);t.forEach(t=>{const i=e.get(t);if(!i)return;let o,r,s,a;i.to.forEach(t=>{o=t[0],r=t[1],s=n.get(o),a=s[r],a.delete(i),a.size||delete s[r],Object.keys(s).length||(n.delete(o),this.stopListening(o,"change"))}),e.delete(t)})}else n.forEach((t,e)=>{this.stopListening(e,"change")}),n.clear(),e.clear()},decorate(t){const e=this[t];if(!e)throw new hn.a("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,(t,n)=>{t.return=e.apply(this,n)}),this[t]=function(...e){return this.fire(t,e)}}};ji(Ui,gn);var Hi=Ui;function Wi(t){t[zi]||(Object.defineProperty(t,zi,{value:new Map}),Object.defineProperty(t,Bi,{value:new Map}),Object.defineProperty(t,Fi,{value:new Map}))}function qi(...t){const e=function(...t){if(!t.length)throw new hn.a("observable-bind-to-parse-error",null);const e={to:[]};let n;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach(t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new hn.a("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}}),e}(...t),n=Array.from(this._bindings.keys()),i=n.length;if(!e.callback&&e.to.length>1)throw new hn.a("observable-bind-to-no-callback",this);if(i>1&&e.callback)throw new hn.a("observable-bind-to-extra-callback",this);var o;e.to.forEach(t=>{if(t.properties.length&&t.properties.length!==i)throw new hn.a("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)}),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),o=this._observable,this._to.forEach(t=>{const e=o[Bi];let n;e.get(t.observable)||o.listenTo(t.observable,"change",(i,r)=>{n=e.get(t.observable)[r],n&&n.forEach(t=>{Gi(o,t.property)})})}),function(t){let e;t._bindings.forEach((n,i)=>{t._to.forEach(o=>{e=o.properties[n.callback?0:t._bindProperties.indexOf(i)],n.to.push([o.observable,e]),function(t,e,n,i){const o=t[Bi],r=o.get(n),s=r||{};s[i]||(s[i]=new Set);s[i].add(e),r||o.set(n,s)}(t._observable,n,o.observable,e)})})}(this),this._bindProperties.forEach(t=>{Gi(this._observable,t)})}function $i(t,e,n){if(this._bindings.size>1)throw new hn.a("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map(t=>[t,e]);return Array.prototype.concat.apply([],n)}(t,e),n)}function Yi(t){return t.every(t=>"string"==typeof t)}function Gi(t,e){const n=t[Fi].get(e);let i;n.callback?i=n.callback.apply(t,n.to.map(t=>t[0][t[1]])):(i=n.to[0],i=i[0][i[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=i:t.set(e,i)}class Ki extends Li{constructor(t,e,n,i){super(t,e,n,i),this.set("isReadOnly",!1),this.set("isFocused",!1),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",e=>e&&t.selection.editableElement==this),this.listenTo(t.selection,"change",()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this})}is(t,e=null){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}destroy(){this.stopListening()}}xn(Ki,Hi);const Qi=Symbol("rootName");class Ji extends Ki{constructor(t,e){super(t,e),this.rootName="main"}is(t,e=null){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}get rootName(){return this.getCustomProperty(Qi)}set rootName(t){this._setCustomProperty(Qi,t)}set _name(t){this.name=t}}class Zi{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new hn.a("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new hn.a("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this.position=Xi._createAt(t.startPosition):this.position=Xi._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(t){let e,n,i;do{i=this.position,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0};let i;if(n instanceof Dn){if(t.isAtEnd)return this.position=Xi._createAfter(n),this._next();i=n.data[t.offset]}else i=n.getChild(t.offset);if(i instanceof Ri)return this.shallow?t.offset++:t=new Xi(i,0),this.position=t,this._formatReturnValue("elementStart",i,e,t,1);if(i instanceof Dn){if(this.singleCharacters)return t=new Xi(i,0),this.position=t,this._next();{let n,o=i.data.length;return i==this._boundaryEndParent?(o=this.boundaries.end.offset,n=new Ln(i,0,o),t=Xi._createAfter(n)):(n=new Ln(i,0,i.data.length),t.offset++),this.position=t,this._formatReturnValue("text",n,e,t,o)}}if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{i=(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset}const o=new Ln(n,t.offset,i);return t.offset+=i,this.position=t,this._formatReturnValue("text",o,e,t,i)}return t=Xi._createAfter(n),this.position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0};let i;if(n instanceof Dn){if(t.isAtStart)return this.position=Xi._createBefore(n),this._previous();i=n.data[t.offset-1]}else i=n.getChild(t.offset-1);if(i instanceof Ri)return this.shallow?(t.offset--,this.position=t,this._formatReturnValue("elementStart",i,e,t,1)):(t=new Xi(i,i.childCount),this.position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",i,e,t));if(i instanceof Dn){if(this.singleCharacters)return t=new Xi(i,i.data.length),this.position=t,this._previous();{let n,o=i.data.length;if(i==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new Ln(i,e,i.data.length-e),o=n.data.length,t=Xi._createBefore(n)}else n=new Ln(i,0,i.data.length),t.offset--;return this.position=t,this._formatReturnValue("text",n,e,t,o)}}if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;i=t.offset-e}t.offset-=i;const o=new Ln(n,t.offset,i);return this.position=t,this._formatReturnValue("text",o,e,t,i)}return t=Xi._createBefore(n),this.position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,i,o){return e instanceof Ln&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=Xi._createAfter(e.textNode):(i=Xi._createAfter(e.textNode),this.position=i)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=Xi._createBefore(e.textNode):(i=Xi._createBefore(e.textNode),this.position=i))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:i,length:o}}}}class Xi{constructor(t,e){this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof Ki);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=Xi._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new Zi(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let i=0;for(;e[i]==n[i]&&e[i];)i++;return 0===i?null:e[i-1]}is(t){return"position"===t||"view:position"===t}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const i=Nn(e,n);switch(i){case"prefix":return"before";case"extension":return"after";default:return e[i]0?new this(n,i):new this(i,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(Xi._createBefore(t),e)}}function eo(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}function no(t){let e=0;for(const n of t)e++;return e}class io{constructor(t=null,e,n){this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",this.setTo(t,e,n)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const i of t._ranges)if(e.isEqual(i)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=no(this.getRanges());if(e!=no(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let i of t.getRanges())if(i=i.getTrimmed(),e.start.isEqual(i.start)&&e.end.isEqual(i.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(t,e,n){if(null===t)this._setRanges([]),this._setFakeOptions(e);else if(t instanceof io||t instanceof oo)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof to)this._setRanges([t],e&&e.backward),this._setFakeOptions(e);else if(t instanceof Xi)this._setRanges([new to(t)]),this._setFakeOptions(e);else if(t instanceof Rn){const i=!!n&&!!n.backward;let o;if(void 0===e)throw new hn.a("view-selection-setto-required-second-parameter",this);o="in"==e?to._createIn(t):"on"==e?to._createOn(t):new to(Xi._createAt(t,e)),this._setRanges([o],i),this._setFakeOptions(n)}else{if(!yn(t))throw new hn.a("view-selection-setto-not-selectable",this);this._setRanges(t,e&&e.backward),this._setFakeOptions(e)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new hn.a("view-selection-setfocus-no-ranges",this);const n=Xi._createAt(t,e);if("same"==n.compareWith(this.focus))return;const i=this.anchor;this._ranges.pop(),"before"==n.compareWith(i)?this._addRange(new to(n,i),!0):this._addRange(new to(i,n)),this.fire("change")}is(t){return"selection"===t||"view:selection"===t}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof to))throw new hn.a("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new hn.a("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new to(t.start,t.end))}}xn(io,gn);class oo{constructor(t=null,e,n){this._selection=new io,this._selection.delegate("change").to(this),this._selection.setTo(t,e,n)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}is(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setFocus(t,e){this._selection.setFocus(t,e)}}xn(oo,gn);class ro{constructor(t){this.selection=new oo,this.roots=new An({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isComposing",!1),this._postFixers=new Set}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.map(t=>t.destroy()),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}xn(ro,Hi);class so extends Ri{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=ao,this._priority=10,this._id=null,this._clonesGroup=null}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new hn.a("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}is(t,e=null){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function ao(){if(co(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(co(t)>1)return null;t=t.parent}return!t||co(t)>1?null:this.childCount}function co(t){return Array.from(t.getChildren()).filter(t=>!t.is("uiElement")).length}so.DEFAULT_PRIORITY=10;class lo extends Ri{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=uo}is(t,e=null){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof Rn||Array.from(e).length>0))throw new hn.a("view-emptyelement-cannot-add",[this,e])}}function uo(){return null}const ho=navigator.userAgent.toLowerCase();var fo={isMac:function(t){return t.indexOf("macintosh")>-1}(ho),isGecko:function(t){return!!t.match(/gecko\/\d+/)}(ho),isSafari:function(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}(ho),isAndroid:function(t){return t.indexOf("android")>-1}(ho),isBlink:function(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}(ho),features:{isRegExpUnicodePropertySupported:function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}()}};const mo={"⌘":"ctrl","⇧":"shift","⌥":"alt"},go={ctrl:"⌘",shift:"⇧",alt:"⌥"},po=function(){const t={arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,cmd:1114112,shift:2228224,alt:4456448};for(let e=65;e<=90;e++){const n=String.fromCharCode(e);t[n.toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;return t}();function bo(t){let e;if("string"==typeof t){if(e=po[t.toLowerCase()],!e)throw new hn.a("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?po.alt:0)+(t.ctrlKey?po.ctrl:0)+(t.shiftKey?po.shift:0);return e}function wo(t){return"string"==typeof t&&(t=xo(t)),t.map(t=>"string"==typeof t?bo(t):t).reduce((t,e)=>e+t,0)}function ko(t){return fo.isMac?xo(t).map(t=>go[t.toLowerCase()]||t).reduce((t,e)=>t.slice(-1)in mo?t+e:t+"+"+e):t}function _o(t){return t==po.arrowright||t==po.arrowleft||t==po.arrowup||t==po.arrowdown}function vo(t,e){const n="ltr"===e;switch(t){case po.arrowleft:return n?"left":"right";case po.arrowright:return n?"right":"left";case po.arrowup:return"up";case po.arrowdown:return"down"}}function yo(t,e){const n=vo(t,e);return"down"===n||"right"===n}function xo(t){return t.split(/\s*\+\s*/)}class Ao extends Ri{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=To}is(t,e=null){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof Rn||Array.from(e).length>0))throw new hn.a("view-uielement-cannot-add",this)}render(t){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function Co(t){t.document.on("keydown",(e,n)=>function(t,e,n){if(e.keyCode==po.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),i=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(i||e.shiftKey){const e=t.focusNode,o=t.focusOffset,r=n.domPositionToView(e,o);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition(t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement"))));if(s){const e=n.viewPositionToDom(a);i?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter))}function To(){return null}class Po extends Ri{constructor(t,e,n,i){super(t,e,n,i),this.getFillerOffset=So}is(t,e=null){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t}_insertChild(t,e){if(e&&(e instanceof Rn||Array.from(e).length>0))throw new hn.a("view-rawelement-cannot-add",[this,e])}}function So(){return null}class Eo{constructor(t,e){this.document=t,this._children=[],e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"view:documentFragment"===t}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const i=function(t,e){if("string"==typeof e)return[new Dn(t,e)];yn(e)||(e=[e]);return Array.from(e).map(e=>"string"==typeof e?new Dn(t,e):e instanceof Ln?new Dn(t,e.data):e)}(this.document,e);for(const e of i)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{}),i}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){y(t)&&void 0===n&&(n=e),n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}breakAttributes(t){return t instanceof Xi?this._breakAttributes(t):this._breakAttributesRange(t)}breakContainer(t){const e=t.parent;if(!e.is("containerElement"))throw new hn.a("view-writer-break-non-container-element",this.document);if(!e.parent)throw new hn.a("view-writer-break-root",this.document);if(t.isAtStart)return Xi._createBefore(e);if(!t.isAtEnd){const n=e._clone(!1);this.insert(Xi._createAfter(e),n);const i=new to(t,Xi._createAt(e,"end")),o=new Xi(n,0);this.move(i,o)}return Xi._createAfter(e)}mergeAttributes(t){const e=t.offset,n=t.parent;if(n.is("$text"))return t;if(n.is("attributeElement")&&0===n.childCount){const t=n.parent,e=n.index;return n._remove(),this._removeFromClonedElementsGroup(n),this.mergeAttributes(new Xi(t,e))}const i=n.getChild(e-1),o=n.getChild(e);if(!i||!o)return t;if(i.is("$text")&&o.is("$text"))return Do(i,o);if(i.is("attributeElement")&&o.is("attributeElement")&&i.isSimilar(o)){const t=i.childCount;return i._appendChild(o.getChildren()),o._remove(),this._removeFromClonedElementsGroup(o),this.mergeAttributes(new Xi(i,t))}return t}mergeContainers(t){const e=t.nodeBefore,n=t.nodeAfter;if(!(e&&n&&e.is("containerElement")&&n.is("containerElement")))throw new hn.a("view-writer-merge-containers-invalid-position",this.document);const i=e.getChild(e.childCount-1),o=i instanceof Dn?Xi._createAt(i,"end"):Xi._createAt(e,"end");return this.move(to._createIn(n),Xi._createAt(e,"end")),this.remove(to._createOn(n)),o}insert(t,e){(function t(e,n){for(const i of e){if(!Lo.some(t=>i instanceof t))throw new hn.a("view-writer-insert-invalid-node-type",n);i.is("$text")||t(i.getChildren(),n)}})(e=yn(e)?[...e]:[e],this.document);const n=Io(t);if(!n)throw new hn.a("view-writer-invalid-position-container",this.document);const i=this._breakAttributes(t,!0),o=n._insertChild(i.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const r=i.getShiftedBy(o),s=this.mergeAttributes(i);if(0===o)return new to(s,s);{s.isEqual(i)||r.offset--;const t=this.mergeAttributes(r);return new to(s,t)}}remove(t){const e=t instanceof to?t:to._createOn(t);if(jo(e,this.document),e.isCollapsed)return new Eo(this.document);const{start:n,end:i}=this._breakAttributesRange(e,!0),o=n.parent,r=i.offset-n.offset,s=o._removeChildren(n.offset,r);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new Eo(this.document,s)}clear(t,e){jo(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const i of n){const n=i.item;let o;if(n.is("element")&&e.isSimilar(n))o=to._createOn(n);else if(!i.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find(t=>t.is("element")&&e.isSimilar(t));t&&(o=to._createIn(t))}o&&(o.end.isAfter(t.end)&&(o.end=t.end),o.start.isBefore(t.start)&&(o.start=t.start),this.remove(o))}}move(t,e){let n;if(e.isAfter(t.end)){const i=(e=this._breakAttributes(e,!0)).parent,o=i.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=i.childCount-o}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof so))throw new hn.a("view-writer-wrap-invalid-attribute",this.document);if(jo(t,this.document),t.isCollapsed){let i=t.start;i.parent.is("element")&&(n=i.parent,!Array.from(n.getChildren()).some(t=>!t.is("uiElement")))&&(i=i.getLastMatchingPosition(t=>t.item.is("uiElement"))),i=this._wrapPosition(i,e);const o=this.document.selection;return o.isCollapsed&&o.getFirstPosition().isEqual(t.start)&&this.setSelection(i),new to(i)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof so))throw new hn.a("view-writer-unwrap-invalid-attribute",this.document);if(jo(t,this.document),t.isCollapsed)return t;const{start:n,end:i}=this._breakAttributesRange(t,!0),o=n.parent,r=this._unwrapChildren(o,n.offset,i.offset,e),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new to(s,a)}rename(t,e){const n=new Li(this.document,t,e.getAttributes());return this.insert(Xi._createAfter(e),n),this.move(to._createIn(e),Xi._createAt(n,0)),this.remove(to._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return Xi._createAt(t,e)}createPositionAfter(t){return Xi._createAfter(t)}createPositionBefore(t){return Xi._createBefore(t)}createRange(t,e){return new to(t,e)}createRangeOn(t){return to._createOn(t)}createRangeIn(t){return to._createIn(t)}createSelection(t,e,n){return new io(t,e,n)}_wrapChildren(t,e,n,i){let o=e;const r=[];for(;o!1,t.parent._insertChild(t.offset,n);const i=new to(t,t.getShiftedBy(1));this.wrap(i,e);const o=new Xi(n.parent,n.index);n._remove();const r=o.nodeBefore,s=o.nodeAfter;return r instanceof Dn&&s instanceof Dn?Do(r,s):Oo(o)}_wrapAttributeElement(t,e){if(!zo(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!zo(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,i=t.end;if(jo(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new to(n,n)}const o=this._breakAttributes(i,e),r=o.parent.childCount,s=this._breakAttributes(n,e);return o.offset+=o.parent.childCount-r,new to(s,o)}_breakAttributes(t,e=!1){const n=t.offset,i=t.parent;if(t.parent.is("emptyElement"))throw new hn.a("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new hn.a("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new hn.a("view-writer-cannot-break-raw-element",this.document);if(!e&&i.is("$text")&&Vo(i.parent))return t.clone();if(Vo(i))return t.clone();if(i.is("$text"))return this._breakAttributes(Ro(t),e);if(n==i.childCount){const t=new Xi(i.parent,i.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new Xi(i.parent,i.index);return this._breakAttributes(t,e)}{const t=i.index+1,o=i._clone();i.parent._insertChild(t,o),this._addToClonedElementsGroup(o);const r=i.childCount-n,s=i._removeChildren(n,r);o._appendChild(s);const a=new Xi(i.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function Io(t){let e=t.parent;for(;!Vo(e);){if(!e)return;e=e.parent}return e}function No(t,e){return t.prioritye.priority)&&t.getIdentity()t.createTextNode(" "),Uo=t=>{const e=t.createElement("br");return e.dataset.ckeFiller=!0,e},Ho=(()=>{let t="";for(let e=0;e<7;e++)t+="​";return t})();function Wo(t){return Bo(t)&&t.data.substr(0,7)===Ho}function qo(t){return 7==t.data.length&&Wo(t)}function $o(t){return Wo(t)?t.data.slice(7):t.data}function Yo(t,e){if(e.keyCode==po.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;Wo(e)&&n<=7&&t.collapse(e,0)}}}function Go(t,e,n,i=!1){n=n||function(t,e){return t===e},Array.isArray(t)||(t=Array.prototype.slice.call(t)),Array.isArray(e)||(e=Array.prototype.slice.call(e));const o=function(t,e,n){const i=Ko(t,e,n);if(-1===i)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const o=Qo(t,i),r=Qo(e,i),s=Ko(o,r,n),a=t.length-s,c=e.length-s;return{firstIndex:i,lastIndexOld:a,lastIndexNew:c}}(t,e,n);return i?function(t,e){const{firstIndex:n,lastIndexOld:i,lastIndexNew:o}=t;if(-1===n)return Array(e).fill("equal");let r=[];n>0&&(r=r.concat(Array(n).fill("equal")));o-n>0&&(r=r.concat(Array(o-n).fill("insert")));i-n>0&&(r=r.concat(Array(i-n).fill("delete")));o0&&n.push({index:i,type:"insert",values:t.slice(i,r)});o-i>0&&n.push({index:i+(r-i),type:"delete",howMany:o-i});return n}(e,o)}function Ko(t,e,n){for(let i=0;i200||o>200||i+o>300)return Jo.fastDiff(t,e,n,!0);let r,s;if(ol?-1:1;d[i+h]&&(d[i]=d[i+h].slice(0)),d[i]||(d[i]=[]),d[i].push(o>l?r:s);let f=Math.max(o,l),m=f-i;for(;ml;f--)u[f]=h(f);u[l]=h(l),m++}while(u[l]!==c);return d[l].slice(1)}function Zo(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function Xo(t){const e=t.parentNode;e&&e.removeChild(t)}function tr(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}Jo.fastDiff=Go;class er{constructor(t,e){this.domDocuments=new Set,this.domConverter=t,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this.selection=e,this.isFocused=!1,this._inlineFiller=null,this._fakeSelectionContainer=null}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t)throw new hn.a("view-renderer-unknown-type",this);this.markedChildren.add(e)}}}render(){let t;for(const t of this.markedChildren)this._updateChildrenMappings(t);this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;Wo(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=nr(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateSelection(),this._updateFocus(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=this.domConverter.mapViewToDom(t).childNodes,i=Array.from(this.domConverter.viewChildrenToDom(t,e.ownerDocument,{withChildren:!1})),o=this._diffNodeLists(n,i),r=this._findReplaceActions(o,n,i);if(-1!==r.indexOf("replace")){const e={equal:0,insert:0,delete:0};for(const o of r)if("replace"===o){const o=e.equal+e.insert,r=e.equal+e.delete,s=t.getChild(o);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[r]),Xo(i[o]),e.equal++}else e[o]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?Xi._createBefore(this.selection.getFirstPosition().parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&Bo(e.parent)&&Wo(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!Wo(t))throw new hn.a("view-renderer-filler-was-lost",this);qo(t)?t.parentNode.removeChild(t):t.data=t.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor(t=>t.hasAttribute("contenteditable"));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;if(n===e.getFillerOffset())return!1;const i=t.nodeBefore,o=t.nodeAfter;return!(i instanceof Dn||o instanceof Dn)}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t),i=this.domConverter.viewToDom(t,n.ownerDocument),o=n.data;let r=i.data;const s=e.inlineFillerPosition;if(s&&s.parent==t.parent&&s.offset==t.index&&(r=Ho+r),o!=r){const t=Go(o,r);for(const e of t)"insert"===e.type?n.insertData(e.index,e.values.join("")):n.deleteData(e.index,e.howMany)}}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map(t=>t.name),i=t.getAttributeKeys();for(const n of i)e.setAttribute(n,t.getAttribute(n));for(const i of n)t.hasAttribute(i)||e.removeAttribute(i)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;const i=e.inlineFillerPosition,o=this.domConverter.mapViewToDom(t).childNodes,r=Array.from(this.domConverter.viewChildrenToDom(t,n.ownerDocument,{bind:!0,inlineFillerPosition:i}));i&&i.parent===t&&nr(n.ownerDocument,r,i.offset);const s=this._diffNodeLists(o,r);let a=0;const c=new Set;for(const t of s)"delete"===t?(c.add(o[a]),Xo(o[a])):"equal"===t&&a++;a=0;for(const t of s)"insert"===t?(Zo(n,a,r[a]),a++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(r[a])),a++);for(const t of c)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return Jo(t=function(t,e){const n=Array.from(t);if(0==n.length||!e)return n;n[n.length-1]==e&&n.pop();return n}(t,this._fakeSelectionContainer),e,or.bind(null,this.domConverter))}_findReplaceActions(t,e,n){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let i=[],o=[],r=[];const s={equal:0,insert:0,delete:0};for(const a of t)"insert"===a?r.push(n[s.equal+s.insert]):"delete"===a?o.push(e[s.equal+s.delete]):(i=i.concat(Jo(o,r,ir).map(t=>"equal"===t?"replace":t)),i.push("equal"),o=[],r=[]),s[a]++;return i.concat(Jo(o,r,ir).map(t=>"equal"===t?"replace":t))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):(this._removeFakeSelection(),this._updateDomSelection(t)))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const i=e.getSelection(),o=e.createRange();i.removeAllRanges(),o.selectNodeContents(n),i.addRange(o)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),i=this.domConverter.viewPositionToDom(this.selection.focus);t.focus(),e.collapse(n.parent,n.offset),e.extend(i.parent,i.offset),fo.isGecko&&function(t,e){const n=t.parent;if(n.nodeType!=Node.ELEMENT_NODE||t.offset!=n.childNodes.length-1)return;const i=n.childNodes[t.offset];i&&"BR"==i.tagName&&e.addRange(e.getRangeAt(0))}(i,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return(!e||!this.selection.isEqual(e))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||(n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const t of this.domDocuments){if(t.getSelection().rangeCount){const e=t.activeElement,n=this.domConverter.mapDomToView(e);e&&n&&t.getSelection().removeAllRanges()}}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function nr(t,e,n){const i=e instanceof Array?e:e.childNodes,o=i[n];if(Bo(o))return o.data=Ho+o.data,o;{const o=t.createTextNode(Ho);return Array.isArray(e)?i.splice(n,0,o):Zo(e,n,o),o}}function ir(t,e){return tr(t)&&tr(e)&&!Bo(t)&&!Bo(e)&&t.nodeType!==Node.COMMENT_NODE&&e.nodeType!==Node.COMMENT_NODE&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function or(t,e,n){return e===n||(Bo(e)&&Bo(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}xn(er,Hi);var rr={window:window,document:document};function sr(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function ar(t){const e=[];for(;t&&t.nodeType!=Node.DOCUMENT_NODE;)e.unshift(t),t=t.parentNode;return e}const cr=Uo(document);class lr{constructor(t,e={}){this.document=t,this.blockFillerMode=e.blockFillerMode||"br",this.preElements=["pre"],this.blockElements=["p","div","h1","h2","h3","h4","h5","h6","li","dd","dt","figcaption","td","th"],this._blockFiller="br"==this.blockFillerMode?Uo:Fo,this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new jn,this._encounteredRawContentDomNodes=new WeakSet}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new io(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of t.childNodes)this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}viewToDom(t,e,n={}){if(t.is("$text")){const n=this._processDataFromViewText(t);return e.createTextNode(n)}{if(this.mapViewToDom(t))return this.mapViewToDom(t);let i;if(t.is("documentFragment"))i=e.createDocumentFragment(),n.bind&&this.bindDocumentFragments(i,t);else{if(t.is("uiElement"))return i=t.render(e),n.bind&&this.bindElements(i,t),i;i=t.hasAttribute("xmlns")?e.createElementNS(t.getAttribute("xmlns"),t.name):e.createElement(t.name),t.is("rawElement")&&t.render(i),n.bind&&this.bindElements(i,t);for(const e of t.getAttributeKeys())i.setAttribute(e,t.getAttribute(e))}if(!1!==n.withChildren)for(const o of this.viewChildrenToDom(t,e,n))i.appendChild(o);return i}}*viewChildrenToDom(t,e,n={}){const i=t.getFillerOffset&&t.getFillerOffset();let o=0;for(const r of t.getChildren())i===o&&(yield this._blockFiller(e)),yield this.viewToDom(r,e,n),o++;i===o&&(yield this._blockFiller(e))}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),i=document.createRange();return i.setStart(e.parent,e.offset),i.setEnd(n.parent,n.offset),i}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let i=t.offset;return Wo(n)&&(i+=7),{parent:n,offset:i}}{let n,i,o;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;o=n.childNodes[0]}else{const e=t.nodeBefore;if(i=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(t.nodeBefore),!i)return null;n=i.parentNode,o=i.nextSibling}if(Bo(o)&&Wo(o))return{parent:o,offset:7};return{parent:n,offset:i?sr(i)+1:0}}}domToView(t,e={}){if(this.isBlockFiller(t,this.blockFillerMode))return null;const n=this.getHostViewElement(t);if(n)return n;if(Bo(t)){if(qo(t))return null;{const e=this._processDataFromDomText(t);return""===e?null:new Dn(this.document,e)}}if(this.isComment(t))return null;{if(this.mapDomToView(t))return this.mapDomToView(t);let n;if(this.isDocumentFragment(t))n=new Eo(this.document),e.bind&&this.bindDocumentFragments(t,n);else{const i=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();n=new Ri(this.document,i),e.bind&&this.bindElements(t,n);const o=t.attributes;for(let t=o.length-1;t>=0;t--)n._setAttribute(o[t].name,o[t].value);if(!1!==e.withChildren&&this._rawContentElementMatcher.match(n))return n._setCustomProperty("$rawContent",t.innerHTML),this._encounteredRawContentDomNodes.add(t),n}if(!1!==e.withChildren)for(const i of this.domChildrenToView(t,e))n._appendChild(i);return n}}*domChildrenToView(t,e={}){for(let n=0;n{const{scrollLeft:e,scrollTop:n}=t;i.push([e,n])}),e.focus(),ur(e,t=>{const[e,n]=i.shift();t.scrollLeft=e,t.scrollTop=n}),rr.window.scrollTo(t,n)}}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isComment(t){return t&&t.nodeType==Node.COMMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(cr):!("BR"!==t.tagName||!hr(t,this.blockElements)||1!==t.parentNode.childNodes.length)||function(t,e){return Bo(t)&&" "==t.data&&hr(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements)}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=document.createRange();e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset);const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=ar(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}_isDomSelectionPositionCorrect(t,e){if(Bo(t)&&Wo(t)&&e<7)return!1;if(this.isElement(t)&&Wo(t.childNodes[e]))return!1;const n=this.mapDomToView(t);return!n||!n.is("uiElement")&&!n.is("rawElement")}_processDataFromViewText(t){let e=t.data;if(t.getAncestors().some(t=>this.preElements.includes(t.name)))return e;if(" "==e.charAt(0)){const n=this._getTouchingViewTextNode(t,!1);!(n&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingViewTextNode(t,!0);" "!=e.charAt(e.length-2)&&n&&" "!=n.data.charAt(0)||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g,"  ")}_nodeEndsWithSpace(t){if(t.getAncestors().some(t=>this.preElements.includes(t.name)))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_processDataFromDomText(t){let e=t.data;if(dr(t,this.preElements))return $o(t);e=e.replace(/[ \n\t\r]{1,}/g," ");const n=this._getTouchingInlineDomNode(t,!1),i=this._getTouchingInlineDomNode(t,!0),o=this._checkShouldLeftTrimDomText(t,n),r=this._checkShouldRightTrimDomText(t,i);return o&&(e=e.replace(/^ /,"")),r&&(e=e.replace(/ $/,"")),e=$o(new Text(e)),e=e.replace(/ \u00A0/g," "),(/( |\u00A0)\u00A0$/.test(e)||!i||i.data&&" "==i.data.charAt(0))&&(e=e.replace(/\u00A0$/," ")),o&&(e=e.replace(/^\u00A0/," ")),e}_checkShouldLeftTrimDomText(t,e){return!e||(!!nn(e)||!this._encounteredRawContentDomNodes.has(t.previousSibling)&&/[^\S\u00A0]/.test(e.data.charAt(e.data.length-1)))}_checkShouldRightTrimDomText(t,e){return!e&&!Wo(t)}_getTouchingViewTextNode(t,e){const n=new Zi({startPosition:e?Xi._createAfter(t):Xi._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("containerElement"))return null;if(t.item.is("element","br"))return null;if(t.item.is("$textProxy"))return t.item}return null}_getTouchingInlineDomNode(t,e){if(!t.parentNode)return null;const n=e?"nextNode":"previousNode",i=t.ownerDocument,o=ar(t)[0],r=i.createTreeWalker(o,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,{acceptNode:t=>Bo(t)||"BR"==t.tagName?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});r.currentNode=t;const s=r[n]();if(null!==s){const e=function(t,e){const n=ar(t),i=ar(e);let o=0;for(;n[o]==i[o]&&n[o];)o++;return 0===o?null:n[o-1]}(t,s);if(e&&!dr(t,this.blockElements,e)&&!dr(s,this.blockElements,e))return s}return null}}function dr(t,e,n){let i=ar(t);return n&&(i=i.slice(i.indexOf(n)+1)),i.some(t=>t.tagName&&e.includes(t.tagName.toLowerCase()))}function ur(t,e){for(;t&&t!=rr.document;)e(t),t=t.parentNode}function hr(t,e){const n=t.parentNode;return n&&n.tagName&&e.includes(n.tagName.toLowerCase())}function fr(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}var mr=ji({},gn,{listenTo(t,...e){if(tr(t)||fr(t)){const n=this._getProxyEmitter(t)||new gr(t);n.attach(...e),t=n}gn.listenTo.call(this,t,...e)},stopListening(t,e,n){if(tr(t)||fr(t)){const e=this._getProxyEmitter(t);if(!e)return;t=e}gn.stopListening.call(this,t,e,n),t instanceof gr&&t.detach(e)},_getProxyEmitter(t){return e=this,n=pr(t),e[fn]&&e[fn][n]?e[fn][n].emitter:null;var e,n}});class gr{constructor(t){pn(this,pr(t)),this._domNode=t}}function pr(t){return t["data-ck-expando"]||(t["data-ck-expando"]=dn())}ji(gr.prototype,gn,{attach(t,e,n={}){if(this._domListeners&&this._domListeners[t])return;const i={capture:!!n.useCapture,passive:!!n.usePassive},o=this._createDomListener(t,i);this._domNode.addEventListener(t,o,i),this._domListeners||(this._domListeners={}),this._domListeners[t]=o},detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()},_createDomListener(t,e){const n=e=>{this.fire(t,e)};return n.removeListener=()=>{this._domNode.removeEventListener(t,n,e),delete this._domListeners[t]},n}});class br{constructor(t){this.view=t,this.document=t.document,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}xn(br,mr);var wr=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};var kr=function(t){return this.__data__.has(t)};function _r(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new kt;++ea))return!1;var l=r.get(t);if(l&&r.get(e))return l==e;var d=-1,u=!0,h=2&n?new vr:void 0;for(r.set(t,e),r.set(e,t);++d{this.listenTo(t,e,(t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)},{useCapture:this.useCapture})})}fire(t,e,n){this.isEnabled&&this.document.fire(t,new Vr(this.view,e,n))}}class zr extends jr{constructor(t){super(t),this.domEventType=["keydown","keyup"]}onDomEvent(t){this.fire(t.type,t,{keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey||t.metaKey,shiftKey:t.shiftKey,get keystroke(){return bo(this)}})}}var Br=function(){return i.a.Date.now()},Fr=/^\s+|\s+$/g,Ur=/^[-+]0x[0-9a-f]+$/i,Hr=/^0b[01]+$/i,Wr=/^0o[0-7]+$/i,qr=parseInt;var $r=function(t){if("number"==typeof t)return t;if(Bn(t))return NaN;if(V(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=V(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Fr,"");var n=Hr.test(t);return n||Wr.test(t)?qr(t.slice(2),n?2:8):Ur.test(t)?NaN:+t},Yr=Math.max,Gr=Math.min;var Kr=function(t,e,n){var i,o,r,s,a,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function f(e){var n=i,r=o;return i=o=void 0,l=e,s=t.apply(r,n)}function m(t){return l=t,a=setTimeout(p,e),d?f(t):s}function g(t){var n=t-c;return void 0===c||n>=e||n<0||u&&t-l>=r}function p(){var t=Br();if(g(t))return b(t);a=setTimeout(p,function(t){var n=e-(t-c);return u?Gr(n,r-(t-l)):n}(t))}function b(t){return a=void 0,h&&i?f(t):(i=o=void 0,s)}function w(){var t=Br(),n=g(t);if(i=arguments,o=this,c=t,n){if(void 0===a)return m(c);if(u)return clearTimeout(a),a=setTimeout(p,e),f(c)}return void 0===a&&(a=setTimeout(p,e)),s}return e=$r(e)||0,V(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Yr($r(n.maxWait)||0,e):r,h="trailing"in n?!!n.trailing:h),w.cancel=function(){void 0!==a&&clearTimeout(a),l=0,i=c=o=a=void 0},w.flush=function(){return void 0===a?s:b(Br())},w};class Qr extends br{constructor(t){super(t),this._fireSelectionChangeDoneDebounced=Kr(t=>this.document.fire("selectionChangeDone",t),200)}observe(){const t=this.document;t.on("keydown",(e,n)=>{t.selection.isFake&&_o(n.keyCode)&&this.isEnabled&&(n.preventDefault(),this._handleSelectionMove(n.keyCode))},{priority:"lowest"})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new io(e.getRanges(),{backward:e.isBackward,fake:!1});t!=po.arrowleft&&t!=po.arrowup||n.setTo(n.getFirstPosition()),t!=po.arrowright&&t!=po.arrowdown||n.setTo(n.getLastPosition());const i={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",i),this._fireSelectionChangeDoneDebounced(i)}}class Jr extends br{constructor(t){super(t),this.mutationObserver=t.getObserver(Lr),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=Kr(t=>this.document.fire("selectionChangeDone",t),200),this._clearInfiniteLoopInterval=setInterval(()=>this._clearInfiniteLoop(),1e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument;this._documents.has(e)||(this.listenTo(e,"selectionchange",(t,n)=>{this._handleSelectionChange(n,e)}),this._documents.add(e))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const i=this.domConverter.domSelectionToView(n);if(0!=i.rangeCount){if(this.view.hasDomSelection=!0,!(this.selection.isEqual(i)&&this.domConverter.isDomSelectionCorrect(n)||++this._loopbackCounter>60))if(this.selection.isSimilar(i))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:i,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class Zr extends jr{constructor(t){super(t),this.domEventType=["focus","blur"],this.useCapture=!0;const e=this.document;e.on("focus",()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout(()=>t.forceRender(),50)}),e.on("blur",(n,i)=>{const o=e.selection.editableElement;null!==o&&o!==i.target||(e.isFocused=!1,t.forceRender())})}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class Xr extends jr{constructor(t){super(t),this.domEventType=["compositionstart","compositionupdate","compositionend"];const e=this.document;e.on("compositionstart",()=>{e.isComposing=!0}),e.on("compositionend",()=>{e.isComposing=!1})}onDomEvent(t){this.fire(t.type,t)}}class ts extends jr{constructor(t){super(t),this.domEventType=["beforeinput"]}onDomEvent(t){this.fire(t.type,t)}}function es(t){return"[object Range]"==Object.prototype.toString.apply(t)}function ns(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const is=["top","right","bottom","left","width","height"];class os{constructor(t){const e=es(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),nn(t)||e)if(e){const e=os.getDomRangeRects(t);rs(this,os.getBoundingRect(e))}else rs(this,t.getBoundingClientRect());else if(fr(t)){const{innerWidth:e,innerHeight:n}=t;rs(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else rs(this,t)}clone(){return new os(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left)};return e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0?null:new os(e)}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(!ss(t)){let n=t.parentNode||t.commonAncestorContainer;for(;n&&!ss(n);){const t=new os(n),i=e.getIntersection(t);if(!i)return null;i.getArea()ps(t,i));const s=ps(t,i);if(cs(i,s,e),i.parent!=i){if(o=i.frameElement,i=i.parent,!o)return}else i=null}}function cs(t,e,n){const i=e.clone().moveBy(0,n),o=e.clone().moveBy(0,-n),r=new os(t).excludeScrollbarsAndBorders();if(![o,i].every(t=>r.contains(t))){let{scrollX:s,scrollY:a}=t;us(o,r)?a-=r.top-e.top+n:ds(i,r)&&(a+=e.bottom-r.bottom+n),hs(e,r)?s-=r.left-e.left+n:fs(e,r)&&(s+=e.right-r.right+n),t.scrollTo(s,a)}}function ls(t,e){const n=ms(t);let i,o;for(;t!=n.document.body;)o=e(),i=new os(t).excludeScrollbarsAndBorders(),i.contains(o)||(us(o,i)?t.scrollTop-=i.top-o.top:ds(o,i)&&(t.scrollTop+=o.bottom-i.bottom),hs(o,i)?t.scrollLeft-=i.left-o.left:fs(o,i)&&(t.scrollLeft+=o.right-i.right)),t=t.parentNode}function ds(t,e){return t.bottom>e.bottom}function us(t,e){return t.tope.right}function ms(t){return es(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function gs(t){if(es(t)){let e=t.commonAncestorContainer;return Bo(e)&&(e=e.parentNode),e}return t.parentNode}function ps(t,e){const n=ms(t),i=new os(t);if(n===e)return i;{let t=n;for(;t!=e;){const e=t.frameElement,n=new os(e).excludeScrollbarsAndBorders();i.moveBy(n.left,n.top),t=t.parent}}return i}Object.assign({},{scrollViewportToShowTarget:as,scrollAncestorsToShowTarget:function(t){ls(gs(t),()=>new os(t))}});class bs{constructor(t){this.document=new ro(t),this.domConverter=new lr(this.document),this.domRoots=new Map,this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new er(this.domConverter,this.document.selection),this._renderer.bind("isFocused").to(this.document),this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this._writer=new Mo(this.document),this.addObserver(Lr),this.addObserver(Jr),this.addObserver(Zr),this.addObserver(zr),this.addObserver(Qr),this.addObserver(Xr),fo.isAndroid&&this.addObserver(ts),this.document.on("keydown",Yo),Co(this),this.on("render",()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1}),this.listenTo(this.document.selection,"change",()=>{this._hasChangedSinceTheLastRendering=!0})}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const i={};for(const{name:e,value:o}of Array.from(t.attributes))i[e]=o,"class"===e?this._writer.addClass(o.split(" "),n):this._writer.setAttribute(e,o,n);this._initialDomRootAttributes.set(t,i);const o=()=>{this._writer.setAttribute("contenteditable",!n.isReadOnly,n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};o(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",(t,e)=>this._renderer.markToSync("children",e)),n.on("change:attributes",(t,e)=>this._renderer.markToSync("attributes",e)),n.on("change:text",(t,e)=>this._renderer.markToSync("text",e)),n.on("change:isReadOnly",()=>this.change(o)),n.on("change",()=>{this._hasChangedSinceTheLastRendering=!0});for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach(({name:t})=>e.removeAttribute(t));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection(){const t=this.document.selection.getFirstRange();t&&as({target:this.domConverter.viewRangeToDom(t),viewportOffset:20})}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new hn.a("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){hn.a.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.change(()=>{})}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return Xi._createAt(t,e)}createPositionAfter(t){return Xi._createAfter(t)}createPositionBefore(t){return Xi._createBefore(t)}createRange(t,e){return new to(t,e)}createRangeOn(t){return to._createOn(t)}createRangeIn(t){return to._createIn(t)}createSelection(t,e,n){return new io(t,e,n)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change(()=>{})}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}xn(bs,Hi);class ws{constructor(t){this.parent=null,this._attrs=Vn(t)}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new hn.a("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new hn.a("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),i=t.getAncestors(e);let o=0;for(;n[o]==i[o]&&n[o];)o++;return 0===o?null:n[o-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),i=Nn(e,n);switch(i){case"prefix":return!0;case"extension":return!1;default:return e[i](t[e[0]]=e[1],t),{})),t}is(t){return"node"===t||"model:node"===t}_clone(){return new ws(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=Vn(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}class ks extends ws{constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}is(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new ks(this.data,this.getAttributes())}static fromJSON(t){return new ks(t.data,t.attributes)}}class _s{constructor(t,e,n){if(this.textNode=t,e<0||e>t.offsetSize)throw new hn.a("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new hn.a("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}is(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={includeSelf:!1,parentFirst:!1}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}class vs{constructor(t){this._nodes=[],t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce((t,e)=>t+e.offsetSize,0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce((t,e)=>t+e.offsetSize,0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new hn.a("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&tt.toJSON())}}class ys extends ws{constructor(t,e,n){super(e),this.name=t,this._children=new vs,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}is(t,e=null){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={includeSelf:!1}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map(t=>t._clone(!0)):null;return new ys(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new ks(t)];yn(t)||(t=[t]);return Array.from(t).map(t=>"string"==typeof t?new ks(t):t instanceof _s?new ks(t.data,t.getAttributes()):t)}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e=null;if(t.children){e=[];for(const n of t.children)n.name?e.push(ys.fromJSON(n)):e.push(ks.fromJSON(n))}return new ys(t.name,t.attributes,e)}}class xs{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new hn.a("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new hn.a("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this.position=t.startPosition.clone():this.position=Cs._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}skip(t){let e,n,i,o;do{i=this.position,o=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=i,this._visitedParent=o)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0};const i=e.parent,o=Ts(e,i),r=o||Ps(e,i,o);if(r instanceof ys)return this.shallow?e.offset++:(e.path.push(0),this._visitedParent=r),this.position=e,As("elementStart",r,t,e,1);if(r instanceof ks){let i;if(this.singleCharacters)i=1;else{let t=r.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),i=e.offset-t}const o=e.offset-r.startOffset,s=new _s(r,o-i,i);return e.offset-=i,this.position=e,As("text",s,t,e,i)}return e.path.pop(),this.position=e,this._visitedParent=n.parent,As("elementStart",n,t,e,1)}}function As(t,e,n,i,o){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:i,length:o}}}class Cs{constructor(t,e,n="toNone"){if(!t.is("element")&&!t.is("documentFragment"))throw new hn.a("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new hn.a("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;en.path.length){if(e.offset!==i.maxOffset)return!1;e.path=e.path.slice(0,-1),i=i.parent,e.offset++}else{if(0!==n.offset)return!1;n.path=n.path.slice(0,-1)}}}is(t){return"position"===t||"model:position"===t}hasSameParentAs(t){if(this.root!==t.root)return!1;return"same"==Nn(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=Cs._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?Cs._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=Cs._createAt(this);if(this.root!=t.root)return n;if("same"==Nn(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==Nn(t.getParentPath(),this.getParentPath())){const i=t.path.length-1;if(t.offset<=this.path[i]){if(t.offset+e>this.path[i])return null;n.path[i]-=e}}return n}_getTransformedByInsertion(t,e){const n=Cs._createAt(this);if(this.root!=t.root)return n;if("same"==Nn(t.getParentPath(),this.getParentPath()))(t.offsete+1;){const e=i.maxOffset-n.offset;0!==e&&t.push(new Es(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,i=i.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],i=e-n.offset;0!==i&&t.push(new Es(n,n.getShiftedBy(i))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new xs(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new xs(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new xs(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new Es(this.start,this.end)]}getTransformedByOperations(t){const e=[new Es(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,i):new this(i,n)}static _createIn(t){return new this(Cs._createAt(t,0),Cs._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(Cs._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new hn.a("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort((t,e)=>t.start.isAfter(e.start)?1:-1);const n=t.indexOf(e),i=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(i.start);e++)i.start=Cs._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)},{priority:"low"}),this.on("viewToModelPosition",(t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),i=this._viewToModelMapping.get(n),o=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=Cs._createAt(i,o)},{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t){const e=this.toModelElement(t);if(this._viewToModelMapping.delete(t),this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);this._modelToViewMapping.get(e)==t&&this._modelToViewMapping.delete(e)}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const i=this._elementToMarkerNames.get(t)||new Set;i.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,i)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const i=this._elementToMarkerNames.get(t);i&&(i.delete(e),0==i.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new Es(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new to(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={isPhantom:!1}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t){return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t)}if(t.is("$text"))return e;let i=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class Os{constructor(t){this.conversionApi=Object.assign({dispatcher:this},t),this._reconversionEventsMapping=new Map}convertChanges(t,e,n){for(const e of t.getMarkersToRemove())this.convertMarkerRemove(e.name,e.range,n);const i=this._mapChangesWithAutomaticReconversion(t);for(const t of i)"insert"===t.type?this.convertInsert(Es._createFromPositionAndShift(t.position,t.length),n):"remove"===t.type?this.convertRemove(t.position,t.length,t.name,n):"reconvert"===t.type?this.reconvertElement(t.element,n):this.convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,n);for(const t of this.conversionApi.mapper.flushUnboundMarkerNames()){const i=e.get(t).getRange();this.convertMarkerRemove(t,i,n),this.convertMarkerAdd(t,i,n)}for(const e of t.getMarkersToAdd())this.convertMarkerAdd(e.name,e.range,n)}convertInsert(t,e){this.conversionApi.writer=e,this.conversionApi.consumable=this._createInsertConsumable(t);for(const e of Array.from(t).map(Ds))this._convertInsertWithAttributes(e);this._clearConversionApi()}convertRemove(t,e,n,i){this.conversionApi.writer=i,this.fire("remove:"+n,{position:t,length:e},this.conversionApi),this._clearConversionApi()}convertAttribute(t,e,n,i,o){this.conversionApi.writer=o,this.conversionApi.consumable=this._createConsumableForRange(t,"attribute:"+e);for(const o of t){const t={item:o.item,range:Es._createFromPositionAndShift(o.previousPosition,o.length),attributeKey:e,attributeOldValue:n,attributeNewValue:i};this._testAndFire("attribute:"+e,t)}this._clearConversionApi()}reconvertElement(t,e){const n=Es._createOn(t);this.conversionApi.writer=e,this.conversionApi.consumable=this._createInsertConsumable(n);const i=this.conversionApi.mapper,o=i.toViewElement(t);e.remove(o),this._convertInsertWithAttributes({item:t,range:n});const r=i.toViewElement(t);for(const n of Es._createIn(t)){const{item:t}=n,o=Ls(t,i);o?o.root!==r.root&&e.move(e.createRangeOn(o),i.toViewPosition(Cs._createBefore(t))):this._convertInsertWithAttributes(Ds(n))}i.unbindViewElement(o),this._clearConversionApi()}convertSelection(t,e,n){const i=Array.from(e.getMarkersAtPosition(t.getFirstPosition()));if(this.conversionApi.writer=n,this.conversionApi.consumable=this._createSelectionConsumable(t,i),this.fire("selection",{selection:t},this.conversionApi),t.isCollapsed){for(const e of i){const n=e.getRange();if(!Rs(t.getFirstPosition(),e,this.conversionApi.mapper))continue;const i={item:t,markerName:e.name,markerRange:n};this.conversionApi.consumable.test(t,"addMarker:"+e.name)&&this.fire("addMarker:"+e.name,i,this.conversionApi)}for(const e of t.getAttributeKeys()){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};this.conversionApi.consumable.test(t,"attribute:"+n.attributeKey)&&this.fire("attribute:"+n.attributeKey+":$text",n,this.conversionApi)}this._clearConversionApi()}}convertMarkerAdd(t,e,n){if(!e.root.document||"$graveyard"==e.root.rootName)return;this.conversionApi.writer=n;const i="addMarker:"+t,o=new Is;if(o.add(e,i),this.conversionApi.consumable=o,this.fire(i,{markerName:t,markerRange:e},this.conversionApi),o.test(e,i)){this.conversionApi.consumable=this._createConsumableForRange(e,i);for(const n of e.getItems()){if(!this.conversionApi.consumable.test(n,i))continue;const o={item:n,range:Es._createOn(n),markerName:t,markerRange:e};this.fire(i,o,this.conversionApi)}this._clearConversionApi()}}convertMarkerRemove(t,e,n){e.root.document&&"$graveyard"!=e.root.rootName&&(this.conversionApi.writer=n,this.fire("removeMarker:"+t,{markerName:t,markerRange:e},this.conversionApi),this._clearConversionApi())}_mapReconversionTriggerEvent(t,e){this._reconversionEventsMapping.set(e,t)}_createInsertConsumable(t){const e=new Is;for(const n of t){const t=n.item;e.add(t,"insert");for(const n of t.getAttributeKeys())e.add(t,"attribute:"+n)}return e}_createConsumableForRange(t,e){const n=new Is;for(const i of t.getItems())n.add(i,e);return n}_createSelectionConsumable(t,e){const n=new Is;n.add(t,"selection");for(const i of e)n.add(t,"addMarker:"+i.name);for(const e of t.getAttributeKeys())n.add(t,"attribute:"+e);return n}_testAndFire(t,e){this.conversionApi.consumable.test(e.item,t)&&this.fire(function(t,e){const n=e.item.name||"$text";return`${t}:${n}`}(t,e),e,this.conversionApi)}_clearConversionApi(){delete this.conversionApi.writer,delete this.conversionApi.consumable}_convertInsertWithAttributes(t){this._testAndFire("insert",t);for(const e of t.item.getAttributeKeys())t.attributeKey=e,t.attributeOldValue=null,t.attributeNewValue=t.item.getAttribute(e),this._testAndFire("attribute:"+e,t)}_mapChangesWithAutomaticReconversion(t){const e=new Set,n=[];for(const i of t.getChanges()){const t=i.position||i.range.start,o=t.parent;if(Ts(t,o)){n.push(i);continue}const r="attribute"===i.type?Ps(t,o,null):o;if(r.is("$text")){n.push(i);continue}let s;if(s="attribute"===i.type?`attribute:${i.attributeKey}:${r.name}`:`${i.type}:${i.name}`,this._isReconvertTriggerEvent(s,r.name)){if(e.has(r))continue;e.add(r),n.push({type:"reconvert",element:r})}else n.push(i)}return n}_isReconvertTriggerEvent(t,e){return this._reconversionEventsMapping.get(t)===e}}function Rs(t,e,n){const i=e.getRange(),o=Array.from(t.getAncestors());o.shift(),o.reverse();return!o.some(t=>{if(i.containsItem(t)){return!!n.toViewElement(t).getCustomProperty("addHighlight")}})}function Ds(t){return{item:t.item,range:Es._createFromPositionAndShift(t.previousPosition,t.length)}}function Ls(t,e){if(t.is("textProxy")){const n=e.toViewPosition(Cs._createBefore(t)).parent;return n.is("$text")?n:null}return e.toViewElement(t)}xn(Os,gn);class Vs{constructor(t,e,n){this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,t&&this.setTo(t,e,n)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const i of t._ranges)if(e.isEqual(i)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new Es(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new Es(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new Es(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(t,e,n){if(null===t)this._setRanges([]);else if(t instanceof Vs)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof Es)this._setRanges([t],!!e&&!!e.backward);else if(t instanceof Cs)this._setRanges([new Es(t)]);else if(t instanceof ws){const i=!!n&&!!n.backward;let o;if("in"==e)o=Es._createIn(t);else if("on"==e)o=Es._createOn(t);else{if(void 0===e)throw new hn.a("model-selection-setto-required-second-parameter",[this,t]);o=new Es(Cs._createAt(t,e))}this._setRanges([o],i)}else{if(!yn(t))throw new hn.a("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,e&&!!e.backward)}}_setRanges(t,e=!1){const n=(t=Array.from(t)).some(e=>{if(!(e instanceof Es))throw new hn.a("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every(t=>!t.isEqual(e))});if(t.length!==this._ranges.length||n){this._removeAllRanges();for(const e of t)this._pushRange(e);this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0})}}setFocus(t,e){if(null===this.anchor)throw new hn.a("model-selection-setfocus-no-ranges",[this,t]);const n=Cs._createAt(t,e);if("same"==n.compareWith(this.focus))return;const i=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(i)?(this._pushRange(new Es(n,i)),this._lastRangeBackward=!0):(this._pushRange(new Es(i,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}is(t){return"selection"===t||"model:selection"===t}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=Bs(e.start,t);n&&Fs(n,e)&&(yield n);for(const n of e.getWalker()){const i=n.item;"elementEnd"==n.type&&zs(i,t,e)&&(yield i)}const i=Bs(e.end,t);i&&!e.end.isTouching(Cs._createAt(i,0))&&Fs(i,e)&&(yield i)}}containsEntireContent(t=this.anchor.root){const e=Cs._createAt(t,0),n=Cs._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new Es(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function js(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&t.parent)}function zs(t,e,n){return js(t,e)&&Fs(t,n)}function Bs(t,e){const n=t.parent.root.document.model.schema,i=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let o=!1;const r=i.find(t=>!o&&(o=n.isLimit(t),!o&&js(t,e)));return i.forEach(t=>e.add(t)),r}function Fs(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);if(!n)return!0;return!e.containsRange(Es._createOn(n),!0)}xn(Vs,gn);class Us extends Es{constructor(t,e){super(t,e),Hs.call(this)}detach(){this.stopListening()}is(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t}toRange(){return new Es(this.start,this.end)}static fromRange(t){return new Us(t.start,t.end)}}function Hs(){this.listenTo(this.root.document.model,"applyOperation",(t,e)=>{const n=e[0];n.isDocumentOperation&&Ws.call(this,n)},{priority:"low"})}function Ws(t){const e=this.getTransformedByOperation(t),n=Es._createFromRanges(e),i=!n.isEqual(this),o=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let r=null;if(i){"$graveyard"==n.root.rootName&&(r="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:r})}else o&&this.fire("change:content",this.toRange(),{deletionPosition:r})}xn(Us,gn);class qs{constructor(t){this._selection=new $s(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection._updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}is(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(t,e,n){this._selection.setTo(t,e,n)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection._getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return"selection:"+t}static _isStoreAttributeKey(t){return t.startsWith("selection:")}}xn(qs,gn);class $s extends Vs{constructor(t){super(),this.markers=new An({idProperty:"name"}),this._model=t.model,this._document=t,this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this.listenTo(this._model,"applyOperation",(t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))},{priority:"lowest"}),this.on("change:range",()=>{for(const t of this.getRanges())if(!this._document._validateSelectionRange(t))throw new hn.a("document-selection-wrong-position",this,{range:t})}),this.listenTo(this._model.markers,"update",(t,e,n,i)=>{this._updateMarker(e,i)}),this.listenTo(this._document,"change",(t,e)=>{!function(t,e){const n=t.document.differ;for(const i of n.getChanges()){if("insert"!=i.type)continue;const n=i.position.parent;i.length===n.maxOffset&&t.enqueueChange(e,t=>{const e=Array.from(n.getAttributeKeys()).filter(t=>t.startsWith("selection:"));for(const i of e)t.removeAttribute(i,n)})}}(this._model,e)})}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=i.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}}),e}_updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const i=e.getRange();for(const n of this.getRanges())i.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let i=!1;const o=Array.from(this.markers),r=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!r?(this.markers.add(t),i=!0):!n&&r&&(this.markers.remove(t),i=!0)}else r&&(this.markers.remove(t),i=!0);i&&this.fire("change:marker",{oldMarkers:o,directChange:!1})}_updateAttributes(t){const e=Vn(this._getSurroundingAttributes()),n=Vn(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const i=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||i.push(t);for(const[t]of n)this.hasAttribute(t)||i.push(t);i.length>0&&this.fire("change:attribute",{attributeKeys:i,directChange:!1})}_setAttribute(t,e,n=!0){const i=n?"normal":"low";if("low"==i&&"normal"==this._attributePriority.get(t))return!1;return super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,i),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return("low"!=n||"normal"!=this._attributePriority.get(t))&&(this._attributePriority.set(t,n),!!super.hasAttribute(t)&&(this._attrs.delete(t),!0))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,i]of t){this._setAttribute(n,i,!1)&&e.add(n)}return e}*_getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith("selection:")){const n=e.substr("selection:".length);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;let n=null;if(this.isCollapsed){const i=t.textNode?t.textNode:t.nodeBefore,o=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=Ys(i)),n||(n=Ys(o)),!this.isGravityOverridden&&!n){let t=i;for(;t&&!e.isInline(t)&&!n;)t=t.previousSibling,n=Ys(t)}if(!n){let t=o;for(;t&&!e.isInline(t)&&!n;)t=t.nextSibling,n=Ys(t)}n||(n=this._getStoredAttributes())}else{const t=this.getFirstRange();for(const i of t){if(i.item.is("element")&&e.isObject(i.item))break;if("text"==i.type){n=i.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function Ys(t){return t instanceof _s||t instanceof ks?t.getAttributes():null}class Gs{constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}var Ks=function(t){return tn(t,5)};class Qs extends Gs{elementToElement(t){return this.add(function(t){return(t=Ks(t)).view=Xs(t.view,"container"),e=>{var n;if(e.on("insert:"+t.model,(n=t.view,(t,e,i)=>{const o=n(e.item,i);if(!o)return;if(!i.consumable.consume(e.item,"insert"))return;const r=i.mapper.toViewPosition(e.range.start);i.mapper.bindElements(e.item,o),i.writer.insert(r,o)}),{priority:t.converterPriority||"normal"}),t.triggerBy){if(t.triggerBy.attributes)for(const n of t.triggerBy.attributes)e._mapReconversionTriggerEvent(t.model,`attribute:${n}:${t.model}`);if(t.triggerBy.children)for(const n of t.triggerBy.children)e._mapReconversionTriggerEvent(t.model,"insert:"+n),e._mapReconversionTriggerEvent(t.model,"remove:"+n)}}}(t))}attributeToElement(t){return this.add(function(t){t=Ks(t);let e="attribute:"+(t.model.key?t.model.key:t.model);t.model.name&&(e+=":"+t.model.name);if(t.model.values)for(const e of t.model.values)t.view[e]=Xs(t.view[e],"attribute");else t.view=Xs(t.view,"attribute");const n=ta(t);return i=>{i.on(e,function(t){return(e,n,i)=>{const o=t(n.attributeOldValue,i),r=t(n.attributeNewValue,i);if(!o&&!r)return;if(!i.consumable.consume(n.item,e.name))return;const s=i.writer,a=s.document.selection;if(n.item instanceof Vs||n.item instanceof qs)s.wrap(a.getFirstRange(),r);else{let t=i.mapper.toViewRange(n.range);null!==n.attributeOldValue&&o&&(t=s.unwrap(t,o)),null!==n.attributeNewValue&&r&&s.wrap(t,r)}}}(n),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=Ks(t);let e="attribute:"+(t.model.key?t.model.key:t.model);t.model.name&&(e+=":"+t.model.name);if(t.model.values)for(const e of t.model.values)t.view[e]=ea(t.view[e]);else t.view=ea(t.view);const n=ta(t);return i=>{var o;i.on(e,(o=n,(t,e,n)=>{const i=o(e.attributeOldValue,n),r=o(e.attributeNewValue,n);if(!i&&!r)return;if(!n.consumable.consume(e.item,t.name))return;const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new hn.a("conversion-attribute-to-attribute-on-text",[e,n]);if(null!==e.attributeOldValue&&i)if("class"==i.key){const t=Tn(i.value);for(const e of t)a.removeClass(e,s)}else if("style"==i.key){const t=Object.keys(i.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(i.key,s);if(null!==e.attributeNewValue&&r)if("class"==r.key){const t=Tn(r.value);for(const e of t)a.addClass(e,s)}else if("style"==r.key){const t=Object.keys(r.value);for(const e of t)a.setStyle(e,r.value[e],s)}else a.setAttribute(r.key,r.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){return(t=Ks(t)).view=Xs(t.view,"ui"),e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,i)=>{e.isOpening=!0;const o=n(e,i);e.isOpening=!1;const r=n(e,i);if(!o||!r)return;const s=e.markerRange;if(s.isCollapsed&&!i.consumable.consume(s,t.name))return;for(const e of s)if(!i.consumable.consume(e.item,t.name))return;const a=i.mapper,c=i.writer;c.insert(a.toViewPosition(s.start),o),i.mapper.bindElementToMarker(o,e.markerName),s.isCollapsed||(c.insert(a.toViewPosition(s.end),r),i.mapper.bindElementToMarker(r,e.markerName)),t.stop()}),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,(t.view,(t,e,n)=>{const i=n.mapper.markerNameToElements(e.markerName);if(i){for(const t of i)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on("addMarker:"+t.model,(n=t.view,(t,e,i)=>{if(!e.item)return;if(!(e.item instanceof Vs||e.item instanceof qs||e.item.is("$textProxy")))return;const o=na(n,e,i);if(!o)return;if(!i.consumable.consume(e.item,t.name))return;const r=i.writer,s=Js(r,o),a=r.document.selection;if(e.item instanceof Vs||e.item instanceof qs)r.wrap(a.getFirstRange(),s,a);else{const t=i.mapper.toViewRange(e.range),n=r.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){i.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on("addMarker:"+t.model,function(t){return(e,n,i)=>{if(!n.item)return;if(!(n.item instanceof ys))return;const o=na(t,n,i);if(!o)return;if(!i.consumable.test(n.item,e.name))return;const r=i.mapper.toViewElement(n.item);if(r&&r.getCustomProperty("addHighlight")){i.consumable.consume(n.item,e.name);for(const t of Es._createIn(n.item))i.consumable.consume(t.item,e.name);r.getCustomProperty("addHighlight")(r,o,i.writer),i.mapper.bindElementToMarker(r,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on("removeMarker:"+t.model,function(t){return(e,n,i)=>{if(n.markerRange.isCollapsed)return;const o=na(t,n,i);if(!o)return;const r=Js(i.writer,o),s=i.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)i.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement")?i.writer.unwrap(i.writer.createRangeOn(t),r):t.getCustomProperty("removeHighlight")(t,o.id,i.writer);i.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){const e=(t=Ks(t)).model;t.view||(t.view=n=>({group:e,name:n.substr(t.model.length+1)}));return n=>{var i;n.on("addMarker:"+e,(i=t.view,(t,e,n)=>{const o=i(e.markerName,n);if(!o)return;const r=e.markerRange;n.consumable.consume(r,t.name)&&(Zs(r,!1,n,e,o),Zs(r,!0,n,e,o),t.stop())}),{priority:t.converterPriority||"normal"}),n.on("removeMarker:"+e,function(t){return(e,n,i)=>{const o=t(n.markerName,i);if(!o)return;const r=i.mapper.markerNameToElements(n.markerName);if(r){for(const t of r)i.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${o.group}-start-before`,t),s(`data-${o.group}-start-after`,t),s(`data-${o.group}-end-before`,t),s(`data-${o.group}-end-after`,t)):i.writer.clear(i.writer.createRangeOn(t),t);i.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(o.name),0==n.size?i.writer.removeAttribute(t,e):i.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}}function Js(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),e.priority&&(n._priority=e.priority),n._id=e.id,n}function Zs(t,e,n,i,o){const r=e?t.start:t.end;if(n.schema.checkChild(r,"$text")){!function(t,e,n,i,o){const r=`${o.group}-${e?"start":"end"}`,s=o.name?{name:o.name}:null,a=n.writer.createUIElement(r,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,i.markerName)}(n.mapper.toViewPosition(r),e,n,i,o)}else{let t,s;e&&r.nodeAfter||!e&&!r.nodeBefore?(t=r.nodeAfter,s=!0):(t=r.nodeBefore,s=!1);!function(t,e,n,i,o,r){const s=`data-${r.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(r.name),i.writer.setAttribute(s,a.join(","),t),i.mapper.bindElementToMarker(t,o.markerName)}(n.mapper.toViewElement(t),e,s,n,i,o)}}function Xs(t,e){return"function"==typeof t?t:(n,i)=>function(t,e,n){"string"==typeof t&&(t={name:t});let i;const o=e.writer,r=Object.assign({},t.attributes);if("container"==n)i=o.createContainerElement(t.name,r);else if("attribute"==n){const e={priority:t.priority||so.DEFAULT_PRIORITY};i=o.createAttributeElement(t.name,r,e)}else i=o.createUIElement(t.name,r);if(t.styles){const e=Object.keys(t.styles);for(const n of e)o.setStyle(n,t.styles[n],i)}if(t.classes){const e=t.classes;if("string"==typeof e)o.addClass(e,i);else for(const t of e)o.addClass(t,i)}return i}(t,i,e)}function ta(t){return t.model.values?(e,n)=>{const i=t.view[e];return i?i(e,n):null}:t.view}function ea(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function na(t,e,n){const i="function"==typeof t?t(e,n):t;return i?(i.priority||(i.priority=10),i.id||(i.id=e.markerName),i):null}function ia(t){const{schema:e,document:n}=t.model;for(const i of n.getRootNames()){const o=n.getRoot(i);if(o.isEmpty&&!e.checkChild(o,"$text")&&e.checkChild(o,"paragraph"))return t.insertElement("paragraph",o),!0}return!1}function oa(t,e,n){const i=n.createContext(t);return!!n.checkChild(i,"paragraph")&&!!n.checkChild(i.push("paragraph"),e)}function ra(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class sa extends Gs{elementToElement(t){return this.add(aa(t))}elementToAttribute(t){return this.add(function(t){da(t=Ks(t));const e=ua(t,!1),n=ca(t.view),i=n?"element:"+n:"element";return n=>{n.on(i,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=Ks(t);let e=null;("string"==typeof t.view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key;let n;if("class"==e||"style"==e){n={["class"==e?"classes":"styles"]:t.view.value}}else{const i=void 0===t.view.value?/[\s\S]*/:t.view.value;n={attributes:{[e]:i}}}t.view.name&&(n.name=t.view.name);return t.view=n,e}(t));da(t,e);const n=ua(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return Object(hn.c)("upcast-helpers-element-to-marker-deprecated"),this.add(function(t){return function(t){const e=t.model;t.model=(t,n)=>{const i="string"==typeof e?e:e(t,n);return n.writer.createElement("$marker",{"data-name":i})}}(t=Ks(t)),aa(t)}(t))}dataToMarker(t){return this.add(function(t){(t=Ks(t)).model||(t.model=e=>e?t.view+":"+e:t.view);const e=la(ha(t,"start")),n=la(ha(t,"end"));return i=>{i.on("element:"+t.view+"-start",e,{priority:t.converterPriority||"normal"}),i.on("element:"+t.view+"-end",n,{priority:t.converterPriority||"normal"});const o=un.get("low"),r=un.get("highest"),s=un.get(t.converterPriority)/r;i.on("element",function(t){return(e,n,i)=>{const o="data-"+t.view;function r(e,o){for(const r of o){const o=t.model(r,i),s=i.writer.createElement("$marker",{"data-name":o});i.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}n.modelRange||(n=Object.assign(n,i.convertChildren(n.viewItem,n.modelCursor))),i.consumable.consume(n.viewItem,{attributes:o+"-end-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(o+"-end-after").split(",")),i.consumable.consume(n.viewItem,{attributes:o+"-start-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(o+"-start-after").split(",")),i.consumable.consume(n.viewItem,{attributes:o+"-end-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(o+"-end-before").split(",")),i.consumable.consume(n.viewItem,{attributes:o+"-start-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(o+"-start-before").split(","))}}(t),{priority:o+s})}}(t))}}function aa(t){const e=la(t=Ks(t)),n=ca(t.view),i=n?"element:"+n:"element";return n=>{n.on(i,e,{priority:t.converterPriority||"normal"})}}function ca(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function la(t){const e=new jn(t.view);return(n,i,o)=>{const r=e.match(i.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!o.consumable.test(i.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,i.viewItem,o);a&&o.safeInsert(a,i.modelCursor)&&(o.consumable.consume(i.viewItem,s),o.convertChildren(i.viewItem,a),o.updateConversionResult(a,i))}}function da(t,e=null){const n=null===e||(t=>t.getAttribute(e)),i="object"!=typeof t.model?t.model:t.model.key,o="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:i,value:o}}function ua(t,e){const n=new jn(t.view);return(i,o,r)=>{const s=n.match(o.viewItem);if(!s)return;const a=t.model.key,c="function"==typeof t.model.value?t.model.value(o.viewItem,r):t.model.value;if(null===c)return;if(!function(t,e){const n="function"==typeof t?t(e):t;if("object"==typeof n&&!ca(n))return!1;return!n.classes&&!n.attributes&&!n.styles}(t.view,o.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(o.viewItem,s.match))return;o.modelRange||(o=Object.assign(o,r.convertChildren(o.viewItem,o.modelCursor)));(function(t,e,n,i){let o=!1;for(const r of Array.from(t.getItems({shallow:n})))i.schema.checkAttribute(r,e.key)&&(i.writer.setAttribute(e.key,e.value,r),o=!0);return o})(o.modelRange,{key:a,value:c},e,r)&&r.consumable.consume(o.viewItem,s.match)}}function ha(t,e){const n={};return n.view=t.view+"-"+e,n.model=(e,n)=>{const i=e.getAttribute("name"),o=t.model(i,n);return n.writer.createElement("$marker",{"data-name":o})},n}class fa{constructor(t,e){this.model=t,this.view=new bs(e),this.mapper=new Ms,this.downcastDispatcher=new Os({mapper:this.mapper,schema:t.schema});const n=this.model.document,i=n.selection,o=this.model.markers;this.listenTo(this.model,"_beforeChanges",()=>{this.view._disableRendering(!0)},{priority:"highest"}),this.listenTo(this.model,"_afterChanges",()=>{this.view._disableRendering(!1)},{priority:"lowest"}),this.listenTo(n,"change",()=>{this.view.change(t=>{this.downcastDispatcher.convertChanges(n.differ,o,t),this.downcastDispatcher.convertSelection(i,o,t)})},{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,i)=>{const o=i.newSelection,r=[];for(const t of o.getRanges())r.push(e.toModelRange(t));const s=t.createSelection(r,{backward:o.isBackward});s.isEqual(t.document.selection)||t.change(t=>{t.setSelection(s)})}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",(t,e,n)=>{if(!n.consumable.consume(e.item,"insert"))return;const i=n.writer,o=n.mapper.toViewPosition(e.range.start),r=i.createText(e.item.data);i.insert(o,r)},{priority:"lowest"}),this.downcastDispatcher.on("remove",(t,e,n)=>{const i=n.mapper.toViewPosition(e.position),o=e.position.getShiftedBy(e.length),r=n.mapper.toViewPosition(o,{isPhantom:!0}),s=n.writer.createRange(i,r),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t)},{priority:"low"}),this.downcastDispatcher.on("selection",(t,e,n)=>{const i=n.writer,o=i.document.selection;for(const t of o.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);i.setSelection(null)},{priority:"low"}),this.downcastDispatcher.on("selection",(t,e,n)=>{const i=e.selection;if(i.isCollapsed)return;if(!n.consumable.consume(i,"selection"))return;const o=[];for(const t of i.getRanges()){const e=n.mapper.toViewRange(t);o.push(e)}n.writer.setSelection(o,{backward:i.isBackward})},{priority:"low"}),this.downcastDispatcher.on("selection",(t,e,n)=>{const i=e.selection;if(!i.isCollapsed)return;if(!n.consumable.consume(i,"selection"))return;const o=n.writer,r=i.getFirstPosition(),s=n.mapper.toViewPosition(r),a=o.breakAttributes(s);o.setSelection(a)},{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using(t=>{if("$graveyard"==t.rootName)return null;const e=new Ji(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e})}destroy(){this.view.destroy(),this.stopListening()}}xn(fa,Hi);class ma{constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new hn.a("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}class ga{constructor(){this._consumables=new Map}add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new pa(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const i=t.getClassNames();for(const t of i)e.classes.push(t);const o=t.getStyleNames();for(const t of o)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new ga(t)),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,ga.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=ga.createFrom(n,e);return e}}class pa{constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e in this._consumables)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e in this._consumables)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e in this._consumables)e in t&&this._revert(e,t[e])}_add(t,e){const n=Dt(e)?e:[e],i=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new hn.a("viewconsumable-invalid-attribute",this);if(i.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))i.set(t,!0)}}_test(t,e){const n=Dt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=i.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=Dt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(i.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))i.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=Dt(e)?e:[e],i=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){!1===i.get(e)&&i.set(e,!0)}else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class ba{constructor(){this._sourceDefinitions={},this._attributeProperties={},this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",(t,e)=>{e[0]=new wa(e[0])},{priority:"highest"}),this.on("checkChild",(t,e)=>{e[0]=new wa(e[0]),e[1]=this.getDefinition(e[1])},{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new hn.a("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new hn.a("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:t.is&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!!e&&!(!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!!e&&!(!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!!e&&!(!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e=null){if(t instanceof Cs){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof ys))throw new hn.a("schema-check-merge-no-element-before",this);if(!(n instanceof ys))throw new hn.a("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",(e,[n,i])=>{if(!i)return;const o=t(n,i);"boolean"==typeof o&&(e.stop(),e.return=o)},{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",(e,[n,i])=>{const o=t(n,i);"boolean"==typeof o&&(e.stop(),e.return=o)},{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;if(t instanceof Cs)e=t.parent;else{e=(t instanceof Es?[t]:Array.from(t.getRanges())).reduce((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n},null)}for(;!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new ks("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if(this.checkChild(t,"$text"))return new Es(t);let n,i;const o=t.getAncestors().reverse().find(t=>this.isLimit(t))||t.root;"both"!=e&&"backward"!=e||(n=new xs({boundaries:Es._createIn(o),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(i=new xs({boundaries:Es._createIn(o),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,i)){const e=t.walker==n?"elementEnd":"elementStart",i=t.value;if(i.type==e&&this.isObject(i.item))return Es._createOn(i.item);if(this.checkChild(i.nextPosition,"$text"))return new Es(i.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))Ea(this,n,e);else{const t=Es._createIn(n).getPositions();for(const n of t){Ea(this,n.nodeBefore||n.parent,e)}}}createContext(t){return new wa(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const i of n)t[i]=ka(e[i],i);for(const e of n)_a(t,e);for(const e of n)va(t,e);for(const e of n)ya(t,e),xa(t,e);for(const e of n)Aa(t,e),Ca(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const i=e.getItem(n);if(t.allowIn.includes(i.name)){if(0==n)return!0;{const t=this.getDefinition(i);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,i=t.start;for(const o of t.getItems({shallow:!0}))o.is("element")&&(yield*this._getValidRangesForRange(Es._createIn(o),e)),this.checkAttribute(o,e)||(n.isEqual(i)||(yield new Es(n,i)),n=Cs._createAfter(o)),i=Cs._createAfter(o);n.isEqual(i)||(yield new Es(n,i))}}xn(ba,Hi);class wa{constructor(t){if(t instanceof wa)return t;"string"==typeof t?t=[t]:Array.isArray(t)||(t=t.getAncestors({includeSelf:!0})),t[0]&&"string"!=typeof t[0]&&t[0].is("documentFragment")&&t.shift(),this._items=t.map(Sa)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new wa([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map(t=>t.name)}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function ka(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter(t=>t.startsWith("is"));for(const i of t)e[i]=n[i]}}(t,n),Ta(t,n,"allowIn"),Ta(t,n,"allowContentOf"),Ta(t,n,"allowWhere"),Ta(t,n,"allowAttributes"),Ta(t,n,"allowAttributesOf"),Ta(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function _a(t,e){for(const n of t[e].allowContentOf)if(t[n]){Pa(t,n).forEach(t=>{t.allowIn.push(e)})}delete t[e].allowContentOf}function va(t,e){for(const n of t[e].allowWhere){const i=t[n];if(i){const n=i.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function ya(t,e){for(const n of t[e].allowAttributesOf){const i=t[n];if(i){const n=i.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function xa(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const i=t[e];if(i){const t=Object.keys(i).filter(t=>t.startsWith("is"));for(const e of t)e in n||(n[e]=i[e])}}delete n.inheritTypesFrom}function Aa(t,e){const n=t[e],i=n.allowIn.filter(e=>t[e]);n.allowIn=Array.from(new Set(i))}function Ca(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function Ta(t,e,n){for(const i of t)"string"==typeof i[n]?e[n].push(i[n]):Array.isArray(i[n])&&e[n].push(...i[n])}function Pa(t,e){const n=t[e];return(i=t,Object.keys(i).map(t=>i[t])).filter(t=>t.allowIn.includes(n.name));var i}function Sa(t){return"string"==typeof t?{name:t,*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function Ea(t,e,n){for(const i of e.getAttributeKeys())t.checkAttribute(e,i)||n.removeAttribute(i,e)}class Ma{constructor(t={}){this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this.conversionApi=Object.assign({},t),this.conversionApi.convertItem=this._convertItem.bind(this),this.conversionApi.convertChildren=this._convertChildren.bind(this),this.conversionApi.safeInsert=this._safeInsert.bind(this),this.conversionApi.updateConversionResult=this._updateConversionResult.bind(this),this.conversionApi.splitToAllowedParent=this._splitToAllowedParent.bind(this),this.conversionApi.getSplitParts=this._getSplitParts.bind(this)}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const i of new wa(t)){const t={};for(const e of i.getAttributeKeys())t[e]=i.getAttribute(e);const o=e.createElement(i.name,t);n&&e.append(o,n),n=Cs._createAt(o,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=ga.createFrom(t),this.conversionApi.store={};const{modelRange:i}=this._convertItem(t,this._modelCursor),o=e.createDocumentFragment();if(i){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,o);o.markers=function(t,e){const n=new Set,i=new Map,o=Es._createIn(t).getItems();for(const t of o)"$marker"==t.name&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),o=e.createPositionBefore(t);i.has(n)?i.get(n).end=o.clone():i.set(n,new Es(o.clone())),e.remove(t)}return i}(o,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,o}_convertItem(t,e){const n=Object.assign({viewItem:t,modelCursor:e,modelRange:null});if(t.is("element")?this.fire("element:"+t.name,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof Es))throw new hn.a("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:Cs._createAt(e,0);const i=new Es(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof Es&&(i.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:i,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),i=this.conversionApi.writer;e.modelRange||(e.modelRange=i.createRange(i.createPositionBefore(t),i.createPositionAfter(n[n.length-1])));const o=this._cursorParents.get(t);e.modelCursor=o?i.createPositionAt(o,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:i}=this.conversionApi;let o=n.findAllowedParent(e,t);if(o){if(o===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(o)&&(o=null)}if(!o)return oa(e,t,n)?{position:ra(e,i)}:null;const r=this.conversionApi.writer.split(e,o),s=[];for(const t of r.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=r.range.end.parent;return this._cursorParents.set(t,a),{position:r.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}xn(Ma,gn);class Ia{constructor(t,e){this.model=t,this.stylesProcessor=e,this.processor=void 0,this.mapper=new Ms,this.downcastDispatcher=new Os({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",(t,e,n)=>{if(!n.consumable.consume(e.item,"insert"))return;const i=n.writer,o=n.mapper.toViewPosition(e.range.start),r=i.createText(e.item.data);i.insert(o,r)},{priority:"lowest"}),this.upcastDispatcher=new Ma({schema:t.schema}),this.viewDocument=new ro(e),this._viewWriter=new Mo(this.viewDocument),this.upcastDispatcher.on("text",(t,e,{schema:n,consumable:i,writer:o})=>{let r=e.modelCursor;if(!i.test(e.viewItem))return;if(!n.checkChild(r,"$text")){if(!oa(r,"$text",n))return;r=ra(r,o)}i.consume(e.viewItem);const s=o.createText(e.viewItem.data);o.insert(s,r),e.modelRange=o.createRange(r,r.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end},{priority:"lowest"}),this.upcastDispatcher.on("element",(t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=i}},{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",(t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=i}},{priority:"lowest"}),this.decorate("init"),this.decorate("set"),this.on("init",()=>{this.fire("ready")},{priority:"lowest"}),this.on("ready",()=>{this.model.enqueueChange("transparent",ia)},{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new hn.a("datacontroller-get-non-existent-root",this);const i=this.model.document.getRoot(e);return"empty"!==n||this.model.hasContent(i,{ignoreWhitespaces:!0})?this.stringify(i,t):""}stringify(t,e){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e){const n=this.viewDocument,i=this._viewWriter;this.mapper.clearBindings();const o=Es._createIn(t),r=new Eo(n);if(this.mapper.bindElements(t,r),this.downcastDispatcher.conversionApi.options=e,this.downcastDispatcher.convertInsert(o,i),!t.is("documentFragment")){const e=function(t){const e=[],n=t.root.document;if(!n)return[];const i=Es._createIn(t);for(const t of n.model.markers){const n=i.getIntersection(t.getRange());n&&e.push([t.name,n])}return e}(t);for(const[t,n]of e)this.downcastDispatcher.convertMarkerAdd(t,n,i)}return delete this.downcastDispatcher.conversionApi.options,r}init(t){if(this.model.document.version)throw new hn.a("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new hn.a("datacontroller-init-non-existent-root",this);return this.model.enqueueChange("transparent",t=>{for(const n of Object.keys(e)){const i=this.model.document.getRoot(n);t.insert(this.parse(e[n],i),i,0)}}),Promise.resolve()}set(t){let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new hn.a("datacontroller-set-non-existent-root",this);this.model.enqueueChange("transparent",t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const n of Object.keys(e)){const i=this.model.document.getRoot(n);t.remove(t.createRangeIn(i)),t.insert(this.parse(e[n],i),i,0)}})}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change(n=>this.upcastDispatcher.convert(t,n,e))}addStyleProcessorRules(t){t(this.stylesProcessor)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRootNames().includes(e))return!1;return!0}}xn(Ia,Hi);class Na{constructor(t,e){this._helpers=new Map,this._downcast=Tn(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Tn(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new hn.a("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new hn.a("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of Oa(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of Oa(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of Oa(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new hn.a("conversion-group-exists",this);const i=n?new Qs(e):new sa(e);this._helpers.set(t,i)}}function*Oa(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},i=t.view[e],o=t.upcastAlso?t.upcastAlso[e]:void 0;yield*Ra(n,i,o)}else yield*Ra(t.model,t.view,t.upcastAlso)}function*Ra(t,e,n){if(yield{model:t,view:e},n)for(const e of Tn(n))yield{model:t,view:e}}class Da{constructor(t="default"){this.operations=[],this.type=t}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class La{constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t){return new this(t.baseVersion)}}class Va{constructor(t){this.markers=new Map,this._children=new vs,t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}is(t){return"documentFragment"===t||"model:documentFragment"===t}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(ys.fromJSON(n)):e.push(ks.fromJSON(n));return new Va(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new ks(t)];yn(t)||(t=[t]);return Array.from(t).map(t=>"string"==typeof t?new ks(t):t instanceof _s?new ks(t.data,t.getAttributes()):t)}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}function ja(t,e){const n=(e=Fa(e)).reduce((t,e)=>t+e.offsetSize,0),i=t.parent;Ha(t);const o=t.index;return i._insertChild(o,e),Ua(i,o+e.length),Ua(i,o),new Es(t,t.getShiftedBy(n))}function za(t){if(!t.isFlat)throw new hn.a("operation-utils-remove-range-not-flat",this);const e=t.start.parent;Ha(t.start),Ha(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return Ua(e,t.start.index),n}function Ba(t,e){if(!t.isFlat)throw new hn.a("operation-utils-move-range-not-flat",this);const n=za(t);return ja(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function Fa(t){const e=[];t instanceof Array||(t=[t]);for(let n=0;nt.maxOffset)throw new hn.a("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0))),e=new Ka(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new Cs(t,[0]);return new Ga(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0))),ja(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(ys.fromJSON(e)):n.push(ks.fromJSON(e));const i=new Ka(Cs.fromJSON(t.position,e),n,t.baseVersion);return i.shouldReceiveAttributes=t.shouldReceiveAttributes,i}}class Qa extends La{constructor(t,e,n,i,o,r){super(r),this.name=t,this.oldRange=e?e.clone():null,this.newRange=n?n.clone():null,this.affectsData=o,this._markers=i}get type(){return"marker"}clone(){return new Qa(this.name,this.oldRange,this.newRange,this._markers,this.affectsData,this.baseVersion)}getReversed(){return new Qa(this.name,this.newRange,this.oldRange,this._markers,this.affectsData,this.baseVersion+1)}_execute(){const t=this.newRange?"_set":"_remove";this._markers[t](this.name,this.newRange,!0,this.affectsData)}toJSON(){const t=super.toJSON();return this.oldRange&&(t.oldRange=this.oldRange.toJSON()),this.newRange&&(t.newRange=this.newRange.toJSON()),delete t._markers,t}static get className(){return"MarkerOperation"}static fromJSON(t,e){return new Qa(t.name,t.oldRange?Es.fromJSON(t.oldRange,e):null,t.newRange?Es.fromJSON(t.newRange,e):null,e.model.markers,t.affectsData,t.baseVersion)}}class Ja extends La{constructor(t,e,n,i){super(i),this.position=t,this.position.stickiness="toNext",this.oldName=e,this.newName=n}get type(){return"rename"}clone(){return new Ja(this.position.clone(),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Ja(this.position.clone(),this.newName,this.oldName,this.baseVersion+1)}_validate(){const t=this.position.nodeAfter;if(!(t instanceof ys))throw new hn.a("rename-operation-wrong-position",this);if(t.name!==this.oldName)throw new hn.a("rename-operation-wrong-name",this)}_execute(){this.position.nodeAfter.name=this.newName}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t}static get className(){return"RenameOperation"}static fromJSON(t,e){return new Ja(Cs.fromJSON(t.position,e),t.oldName,t.newName,t.baseVersion)}}class Za extends La{constructor(t,e,n,i,o){super(o),this.root=t,this.key=e,this.oldValue=n,this.newValue=i}get type(){return null===this.oldValue?"addRootAttribute":null===this.newValue?"removeRootAttribute":"changeRootAttribute"}clone(){return new Za(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new Za(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_validate(){if(this.root!=this.root.root||this.root.is("documentFragment"))throw new hn.a("rootattribute-operation-not-a-root",this,{root:this.root,key:this.key});if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new hn.a("rootattribute-operation-wrong-old-value",this,{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new hn.a("rootattribute-operation-attribute-exists",this,{root:this.root,key:this.key})}_execute(){null!==this.newValue?this.root._setAttribute(this.key,this.newValue):this.root._removeAttribute(this.key)}toJSON(){const t=super.toJSON();return t.root=this.root.toJSON(),t}static get className(){return"RootAttributeOperation"}static fromJSON(t,e){if(!e.getRoot(t.root))throw new hn.a("rootattribute-operation-fromjson-no-root",this,{rootName:t.root});return new Za(e.getRoot(t.root),t.key,t.oldValue,t.newValue,t.baseVersion)}}class Xa extends La{constructor(t,e,n,i,o){super(o),this.sourcePosition=t.clone(),this.sourcePosition.stickiness="toPrevious",this.howMany=e,this.targetPosition=n.clone(),this.targetPosition.stickiness="toNext",this.graveyardPosition=i.clone()}get type(){return"merge"}get deletionPosition(){return new Cs(this.sourcePosition.root,this.sourcePosition.path.slice(0,-1))}get movedRange(){const t=this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);return new Es(this.sourcePosition,t)}clone(){return new this.constructor(this.sourcePosition,this.howMany,this.targetPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.targetPosition._getTransformedByMergeOperation(this),e=this.sourcePosition.path.slice(0,-1),n=new Cs(this.sourcePosition.root,e)._getTransformedByMergeOperation(this),i=new tc(t,this.howMany,this.graveyardPosition,this.baseVersion+1);return i.insertionPosition=n,i}_validate(){const t=this.sourcePosition.parent,e=this.targetPosition.parent;if(!t.parent)throw new hn.a("merge-operation-source-position-invalid",this);if(!e.parent)throw new hn.a("merge-operation-target-position-invalid",this);if(this.howMany!=t.maxOffset)throw new hn.a("merge-operation-how-many-invalid",this)}_execute(){const t=this.sourcePosition.parent;Ba(Es._createIn(t),this.targetPosition),Ba(Es._createOn(t),this.graveyardPosition)}toJSON(){const t=super.toJSON();return t.sourcePosition=t.sourcePosition.toJSON(),t.targetPosition=t.targetPosition.toJSON(),t.graveyardPosition=t.graveyardPosition.toJSON(),t}static get className(){return"MergeOperation"}static fromJSON(t,e){const n=Cs.fromJSON(t.sourcePosition,e),i=Cs.fromJSON(t.targetPosition,e),o=Cs.fromJSON(t.graveyardPosition,e);return new this(n,t.howMany,i,o,t.baseVersion)}}class tc extends La{constructor(t,e,n,i){super(i),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=tc.getInsertionPosition(t),this.insertionPosition.stickiness="toNone",this.graveyardPosition=n?n.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new Cs(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new Es(this.splitPosition,t)}clone(){const t=new this.constructor(this.splitPosition,this.howMany,this.graveyardPosition,this.baseVersion);return t.insertionPosition=this.insertionPosition,t}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new Cs(t,[0]);return new Xa(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof Es)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof Es))throw new hn.a("writer-move-invalid-range",this);if(!t.isFlat)throw new hn.a("writer-move-range-not-flat",this);const i=Cs._createAt(e,n);if(i.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!ac(t.root,i.root))throw new hn.a("writer-move-different-document",this);const o=t.root.document?t.root.document.version:null,r=new Ga(t.start,t.end.offset-t.start.offset,i,o);this.batch.addOperation(r),this.model.applyOperation(r)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof Es?t:Es._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),sc(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof ys))throw new hn.a("writer-merge-no-element-before",this);if(!(n instanceof ys))throw new hn.a("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(t,e,n){return this.model.createSelection(t,e,n)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(Es._createIn(n),Cs._createAt(e,"end")),this.remove(n)}_merge(t){const e=Cs._createAt(t.nodeBefore,"end"),n=Cs._createAt(t.nodeAfter,0),i=t.root.document.graveyard,o=new Cs(i,[0]),r=t.root.document.version,s=new Xa(n,t.nodeAfter.maxOffset,e,o,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof ys))throw new hn.a("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,i=new Ja(Cs._createBefore(t),t.name,e,n);this.batch.addOperation(i),this.model.applyOperation(i)}split(t,e){this._assertWriterUsedCorrectly();let n,i,o=t.parent;if(!o.parent)throw new hn.a("writer-split-element-no-parent",this);if(e||(e=o.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new hn.a("writer-split-invalid-limit-element",this);do{const e=o.root.document?o.root.document.version:null,r=o.maxOffset-t.offset,s=new tc(t,r,null,e);this.batch.addOperation(s),this.model.applyOperation(s),n||i||(n=o,i=t.parent.nextSibling),o=(t=this.createPositionAfter(t.parent)).parent}while(o!==e);return{position:t,range:new Es(Cs._createAt(n,"end"),Cs._createAt(i,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new hn.a("writer-wrap-range-not-flat",this);const n=e instanceof ys?e:new ys(e);if(n.childCount>0)throw new hn.a("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new hn.a("writer-wrap-element-attached",this);this.insert(n,t.start);const i=new Es(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(i,Cs._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new hn.a("writer-unwrap-element-no-parent",this);this.move(Es._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new hn.a("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,i=e.range,o=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new hn.a("writer-addmarker-marker-exists",this);if(!i)throw new hn.a("writer-addmarker-no-range",this);return n?(rc(this,t,null,i,o),this.model.markers.get(t)):this.model.markers._set(t,i,n,o)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,i=this.model.markers.get(n);if(!i)throw new hn.a("writer-updatemarker-marker-not-exists",this);if(!e)return void this.model.markers._refresh(i);const o="boolean"==typeof e.usingOperation,r="boolean"==typeof e.affectsData,s=r?e.affectsData:i.affectsData;if(!o&&!e.range&&!r)throw new hn.a("writer-updatemarker-wrong-options",this);const a=i.getRange(),c=e.range?e.range:a;o&&e.usingOperation!==i.managedUsingOperations?e.usingOperation?rc(this,n,null,c,s):(rc(this,n,a,null,s),this.model.markers._set(n,c,void 0,s)):i.managedUsingOperations?rc(this,n,a,c,s):this.model.markers._set(n,c,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new hn.a("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);if(!n.managedUsingOperations)return void this.model.markers._remove(e);rc(this,e,n.getRange(),null,n.affectsData)}setSelection(t,e,n){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(t,e,n)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of Vn(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const i=qs._getStoreAttributeKey(t);this.setAttribute(i,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=qs._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new hn.a("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const i=n.getRange();let o=!1;if("move"===t)o=e.containsPosition(i.start)||e.start.isEqual(i.start)||e.containsPosition(i.end)||e.end.isEqual(i.end);else{const t=e.nodeBefore,n=e.nodeAfter,r=i.start.parent==t&&i.start.isAtEnd,s=i.end.parent==n&&0==i.end.offset,a=i.end.nodeAfter==n,c=i.start.nodeAfter==n;o=r||s||a||c}o&&this.updateMarker(n.name,{range:i})}}}function ic(t,e,n,i){const o=t.model,r=o.document;let s,a,c,l=i.start;for(const t of i.getWalker({shallow:!0}))c=t.item.getAttribute(e),s&&a!=c&&(a!=n&&d(),l=s),s=t.nextPosition,a=c;function d(){const i=new Es(l,s),c=i.root.document?r.version:null,d=new $a(i,e,a,n,c);t.batch.addOperation(d),o.applyOperation(d)}s instanceof Cs&&s!=l&&a!=n&&d()}function oc(t,e,n,i){const o=t.model,r=o.document,s=i.getAttribute(e);let a,c;if(s!=n){if(i.root===i){const t=i.document?r.version:null;c=new Za(i,e,s,n,t)}else{a=new Es(Cs._createBefore(i),t.createPositionAfter(i));const o=a.root.document?r.version:null;c=new $a(a,e,s,n,o)}t.batch.addOperation(c),o.applyOperation(c)}}function rc(t,e,n,i,o){const r=t.model,s=r.document,a=new Qa(e,n,i,r.markers,o,s.version);t.batch.addOperation(a),r.applyOperation(a)}function sc(t,e,n,i){let o;if(t.root.document){const n=i.document,r=new Cs(n.graveyard,[0]);o=new Ga(t,e,r,n.version)}else o=new Ya(t,e);n.addOperation(o),i.applyOperation(o)}function ac(t,e){return t===e||t instanceof ec&&e instanceof ec}class cc{constructor(t){this._markerCollection=t,this._changesInElement=new Map,this._elementSnapshots=new Map,this._changedMarkers=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size}refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize);const e=Es._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getRange();this.bufferMarkerChange(t.name,e,e,t.affectsData)}this._cachedChanges=null}bufferOperation(t){switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),n=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),n||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=Es._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getRange();this.bufferMarkerChange(t.name,e,e,t.affectsData)}break}case"split":{const e=t.splitPosition.parent;this._isInInsertedElement(e)||this._markRemove(e,t.splitPosition.offset,t.howMany),this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1);break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const n=t.graveyardPosition.parent;this._markInsert(n,t.graveyardPosition.offset,1);const i=t.targetPosition.parent;this._isInInsertedElement(i)||this._markInsert(i,t.targetPosition.offset,e.maxOffset);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n,i){const o=this._changedMarkers.get(t);o?(o.newRange=n,o.affectsData=i,null==o.oldRange&&null==o.newRange&&this._changedMarkers.delete(t)):this._changedMarkers.set(t,{oldRange:e,newRange:n,affectsData:i})}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldRange&&t.push({name:e,range:n.oldRange});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newRange&&t.push({name:e,range:n.newRange});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map(t=>({name:t[0],data:{oldRange:t[1].oldRange,newRange:t[1].newRange}}))}hasDataChanges(){for(const[,t]of this._changedMarkers)if(t.affectsData)return!0;return this._changesInElement.size>0}getChanges(t={includeChangesInGraveyard:!1}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();const e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamen.offset){if(i>o){const t={type:"attribute",offset:o,howMany:i-o,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offseto?(t.nodesToHandle=i-o,t.offset=o):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const o={type:"attribute",offset:n.offset,howMany:i-n.offset,count:this._changeCount++};this._handleChange(o,e),e.push(o),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&i<=o?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&i>=o&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:Cs._createAt(t,e),name:n,length:1,changeCount:this._changeCount++}}_getRemoveDiff(t,e,n){return{type:"remove",position:Cs._createAt(t,e),name:n,length:1,changeCount:this._changeCount++}}_getAttributesDiff(t,e,n){const i=[];n=new Map(n);for(const[o,r]of e){const e=n.has(o)?n.get(o):null;e!==r&&i.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:o,attributeOldValue:r,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(o)}for(const[e,o]of n)i.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:o,changeCount:this._changeCount++});return i}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),i=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&i>=t.offset&&ii){for(let e=0;e=t&&i.baseVersion{const n=e[0];if(n.isDocumentOperation&&n.baseVersion!==this.version)throw new hn.a("model-document-applyoperation-wrong-version",this,{operation:n})},{priority:"highest"}),this.listenTo(t,"applyOperation",(t,e)=>{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)},{priority:"high"}),this.listenTo(t,"applyOperation",(t,e)=>{const n=e[0];n.isDocumentOperation&&(this.version++,this.history.addOperation(n))},{priority:"low"}),this.listenTo(this.selection,"change",()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0}),this.listenTo(t.markers,"update",(t,e,n,i)=>{this.differ.bufferMarkerChange(e.name,n,i,e.affectsData),null===n&&e.on("change",(t,n)=>{this.differ.bufferMarkerChange(e.name,n,e.getRange(),e.affectsData)})})}get graveyard(){return this.getRoot("$graveyard")}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new hn.a("model-document-createroot-name-exists",this,{name:e});const n=new ec(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(){return Array.from(this.roots,t=>t.rootName).filter(t=>"$graveyard"!=t)}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=On(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){for(const t of this.roots)if(t!==this.graveyard)return t;return this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,i=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(i)||e.createRange(i)}_validateSelectionRange(t){return pc(t.start)&&pc(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function pc(t){const e=t.textNode;if(e){const n=e.data,i=t.offset-e.startOffset;return!fc(n,i)&&!mc(n,i)}return!0}xn(gc,gn);class bc{constructor(){this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(t){return this._markers.has(t)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,i=!1){const o=t instanceof wc?t.name:t;if(o.includes(","))throw new hn.a("markercollection-incorrect-marker-name",this);const r=this._markers.get(o);if(r){const t=r.getRange();let s=!1;return t.isEqual(e)||(r._attachLiveRange(Us.fromRange(e)),s=!0),n!=r.managedUsingOperations&&(r._managedUsingOperations=n,s=!0),"boolean"==typeof i&&i!=r.affectsData&&(r._affectsData=i,s=!0),s&&this.fire("update:"+o,r,t,e),r}const s=Us.fromRange(e),a=new wc(o,s,n,i);return this._markers.set(o,a),this.fire("update:"+o,a,null,e),a}_remove(t){const e=t instanceof wc?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire("update:"+e,n,n.getRange(),null),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof wc?t.name:t,n=this._markers.get(e);if(!n)throw new hn.a("markercollection-refresh-marker-not-exists",this);const i=n.getRange();this.fire("update:"+e,n,i,i,n.managedUsingOperations,n.affectsData)}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}xn(bc,gn);class wc{constructor(t,e,n,i){this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=i}get managedUsingOperations(){if(!this._liveRange)throw new hn.a("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new hn.a("marker-destroyed",this);return this._affectsData}getStart(){if(!this._liveRange)throw new hn.a("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new hn.a("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new hn.a("marker-destroyed",this);return this._liveRange.toRange()}is(t){return"marker"===t||"model:marker"===t}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}xn(wc,gn);class kc extends La{get type(){return"noop"}clone(){return new kc(this.baseVersion)}getReversed(){return new kc(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}const _c={};_c[$a.className]=$a,_c[Ka.className]=Ka,_c[Qa.className]=Qa,_c[Ga.className]=Ga,_c[kc.className]=kc,_c[La.className]=La,_c[Ja.className]=Ja,_c[Za.className]=Za,_c[tc.className]=tc,_c[Xa.className]=Xa;class vc extends Cs{constructor(t,e,n="toNone"){if(super(t,e,n),!this.root.is("rootElement"))throw new hn.a("model-liveposition-root-not-rootelement",t);yc.call(this)}detach(){this.stopListening()}is(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t}toPosition(){return new Cs(this.root,this.path.slice(),this.stickiness)}static fromPosition(t,e){return new this(t.root,t.path.slice(),e||t.stickiness)}}function yc(){this.listenTo(this.root.document.model,"applyOperation",(t,e)=>{const n=e[0];n.isDocumentOperation&&xc.call(this,n)},{priority:"low"})}function xc(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}xn(vc,gn);class Ac{constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._filterAttributesOf=[],this._affectedStart=null,this._affectedEnd=null}handleNodes(t,e){t=Array.from(t);for(let n=0;n{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const i=e.getFirstRange();if(i.start.parent==i.end.parent)return!1;return t.checkChild(n,"paragraph")}(o,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),Pc(t,t.createPositionAt(n,0),e)}(t,e);const[r,s]=function(t){const e=t.root.document.model,n=t.start;let i=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,i=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of i){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(i);if(n&&i.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"}),i=n.getLastPosition()}}return[vc.fromPosition(n,"toPrevious"),vc.fromPosition(i,"toNext")]}(i);r.isTouching(s)||t.remove(t.createRange(r,s)),n.leaveUnmerged||(!function(t,e,n){const i=t.model;if(!Tc(t.model.schema,e,n))return;const[o,r]=function(t,e){const n=t.getAncestors(),i=e.getAncestors();let o=0;for(;n[o]&&n[o]==i[o];)o++;return[n[o],i[o]]}(e,n);if(!o||!r)return;!i.hasContent(o,{ignoreMarkers:!0})&&i.hasContent(r,{ignoreMarkers:!0})?function t(e,n,i,o){const r=n.parent,s=i.parent;if(r==o||s==o)return;n=e.createPositionAfter(r),(i=e.createPositionBefore(s)).isEqual(n)||e.insert(r,i);for(;n.parent.isEmpty;){const t=n.parent;n=e.createPositionBefore(t),e.remove(t)}if(i=e.createPositionBefore(s),function(t,e){const n=e.nodeBefore,i=e.nodeAfter;n.name!=i.name&&t.rename(n,i.name);t.clearAttributes(n),t.setAttributes(Object.fromEntries(i.getAttributes()),n),t.merge(e)}(e,i),!Tc(e.model.schema,n,i))return;t(e,n,i,o)}(t,e,n,o.parent):function t(e,n,i,o){const r=n.parent,s=i.parent;if(r==o||s==o)return;n=e.createPositionAfter(r),(i=e.createPositionBefore(s)).isEqual(n)||e.insert(s,n);e.merge(n);for(;i.parent.isEmpty;){const t=i.parent;i=e.createPositionBefore(t),e.remove(t)}if(!Tc(e.model.schema,n,i))return;t(e,n,i,o)}(t,e,n,o.parent)}(t,r,s),o.removeDisallowedAttributes(r.parent.getChildren(),t)),Sc(t,e,r),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),i=t.checkChild(e,"paragraph");return!n&&i}(o,r)&&Pc(t,r,e),r.detach(),s.detach()})}function Tc(t,e,n){const i=e.parent,o=n.parent;return i!=o&&(!t.isLimit(i)&&!t.isLimit(o)&&function(t,e,n){const i=new Es(t,e);for(const t of i.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t))}function Pc(t,e,n){const i=t.createElement("paragraph");t.insert(i,e),Sc(t,n,t.createPositionAt(i,0))}function Sc(t,e,n){e instanceof qs?t.setSelection(n):e.setTo(n)}function Ec(t,e){const{isForward:n,walker:i,unit:o,schema:r}=t,{type:s,item:a,nextPosition:c}=e;if("text"==s)return"word"===t.unit?function(t,e){let n=t.position.textNode;if(n){let i=t.position.offset-n.startOffset;for(;!Ic(n.data,i,e)&&!Nc(n,i,e);){t.next();const o=e?t.position.nodeAfter:t.position.nodeBefore;if(o&&o.is("$text")){const i=o.data.charAt(e?0:o.data.length-1);' ,.?!:;"-()'.includes(i)||(t.next(),n=t.position.textNode)}i=t.position.offset-n.startOffset}}return t.position}(i,n):function(t,e){const n=t.position.textNode;if(n){const i=n.data;let o=t.position.offset-n.startOffset;for(;fc(i,o)||"character"==e&&mc(i,o);)t.next(),o=t.position.offset-n.startOffset}return t.position}(i,o);if(s==(n?"elementStart":"elementEnd")){if(r.isSelectable(a))return Cs._createAt(a,n?"after":"before");if(r.checkChild(c,"$text"))return c}else{if(r.isLimit(a))return void i.skip(()=>!0);if(r.checkChild(c,"$text"))return c}}function Mc(t,e){const n=t.root,i=Cs._createAt(n,e?"end":0);return e?new Es(t,i):new Es(i,t)}function Ic(t,e,n){const i=e+(n?0:-1);return' ,.?!:;"-()'.includes(t.charAt(i))}function Nc(t,e,n){return e===(n?t.endOffset:0)}function Oc(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map(t=>e.createRangeOn(t)).filter(e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end))).forEach(t=>{n.push(t.start.parent),e.remove(t)}),n.forEach(t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}})}function Rc(t){t.document.registerPostFixer(e=>function(t,e){const n=e.document.selection,i=e.schema,o=[];let r=!1;for(const t of n.getRanges()){const e=Dc(t,i);e&&!e.isEqual(t)?(o.push(e),r=!0):o.push(t)}r&&t.setSelection(function(t){const e=[];e.push(t.shift());for(const n of t){const t=e.pop();if(n.isEqual(t))e.push(t);else if(n.isIntersecting(t)){const i=t.start.isAfter(n.start)?n.start:t.start,o=t.end.isAfter(n.end)?t.end:n.end,r=new Es(i,o);e.push(r)}else e.push(t),e.push(n)}return e}(o),{backward:n.isBackward})}(e,t))}function Dc(t,e){return t.isCollapsed?function(t,e){const n=t.start,i=e.getNearestSelectionRange(n);if(!i)return null;if(!i.isCollapsed)return i;const o=i.start;if(n.isEqual(o))return null;return new Es(o)}(t,e):function(t,e){const{start:n,end:i}=t,o=e.checkChild(n,"$text"),r=e.checkChild(i,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(i);if(s===a){if(o&&r)return null;if(function(t,e,n){const i=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),o=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return i||o}(n,i,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),o=i.nodeBefore&&e.isSelectable(i.nodeBefore)?null:e.getNearestSelectionRange(i,"backward"),r=t?t.start:n,s=o?o.end:i;return new Es(r,s)}}const c=s&&!s.is("rootElement"),l=a&&!a.is("rootElement");if(c||l){const t=n.nodeAfter&&i.nodeBefore&&n.nodeAfter.parent===i.nodeBefore.parent,o=c&&(!t||!Vc(n.nodeAfter,e)),r=l&&(!t||!Vc(i.nodeBefore,e));let d=n,u=i;return o&&(d=Cs._createBefore(Lc(s,e))),r&&(u=Cs._createAfter(Lc(a,e))),new Es(d,u)}return null}(t,e)}function Lc(t,e){let n=t,i=n;for(;e.isLimit(i)&&i.parent;)n=i,i=i.parent;return n}function Vc(t,e){return t&&e.isSelectable(t)}class jc{constructor(){this.markers=new bc,this.document=new gc(this),this.schema=new ba,this._pendingChanges=[],this._currentWriter=null,["insertContent","deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach(t=>this.decorate(t)),this.on("applyOperation",(t,e)=>{e[0]._validate()},{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$block",{allowIn:"$root",isBlock:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",isLimit:!0}),this.schema.extend("$text",{allowIn:"$clipboardHolder"}),this.schema.register("$marker"),this.schema.addChildCheck((t,e)=>{if("$marker"===e.name)return!0}),Rc(this),this.document.registerPostFixer(ia)}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new Da,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){hn.a.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{"string"==typeof t?t=new Da(t):"function"==typeof t&&(e=t,t=new Da),this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){hn.a.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n){return function(t,e,n,i){return t.change(o=>{let r;r=n?n instanceof Vs||n instanceof qs?n:o.createSelection(n,i):t.document.selection,r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0});const s=new Ac(t,o,r.anchor);let a;a=e.is("documentFragment")?e.getChildren():[e],s.handleNodes(a,{isFirst:!0,isLast:!0});const c=s.getSelectionRange();c&&(r instanceof qs?o.setSelection(c):r.setTo(c));const l=s.getAffectedRange()||t.createRange(r.anchor);return s.destroy(),l})}(this,t,e,n)}deleteContent(t,e){Cc(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const i=t.schema,o="backward"!=n.direction,r=n.unit?n.unit:"character",s=e.focus,a=new xs({boundaries:Mc(s,o),singleCharacters:!0,direction:o?"forward":"backward"}),c={walker:a,schema:i,isForward:o,unit:r};let l;for(;l=a.next();){if(l.done)return;const n=Ec(c,l.value);if(n)return void(e instanceof qs?t.change(t=>{t.setSelectionFocus(n)}):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change(t=>{const n=t.createDocumentFragment(),i=e.getFirstRange();if(!i||i.isCollapsed)return n;const o=i.start.root,r=i.start.getCommonPath(i.end),s=o.getNodeByPath(r);let a;a=i.start.parent==i.end.parent?i:t.createRange(t.createPositionAt(s,i.start.path[r.length]),t.createPositionAt(s,i.end.path[r.length]+1));const c=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=i){const e=i._getTransformedByMove(a.start,t.createPositionAt(n,0),c)[0],o=t.createRange(t.createPositionAt(n,0),e.start);Oc(t.createRange(e.end,t.createPositionAt(n,"end")),t),Oc(o,t)}return n})}(this,t)}hasContent(t,e={}){const n=t instanceof ys?Es._createIn(t):t;if(n.isCollapsed)return!1;const{ignoreWhitespaces:i=!1,ignoreMarkers:o=!1}=e;if(!o)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!i)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}createPositionFromPath(t,e,n){return new Cs(t,e,n)}createPositionAt(t,e){return Cs._createAt(t,e)}createPositionAfter(t){return Cs._createAfter(t)}createPositionBefore(t){return Cs._createBefore(t)}createRange(t,e){return new Es(t,e)}createRangeIn(t){return Es._createIn(t)}createRangeOn(t){return Es._createOn(t)}createSelection(t,e,n){return new Vs(t,e,n)}createBatch(t){return new Da(t)}createOperationFromJSON(t){return class{static fromJSON(t,e){return _c[t.__className].fromJSON(t,e)}}.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];for(this.fire("_beforeChanges");this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new nc(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}return this.fire("_afterChanges"),t}}xn(jc,Hi);class zc{constructor(){this._listener=Object.create(mr)}listenTo(t){this._listener.listenTo(t,"keydown",(t,e)=>{this._listener.fire("_keydown:"+bo(e),e)})}set(t,e,n={}){const i=wo(t),o=n.priority;this._listener.listenTo(this._listener,"_keydown:"+i,(t,n)=>{e(n,()=>{n.preventDefault(),n.stopPropagation(),t.stop()}),t.return=!0},{priority:o})}press(t){return!!this._listener.fire("_keydown:"+bo(t),t)}destroy(){this._listener.stopListening()}}class Bc extends zc{constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}class Fc{constructor(t={}){this._context=t.context||new In({language:t.language}),this._context._addEditor(this,!t.context);const e=Array.from(this.constructor.builtinPlugins||[]);this.config=new on(t,this.constructor.defaultConfig),this.config.define("plugins",e),this.config.define(this._context._getEditorConfig()),this.plugins=new Cn(this,e,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this.commands=new ma,this.set("state","initializing"),this.once("ready",()=>this.state="ready",{priority:"high"}),this.once("destroy",()=>this.state="destroyed",{priority:"high"}),this.set("isReadOnly",!1),this.model=new jc;const n=new Ii;this.data=new Ia(this.model,n),this.editing=new fa(this.model,n),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Na([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Bc(this),this.keystrokes.listenTo(this.editing.view.document)}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],i=t.get("extraPlugins")||[];return this.plugins.init(e.concat(i),n)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise(t=>this.once("ready",t))),t.then(()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()}).then(()=>this.plugins.destroy()).then(()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()}).then(()=>this._context._removeEditor(this))}execute(...t){try{return this.commands.execute(...t)}catch(t){hn.a.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}}xn(Fc,Hi);var Uc={setData(t){this.data.set(t)},getData(t){return this.data.get(t)}};var Hc={updateSourceElement(){if(!this.sourceElement)throw new hn.a("editor-missing-sourceelement",this);var t,e;t=this.sourceElement,e=this.data.get(),t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}};class Wc{getHtml(t){const e=document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class qc{constructor(t){this._domParser=new DOMParser,this._domConverter=new lr(t,{blockFillerMode:"nbsp"}),this._htmlWriter=new Wc}toData(t){const e=this._domConverter.viewToDom(t,document);return this._htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this._domConverter.domToView(e)}registerRawContentMatcher(t){this._domConverter.registerRawContentMatcher(t)}_toDom(t){const e=this._domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment(),i=e.body.childNodes;for(;i.length>0;)n.appendChild(i[0]);return n}}class $c{constructor(t){this.editor=t,this._components=new Map}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(Yc(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new hn.a("componentfactory-item-missing",this,{name:t});return this._components.get(Yc(t)).callback(this.editor.locale)}has(t){return this._components.has(Yc(t))}}function Yc(t){return String(t).toLowerCase()}class Gc{constructor(){this.set("isFocused",!1),this.set("focusedElement",null),this._elements=new Set,this._nextEventLoopTimeout=null}add(t){if(this._elements.has(t))throw new hn.a("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",()=>this._focus(t),{useCapture:!0}),this.listenTo(t,"blur",()=>this._blur(),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(t),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout(()=>{this.focusedElement=null,this.isFocused=!1},0)}}xn(Gc,mr),xn(Gc,Hi);class Kc{constructor(t){this.editor=t,this.componentFactory=new $c(t),this.focusTracker=new Gc,this._editableElementsMap=new Map,this.listenTo(t.editing.view.document,"layoutChanged",()=>this.update())}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null;this._editableElementsMap=new Map}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}}xn(Kc,gn);n(14);const Qc=new WeakMap;function Jc(t){const{view:e,element:n,text:i,isDirectHost:o=!0}=t,r=e.document;Qc.has(r)||(Qc.set(r,new Map),r.registerPostFixer(t=>Xc(r,t))),Qc.get(r).set(n,{text:i,isDirectHost:o}),e.change(t=>Xc(r,t))}function Zc(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function Xc(t,e){const n=Qc.get(t);let i=!1;for(const[t,o]of n)tl(e,t,o)&&(i=!0);return i}function tl(t,e,n){const{text:i,isDirectHost:o}=n,r=o?e:function(t){if(1===t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement"))return e}return null}(e);let s=!1;return!!r&&(n.hostElement=r,r.getAttribute("data-placeholder")!==i&&(t.setAttribute("data-placeholder",i,r),s=!0),!function(t){if(!t.isAttached())return!1;const e=!Array.from(t.getChildren()).some(t=>!t.is("uiElement")),n=t.document;if(!n.isFocused&&e)return!0;const i=n.selection.anchor;return!(!e||!i||i.parent===t)}(r)?Zc(t,r)&&(s=!0):function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,r)&&(s=!0),s)}class el{constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach(({element:t,newElement:e})=>{t.style.display="",e&&e.remove()}),this._replacedElements=[]}}class nl extends Kc{constructor(t,e){var n;super(t),this.view=e,this._toolbarConfig=(n=t.config.get("toolbar"),Array.isArray(n)?{items:n}:n?Object.assign({items:[]},n):{items:[]}),this._elementReplacer=new el}get element(){return this.view.element}init(t){const e=this.editor,n=this.view,i=e.editing.view,o=n.editable,r=i.document.getRoot();o.name=r.rootName,n.render();const s=o.element;this.setEditableElement(o.name,s),this.focusTracker.add(s),n.editable.bind("isFocused").to(this.focusTracker),i.attachDomRoot(s),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),this.fire("ready")}destroy(){const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.detachDomRoot(t.editable.name),t.destroy(),super.destroy()}_initToolbar(){const t=this.editor,e=this.view,n=t.editing.view;e.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),e.stickyPanel.limiterElement=e.element,this._toolbarConfig.viewportTopOffset&&(e.stickyPanel.viewportTopOffset=this._toolbarConfig.viewportTopOffset),e.toolbar.fillFromConfig(this._toolbarConfig.items,this.componentFactory),function({origin:t,originKeystrokeHandler:e,originFocusTracker:n,toolbar:i,beforeFocus:o,afterBlur:r}){n.add(i.element),e.set("Alt+F10",(t,e)=>{n.isFocused&&!i.focusTracker.isFocused&&(o&&o(),i.focus(),e())}),i.keystrokes.set("Esc",(e,n)=>{i.focusTracker.isFocused&&(t.focus(),r&&r(),n())})}({origin:n,originFocusTracker:this.focusTracker,originKeystrokeHandler:t.keystrokes,toolbar:e.toolbar})}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),i=t.sourceElement,o=t.config.get("placeholder")||i&&"textarea"===i.tagName.toLowerCase()&&i.getAttribute("placeholder");o&&Jc({view:e,element:n,text:o,isDirectHost:!1})}}class il extends An{constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",(t,e,n)=>{this._renderViewIntoCollectionParent(e,n)}),this.on("remove",(t,e)=>{e.element&&this._parentElement&&e.element.remove()}),this._parentElement=null}destroy(){this.map(t=>t.destroy())}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every(t=>"string"==typeof t))throw new hn.a("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const i of t)n.delegate(i).to(e);this.on("add",(n,i)=>{for(const n of t)i.delegate(n).to(e)}),this.on("remove",(n,i)=>{for(const n of t)i.stopDelegating(n,e)})}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}}class ol{constructor(t){Object.assign(this,ml(fl(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new hn.a("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)kl(n)?yield n:_l(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,i)=>new sl({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:i}),if:(n,i,o)=>new al({observable:t,emitter:e,attribute:n,valueIfTrue:i,callback:o})}}static extend(t,e){if(t._isRendered)throw new hn.a("template-extend-render",[this,t]);!function t(e,n){n.attributes&&(e.attributes||(e.attributes={}),bl(e.attributes,n.attributes));n.eventListeners&&(e.eventListeners||(e.eventListeners={}),bl(e.eventListeners,n.eventListeners));n.text&&e.text.push(...n.text);if(n.children&&n.children.length){if(e.children.length!=n.children.length)throw new hn.a("ui-template-extend-children-mismatch",e);let i=0;for(const o of n.children)t(e.children[i++],o)}}(t,ml(fl(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new hn.a("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),cl(this.text)?this._bindToObservable({schema:this.text,updater:dl(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){let e,n,i,o;if(!this.attributes)return;const r=t.node,s=t.revertData;for(e in this.attributes)if(i=r.getAttribute(e),n=this.attributes[e],s&&(s.attributes[e]=i),o=V(n[0])&&n[0].ns?n[0].ns:null,cl(n)){const a=o?n[0].value:n;s&&yl(e)&&a.unshift(i),this._bindToObservable({schema:a,updater:ul(r,e,o),data:t})}else"style"==e&&"string"!=typeof n[0]?this._renderStyleAttribute(n[0],t):(s&&i&&yl(e)&&n.unshift(i),n=n.map(t=>t&&t.value||t).reduce((t,e)=>t.concat(e),[]).reduce(pl,""),wl(n)||r.setAttributeNS(o,e,n))}_renderStyleAttribute(t,e){const n=e.node;for(const i in t){const o=t[i];cl(o)?this._bindToObservable({schema:[o],updater:hl(n,i),data:e}):n.style[i]=o}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,i=t.isApplying;let o=0;for(const r of this.children)if(vl(r)){if(!i){r.setParent(e);for(const t of r)n.appendChild(t.element)}}else if(kl(r))i||(r.isRendered||r.render(),n.appendChild(r.element));else if(tr(r))n.appendChild(r);else if(i){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),r._renderNode({node:n.childNodes[o++],isApplying:!0,revertData:e})}else n.appendChild(r.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map(n=>{const[i,o]=e.split("@");return n.activateDomEventListener(i,o,t)});t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const i=n.revertData;ll(t,e,n);const o=t.filter(t=>!wl(t)).filter(t=>t.observable).map(i=>i.activateAttributeListener(t,e,n));i&&i.bindings.push(o)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)t.textContent=e.text;else{for(const n in e.attributes){const i=e.attributes[n];null===i?t.removeAttribute(n):t.setAttribute(n,i)}for(let n=0;nll(t,e,n);return this.emitter.listenTo(this.observable,"change:"+this.attribute,i),()=>{this.emitter.stopListening(this.observable,"change:"+this.attribute,i)}}}class sl extends rl{activateDomEventListener(t,e,n){const i=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,i),()=>{this.emitter.stopListening(n.node,t,i)}}}class al extends rl{getValue(t){return!wl(super.getValue(t))&&(this.valueIfTrue||!0)}}function cl(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(cl):t instanceof rl)}function ll(t,e,{node:n}){let i=function(t,e){return t.map(t=>t instanceof rl?t.getValue(e):t)}(t,n);i=1==t.length&&t[0]instanceof al?i[0]:i.reduce(pl,""),wl(i)?e.remove():e.set(i)}function dl(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function ul(t,e,n){return{set(i){t.setAttributeNS(n,e,i)},remove(){t.removeAttributeNS(n,e)}}}function hl(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function fl(t){return en(t,t=>{if(t&&(t instanceof rl||_l(t)||kl(t)||vl(t)))return t})}function ml(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=Tn(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)gl(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=Tn(t[e].value)),gl(t,e)}(t.attributes);const e=[];if(t.children)if(vl(t.children))e.push(t.children);else for(const n of t.children)_l(n)||kl(n)||tr(n)?e.push(n):e.push(new ol(n));t.children=e}return t}function gl(t,e){t[e]=Tn(t[e])}function pl(t,e){return wl(e)?t:wl(t)?e:`${t} ${e}`}function bl(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function wl(t){return!t&&0!==t}function kl(t){return t instanceof xl}function _l(t){return t instanceof ol}function vl(t){return t instanceof il}function yl(t){return"class"==t||"style"==t}n(16);class xl{constructor(t){this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new An,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",(e,n)=>{n.locale=t}),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=ol.bind(this,this)}createCollection(t){const e=new il(t);return this._viewCollections.add(e),e}registerChild(t){yn(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){yn(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new ol(t)}extendTemplate(t){ol.extend(this.template,t)}render(){if(this.isRendered)throw new hn.a("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map(t=>t.destroy()),this.template&&this.template._revertData&&this.template.revert(this.element)}}xn(xl,mr),xn(xl,Hi);var Al=function(t){return"string"==typeof t||!Dt(t)&&p(t)&&"[object String]"==f(t)};class Cl extends il{constructor(t,e=[]){super(e),this.locale=t}attachToDom(){this._bodyCollectionContainer=new ol({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=function(t,e,n={},i=[]){const o=n&&n.xmlns,r=o?t.createElementNS(o,e):t.createElement(e);for(const t in n)r.setAttribute(t,n[t]);!Al(i)&&yn(i)||(i=[i]);for(let e of i)Al(e)&&(e=t.createTextNode(e)),r.appendChild(e);return r}(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}n(18);class Tl extends xl{constructor(t){super(t),this.body=new Cl(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}n(20);class Pl extends xl{constructor(t){super(t),this.set("text"),this.set("for"),this.id="ck-editor__label_"+dn();const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class Sl extends Tl{constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new Pl;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class El extends xl{constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.name=null,this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",()=>this._updateIsFocusedClasses()),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change(n=>{const i=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",i),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",i)})}t.isRenderingInProgress?function n(i){t.once("change:isRenderingInProgress",(t,o,r)=>{r?n(i):e(i)})}(this):e(this)}}class Ml extends El{constructor(t,e,n){super(t,e,n),this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const t=this._editingView,e=this.t;t.change(n=>{const i=t.document.getRoot(this.name);n.setAttribute("aria-label",e("Rich Text Editor, %0",this.name),i)})}}function Il(t){return e=>e+t}n(22);const Nl=Il("px");class Ol extends xl{constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheLimiter",!1),this.set("_hasViewportTopOffset",!1),this.content=this.createCollection(),this._contentPanelPlaceholder=new ol({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",t=>t?"block":"none"),height:e.to("isSticky",t=>t?Nl(this._panelRect.height):null)}}}).render(),this._contentPanel=new ol({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",t=>t?Nl(this._contentPanelPlaceholder.getBoundingClientRect().width):null),top:e.to("_hasViewportTopOffset",t=>t?Nl(this.viewportTopOffset):null),bottom:e.to("_isStickyToTheLimiter",t=>t?Nl(this.limiterBottomOffset):null),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this._contentPanel]})}render(){super.render(),this._checkIfShouldBeSticky(),this.listenTo(rr.window,"scroll",()=>{this._checkIfShouldBeSticky()}),this.listenTo(this,"change:isActive",()=>{this._checkIfShouldBeSticky()})}_checkIfShouldBeSticky(){const t=this._panelRect=this._contentPanel.getBoundingClientRect();let e;this.limiterElement?(e=this._limiterRect=this.limiterElement.getBoundingClientRect(),this.isSticky=this.isActive&&e.top{this[e](),n()})}}get first(){return this.focusables.find(Dl)||null}get last(){return this.focusables.filter(Dl).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find((e,n)=>{const i=e.element===this.focusTracker.focusedElement;return i&&(t=n),i}),t)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(t){t&&t.focus()}_getFocusableItem(t){const e=this.current,n=this.focusables.length;if(!n)return null;if(null===e)return this[1===t?"first":"last"];let i=(e+n+t)%n;do{const e=this.focusables.get(i);if(Dl(e))return e;i=(i+n+t)%n}while(i!==e);return null}}function Dl(t){return!(!t.focus||"none"==rr.window.getComputedStyle(t.element).display)}class Ll extends xl{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class Vl extends xl{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}class jl{constructor(t,e){jl._observerInstance||jl._createObserver(),this._element=t,this._callback=e,jl._addElementCallback(t,e),jl._observerInstance.observe(t)}destroy(){jl._deleteElementCallback(this._element,this._callback)}static _addElementCallback(t,e){jl._elementCallbacks||(jl._elementCallbacks=new Map);let n=jl._elementCallbacks.get(t);n||(n=new Set,jl._elementCallbacks.set(t,n)),n.add(e)}static _deleteElementCallback(t,e){const n=jl._getElementCallbacks(t);n&&(n.delete(e),n.size||(jl._elementCallbacks.delete(t),jl._observerInstance.unobserve(t))),jl._elementCallbacks&&!jl._elementCallbacks.size&&(jl._observerInstance=null,jl._elementCallbacks=null)}static _getElementCallbacks(t){return jl._elementCallbacks?jl._elementCallbacks.get(t):null}static _createObserver(){let t;t="function"==typeof rr.window.ResizeObserver?rr.window.ResizeObserver:zl,jl._observerInstance=new t(t=>{for(const e of t){const t=jl._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}})}}jl._observerInstance=null,jl._elementCallbacks=null;class zl{constructor(t){this._callback=t,this._elements=new Set,this._previousRects=new Map,this._periodicCheckTimeout=null}observe(t){this._elements.add(t),this._checkElementRectsAndExecuteCallback(),1===this._elements.size&&this._startPeriodicCheck()}unobserve(t){this._elements.delete(t),this._previousRects.delete(t),this._elements.size||this._stopPeriodicCheck()}_startPeriodicCheck(){const t=()=>{this._checkElementRectsAndExecuteCallback(),this._periodicCheckTimeout=setTimeout(t,100)};this.listenTo(rr.window,"resize",()=>{this._checkElementRectsAndExecuteCallback()}),this._periodicCheckTimeout=setTimeout(t,100)}_stopPeriodicCheck(){clearTimeout(this._periodicCheckTimeout),this.stopListening(),this._previousRects.clear()}_checkElementRectsAndExecuteCallback(){const t=[];for(const e of this._elements)this._hasRectChanged(e)&&t.push({target:e,contentRect:this._previousRects.get(e)});t.length&&this._callback(t)}_hasRectChanged(t){if(!t.ownerDocument.body.contains(t))return!1;const e=new os(t),n=this._previousRects.get(t),i=!n||!n.isEqual(e);return this._previousRects.set(t,e),i}}xn(zl,mr);class Bl extends xl{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",t=>"ck-dropdown__panel_"+t),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to(t=>t.preventDefault())}})}focus(){this.children.length&&this.children.first.focus()}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}n(24);function Fl({element:t,target:e,positions:n,limiter:i,fitInViewport:o}){z(e)&&(e=e()),z(i)&&(i=i());const r=function(t){return t&&t.parentNode?t.offsetParent===rr.document.body?null:t.offsetParent:null}(t),s=new os(t),a=new os(e);let c,l;if(i||o){const t=function(t,e){const{elementRect:n,viewportRect:i}=e,o=n.getArea(),r=function(t,{targetRect:e,elementRect:n,limiterRect:i,viewportRect:o}){const r=[],s=n.getArea();for(const a of t){const t=Ul(a,e,n);if(!t)continue;const[c,l]=t;let d=0,u=0;if(i)if(o){const t=i.getIntersection(o);t&&(d=t.getIntersectionArea(l))}else d=i.getIntersectionArea(l);o&&(u=o.getIntersectionArea(l));const h={positionName:c,positionRect:l,limiterIntersectArea:d,viewportIntersectArea:u};if(d===s)return[h];r.push(h)}return r}(t,e);if(i){const t=Hl(r.filter(({viewportIntersectArea:t})=>t===o),o);if(t)return t}return Hl(r,o)}(n,{targetRect:a,elementRect:s,limiterRect:i&&new os(i).getVisible(),viewportRect:o&&new os(rr.window)});[l,c]=t||Ul(n[0],a,s)}else[l,c]=Ul(n[0],a,s);let d=Wl(c);return r&&(d=function({left:t,top:e},n){const i=Wl(new os(n)),o=ns(n);return t-=i.left,e-=i.top,t+=n.scrollLeft,e+=n.scrollTop,t-=o.left,e-=o.top,{left:t,top:e}}(d,r)),{left:d.left,top:d.top,name:l}}function Ul(t,e,n){const i=t(e,n);if(!i)return null;const{left:o,top:r,name:s}=i;return[s,n.clone().moveTo(o,r)]}function Hl(t,e){let n,i,o=0;for(const{positionName:r,positionRect:s,limiterIntersectArea:a,viewportIntersectArea:c}of t){if(a===e)return[r,s];const t=c**2+a**2;t>o&&(o=t,n=s,i=r)}return n?[i,n]:null}function Wl({left:t,top:e}){const{scrollX:n,scrollY:i}=rr.window;return{left:t+n,top:e+i}}class ql extends xl{constructor(t,e,n){super(t);const i=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class"),this.set("id"),this.set("panelPosition","auto"),this.keystrokes=new zc,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",i.to("class"),i.if("isEnabled","ck-disabled",t=>!t)],id:i.to("id"),"aria-describedby":i.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"]}})}render(){super.render(),this.listenTo(this.buttonView,"open",()=>{this.isOpen=!this.isOpen}),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",()=>{this.isOpen&&("auto"===this.panelPosition?this.panelView.position=ql._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions}).name:this.panelView.position=this.panelPosition)}),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,e())};this.keystrokes.set("arrowdown",(t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())}),this.keystrokes.set("arrowright",(t,e)=>{this.isOpen&&e()}),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:t,southWest:e,northEast:n,northWest:i}=ql.defaultPanelPositions;return"ltr"===this.locale.uiLanguageDirection?[t,e,n,i]:[e,t,i,n]}}ql.defaultPanelPositions={southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.bottom-e.height,left:t.left-e.width+t.width,name:"nw"})},ql._getOptimalPosition=Fl;n(26);class $l extends xl{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon"],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",()=>{this._updateXMLContent(),this._colorFillPaths()}),this.on("change:fillColor",()=>{this._colorFillPaths()})}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");for(e&&(this.viewBox=e),this.element.innerHTML="";t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach(t=>{t.style.fill=this.fillColor})}}n(28);class Yl extends xl{constructor(t){super(t),this.set("text",""),this.set("position","s");const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip",e.to("position",t=>"ck-tooltip_"+t),e.if("text","ck-hidden",t=>!t.trim())]},children:[{tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:e.to("text")}]}]})}}n(30);class Gl extends xl{constructor(t){super(t);const e=this.bindTemplate,n=dn();this.set("class"),this.set("labelStyle"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(n),this.iconView=new $l,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this)),this.setTemplate({tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",t=>!t),e.if("isVisible","ck-hidden",t=>!t),e.to("isOn",t=>t?"ck-on":"ck-off"),e.if("withText","ck-button_with-text"),e.if("withKeystroke","ck-button_with-keystroke")],type:e.to("type",t=>t||"button"),tabindex:e.to("tabindex"),"aria-labelledby":"ck-editor__aria-label_"+n,"aria-disabled":e.if("isEnabled",!0,t=>!t),"aria-pressed":e.to("isOn",t=>!!this.isToggleable&&String(t))},children:this.children,on:{mousedown:e.to(t=>{t.preventDefault()}),click:e.to(t=>{this.isEnabled?this.fire("execute"):t.preventDefault()})}})}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.tooltipView),this.children.add(this.labelView),this.withKeystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}_createTooltipView(){const t=new Yl;return t.bind("text").to(this,"_tooltipString"),t.bind("position").to(this,"tooltipPosition"),t}_createLabelView(t){const e=new xl,n=this.bindTemplate;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:n.to("labelStyle"),id:"ck-editor__aria-label_"+t},children:[{text:this.bindTemplate.to("label")}]}),e}_createKeystrokeView(){const t=new xl;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",t=>ko(t))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=ko(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var Kl='';class Ql extends Gl{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new $l;return t.content=Kl,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}n(32);class Jl extends xl{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new Gc,this.keystrokes=new zc,this._focusCycler=new Rl({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",(t,e)=>{this.focusTracker.add(e.element)}),this.items.on("remove",(t,e)=>{this.focusTracker.remove(e.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class Zl extends xl{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item"]},children:this.children})}focus(){this.children.first.focus()}}class Xl extends xl{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}n(34);class td extends Gl{constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new xl;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}function ed({emitter:t,activator:e,callback:n,contextElements:i}){t.listenTo(document,"mousedown",(t,o)=>{if(!e())return;const r="function"==typeof o.composedPath?o.composedPath():[];for(const t of i)if(t.contains(o.target)||r.includes(t))return;n()})}n(36),n(38);function nd(t,e=Ql){const n=new e(t),i=new Bl(t),o=new ql(t,n,i);return n.bind("isEnabled").to(o),n instanceof Ql?n.bind("isOn").to(o,"isOpen"):n.arrowView.bind("isOn").to(o,"isOpen"),function(t){(function(t){t.on("render",()=>{ed({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})})})(t),function(t){t.on("execute",e=>{e.source instanceof td||(t.isOpen=!1)})}(t),function(t){t.keystrokes.set("arrowdown",(e,n)=>{t.isOpen&&(t.panelView.focus(),n())}),t.keystrokes.set("arrowup",(e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())})}(t)}(o),o}function id(t,e){const n=t.locale,i=t.listView=new Jl(n);i.items.bindTo(e).using(({type:t,model:e})=>{if("separator"===t)return new Xl(n);if("button"===t||"switchbutton"===t){const i=new Zl(n);let o;return o="button"===t?new Gl(n):new td(n),o.bind(...Object.keys(e)).to(e),o.delegate("execute").to(i),i.children.add(o),i}}),t.panelView.children.add(i),i.items.delegate("execute").to(t)}n(40);class od extends xl{constructor(t,e){super(t);const n=this.bindTemplate,i=this.t;this.options=e||{},this.set("ariaLabel",i("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new Gc,this.keystrokes=new zc,this.set("class"),this.set("isCompact",!1),this.itemsView=new rd(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection(),this._focusCycler=new Rl({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:["arrowleft","arrowup"],focusNext:["arrowright","arrowdown"]}});const o=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var r;this.options.shouldGroupWhenFull&&this.options.isFloating&&o.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:o,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")}},children:this.children,on:{mousedown:(r=this,r.bindTemplate.to(t=>{t.target===r.element&&t.preventDefault()}))}}),this._behavior=this.options.shouldGroupWhenFull?new ad(this):new sd(this)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",(t,e)=>{this.focusTracker.add(e.element)}),this.items.on("remove",(t,e)=>{this.focusTracker.remove(e.element)}),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e){this.items.addMany(t.map(n=>"|"==n?new Ll:"-"==n?(this.options.shouldGroupWhenFull&&Object(hn.c)("toolbarview-line-break-ignored-when-grouping-items",t),new Vl):e.has(n)?e.create(n):void Object(hn.c)("toolbarview-item-unavailable",{name:n})).filter(t=>void 0!==t))}}class rd extends xl{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class sd{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using(t=>t),t.focusables.bindTo(t.items).using(t=>t),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class ad{constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,t.itemsView.children.bindTo(this.ungroupedItems).using(t=>t),this.ungroupedItems.on("add",this._updateFocusCycleableItems.bind(this)),this.ungroupedItems.on("remove",this._updateFocusCycleableItems.bind(this)),t.children.on("add",this._updateFocusCycleableItems.bind(this)),t.children.on("remove",this._updateFocusCycleableItems.bind(this)),t.items.on("change",(t,e)=>{const n=e.index;for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(i,t-this.ungroupedItems.length):this.ungroupedItems.add(i,t)}this._updateGrouping()}),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!this.viewElement.offsetParent)return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new os(t.lastChild),i=new os(t);if(!this.cachedPadding){const n=rr.window.getComputedStyle(t),i="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[i])}return"ltr"===e?n.right>i.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)}),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",()=>{this._updateGrouping()})}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new Ll),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=nd(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",function(t,e){const n=t.locale,i=n.t,o=t.toolbarView=new od(n);o.set("ariaLabel",i("Dropdown toolbar")),t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.map(t=>o.items.add(t)),t.panelView.children.add(o),o.items.delegate("execute").to(t)}(n,[]),n.buttonView.set({label:e("Show more items"),tooltip:!0,icon:''}),n.toolbarView.items.bindTo(this.groupedItems).using(t=>t),n}_updateFocusCycleableItems(){this.viewFocusables.clear(),this.ungroupedItems.map(t=>{this.viewFocusables.add(t)}),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}n(42);class cd extends Sl{constructor(t,e,n={}){super(t),this.stickyPanel=new Ol(t),this.toolbar=new od(t,{shouldGroupWhenFull:n.shouldToolbarGroupWhenFull}),this.editable=new Ml(t,e)}render(){super.render(),this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}class ld extends Fc{constructor(t,e){super(e),nn(t)&&(this.sourceElement=t),this.data.processor=new qc(this.data.viewDocument),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),i=new cd(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n});this.ui=new nl(this,i),function(t){if(!z(t.updateSourceElement))throw new hn.a("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(e&&"textarea"===e.tagName.toLowerCase()&&e.form){let n;const i=e.form,o=()=>t.updateSourceElement();z(i.submit)&&(n=i.submit,i.submit=()=>{o(),n.apply(i)}),i.addEventListener("submit",o),t.on("destroy",()=>{i.removeEventListener("submit",o),n&&(i.submit=n)})}}(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise(n=>{const i=new this(t,e);n(i.initPlugins().then(()=>i.ui.init(nn(t)?t:null)).then(()=>{if(!nn(t)&&e.initialData)throw new hn.a("editor-create-initial-data",null);const n=e.initialData||function(t){return nn(t)?(e=t,e instanceof HTMLTextAreaElement?e.value:e.innerHTML):t;var e}(t);return i.data.init(n)}).then(()=>i.fire("ready")).then(()=>i))})}}xn(ld,Uc),xn(ld,Hc);class dd{constructor(t){this.editor=t,this.set("isEnabled",!0),this._disableStack=new Set}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",ud,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",ud),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function ud(t){t.return=!1,t.stop()}xn(dd,Hi);class hd{constructor(t){this.files=function(t){const e=t.files?Array.from(t.files):[],n=t.items?Array.from(t.items):[];if(e.length)return e;return n.filter(t=>"file"===t.kind).map(t=>t.getAsFile())}(t),this._native=t}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}}class fd extends jr{constructor(t){super(t);const e=this.document;function n(t,n){n.preventDefault();const i=n.dropRange?[n.dropRange]:Array.from(e.selection.getRanges()),o=new cn(e,"clipboardInput");e.fire(o,{dataTransfer:n.dataTransfer,targetRanges:i}),o.stop.called&&n.stopPropagation()}this.domEventType=["paste","copy","cut","drop","dragover"],this.listenTo(e,"paste",n,{priority:"low"}),this.listenTo(e,"drop",n,{priority:"low"})}onDomEvent(t){const e={dataTransfer:new hd(t.clipboardData?t.clipboardData:t.dataTransfer)};"drop"==t.type&&(e.dropRange=function(t,e){const n=e.target.ownerDocument,i=e.clientX,o=e.clientY;let r;n.caretRangeFromPoint&&n.caretRangeFromPoint(i,o)?r=n.caretRangeFromPoint(i,o):e.rangeParent&&(r=n.createRange(),r.setStart(e.rangeParent,e.rangeOffset),r.collapse(!0));return r?t.domConverter.domRangeToView(r):t.document.selection.getFirstRange()}(this.view,t)),this.fire(t.type,t,e)}}class md extends dd{static get pluginName(){return"PastePlainText"}init(){const t=this.editor.editing.view,e=t.document;let n=!1;t.addObserver(fd),this.listenTo(e,"keydown",(t,e)=>{n=e.shiftKey}),this.listenTo(e,"clipboardInput",(t,e)=>{n&&(e.asPlainText=!0)},{priority:"high"})}}const gd=["figcaption","li"];class pd extends dd{static get pluginName(){return"Clipboard"}static get requires(){return[md]}init(){const t=this.editor,e=t.model.document,n=t.editing.view,i=n.document;function o(n,o){const r=o.dataTransfer;o.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));i.fire("clipboardOutput",{dataTransfer:r,content:s,method:n.name})}this._htmlDataProcessor=new qc(i),n.addObserver(fd),this.listenTo(i,"clipboardInput",e=>{t.isReadOnly&&e.stop()},{priority:"highest"}),this.listenTo(i,"clipboardInput",(t,e)=>{const i=e.dataTransfer;let o="";var r;i.getData("text/html")?o=function(t){return t.replace(/(\s+)<\/span>/g,(t,e)=>1==e.length?" ":e)}(i.getData("text/html")):i.getData("text/plain")&&(((r=(r=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"

          ").replace(/\r?\n/g,"
          ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

          ")||r.includes("
          "))&&(r=`

          ${r}

          `),o=r),o=this._htmlDataProcessor.toView(o);const s=new cn(this,"inputTransformation");this.fire(s,{content:o,dataTransfer:i,asPlainText:e.asPlainText}),s.stop.called&&t.stop(),n.scrollToTheSelection()},{priority:"low"}),this.listenTo(this,"inputTransformation",(t,e)=>{if(!e.content.isEmpty){const n=this.editor.data,i=this.editor.model,o=n.toModel(e.content,"$clipboardHolder");if(0==o.childCount)return;i.change(t=>{const n=i.document.selection;if(e.asPlainText||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==[...n.getAttributeKeys()].length}(o,i.schema)){const e=Array.from(n.getAttributes()).filter(([t])=>i.schema.getAttributeProperties(t).isFormatting);n.isCollapsed||i.deleteContent(n,{doNotAutoparagraph:!0}),e.push(...n.getAttributes());const r=t.createRangeIn(o);for(const n of r.getItems())(n.is("$text")||n.is("$textProxy"))&&t.setAttributes(e,n)}i.insertContent(o)}),t.stop()}},{priority:"low"}),this.listenTo(i,"copy",o,{priority:"low"}),this.listenTo(i,"cut",(e,n)=>{t.isReadOnly?n.preventDefault():o(e,n)},{priority:"low"}),this.listenTo(i,"clipboardOutput",(n,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this._htmlDataProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",function t(e){let n="";if(e.is("$text")||e.is("$textProxy"))n=e.data;else if(e.is("element","img")&&e.hasAttribute("alt"))n=e.getAttribute("alt");else if(e.is("element","br"))n="\n";else{let i=null;for(const o of e.getChildren()){const e=t(o);i&&(i.is("containerElement")||o.is("containerElement"))&&(gd.includes(i.name)||gd.includes(o.name)?n+="\n":n+="\n\n"),n+=e,i=o}}return n}(i.content))),"cut"==i.method&&t.model.deleteContent(e.selection)},{priority:"low"})}}class bd{constructor(t){this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",()=>{this.refresh()}),this.on("execute",t=>{this.isEnabled||t.stop()},{priority:"high"}),this.listenTo(t,"change:isReadOnly",(t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",wd,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",wd),this.refresh())}execute(){}destroy(){this.stopListening()}}function wd(t){t.return=!1,t.stop()}function*kd(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}xn(bd,Hi);class _d extends bd{execute(){const t=this.editor.model,e=t.document;t.change(n=>{!function(t,e,n,i){const o=n.isCollapsed,r=n.getFirstRange(),s=r.start.parent,a=r.end.parent;if(i.isLimit(s)||i.isLimit(a))return void(o||s!=a||t.deleteContent(n));if(o){const t=kd(e.model.schema,n.getAttributes());vd(e,r.start),e.setSelectionAttribute(t)}else{const i=!(r.start.isAtStart&&r.end.isAtEnd),o=s==a;t.deleteContent(n,{leaveUnmerged:i}),i&&(o?vd(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})})}}function vd(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}class yd extends br{constructor(t){super(t);const e=this.document;e.on("keydown",(t,n)=>{if(this.isEnabled&&n.keyCode==po.enter){let i;e.once("enter",t=>i=t,{priority:"highest"}),e.fire("enter",new Vr(e,n.domEvent,{isSoft:n.shiftKey})),i&&i.stop.called&&t.stop()}})}observe(){}}class xd extends dd{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(yd),t.commands.add("enter",new _d(t)),this.listenTo(n,"enter",(n,i)=>{i.preventDefault(),i.isSoft||(t.execute("enter"),e.scrollToTheSelection())},{priority:"low"})}}class Ad extends bd{execute(){const t=this.editor.model,e=t.document;t.change(n=>{!function(t,e,n){const i=n.isCollapsed,o=n.getFirstRange(),r=o.start.parent,s=o.end.parent,a=r==s;if(i){const i=kd(t.schema,n.getAttributes());Cd(t,e,o.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(i)}else{const i=!(o.start.isAtStart&&o.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:i}),a?Cd(t,e,n.focus):i&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})})}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const i=e.getFirstRange(),o=i.start.parent,r=i.end.parent;if((Td(o,t)||Td(r,t))&&o!==r)return!1;return!0}(t.schema,e.selection)}}function Cd(t,e,n){const i=e.createElement("softBreak");t.insertContent(i,n),e.setSelection(i,"after")}function Td(t,e){return!t.is("rootElement")&&(e.isLimit(t)||Td(t.parent,e))}class Pd extends dd{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,i=t.editing.view,o=i.document;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),i.addObserver(yd),t.commands.add("shiftEnter",new Ad(t)),this.listenTo(o,"enter",(e,n)=>{n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),i.scrollToTheSelection())},{priority:"low"})}}class Sd extends bd{execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!Ed(t.schema,n))do{if(n=n.parent,!n)return}while(!Ed(t.schema,n));t.change(t=>{t.setSelection(n,"in")})}}function Ed(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const Md=wo("Ctrl+A");class Id extends dd{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new Sd(t)),this.listenTo(e,"keydown",(e,n)=>{bo(n)===Md&&(t.execute("selectAll"),n.preventDefault())})}}class Nd extends dd{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",e=>{const n=t.commands.get("selectAll"),i=new Gl(e),o=e.t;return i.set({label:o("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),i.bind("isOn","isEnabled").to(n,"value","isEnabled"),this.listenTo(i,"execute",()=>{t.execute("selectAll"),t.editing.view.focus()}),i})}}class Od extends dd{static get requires(){return[Id,Nd]}static get pluginName(){return"SelectAll"}}class Rd{constructor(t,e=20){this.model=t,this.size=0,this.limit=e,this.isLocked=!1,this._changeCallback=(t,e)=>{"transparent"!=e.type&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch()),this._batch}input(t){this.size+=t,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t){this.isLocked&&!t||(this._batch=null,this.size=0)}}class Dd extends bd{constructor(t,e){super(t),this._buffer=new Rd(t.model,e),this._batches=new WeakSet}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,i=t.text||"",o=i.length,r=t.range?e.createSelection(t.range):n.selection,s=t.resultRange;e.enqueueChange(this._buffer.batch,t=>{this._buffer.lock(),this._batches.add(this._buffer.batch),e.deleteContent(r),i&&e.insertContent(t.createText(i,n.selection.getAttributes()),r),s?t.setSelection(s):r.is("documentSelection")||t.setSelection(r),this._buffer.unlock(),this._buffer.input(o)})}}const Ld=[bo("arrowUp"),bo("arrowRight"),bo("arrowDown"),bo("arrowLeft"),9,16,17,18,19,20,27,33,34,35,36,45,91,93,144,145,173,174,175,176,177,178,179,255];for(let t=112;t<=135;t++)Ld.push(t);function Vd(t){return!!t.ctrlKey||Ld.includes(t.keyCode)}function jd(t){if(t.newChildren.length-t.oldChildren.length!=1)return;const e=function(t,e){const n=[];let i,o=0;return t.forEach(t=>{"equal"==t?(r(),o++):"insert"==t?(s("insert")?i.values.push(e[o]):(r(),i={type:"insert",index:o,values:[e[o]]}),o++):s("delete")?i.howMany++:(r(),i={type:"delete",index:o,howMany:1})}),r(),n;function r(){i&&(n.push(i),i=null)}function s(t){return i&&i.type==t}}(Jo(t.oldChildren,t.newChildren,zd),t.newChildren);if(e.length>1)return;const n=e[0];return n.values[0]&&n.values[0].is("$text")?n:void 0}function zd(t,e){return t&&t.is("$text")&&e&&e.is("$text")?t.data===e.data:t===e}class Bd{constructor(t){this.editor=t,this.editing=this.editor.editing}handle(t,e){if(function(t){if(0==t.length)return!1;for(const e of t)if("children"===e.type&&!jd(e))return!0;return!1}(t))this._handleContainerChildrenMutations(t,e);else for(const n of t)this._handleTextMutation(n,e),this._handleTextNodeInsertion(n)}_handleContainerChildrenMutations(t,e){const n=function(t){const e=t.map(t=>t.node).reduce((t,e)=>t.getCommonAncestor(e,{includeSelf:!0}));if(!e)return;return e.getAncestors({includeSelf:!0,parentFirst:!0}).find(t=>t.is("containerElement")||t.is("rootElement"))}(t);if(!n)return;const i=this.editor.editing.view.domConverter.mapViewToDom(n),o=new lr(this.editor.editing.view.document),r=this.editor.data.toModel(o.domToView(i)).getChild(0),s=this.editor.editing.mapper.toModelElement(n);if(!s)return;const a=Array.from(r.getChildren()),c=Array.from(s.getChildren()),l=a[a.length-1],d=c[c.length-1],u=l&&l.is("element","softBreak"),h=d&&!d.is("element","softBreak");u&&h&&a.pop();const f=this.editor.model.schema;if(!Fd(a,f)||!Fd(c,f))return;const m=a.map(t=>t.is("$text")?t.data:"@").join("").replace(/\u00A0/g," "),g=c.map(t=>t.is("$text")?t.data:"@").join("").replace(/\u00A0/g," ");if(g===m)return;const p=Jo(g,m),{firstChangeAt:b,insertions:w,deletions:k}=Ud(p);let _=null;e&&(_=this.editing.mapper.toModelRange(e.getFirstRange()));const v=m.substr(b,w),y=this.editor.model.createRange(this.editor.model.createPositionAt(s,b),this.editor.model.createPositionAt(s,b+k));this.editor.execute("input",{text:v,range:y,resultRange:_})}_handleTextMutation(t,e){if("text"!=t.type)return;const n=t.newText.replace(/\u00A0/g," "),i=t.oldText.replace(/\u00A0/g," ");if(i===n)return;const o=Jo(i,n),{firstChangeAt:r,insertions:s,deletions:a}=Ud(o);let c=null;e&&(c=this.editing.mapper.toModelRange(e.getFirstRange()));const l=this.editing.view.createPositionAt(t.node,r),d=this.editing.mapper.toModelPosition(l),u=this.editor.model.createRange(d,d.getShiftedBy(a)),h=n.substr(r,s);this.editor.execute("input",{text:h,range:u,resultRange:c})}_handleTextNodeInsertion(t){if("children"!=t.type)return;const e=jd(t),n=this.editing.view.createPositionAt(t.node,e.index),i=this.editing.mapper.toModelPosition(n),o=e.values[0].data;this.editor.execute("input",{text:o.replace(/\u00A0/g," "),range:this.editor.model.createRange(i)})}}function Fd(t,e){return t.every(t=>e.isInline(t))}function Ud(t){let e=null,n=null;for(let i=0;i{n.deleteContent(n.document.selection)}),t.unlock()}fo.isAndroid?i.document.on("beforeinput",(t,e)=>r(e),{priority:"lowest"}):i.document.on("keydown",(t,e)=>r(e),{priority:"lowest"}),i.document.on("compositionstart",(function(){const t=n.document,e=1!==t.selection.rangeCount||t.selection.getFirstRange().isFlat;if(t.selection.isCollapsed||e)return;s()}),{priority:"lowest"}),i.document.on("compositionend",()=>{e=n.createSelection(n.document.selection)},{priority:"lowest"})}(t),function(t){t.editing.view.document.on("mutations",(e,n,i)=>{new Bd(t).handle(n,i)})}(t)}isInput(t){return this.editor.commands.get("input")._batches.has(t)}}class Wd extends bd{constructor(t,e){super(t),this.direction=e,this._buffer=new Rd(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,i=>{this._buffer.lock();const o=i.createSelection(t.selection||n.selection),r=o.isCollapsed;if(o.isCollapsed&&e.modifySelection(o,{direction:this.direction,unit:t.unit}),this._shouldEntireContentBeReplacedWithParagraph(t.sequence||1))return void this._replaceEntireContentWithParagraph(i);if(o.isCollapsed)return;let s=0;o.getFirstRange().getMinimalFlatRanges().forEach(t=>{s+=no(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))}),e.deleteContent(o,{doNotResetEntireContent:r,direction:this.direction}),this._buffer.input(s),i.setSelection(o),this._buffer.unlock()})}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,i=e.schema.getLimitElement(n);if(!(n.isCollapsed&&n.containsEntireContent(i)))return!1;if(!e.schema.checkChild(i,"paragraph"))return!1;const o=i.getChild(0);return!o||"paragraph"!==o.name}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,i=e.schema.getLimitElement(n),o=t.createElement("paragraph");t.remove(t.createRangeIn(i)),t.insert(o,i),t.setSelection(o,0)}}class qd extends br{constructor(t){super(t);const e=t.document;let n=0;function i(t,n,i){let o;e.once("delete",t=>o=t,{priority:Number.POSITIVE_INFINITY}),e.fire("delete",new Vr(e,n,i)),o&&o.stop.called&&t.stop()}e.on("keyup",(t,e)=>{e.keyCode!=po.delete&&e.keyCode!=po.backspace||(n=0)}),e.on("keydown",(t,e)=>{const o={};if(e.keyCode==po.delete)o.direction="forward",o.unit="character";else{if(e.keyCode!=po.backspace)return;o.direction="backward",o.unit="codePoint"}const r=fo.isMac?e.altKey:e.ctrlKey;o.unit=r?"word":o.unit,o.sequence=++n,i(t,e.domEvent,o)}),fo.isAndroid&&e.on("beforeinput",(e,n)=>{if("deleteContentBackward"!=n.domEvent.inputType)return;const o={unit:"codepoint",direction:"backward",sequence:1},r=n.domTarget.ownerDocument.defaultView.getSelection();r.anchorNode==r.focusNode&&r.anchorOffset+1!=r.focusOffset&&(o.selectionToRemove=t.domConverter.domSelectionToView(r)),i(e,n.domEvent,o)})}observe(){}}class $d extends dd{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document;if(e.addObserver(qd),t.commands.add("forwardDelete",new Wd(t,"forward")),t.commands.add("delete",new Wd(t,"backward")),this.listenTo(n,"delete",(n,i)=>{const o={unit:i.unit,sequence:i.sequence};if(i.selectionToRemove){const e=t.model.createSelection(),n=[];for(const e of i.selectionToRemove.getRanges())n.push(t.editing.mapper.toModelRange(e));e.setTo(n),o.selection=e}t.execute("forward"==i.direction?"forwardDelete":"delete",o),i.preventDefault(),e.scrollToTheSelection()}),fo.isAndroid){let t=null;this.listenTo(n,"delete",(e,n)=>{const i=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}},{priority:"lowest"}),this.listenTo(n,"keyup",(e,n)=>{if(t){const e=n.domTarget.ownerDocument.defaultView.getSelection();e.collapse(t.anchorNode,t.anchorOffset),e.extend(t.focusNode,t.focusOffset),t=null}})}}}class Yd extends dd{static get requires(){return[Hd,$d]}static get pluginName(){return"Typing"}}const Gd=new Map;function Kd(t,e,n){let i=Gd.get(t);i||(i=new Map,Gd.set(t,i)),i.set(e,n)}function Qd(t){return[t]}function Jd(t,e,n={}){const i=function(t,e){const n=Gd.get(t);return n&&n.has(e)?n.get(e):Qd}(t.constructor,e.constructor);try{return i(t=t.clone(),e,n)}catch(t){throw t}}function Zd(t,e,n){t=t.slice(),e=e.slice();const i=new Xd(n.document,n.useRelations,n.forceWeakRemove);i.setOriginalOperations(t),i.setOriginalOperations(e);const o=i.originalOperations;if(0==t.length||0==e.length)return{operationsA:t,operationsB:e,originalOperations:o};const r=new WeakMap;for(const e of t)r.set(e,0);const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;for(;a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const i=t.range.getDifference(e.range).map(e=>new $a(e,t.key,t.oldValue,t.newValue,0)),o=t.range.getIntersection(e.range);return o&&n.aIsStrong&&i.push(new $a(o,e.key,e.newValue,t.newValue,0)),0==i.length?[new kc(0)]:i}return[t]}),Kd($a,Ka,(t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map(e=>new $a(e,t.key,t.oldValue,t.newValue,t.baseVersion));if(e.shouldReceiveAttributes){const i=nu(e,t.key,t.oldValue);i&&n.unshift(i)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]}),Kd($a,Xa,(t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(Es._createFromPositionAndShift(e.graveyardPosition,1));const i=t.range._getTransformedByMergeOperation(e);return i.isCollapsed||n.push(i),n.map(e=>new $a(e,t.key,t.oldValue,t.newValue,t.baseVersion))}),Kd($a,Ga,(t,e)=>function(t,e){const n=Es._createFromPositionAndShift(e.sourcePosition,e.howMany);let i=null,o=[];n.containsRange(t,!0)?i=t:t.start.hasSameParentAs(n.start)?(o=t.getDifference(n),i=t.getIntersection(n)):o=[t];const r=[];for(let t of o){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),i=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,i),r.push(...t)}i&&r.push(i._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]);return r}(t.range,e).map(e=>new $a(e,t.key,t.oldValue,t.newValue,t.baseVersion))),Kd($a,tc,(t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new Es(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]}),Kd(Ka,$a,(t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const i=nu(t,e.key,e.newValue);i&&n.push(i)}return n}),Kd(Ka,Ka,(t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t])),Kd(Ka,Ga,(t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t])),Kd(Ka,tc,(t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t])),Kd(Ka,Xa,(t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t])),Kd(Qa,Ka,(t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t])),Kd(Qa,Qa,(t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new kc(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]}),Kd(Qa,Xa,(t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t])),Kd(Qa,Ga,(t,e,n)=>{if(t.oldRange&&(t.oldRange=Es._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const i=Es._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.start.path=n.abRelation.path,t.newRange.end=i.end,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=i.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=Es._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]}),Kd(Qa,tc,(t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const i=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=Cs._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=Cs._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=Cs._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=Cs._createAt(e.insertionPosition):t.newRange.end=i.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]}),Kd(Xa,Ka,(t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t])),Kd(Xa,Xa,(t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new Cs(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new kc(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const i="$graveyard"==t.targetPosition.root.rootName,o="$graveyard"==e.targetPosition.root.rootName,r=i&&!o;if(o&&!i||!r&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),i=t.targetPosition._getTransformedByMergeOperation(e);return[new Ga(n,t.howMany,i,0)]}return[new kc(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]}),Kd(Xa,Ga,(t,e,n)=>{const i=Es._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition)?[new kc(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])}),Kd(Xa,tc,(t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const i=0!=e.howMany,o=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(i||o||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}),Kd(Ga,Ka,(t,e)=>{const n=Es._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]}),Kd(Ga,Ga,(t,e,n)=>{const i=Es._createFromPositionAndShift(t.sourcePosition,t.howMany),o=Es._createFromPositionAndShift(e.sourcePosition,e.howMany);let r,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),r=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),iu(t,e)&&iu(e,t))return[e.getReversed()];if(i.containsPosition(e.targetPosition)&&i.containsRange(o,!0))return i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),ou([i],r);if(o.containsPosition(t.targetPosition)&&o.containsRange(i,!0))return i.start=i.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),i.end=i.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),ou([i],r);const c=Nn(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==c||"extension"==c)return i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),ou([i],r);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const l=[],d=i.getDifference(o);for(const t of d){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==Nn(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),i=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);l.push(...i)}const u=i.getIntersection(o);return null!==u&&s&&(u.start=u.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),u.end=u.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===l.length?l.push(u):1==l.length?o.start.isBefore(i.start)||o.start.isEqual(i.start)?l.unshift(u):l.push(u):l.splice(1,0,u)),0===l.length?[new kc(t.baseVersion)]:ou(l,r)}),Kd(Ga,tc,(t,e,n)=>{let i=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(i=t.targetPosition._getTransformedBySplitOperation(e));const o=Es._createFromPositionAndShift(t.sourcePosition,t.howMany);if(o.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=i,[t];if(o.start.hasSameParentAs(e.splitPosition)&&o.containsPosition(e.splitPosition)){let t=new Es(e.splitPosition,o.end);t=t._getTransformedBySplitOperation(e);return ou([new Es(o.start,e.splitPosition),t],i)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(i=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(i=t.targetPosition);const r=[o._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const i=o.start.isEqual(e.graveyardPosition)||o.containsPosition(e.graveyardPosition);t.howMany>1&&i&&!n.aWasUndone&&r.push(Es._createFromPositionAndShift(e.insertionPosition,1))}return ou(r,i)}),Kd(Ga,Xa,(t,e,n)=>{const i=Es._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new kc(0)]}else if(!n.aWasUndone){const n=[];let i=e.graveyardPosition.clone(),o=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Ga(t.sourcePosition,t.howMany-1,t.targetPosition,0)),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Ga(i,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const c=new Cs(s.targetPosition.root,a);o=o._getTransformedByMove(i,r,1);const l=new Ga(o,e.howMany,c,0);return n.push(s),n.push(l),n}const o=Es._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=o.start,t.howMany=o.end.offset-o.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]}),Kd(Ja,Ka,(t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t])),Kd(Ja,Xa,(t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t])),Kd(Ja,Ga,(t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t])),Kd(Ja,Ja,(t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new kc(0)];t.oldName=e.newName}return[t]}),Kd(Ja,tc,(t,e)=>{if("same"==Nn(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new Ja(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]}),Kd(Za,Za,(t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new kc(0)];t.oldValue=e.newValue}return[t]}),Kd(tc,Ka,(t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const i=new Cs(e.graveyardPosition.root,n),o=tc.getInsertionPosition(new Cs(e.graveyardPosition.root,n)),r=new tc(i,0,null,0);return r.insertionPosition=o,t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=tc.getInsertionPosition(t.splitPosition),t.graveyardPosition=r.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[r,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=tc.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]}),Kd(tc,Ga,(t,e,n)=>{const i=Es._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const o=i.start.isEqual(t.graveyardPosition)||i.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&o){const n=t.splitPosition._getTransformedByMoveOperation(e),i=t.graveyardPosition._getTransformedByMoveOperation(e),o=i.path.slice();o.push(0);const r=new Cs(i.root,o);return[new Ga(n,t.howMany,r,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new kc(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new kc(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const i="$graveyard"==t.splitPosition.root.rootName,o="$graveyard"==e.splitPosition.root.rootName,r=i&&!o;if(o&&!i||!r&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Ga(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Ga(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new kc(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const i=new Cs(e.insertionPosition.root,n);return[t,new Ga(t.insertionPosition,1,i,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offsetthis.clearStack())}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const i=this.editor.model,o=i.document,r=[],s=t.map(t=>t.getTransformedByOperations(n)),a=s.flat();for(const t of s){const e=t.filter(t=>t.root!=o.graveyard).filter(t=>!au(t,a));e.length&&(su(e),r.push(e[0]))}r.length&&i.change(t=>{t.setSelection(r,{backward:e})})}_undo(t,e){const n=this.editor.model,i=n.document;this._createdBatches.add(e);const o=t.operations.slice().filter(t=>t.isDocumentOperation);o.reverse();for(const t of o){const o=t.baseVersion+1,r=Array.from(i.history.getOperations(o)),s=Zd([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const o of s)e.addOperation(o),n.applyOperation(o),i.history.setOperationAsUndone(t,o)}}}function su(t){t.sort((t,e)=>t.start.isBefore(e.start)?-1:1);for(let e=1;ee!==t&&e.containsRange(t,!0))}class cu extends ru{execute(t=null){const e=t?this._stack.findIndex(e=>e.batch==t):this._stack.length-1,n=this._stack.splice(e,1)[0],i=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(i,()=>{this._undo(n.batch,i);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,i)}),this.refresh()}}class lu extends ru{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(e,()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,i=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,i),this._undo(t.batch,e)}),this.refresh()}}class du extends dd{static get pluginName(){return"UndoEditing"}constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new cu(t),this._redoCommand=new lu(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",(t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const i=n.batch,o=this._redoCommand._createdBatches.has(i),r=this._undoCommand._createdBatches.has(i);this._batchRegistry.has(i)||"transparent"==i.type&&!o&&!r||(o?this._undoCommand.addBatch(i):r||(this._undoCommand.addBatch(i),this._redoCommand.clearStack()),this._batchRegistry.add(i))},{priority:"highest"}),this.listenTo(this._undoCommand,"revert",(t,e,n)=>{this._redoCommand.addBatch(n)}),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}var uu='',hu='';class fu extends dd{init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?uu:hu,o="ltr"==e.uiLanguageDirection?hu:uu;this._addButton("undo",n("Undo"),"CTRL+Z",i),this._addButton("redo",n("Redo"),"CTRL+Y",o)}_addButton(t,e,n,i){const o=this.editor;o.ui.componentFactory.add(t,r=>{const s=o.commands.get(t),a=new Gl(r);return a.set({label:e,icon:i,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",()=>{o.execute(t),o.editing.view.focus()}),a})}}class mu extends dd{static get requires(){return[du,fu]}static get pluginName(){return"Undo"}}class gu{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}xn(gu,Hi);class pu extends gu{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new An({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new hn.a("pendingactions-add-invalid-message",this);const e=Object.create(Hi);return e.set("message",t),this._actions.add(e),this.hasAny=!0,e}remove(t){this._actions.remove(t),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}class bu{constructor(){const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise((n,i)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{i("error")},e.onabort=()=>{i("aborted")},this._reader.readAsDataURL(t)})}abort(){this._reader.abort()}}xn(bu,Hi);class wu extends dd{static get pluginName(){return"FileRepository"}static get requires(){return[pu]}init(){this.loaders=new An,this.loaders.on("add",()=>this._updatePendingAction()),this.loaders.on("remove",()=>this._updatePendingAction()),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",(t,e)=>e?t/e*100:0)}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return Object(hn.c)("filerepository-no-upload-adapter"),null;const e=new ku(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then(t=>{this._loadersMap.set(t,e)}).catch(()=>{}),e.on("change:uploaded",()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t}),e.on("change:uploadTotal",()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t}),e}destroyLoader(t){const e=t instanceof ku?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach((t,n)=>{t===e&&this._loadersMap.delete(n)})}_updatePendingAction(){const t=this.editor.plugins.get(pu);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}xn(wu,Hi);class ku{constructor(t,e){this.id=dn(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new bu,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",(t,e)=>e?t/e*100:0),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then(t=>this._filePromiseWrapper?t:null):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new hn.a("filerepository-read-wrong-status",this);return this.status="reading",this.file.then(t=>this._reader.read(t)).then(t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t}).catch(t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t})}upload(){if("idle"!=this.status)throw new hn.a("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then(()=>this._adapter.upload()).then(t=>(this.uploadResponse=t,this.status="idle",t)).catch(t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t})}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch(()=>{}),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise((n,i)=>{e.rejecter=i,e.isFulfilled=!1,t.then(t=>{e.isFulfilled=!0,n(t)}).catch(t=>{e.isFulfilled=!0,i(t)})}),e}}xn(ku,Hi);function _u(){let t=function(t){t=t.toLowerCase();const e=document.cookie.split(";");for(const n of e){const e=n.split("=");if(decodeURIComponent(e[0].trim().toLowerCase())===t)return decodeURIComponent(e[1])}return null}("ckCsrfToken");var e,n;return t&&40==t.length||(t=function(t){let e="";const n=new Uint8Array(t);window.crypto.getRandomValues(n);for(let t=0;t.5?i.toUpperCase():i}return e}(40),e="ckCsrfToken",n=t,document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(n)+";path=/"),t}class vu extends dd{static get requires(){return[wu]}static get pluginName(){return"CKFinderUploadAdapter"}init(){const t=this.editor.config.get("ckfinder.uploadUrl");t&&(this.editor.plugins.get(wu).createUploadAdapter=e=>new yu(e,t,this.editor.t))}}class yu{constructor(t,e,n){this.loader=t,this.url=e,this.t=n}upload(){return this.loader.file.then(t=>new Promise((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.url,!0),t.responseType="json"}_initListeners(t,e,n){const i=this.xhr,o=this.loader,r=(0,this.t)("Cannot upload file:")+` ${n.name}.`;i.addEventListener("error",()=>e(r)),i.addEventListener("abort",()=>e()),i.addEventListener("load",()=>{const n=i.response;if(!n||!n.uploaded)return e(n&&n.error&&n.error.message?n.error.message:r);t({default:n.url})}),i.upload&&i.upload.addEventListener("progress",t=>{t.lengthComputable&&(o.uploadTotal=t.total,o.uploaded=t.loaded)})}_sendRequest(t){const e=new FormData;e.append("upload",t),e.append("ckCsrfToken",_u()),this.xhr.send(e)}}function xu(t){const e=t.next();return e.done?null:e.value}function Au(t,e,n,i){let o,r=null;"function"==typeof i?o=i:(r=t.commands.get(i),o=()=>{t.execute(i)}),t.model.document.on("change:data",(i,s)=>{if(r&&!r.isEnabled||!e.isEnabled)return;const a=xu(t.model.document.selection.getRanges());if(!a.isCollapsed)return;if("transparent"==s.type)return;const c=Array.from(t.model.document.differ.getChanges()),l=c[0];if(1!=c.length||"insert"!==l.type||"$text"!=l.name||1!=l.length)return;const d=l.position.parent;if(d.is("element","codeBlock"))return;if(r&&!0===r.value)return;const u=d.getChild(0),h=t.model.createRangeOn(u);if(!h.containsRange(a)&&!a.end.isEqual(h.end))return;const f=n.exec(u.data.substr(0,a.end.offset));f&&t.model.enqueueChange(t=>{const e=t.createPositionAt(d,0),n=t.createPositionAt(d,f[0].length),i=new Us(e,n);!1!==o({match:f})&&t.remove(i),i.detach()})})}function Cu(t,e,n,i){let o,r;n instanceof RegExp?o=n:r=n,r=r||(t=>{let e;const n=[],i=[];for(;null!==(e=o.exec(t))&&!(e&&e.length<4);){let{index:t,1:o,2:r,3:s}=e;const a=o+r+s;t+=e[0].length-a.length;const c=[t,t+o.length],l=[t+o.length+r.length,t+o.length+r.length+s.length];n.push(c),n.push(l),i.push([t+o.length,t+o.length+r.length])}return{remove:n,format:i}}),t.model.document.on("change:data",(n,o)=>{if("transparent"==o.type||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const c=Array.from(s.document.differ.getChanges()),l=c[0];if(1!=c.length||"insert"!==l.type||"$text"!=l.name||1!=l.length)return;const d=a.focus,u=d.parent,{text:h,range:f}=function(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce((t,i)=>!i.is("$text")&&!i.is("$textProxy")||i.getAttribute("code")?(n=e.createPositionAfter(i),""):t+i.data,""),range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(u,0),d),s),m=r(h),g=Tu(f.start,m.format,s),p=Tu(f.start,m.remove,s);g.length&&p.length&&s.enqueueChange(t=>{if(!1!==i(t,g))for(const e of p.reverse())t.remove(e)})})}function Tu(t,e,n){return e.filter(t=>void 0!==t[0]&&void 0!==t[1]).map(e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1])))}function Pu(t,e){return(n,i)=>{if(!t.commands.get(e).isEnabled)return!1;const o=t.model.schema.getValidRanges(i,e);for(const t of o)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class Su extends bd{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,i=void 0===t.forceValue?!this.value:t.forceValue;e.change(t=>{if(n.isCollapsed)i?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const o=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of o)i?t.setAttribute(this.attributeKey,i,e):t.removeAttribute(this.attributeKey,e)}})}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}class Eu extends dd{static get pluginName(){return"BoldEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"bold"}),t.model.schema.setAttributeProperties("bold",{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:"bold",view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e?"bold"==e||Number(e)>=600?{name:!0,styles:["font-weight"]}:void 0:null}]}),t.commands.add("bold",new Su(t,"bold")),t.keystrokes.set("CTRL+B","bold")}}class Mu extends dd{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("bold",n=>{const i=t.commands.get("bold"),o=new Gl(n);return o.set({label:e("Bold"),icon:'',keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),o.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(o,"execute",()=>{t.execute("bold"),t.editing.view.focus()}),o})}}class Iu extends dd{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"italic"}),t.model.schema.setAttributeProperties("italic",{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:"italic",view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add("italic",new Su(t,"italic")),t.keystrokes.set("CTRL+I","italic")}}class Nu extends dd{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("italic",n=>{const i=t.commands.get("italic"),o=new Gl(n);return o.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),o.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(o,"execute",()=>{t.execute("italic"),t.editing.view.focus()}),o})}}class Ou extends bd{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,i=e.document.selection,o=Array.from(i.getSelectedBlocks()),r=void 0===t.forceValue?!this.value:t.forceValue;e.change(t=>{if(r){const e=o.filter(t=>Ru(t)||Lu(n,t));this._applyQuote(t,e)}else this._removeQuote(t,o.filter(Ru))})}_getValue(){const t=xu(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!Ru(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=xu(t.getSelectedBlocks());return!!n&&Lu(e,n)}_removeQuote(t,e){Du(t,e).reverse().forEach(e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)})}_applyQuote(t,e){const n=[];Du(t,e).reverse().forEach(e=>{let i=Ru(e.start);i||(i=t.createElement("blockQuote"),t.wrap(e,i)),n.push(i)}),n.reverse().reduce((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n)}}function Ru(t){return"blockQuote"==t.parent.name?t.parent:null}function Du(t,e){let n,i=0;const o=[];for(;i{if(t.endsWith("blockQuote")&&"blockQuote"==e.name)return!1}),t.conversion.elementToElement({model:"blockQuote",view:"blockquote"}),t.model.document.registerPostFixer(n=>{const i=t.model.document.differ.getChanges();for(const t of i)if("insert"==t.type){const i=t.position.nodeAfter;if(!i)continue;if(i.is("element","blockQuote")&&i.isEmpty)return n.remove(i),!0;if(i.is("element","blockQuote")&&!e.checkChild(t.position,i))return n.unwrap(i),!0;if(i.is("element")){const t=n.createRangeIn(i);for(const i of t.getItems())if(i.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(i),i))return n.unwrap(i),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1})}afterInit(){const t=this.editor.commands.get("blockQuote");this.listenTo(this.editor.editing.view.document,"enter",(e,n)=>{const i=this.editor.model.document,o=i.selection.getLastPosition().parent;i.selection.isCollapsed&&o.isEmpty&&t.value&&(this.editor.execute("blockQuote"),this.editor.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())})}}n(44);class ju extends dd{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",n=>{const i=t.commands.get("blockQuote"),o=new Gl(n);return o.set({label:e("Block quote"),icon:'',tooltip:!0,isToggleable:!0}),o.bind("isOn","isEnabled").to(i,"value","isEnabled"),this.listenTo(o,"execute",()=>{t.execute("blockQuote"),t.editing.view.focus()}),o})}}class zu extends dd{static get pluginName(){return"CKFinderUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t;e.add("ckfinder",e=>{const i=t.commands.get("ckfinder"),o=new Gl(e);return o.set({label:n("Insert image or file"),icon:'',tooltip:!0}),o.bind("isEnabled").to(i),o.on("execute",()=>{t.execute("ckfinder"),t.editing.view.focus()}),o})}}class Bu extends br{observe(t){this.listenTo(t,"load",(t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)},{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class Fu{constructor(){this._stack=[]}add(t,e){const n=this._stack,i=n[0];this._insertDescriptor(t);const o=n[0];i===o||Uu(i,o)||this.fire("change:top",{oldDescriptor:i,newDescriptor:o,writer:e})}remove(t,e){const n=this._stack,i=n[0];this._removeDescriptor(t);const o=n[0];i===o||Uu(i,o)||this.fire("change:top",{oldDescriptor:i,newDescriptor:o,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex(e=>e.id===t.id);if(Uu(t,e[n]))return;n>-1&&e.splice(n,1);let i=0;for(;e[i]&&Hu(e[i],t);)i++;e.splice(i,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex(e=>e.id===t);n>-1&&e.splice(n,1)}}function Uu(t,e){return t&&e&&t.priority==e.priority&&Wu(t.classes)==Wu(e.classes)}function Hu(t,e){return t.priority>e.priority||!(t.priorityWu(e.classes)}function Wu(t){return Array.isArray(t)?t.sort().join(","):t}xn(Fu,gn);n(46);const qu=Il("px"),$u=rr.document.body;class Yu extends xl{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class"),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",t=>"ck-balloon-panel_"+t),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",qu),left:e.to("left",qu)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=Yu.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast],limiter:$u,fitInViewport:!0},t),i=Yu._getOptimalPosition(n),o=parseInt(i.left),r=parseInt(i.top),s=i.name;Object.assign(this,{top:r,left:o,position:s})}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=Gu(t.target),n=t.limiter?Gu(t.limiter):$u;this.listenTo(rr.document,"scroll",(i,o)=>{const r=o.target,s=e&&r.contains(e),a=n&&r.contains(n);!s&&!a&&e&&n||this.attachTo(t)},{useCapture:!0}),this.listenTo(rr.window,"resize",()=>{this.attachTo(t)})}_stopPinning(){this.stopListening(rr.document,"scroll"),this.stopListening(rr.window,"resize")}}function Gu(t){return nn(t)?t:es(t)?t.commonAncestorContainer:"function"==typeof t?Gu(t()):null}function Ku(t,e){return t.top-e.height-Yu.arrowVerticalOffset}function Qu(t){return t.bottom+Yu.arrowVerticalOffset}Yu.arrowHorizontalOffset=25,Yu.arrowVerticalOffset=10,Yu._getOptimalPosition=Fl,Yu.defaultPositions={northWestArrowSouthWest:(t,e)=>({top:Ku(t,e),left:t.left-Yu.arrowHorizontalOffset,name:"arrow_sw"}),northWestArrowSouthMiddleWest:(t,e)=>({top:Ku(t,e),left:t.left-.25*e.width-Yu.arrowHorizontalOffset,name:"arrow_smw"}),northWestArrowSouth:(t,e)=>({top:Ku(t,e),left:t.left-e.width/2,name:"arrow_s"}),northWestArrowSouthMiddleEast:(t,e)=>({top:Ku(t,e),left:t.left-.75*e.width+Yu.arrowHorizontalOffset,name:"arrow_sme"}),northWestArrowSouthEast:(t,e)=>({top:Ku(t,e),left:t.left-e.width+Yu.arrowHorizontalOffset,name:"arrow_se"}),northArrowSouthWest:(t,e)=>({top:Ku(t,e),left:t.left+t.width/2-Yu.arrowHorizontalOffset,name:"arrow_sw"}),northArrowSouthMiddleWest:(t,e)=>({top:Ku(t,e),left:t.left+t.width/2-.25*e.width-Yu.arrowHorizontalOffset,name:"arrow_smw"}),northArrowSouth:(t,e)=>({top:Ku(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s"}),northArrowSouthMiddleEast:(t,e)=>({top:Ku(t,e),left:t.left+t.width/2-.75*e.width+Yu.arrowHorizontalOffset,name:"arrow_sme"}),northArrowSouthEast:(t,e)=>({top:Ku(t,e),left:t.left+t.width/2-e.width+Yu.arrowHorizontalOffset,name:"arrow_se"}),northEastArrowSouthWest:(t,e)=>({top:Ku(t,e),left:t.right-Yu.arrowHorizontalOffset,name:"arrow_sw"}),northEastArrowSouthMiddleWest:(t,e)=>({top:Ku(t,e),left:t.right-.25*e.width-Yu.arrowHorizontalOffset,name:"arrow_smw"}),northEastArrowSouth:(t,e)=>({top:Ku(t,e),left:t.right-e.width/2,name:"arrow_s"}),northEastArrowSouthMiddleEast:(t,e)=>({top:Ku(t,e),left:t.right-.75*e.width+Yu.arrowHorizontalOffset,name:"arrow_sme"}),northEastArrowSouthEast:(t,e)=>({top:Ku(t,e),left:t.right-e.width+Yu.arrowHorizontalOffset,name:"arrow_se"}),southWestArrowNorthWest:(t,e)=>({top:Qu(t),left:t.left-Yu.arrowHorizontalOffset,name:"arrow_nw"}),southWestArrowNorthMiddleWest:(t,e)=>({top:Qu(t),left:t.left-.25*e.width-Yu.arrowHorizontalOffset,name:"arrow_nmw"}),southWestArrowNorth:(t,e)=>({top:Qu(t),left:t.left-e.width/2,name:"arrow_n"}),southWestArrowNorthMiddleEast:(t,e)=>({top:Qu(t),left:t.left-.75*e.width+Yu.arrowHorizontalOffset,name:"arrow_nme"}),southWestArrowNorthEast:(t,e)=>({top:Qu(t),left:t.left-e.width+Yu.arrowHorizontalOffset,name:"arrow_ne"}),southArrowNorthWest:(t,e)=>({top:Qu(t),left:t.left+t.width/2-Yu.arrowHorizontalOffset,name:"arrow_nw"}),southArrowNorthMiddleWest:(t,e)=>({top:Qu(t),left:t.left+t.width/2-.25*e.width-Yu.arrowHorizontalOffset,name:"arrow_nmw"}),southArrowNorth:(t,e)=>({top:Qu(t),left:t.left+t.width/2-e.width/2,name:"arrow_n"}),southArrowNorthMiddleEast:(t,e)=>({top:Qu(t),left:t.left+t.width/2-.75*e.width+Yu.arrowHorizontalOffset,name:"arrow_nme"}),southArrowNorthEast:(t,e)=>({top:Qu(t),left:t.left+t.width/2-e.width+Yu.arrowHorizontalOffset,name:"arrow_ne"}),southEastArrowNorthWest:(t,e)=>({top:Qu(t),left:t.right-Yu.arrowHorizontalOffset,name:"arrow_nw"}),southEastArrowNorthMiddleWest:(t,e)=>({top:Qu(t),left:t.right-.25*e.width-Yu.arrowHorizontalOffset,name:"arrow_nmw"}),southEastArrowNorth:(t,e)=>({top:Qu(t),left:t.right-e.width/2,name:"arrow_n"}),southEastArrowNorthMiddleEast:(t,e)=>({top:Qu(t),left:t.right-.75*e.width+Yu.arrowHorizontalOffset,name:"arrow_nme"}),southEastArrowNorthEast:(t,e)=>({top:Qu(t),left:t.right-e.width+Yu.arrowHorizontalOffset,name:"arrow_ne"})};function Ju(t,e,n){return t&&Xu(t)&&!n.isInline(e)}function Zu(t){return t.getAttribute("widget-type-around")}function Xu(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function th(t,e,n={}){if(!t.is("containerElement"))throw new hn.a("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=sh,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new $l;return n.set("content",''),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),eh(t,e,(t,e,n)=>n.addClass(Tn(e.classes),t),(t,e,n)=>n.removeClass(Tn(e.classes),t)),t}function eh(t,e,n,i){const o=new Fu;o.on("change:top",(e,o)=>{o.oldDescriptor&&i(t,o.oldDescriptor,o.writer),o.newDescriptor&&n(t,o.newDescriptor,o.writer)}),e.setCustomProperty("addHighlight",(t,e,n)=>o.add(e,n),t),e.setCustomProperty("removeHighlight",(t,e,n)=>o.remove(e,n),t)}function nh(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function ih(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",(n,i,o)=>{e.setAttribute("contenteditable",o?"false":"true",t)}),t.on("change:isFocused",(n,i,o)=>{o?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)}),t}function oh(t,e){const n=t.getSelectedElement();if(n){const i=Zu(t);if(i)return e.createPositionAt(n,i);if(e.schema.isBlock(n))return e.createPositionAfter(n)}const i=t.getSelectedBlocks().next().value;if(i){if(i.isEmpty)return e.createPositionAt(i,0);const n=e.createPositionAfter(i);return t.focus.isTouching(n)?n:e.createPositionBefore(i)}return t.focus}function rh(t,e){const n=new os(rr.window),i=n.getIntersection(t),o=e.height+Yu.arrowVerticalOffset;if(t.top-o>n.top||t.bottom+o{const o=i.createElement("image",e),r=n||oh(t.document.selection,t);t.insertContent(o,r),o.parent&&i.setSelection(o,"on")})}function dh(t){const e=t.schema,n=t.document.selection;return function(t,e,n){const i=function(t,e){const n=oh(t,e).parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,n);return e.checkChild(i,"image")}(n,e,t)&&!function(t,e){const n=t.getSelectedElement();return n&&e.isObject(n)}(n,e)&&function(t){return[...t.focus.getAncestors()].every(t=>!t.is("element","image"))}(n)}function uh(t){const e=[];for(const n of t.getChildren())e.push(n),n.is("element")&&e.push(...n.getChildren());return e.find(t=>t.is("element","img"))}function hh(t){return n=>{n.on(`attribute:${t}:image`,e)};function e(t,e,n){if(!n.consumable.consume(e.item,t.name))return;const i=n.writer,o=uh(n.mapper.toViewElement(e.item));i.setAttribute(e.attributeKey,e.attributeNewValue||"",o)}}class fh extends bd{refresh(){this.isEnabled=dh(this.editor.model)}execute(t){const e=this.editor.model;for(const n of Tn(t.source))lh(e,{src:n})}}class mh extends dd{static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.model.schema,n=t.t,i=t.conversion;t.editing.view.addObserver(Bu),e.register("image",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["alt","src","srcset"]}),i.for("dataDowncast").elementToElement({model:"image",view:(t,{writer:e})=>gh(e)}),i.for("editingDowncast").elementToElement({model:"image",view:(t,{writer:e})=>function(t,e,n){return e.setCustomProperty("image",!0,t),th(t,e,{label:function(){const e=uh(t).getAttribute("alt");return e?`${e} ${n}`:n}})}(gh(e),e,n("image widget"))}),i.for("downcast").add(hh("src")).add(hh("alt")).add(function(){return e=>{e.on("attribute:srcset:image",t)};function t(t,e,n){if(!n.consumable.consume(e.item,t.name))return;const i=n.writer,o=uh(n.mapper.toViewElement(e.item));if(null===e.attributeNewValue){const t=e.attributeOldValue;t.data&&(i.removeAttribute("srcset",o),i.removeAttribute("sizes",o),t.width&&i.removeAttribute("width",o))}else{const t=e.attributeNewValue;t.data&&(i.setAttribute("srcset",t.data,o),i.setAttribute("sizes","100vw",o),t.width&&i.setAttribute("width",t.width,o))}}}()),i.for("upcast").elementToElement({view:{name:"img",attributes:{src:!0}},model:(t,{writer:e})=>e.createElement("image",{src:t.getAttribute("src")})}).attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}}).add(function(){return e=>{e.on("element:figure",t)};function t(t,e,n){if(!n.consumable.test(e.viewItem,{name:!0,classes:"image"}))return;const i=uh(e.viewItem);if(!i||!i.hasAttribute("src")||!n.consumable.test(i,{name:!0}))return;const o=xu(n.convertItem(i,e.modelCursor).modelRange.getItems());o&&(n.convertChildren(e.viewItem,o),n.updateConversionResult(o,e))}}()),t.commands.add("imageInsert",new fh(t))}}function gh(t){const e=t.createEmptyElement("img"),n=t.createContainerElement("figure",{class:"image"});return t.insert(t.createPositionAt(n,0),e),n}class ph extends jr{constructor(t){super(t),this.domEventType="mousedown"}onDomEvent(t){this.fire(t.type,t)}}class bh extends dd{static get pluginName(){return"TwoStepCaretMovement"}constructor(t){super(t),this.attributes=new Set,this._overrideUid=null}init(){const t=this.editor,e=t.model,n=t.editing.view,i=t.locale,o=e.document.selection;this.listenTo(n.document,"keydown",(t,e)=>{if(!o.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==po.arrowright,r=e.keyCode==po.arrowleft;if(!n&&!r)return;const s=i.contentLanguageDirection;let a=!1;a="ltr"===s&&n||"rtl"===s&&r?this._handleForwardMovement(e):this._handleBackwardMovement(e),!0===a&&t.stop()},{priority:un.get("high")+1}),this._isNextGravityRestorationSkipped=!1,this.listenTo(o,"change:range",(t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&vh(o.getFirstPosition(),this.attributes)||this._restoreGravity())})}registerAttribute(t){this.attributes.add(t)}_handleForwardMovement(t){const e=this.attributes,n=this.editor.model.document.selection,i=n.getFirstPosition();return!this._isGravityOverridden&&((!i.isAtStart||!wh(n,e))&&(vh(i,e)?(_h(t),this._overrideGravity(),!0):void 0))}_handleBackwardMovement(t){const e=this.attributes,n=this.editor.model,i=n.document.selection,o=i.getFirstPosition();return this._isGravityOverridden?(_h(t),this._restoreGravity(),kh(n,e,o),!0):o.isAtStart?!!wh(i,e)&&(_h(t),kh(n,e,o),!0):function(t,e){return vh(t.getShiftedBy(-1),e)}(o,e)?o.isAtEnd&&!wh(i,e)&&vh(o,e)?(_h(t),kh(n,e,o),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1):void 0}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change(t=>t.overrideSelectionGravity())}_restoreGravity(){this.editor.model.change(t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null})}}function wh(t,e){for(const n of e)if(t.hasAttribute(n))return!0;return!1}function kh(t,e,n){const i=n.nodeBefore;t.change(t=>{i?t.setSelectionAttribute(i.getAttributes()):t.removeSelectionAttribute(e)})}function _h(t){t.preventDefault()}function vh(t,e){const{nodeBefore:n,nodeAfter:i}=t;for(const t of e){const e=n?n.getAttribute(t):void 0;if((i?i.getAttribute(t):void 0)!==e)return!0}return!1}function yh(t,e,n,i){return i.createRange(xh(t,e,n,!0,i),xh(t,e,n,!1,i))}function xh(t,e,n,i,o){let r=t.textNode||(i?t.nodeBefore:t.nodeAfter),s=null;for(;r&&r.getAttribute(e)==n;)s=r,r=i?r.previousSibling:r.nextSibling;return s?o.createPositionAt(s,i?"before":"after"):t}class Ah{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach(t=>this._definitions.add(t)):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",(t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;const i=n.writer,o=i.document.selection;for(const t of this._definitions){const r=i.createAttributeElement("a",t.attributes,{priority:5});i.setCustomProperty("link",!0,r),t.callback(e.attributeNewValue)?e.item.is("selection")?i.wrap(o.getFirstRange(),r):i.wrap(n.mapper.toViewRange(e.range),r):i.unwrap(n.mapper.toViewRange(e.range),r)}},{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:image",(t,e,n)=>{const i=n.mapper.toViewElement(e.item),o=Array.from(i.getChildren()).find(t=>"a"===t.name);for(const t of this._definitions){const i=Vn(t.attributes);if(t.callback(e.attributeNewValue))for(const[t,e]of i)"class"===t?n.writer.addClass(e,o):n.writer.setAttribute(t,e,o);else for(const[t,e]of i)"class"===t?n.writer.removeClass(e,o):n.writer.removeAttribute(t,o)}})}}}var Ch=function(t,e,n){var i=t.length;return n=void 0===n?i:n,!e&&n>=i?t:oi(t,e,n)},Th=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var Ph=function(t){return Th.test(t)};var Sh=function(t){return t.split("")},Eh="[\\ud800-\\udfff]",Mh="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ih="\\ud83c[\\udffb-\\udfff]",Nh="[^\\ud800-\\udfff]",Oh="(?:\\ud83c[\\udde6-\\uddff]){2}",Rh="[\\ud800-\\udbff][\\udc00-\\udfff]",Dh="(?:"+Mh+"|"+Ih+")"+"?",Lh="[\\ufe0e\\ufe0f]?"+Dh+("(?:\\u200d(?:"+[Nh,Oh,Rh].join("|")+")[\\ufe0e\\ufe0f]?"+Dh+")*"),Vh="(?:"+[Nh+Mh+"?",Mh,Oh,Rh,Eh].join("|")+")",jh=RegExp(Ih+"(?="+Ih+")|"+Vh+Lh,"g");var zh=function(t){return t.match(jh)||[]};var Bh=function(t){return Ph(t)?zh(t):Sh(t)};var Fh=function(t){return function(e){e=Xn(e);var n=Ph(e)?Bh(e):void 0,i=n?n[0]:e.charAt(0),o=n?Ch(n,1).join(""):e.slice(1);return i[t]()+o}}("toUpperCase");const Uh=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Hh=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,Wh=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,qh=/^((\w+:(\/{2,})?)|(\W))/i;function $h(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function Yh(t){return function(t){return t.replace(Uh,"").match(Hh)}(t=String(t))?t:"#"}function Gh(t,e){return!!t&&(t.is("element","image")&&e.checkAttribute("image","linkHref"))}function Kh(t,e){const n=(i=t,Wh.test(i)?"mailto:":e);var i;const o=!!n&&!qh.test(t);return t&&o?n+t:t}class Qh extends bd{constructor(t){super(t),this.manualDecorators=new An,this.automaticDecorators=new Ah}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document,n=xu(e.selection.getSelectedBlocks());Gh(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.selection.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,i=n.document.selection,o=[],r=[];for(const t in e)e[t]?o.push(t):r.push(t);n.change(e=>{if(i.isCollapsed){const s=i.getFirstPosition();if(i.hasAttribute("linkHref")){const a=yh(s,"linkHref",i.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),o.forEach(t=>{e.setAttribute(t,!0,a)}),r.forEach(t=>{e.removeAttribute(t,a)}),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const r=Vn(i.getAttributes());r.set("linkHref",t),o.forEach(t=>{r.set(t,!0)});const{end:a}=n.insertContent(e.createText(t,r),s);e.setSelection(a)}["linkHref",...o,...r].forEach(t=>{e.removeSelectionAttribute(t)})}else{const s=n.schema.getValidRanges(i.getRanges(),"linkHref"),a=[];for(const t of i.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const c=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&c.push(t);for(const n of c)e.setAttribute("linkHref",t,n),o.forEach(t=>{e.setAttribute(t,!0,n)}),r.forEach(t=>{e.removeAttribute(t,n)})}})}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document,i=xu(n.selection.getSelectedBlocks());return Gh(i,e.schema)?i.getAttribute(t):n.selection.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class Jh extends bd{refresh(){const t=this.editor.model,e=t.document,n=xu(e.selection.getSelectedBlocks());Gh(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,i=t.commands.get("link");e.change(t=>{const o=n.isCollapsed?[yh(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of o)if(t.removeAttribute("linkHref",e),i)for(const n of i.manualDecorators)t.removeAttribute(n.id,e)})}}class Zh{constructor({id:t,label:e,attributes:n,defaultValue:i}){this.id=t,this.set("value"),this.defaultValue=i,this.label=e,this.attributes=n}}xn(Zh,Hi);n(48);const Xh=/^(https?:)?\/\//;class tf extends dd{static get pluginName(){return"LinkEditing"}static get requires(){return[bh,Hd,pd]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:$h}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>$h(Yh(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new Qh(t)),t.commands.add("unlink",new Jh(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach(t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t)),e}(t.t,function(t){const e=[];if(t)for(const[n,i]of Object.entries(t)){const t=Object.assign({},i,{id:"link"+Fh(n)});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter(t=>"automatic"===t.mode)),this._enableManualDecorators(e.filter(t=>"manual"===t.mode));t.plugins.get(bh).registerAttribute("linkHref"),function(t,e,n,i){const o=t.editing.view,r=new Set;o.document.registerPostFixer(o=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const c=yh(s.getFirstPosition(),e,s.getAttribute(e),t.model),l=t.editing.mapper.toViewRange(c);for(const t of l.getItems())t.is("element",n)&&!t.hasClass(i)&&(o.addClass(i,t),r.add(t),a=!0)}return a}),t.conversion.for("editingDowncast").add(t=>{function e(){o.change(t=>{for(const e of r.values())t.removeClass(i,e),r.delete(e)})}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})})}(t,"linkHref","a","ck-link_selected"),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:"automatic",callback:t=>Xh.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach(t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),n.add(new Zh(t)),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:i})=>{if(e){const e=n.get(t.id).attributes,o=i.createAttributeElement("a",e,{priority:5});return i.setCustomProperty("link",!0,o),o}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:n.get(t.id).attributes},model:{key:t.id}})})}_enableInsertContentSelectionAttributesFixer(){const t=this.editor,e=t.model,n=e.document.selection,i=t.commands.get("link");this.listenTo(e,"insertContent",()=>{const t=n.anchor.nodeBefore,o=n.anchor.nodeAfter;n.hasAttribute("linkHref")&&t&&t.hasAttribute("linkHref")&&(o&&o.hasAttribute("linkHref")||e.change(t=>{ef(t,i.manualDecorators)}))},{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.commands.get("link");t.editing.view.addObserver(ph);let n=!1;this.listenTo(t.editing.view.document,"mousedown",()=>{n=!0}),this.listenTo(t.editing.view.document,"selectionChange",()=>{if(!n)return;n=!1;const i=t.model.document.selection;if(!i.isCollapsed)return;if(!i.hasAttribute("linkHref"))return;const o=i.getFirstPosition(),r=yh(o,"linkHref",i.getAttribute("linkHref"),t.model);(o.isTouching(r.start)||o.isTouching(r.end))&&t.model.change(t=>{ef(t,e.manualDecorators)})})}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,i;this.listenTo(e.document,"delete",()=>{i=!0},{priority:"high"}),this.listenTo(t.model,"deleteContent",()=>{const e=t.model.document.selection;e.isCollapsed||(i?i=!1:nf(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),i=e.getLastPosition(),o=n.nodeAfter;if(!o)return!1;if(!o.is("$text"))return!1;if(!o.hasAttribute("linkHref"))return!1;const r=i.textNode||i.nodeBefore;if(o===r)return!0;return yh(n,"linkHref",o.getAttribute("linkHref"),t).containsRange(t.createRange(n,i),!0)}(t.model)&&(n=e.getAttributes()))},{priority:"high"}),this.listenTo(t.model,"insertContent",(e,[o])=>{i=!1,nf(t)&&n&&(t.model.change(t=>{for(const[e,i]of n)t.setAttribute(e,i,o)}),n=null)},{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,i=t.editing.view,o=t.commands.get("link");let r=!1,s=!1;this.listenTo(i.document,"delete",(t,e)=>{s=e.domEvent.keyCode===po.backspace},{priority:"high"}),this.listenTo(e,"deleteContent",()=>{r=!1;const t=n.getFirstPosition(),i=n.getAttribute("linkHref");if(!i)return;const o=yh(t,"linkHref",i,e);r=o.containsPosition(t)||o.end.isEqual(t)},{priority:"high"}),this.listenTo(e,"deleteContent",()=>{s&&(s=!1,r||t.model.enqueueChange(t=>{ef(t,o.manualDecorators)}))},{priority:"low"})}}function ef(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n.id)}function nf(t){return t.plugins.get("Input").isInput(t.model.change(t=>t.batch))}class of extends gu{static get pluginName(){return"Notification"}init(){this.on("show:warning",(t,e)=>{window.alert(e.message)},{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e="show:"+t.type+(t.namespace?":"+t.namespace:"");this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class rf extends bd{constructor(t){super(t),this.stopListening(this.editor.model.document,"change"),this.listenTo(this.editor.model.document,"change",()=>this.refresh(),{priority:"low"})}refresh(){const t=this.editor.commands.get("imageInsert"),e=this.editor.commands.get("link");this.isEnabled=t.isEnabled||e.isEnabled}execute(){const t=this.editor,e=this.editor.config.get("ckfinder.openerMethod")||"modal";if("popup"!=e&&"modal"!=e)throw new hn.a("ckfinder-unknown-openermethod",t);const n=this.editor.config.get("ckfinder.options")||{};n.chooseFiles=!0;const i=n.onInit;n.language||(n.language=t.locale.uiLanguage),n.onInit=e=>{i&&i(e),e.on("files:choose",n=>{const i=n.data.files.toArray(),o=i.filter(t=>!t.isImage()),r=i.filter(t=>t.isImage());for(const e of o)t.execute("link",e.getUrl());const s=[];for(const t of r){const n=t.getUrl();s.push(n||e.request("file:getProxyUrl",{file:t}))}s.length&&sf(t,s)}),e.on("file:choose:resizedImage",e=>{const n=e.data.resizedUrl;if(n)sf(t,[n]);else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not obtain resized image URL."),{title:n("Selecting resized image failed"),namespace:"ckfinder"})}})},window.CKFinder[e](n)}}function sf(t,e){if(t.commands.get("imageInsert").isEnabled)t.execute("imageInsert",{source:e});else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not insert image at the current position."),{title:n("Inserting image failed"),namespace:"ckfinder"})}}class af extends dd{static get pluginName(){return"CKFinderEditing"}static get requires(){return[of,mh,tf]}init(){const t=this.editor;t.commands.add("ckfinder",new rf(t))}}const cf=/^data:(\S*?);base64,/;class lf{constructor(t,e,n){if(!t)throw new hn.a("fileuploader-missing-file",null);if(!e)throw new hn.a("fileuploader-missing-token",null);if(!n)throw new hn.a("fileuploader-missing-api-address",null);this.file=function(t){if("string"!=typeof t)return!1;const e=t.match(cf);return!(!e||!e.length)}(t)?function(t,e=512){try{const n=t.match(cf)[1],i=atob(t.replace(cf,"")),o=[];for(let t=0;tt(n)),this}onError(t){return this.once("error",(e,n)=>t(n)),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const t=new XMLHttpRequest;t.open("POST",this._apiAddress),t.setRequestHeader("Authorization",this._token.value),t.responseType="json",this.xhr=t}_attachXHRListeners(){const t=this,e=this.xhr;function n(e){return()=>t.fire("error",e)}e.addEventListener("error",n("Network Error")),e.addEventListener("abort",n("Abort")),e.upload&&e.upload.addEventListener("progress",t=>{t.lengthComputable&&this.fire("progress",{total:t.total,uploaded:t.loaded})}),e.addEventListener("load",()=>{const t=e.status,n=e.response;if(t<200||t>299)return this.fire("error",n.message||n.error)})}_sendRequest(){const t=new FormData,e=this.xhr;return t.append("file",this.file),new Promise((n,i)=>{e.addEventListener("load",()=>{const t=e.status,o=e.response;return t<200||t>299?o.message?i(new hn.a("fileuploader-uploading-data-failed",this,{message:o.message})):i(o.error):n(o)}),e.addEventListener("error",()=>i(new Error("Network Error"))),e.addEventListener("abort",()=>i(new Error("Abort"))),e.send(t)})}}xn(lf,gn);const df={autoRefresh:!0};class uf{constructor(t,e=df){if(!t)throw new hn.a("token-missing-token-url",this);e.initValue&&this._validateTokenValue(e.initValue),this.set("value",e.initValue),this._refresh="function"==typeof t?t:()=>{return e=t,new Promise((t,n)=>{const i=new XMLHttpRequest;i.open("GET",e),i.addEventListener("load",()=>{const e=i.status,o=i.response;return e<200||e>299?n(new hn.a("token-cannot-download-new-token",null)):t(o)}),i.addEventListener("error",()=>n(new Error("Network Error"))),i.addEventListener("abort",()=>n(new Error("Abort"))),i.send()});var e},this._options=Object.assign({},df,e)}init(){return new Promise((t,e)=>{this.value?(this._options.autoRefresh&&this._registerRefreshTokenTimeout(),t(this)):this.refreshToken().then(t).catch(e)})}refreshToken(){return this._refresh().then(t=>{this._validateTokenValue(t),this.set("value",t),this._options.autoRefresh&&this._registerRefreshTokenTimeout()}).then(()=>this)}destroy(){clearTimeout(this._tokenRefreshTimeout)}_validateTokenValue(t){const e="string"==typeof t,n=!/^".*"$/.test(t),i=e&&3===t.split(".").length;if(!n||!i)throw new hn.a("token-not-in-jwt-format",this)}_registerRefreshTokenTimeout(){const t=this._getTokenRefreshTimeoutTime();clearTimeout(this._tokenRefreshTimeout),this._tokenRefreshTimeout=setTimeout(()=>{this.refreshToken()},t)}_getTokenRefreshTimeoutTime(){try{const[,t]=this.value.split("."),{exp:e}=JSON.parse(atob(t));if(!e)return 36e5;return Math.floor((1e3*e-Date.now())/2)}catch(t){return 36e5}}static create(t,e=df){return new uf(t,e).init()}}xn(uf,Hi);var hf=uf;class ff extends gu{static get pluginName(){return"CloudServices"}init(){const t=this.context.config.get("cloudServices")||{};for(const e in t)this[e]=t[e];if(this._tokens=new Map,this.tokenUrl)return this.token=new ff.Token(this.tokenUrl),this._tokens.set(this.tokenUrl,this.token),this.token.init();this.token=null}registerTokenUrl(t){if(this._tokens.has(t))return Promise.resolve(this.getTokenFor(t));const e=new ff.Token(t);return this._tokens.set(t,e),e.init()}getTokenFor(t){const e=this._tokens.get(t);if(!e)throw new hn.a("cloudservices-token-not-registered",this);return e}destroy(){super.destroy();for(const t of this._tokens.values())t.destroy()}}ff.Token=hf;class mf extends dd{static get requires(){return[wu,ff]}init(){const t=this.editor,e=t.plugins.get(ff),n=e.token,i=e.uploadUrl;n&&(this._uploadGateway=new mf._UploadGateway(n,i),t.plugins.get(wu).createUploadAdapter=t=>new gf(this._uploadGateway,t))}}class gf{constructor(t,e){this.uploadGateway=t,this.loader=e}upload(){return this.loader.file.then(t=>(this.fileUploader=this.uploadGateway.upload(t),this.fileUploader.on("progress",(t,e)=>{this.loader.uploadTotal=e.total,this.loader.uploaded=e.uploaded}),this.fileUploader.send()))}abort(){this.fileUploader.abort()}}mf._UploadGateway=class{constructor(t,e){if(!t)throw new hn.a("uploadgateway-missing-token",null);if(!e)throw new hn.a("uploadgateway-missing-api-address",null);this._token=t,this._apiAddress=e}upload(t){return new lf(t,this._token,this._apiAddress)}};n(50);const pf=["before","after"],bf=(new DOMParser).parseFromString('',"image/svg+xml").firstChild;class wf extends dd{static get pluginName(){return"WidgetTypeAround"}constructor(t){super(t),this._currentFakeCaretModelElement=null}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",(n,i,o)=>{e.change(t=>{for(const n of e.document.roots)o?t.removeClass("ck-widget__type-around_disabled",n):t.addClass("ck-widget__type-around_disabled",n)}),o||t.model.change(t=>{t.removeSelectionAttribute("widget-type-around")})}),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,i=n.editing.view;n.execute("insertParagraph",{position:n.model.createPositionAt(t,e)}),i.focus(),i.scrollToTheSelection()}_listenToIfEnabled(t,e,n,i){this.listenTo(t,e,(...t)=>{this.isEnabled&&n(...t)},i)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=Zu(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,i={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",(t,n,o)=>{const r=o.mapper.toViewElement(n.item);Ju(r,n.item,e)&&function(t,e,n){const i=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of pf){const i=new ol({tag:"div",attributes:{class:["ck","ck-widget__type-around__button","ck-widget__type-around__button_"+n],title:e[n]},children:[t.ownerDocument.importNode(bf,!0)]});t.appendChild(i.render())}}(n,e),function(t){const e=new ol({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),i)}(o.writer,i,r)},{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,i=e.schema,o=t.editing.view;function r(t){return"ck-widget_type-around_show-fake-caret_"+t}this._listenToIfEnabled(o.document,"keydown",(t,e)=>{_o(e.keyCode)&&this._handleArrowKeyPress(t,e)},{priority:un.get("high")+10}),this._listenToIfEnabled(n,"change:range",(e,n)=>{n.directChange&&t.model.change(t=>{t.removeSelectionAttribute("widget-type-around")})}),this._listenToIfEnabled(e.document,"change:data",()=>{const e=n.getSelectedElement();if(e){if(Ju(t.editing.mapper.toViewElement(e),e,i))return}t.model.change(t=>{t.removeSelectionAttribute("widget-type-around")})}),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",(t,e,n)=>{const o=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(o.removeClass(pf.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!Ju(a,s,i))return;const c=Zu(e.selection);c&&(o.addClass(r(c),a),this._currentFakeCaretModelElement=s)}),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",(e,n,i)=>{i||t.model.change(t=>{t.removeSelectionAttribute("widget-type-around")})})}_handleArrowKeyPress(t,e){const n=this.editor,i=n.model,o=i.document.selection,r=i.schema,s=n.editing.view,a=yo(e.keyCode,n.locale.contentLanguageDirection),c=s.document.selection.getSelectedElement();let l;Ju(c,n.editing.mapper.toModelElement(c),r)?l=this._handleArrowKeyPressOnSelectedWidget(a):o.isCollapsed&&(l=this._handleArrowKeyPressWhenSelectionNextToAWidget(a)),l&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=Zu(e.document.selection);return e.change(e=>{if(!n)return e.setSelectionAttribute("widget-type-around",t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute("widget-type-around"),!0;return!1})}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,i=n.schema,o=e.plugins.get("Widget"),r=o._getObjectElementNextToSelection(t);return!!Ju(e.editing.mapper.toViewElement(r),r,i)&&(n.change(e=>{o._setSelectionOverElement(r),e.setSelectionAttribute("widget-type-around",t?"before":"after")}),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",(n,i)=>{const o=i.domTarget.closest(".ck-widget__type-around__button");if(!o)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(o),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(o,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),i.preventDefault(),n.stop()})}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"enter",(n,i)=>{const o=e.document.selection.getSelectedElement(),r=t.editing.mapper.toModelElement(o),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:Ju(o,r,s)&&(this._insertParagraph(r,i.isSoft?"before":"after"),a=!0),a&&(i.preventDefault(),n.stop())})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view,e=[po.enter,po.delete,po.backspace];this._listenToIfEnabled(t.document,"keydown",(t,n)=>{e.includes(n.keyCode)||Vd(n)||this._insertParagraphAccordingToFakeCaretPosition()},{priority:un.get("high")+1})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,i=n.schema;this._listenToIfEnabled(e.document,"delete",(e,o)=>{const r=Zu(n.document.selection);if(!r)return;const s=o.direction,a=n.document.selection.getSelectedElement(),c="forward"==s;if("before"===r===c)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=i.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const o=n.createSelection(e.start);if(n.modifySelection(o,{direction:s}),o.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const i of e.getAncestors({parentFirst:!0})){if(i.childCount>1||t.isLimit(i))break;n=i}return n}(i,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change(n=>{n.setSelection(e),t.execute(c?"forwardDelete":"delete")})}else n.change(n=>{n.setSelection(e),t.execute(c?"forwardDelete":"delete")})}o.preventDefault(),e.stop()},{priority:un.get("high")+1})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",(t,[i,o])=>{if(o&&!o.is("documentSelection"))return;const r=Zu(n);return r?(t.stop(),e.change(t=>{const o=n.getSelectedElement(),s=e.createPositionAt(o,r),a=t.createSelection(s),c=e.insertContent(i,a);return t.setSelection(a),c})):void 0},{priority:"high"})}}n(52);function kf(t){const e=t.model;return(n,i)=>{const o=i.keyCode==po.arrowup,r=i.keyCode==po.arrowdown,s=i.shiftKey,a=e.document.selection;if(!o&&!r)return;const c=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,c))return;const l=function(t,e,n){const i=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=_f(i,t,"forward");if(!n)return null;const o=i.createRange(t,n),r=vf(i.schema,o,"backward");return r&&t.isBefore(r)?i.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=_f(i,t,"backward");if(!n)return null;const o=i.createRange(n,t),r=vf(i.schema,o,"forward");return r&&t.isAfter(r)?i.createRange(r,t):null}}(t,a,c);l&&!l.isCollapsed&&function(t,e,n){const i=t.model,o=t.view.domConverter;if(n){const t=i.createSelection(e.start);i.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=i.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=o.viewRangeToDom(r),a=os.getDomRangeRects(s);let c;for(const t of a)if(void 0!==c){if(Math.round(t.top)>=c)return!1;c=Math.max(c,Math.round(t.bottom))}else c=Math.round(t.bottom);return!0}(t,l,c)&&(e.change(t=>{const n=c?l.end:l.start;if(s){const i=e.createSelection(a.anchor);i.setFocus(n),t.setSelection(i)}else t.setSelection(n)}),n.stop(),i.preventDefault(),i.stopPropagation())}}function _f(t,e,n){const i=t.schema,o=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of o.getWalker({startPosition:e,direction:n})){if(i.isLimit(s)&&!i.isInline(s))return t;if(a==r&&i.isBlock(s))return null}return null}function vf(t,e,n){const i="backward"==n?e.end:e.start;if(t.checkChild(i,"$text"))return i;for(const{nextPosition:i}of e.getWalker({direction:n}))if(t.checkChild(i,"$text"))return i}class yf extends dd{static get pluginName(){return"Widget"}static get requires(){return[wf]}init(){const t=this.editor.editing.view,e=t.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",(t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const i=n.writer,o=i.document.selection,r=o.getSelectedElement();let s=null;for(const t of o.getRanges())for(const e of t){const t=e.item;Xu(t)&&!xf(t,s)&&(i.addClass("ck-widget_selected",t),this._previouslySelected.add(t),s=t,t==r&&i.setSelection(o.getRanges(),{fake:!0,label:nh(r)}))}},{priority:"low"}),t.addObserver(ph),this.listenTo(e,"mousedown",(...t)=>this._onMousedown(...t)),this.listenTo(e,"keydown",(...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)},{priority:"high"}),this.listenTo(e,"keydown",(...t)=>{this._preventDefaultOnArrowKeyPress(...t)},{priority:un.get("high")-20}),this.listenTo(e,"keydown",kf(this.editor.editing)),this.listenTo(e,"delete",(t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())},{priority:"high"})}_onMousedown(t,e){const n=this.editor,i=n.editing.view,o=i.document;let r=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Xu(t))return!1;t=t.parent}return!1}(r)){if((fo.isSafari||fo.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,i=r.is("attributeElement")?r.findAncestor(t=>!t.is("attributeElement")):r,o=t.toModelElement(i);e.preventDefault(),this.editor.model.change(t=>{t.setSelection(o,"in")})}return}if(!Xu(r)&&(r=r.findAncestor(Xu),!r))return;e.preventDefault(),o.isFocused||i.focus();const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode;if(!_o(n))return;const i=this.editor.model,o=i.schema,r=i.document.selection,s=r.getSelectedElement(),a=yo(n,this.editor.locale.contentLanguageDirection);if(s&&o.isObject(s)){const n=a?r.getLastPosition():r.getFirstPosition(),s=o.getNearestSelectionRange(n,a?"forward":"backward");return void(s&&(i.change(t=>{t.setSelection(s)}),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const c=this._getObjectElementNextToSelection(a);c&&o.isObject(c)&&(this._setSelectionOverElement(c),e.preventDefault(),t.stop())}_preventDefaultOnArrowKeyPress(t,e){if(!_o(e.keyCode))return;const n=this.editor.model,i=n.schema,o=n.document.selection.getSelectedElement();o&&i.isObject(o)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change(t=>{let i=e.anchor.parent;for(;i.isEmpty;){const e=i;i=e.parent,t.remove(e)}this._setSelectionOverElement(n)}),!0):void 0}_setSelectionOverElement(t){this.editor.model.change(e=>{e.setSelection(e.createRangeOn(t))})}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,i=e.document.selection,o=e.createSelection(i);e.modifySelection(o,{direction:t?"forward":"backward"});const r=t?o.focus.nodeBefore:o.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass("ck-widget_selected",e);this._previouslySelected.clear()}}function xf(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}class Af extends bd{refresh(){const t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=ch(t),ch(t)&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor.model,n=e.document.selection.getSelectedElement();e.change(e=>{e.setAttribute("alt",t.newValue,n)})}}class Cf extends dd{static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Af(this.editor))}}n(54);class Tf extends xl{constructor(t,e){super(t);const n="ck-labeled-field-view-"+dn(),i="ck-labeled-field-view-status-"+dn();this.fieldView=e(this,n,i),this.set("label"),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class"),this.set("placeholder"),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(i),this.bind("_statusText").to(this,"errorText",this,"infoText",(t,e)=>t||e);const o=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",o.to("class"),o.if("isEnabled","ck-disabled",t=>!t),o.if("isEmpty","ck-labeled-field-view_empty"),o.if("isFocused","ck-labeled-field-view_focused"),o.if("placeholder","ck-labeled-field-view_placeholder"),o.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:[this.fieldView,this.labelView]},this.statusView]})}_createLabelView(t){const e=new Pl(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new xl(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",t=>!t)],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(){this.fieldView.focus()}}n(56);class Pf extends xl{constructor(t){super(t),this.set("value"),this.set("id"),this.set("placeholder"),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById"),this.focusTracker=new Gc,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{type:"text",class:["ck","ck-input","ck-input-text",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to("input"),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",(t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()})}select(){this.element.select()}focus(){this.element.focus()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}function Sf(t,e,n){const i=new Pf(t.locale);return i.set({id:e,ariaDescribedById:n}),i.bind("isReadOnly").to(t,"isEnabled",t=>!t),i.bind("hasError").to(t,"errorText",t=>!!t),i.on("input",()=>{t.errorText=null}),t.bind("isEmpty","isFocused","placeholder").to(i),i}function Ef(t){t.set("_isCssTransitionsDisabled",!1),t.disableCssTransitions=()=>{t._isCssTransitionsDisabled=!0},t.enableCssTransitions=()=>{t._isCssTransitionsDisabled=!1},t.extendTemplate({attributes:{class:[t.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}function Mf({view:t}){t.listenTo(t.element,"submit",(e,n)=>{n.preventDefault(),t.fire("submit")},{useCapture:!0})}var If='',Nf='';n(58),n(7);class Of extends xl{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Gc,this.keystrokes=new zc,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),If,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Nf,"ck-button-cancel","cancel"),this._focusables=new il,this._focusCycler=new Rl({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),Ef(this)}render(){super.render(),this.keystrokes.listenTo(this.element),Mf({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)})}_createButton(t,e,n,i){const o=new Gl(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.extendTemplate({attributes:{class:n}}),i&&o.delegate("execute").to(this,i),o}_createLabeledInputView(){const t=this.locale.t,e=new Tf(this.locale,Sf);return e.label=t("Text alternative"),e}}n(61),n(63);const Rf=Il("px");class Df extends dd{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.view=new Yu(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new hn.a("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new hn.a("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new hn.a("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find(e=>e[1]===t)[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new Lf(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",(t,e)=>!e&&t>1),t.on("change:isNavigationVisible",()=>this.updatePosition(),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",(t,n)=>{if(n<2)return"";const i=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[i,n])}),t.buttonNextView.on("execute",()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()}),t.buttonPrevView.on("execute",()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()}),t}_createFakePanelsView(){const t=new Vf(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",(t,e)=>!e&&t>=2?Math.min(t-1,2):0),t.listenTo(this.view,"change:top",()=>t.updatePosition()),t.listenTo(this.view,"change:left",()=>t.updatePosition()),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:i=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),i&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&!t.limiter&&(t=Object.assign({},t,{limiter:this.positionLimiter})),t}}class Lf extends xl{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new Gc,this.buttonPrevView=this._createButtonView(e("Previous"),''),this.buttonNextView=this._createButtonView(e("Next"),''),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",t=>t?"":"ck-hidden")]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new Gl(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class Vf extends xl{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",t=>t?"":"ck-hidden")],style:{top:n.to("top",Rf),left:n.to("left",Rf),width:n.to("width",Rf),height:n.to("height",Rf)}},children:this.content}),this.on("change:numberOfPanels",(t,e,n,i)=>{n>i?this._addPanels(n-i):this._removePanels(i-n),this.updatePosition()})}_addPanels(t){for(;t--;){const t=new xl;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:i}=new os(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:i})}}}function jf(t){const e=t.editing.view,n=Yu.defaultPositions;return{target:e.domConverter.viewToDom(e.document.selection.getSelectedElement()),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast]}}class zf extends dd{static get requires(){return[Df]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",n=>{const i=t.commands.get("imageTextAlternative"),o=new Gl(n);return o.set({label:e("Change image text alternative"),icon:'',tooltip:!0}),o.bind("isEnabled").to(i,"isEnabled"),this.listenTo(o,"execute",()=>{this._showForm()}),o})}_createForm(){const t=this.editor,e=t.editing.view.document;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new Of(t.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this._form.keystrokes.set("Esc",(t,e)=>{this._hideForm(!0),e()}),this.listenTo(t.ui,"update",()=>{ah(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(ah(t.editing.view.document.selection)){const n=jf(t);e.updatePosition(n)}}(t):this._hideForm(!0)}),ed({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:jf(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class Bf extends dd{static get requires(){return[Cf,zf]}static get pluginName(){return"ImageTextAlternative"}}n(65);class Ff extends dd{static get requires(){return[mh,yf,Bf]}static get pluginName(){return"Image"}}class Uf extends xl{constructor(t){super(t),this.buttonView=new Gl(t),this._fileInputView=new Hf(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",()=>{this._fileInputView.open()})}focus(){this.buttonView.focus()}}class Hf extends xl{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to(()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""})}})}open(){this.element.click()}}function Wf(t){const e=t.map(t=>t.replace("+","\\+"));return new RegExp(`^image\\/(${e.join("|")})$`)}class qf extends dd{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageUpload",n=>{const i=new Uf(n),o=t.commands.get("imageUpload"),r=t.config.get("image.upload.types"),s=Wf(r);return i.set({acceptedType:r.map(t=>"image/"+t).join(","),allowMultipleFiles:!0}),i.buttonView.set({label:e("Insert image"),icon:'',tooltip:!0}),i.buttonView.bind("isEnabled").to(o),i.on("done",(e,n)=>{const i=Array.from(n).filter(t=>s.test(t.type));i.length&&t.execute("imageUpload",{file:i})}),i})}}n(67),n(69),n(71);class $f extends dd{constructor(t){super(t),this.placeholder="data:image/svg+xml;utf8,"+encodeURIComponent('')}init(){this.editor.editing.downcastDispatcher.on("attribute:uploadStatus:image",(...t)=>this.uploadStatusChange(...t))}uploadStatusChange(t,e,n){const i=this.editor,o=e.item,r=o.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=i.plugins.get(wu),a=r?e.attributeNewValue:null,c=this.placeholder,l=i.editing.mapper.toViewElement(o),d=n.writer;if("reading"==a)return Yf(l,d),void Gf(c,l,d);if("uploading"==a){const t=s.loaders.get(r);return Yf(l,d),void(t?(Kf(l,d),function(t,e,n,i){const o=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),o),n.on("change:uploadedPercent",(t,e,n)=>{i.change(t=>{t.setStyle("width",n+"%",o)})})}(l,d,t,i.editing.view),function(t,e,n){if(n.data){const i=uh(t);e.setAttribute("src",n.data,i)}}(l,d,t)):Gf(c,l,d))}"complete"==a&&s.loaders.get(r)&&function(t,e,n){const i=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),i),setTimeout(()=>{n.change(t=>t.remove(t.createRangeOn(i)))},3e3)}(l,d,i.editing.view),function(t,e){Jf(t,e,"progressBar")}(l,d),Kf(l,d),function(t,e){e.removeClass("ck-appear",t)}(l,d)}}function Yf(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function Gf(t,e,n){e.hasClass("ck-image-upload-placeholder")||n.addClass("ck-image-upload-placeholder",e);const i=uh(e);i.getAttribute("src")!==t&&n.setAttribute("src",t,i),Qf(e,"placeholder")||n.insert(n.createPositionAfter(i),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(n))}function Kf(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),Jf(t,e,"placeholder")}function Qf(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function Jf(t,e,n){const i=Qf(t,n);i&&e.remove(e.createRangeOn(i))}class Zf{constructor(t){this.document=t}createDocumentFragment(t){return new Eo(this.document,t)}createElement(t,e,n){return new Ri(this.document,t,e,n)}createText(t){return new Dn(this.document,t)}clone(t,e=!1){return t._clone(e)}appendChild(t,e){return e._appendChild(t)}insertChild(t,e,n){return n._insertChild(t,e)}removeChildren(t,e,n){return n._removeChildren(t,e)}remove(t){const e=t.parent;return e?this.removeChildren(e.getChildIndex(t),1,e):[]}replace(t,e){const n=t.parent;if(n){const i=n.getChildIndex(t);return this.removeChildren(i,1,n),this.insertChild(i,e,n),!0}return!1}unwrapElement(t){const e=t.parent;if(e){const n=e.getChildIndex(t);this.remove(t),this.insertChild(n,t.getChildren(),e)}}rename(t,e){const n=new Ri(this.document,t,e.getAttributes(),e.getChildren());return this.replace(e,n)?n:null}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){y(t)&&void 0===n&&(n=e),n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}createPositionAt(t,e){return Xi._createAt(t,e)}createPositionAfter(t){return Xi._createAfter(t)}createPositionBefore(t){return Xi._createBefore(t)}createRange(t,e){return new to(t,e)}createRangeOn(t){return to._createOn(t)}createRangeIn(t){return to._createIn(t)}createSelection(t,e,n){return new io(t,e,n)}}class Xf extends bd{refresh(){const t=this.editor.model.document.selection.getSelectedElement(),e=t&&"image"===t.name||!1;this.isEnabled=dh(this.editor.model)||e}execute(t){const e=this.editor,n=e.model,i=e.plugins.get(wu);for(const e of Tn(t.file))tm(n,i,e)}}function tm(t,e,n){const i=e.createLoader(n);i&&lh(t,{uploadId:i.id})}class em extends dd{static get requires(){return[wu,of,pd]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}})}init(){const t=this.editor,e=t.model.document,n=t.model.schema,i=t.conversion,o=t.plugins.get(wu),r=Wf(t.config.get("image.upload.types"));n.extend("image",{allowAttributes:["uploadId","uploadStatus"]}),t.commands.add("imageUpload",new Xf(t)),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",(e,n)=>{if(i=n.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const o=Array.from(n.dataTransfer.files).filter(t=>!!t&&r.test(t.type)),s=n.targetRanges.map(e=>t.editing.mapper.toModelRange(e));t.model.change(n=>{n.setSelection(s),o.length&&(e.stop(),t.model.enqueueChange("default",()=>{t.execute("imageUpload",{file:o})}))})}),this.listenTo(t.plugins.get(pd),"inputTransformation",(e,n)=>{const i=Array.from(t.editing.view.createRangeIn(n.content)).filter(t=>{return!(!(e=t.item).is("element","img")||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))&&!t.item.getAttribute("uploadProcessed");var e}).map(t=>{return{promise:(e=t.item,new Promise((t,n)=>{const i=e.getAttribute("src");fetch(i).then(t=>t.blob()).then(e=>{const n=function(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}(e,i),o=n.replace("image/",""),r=new File([e],"image."+o,{type:n});t(r)}).catch(n)})),imageElement:t.item};var e});if(!i.length)return;const r=new Zf(t.editing.view.document);for(const t of i){r.setAttribute("uploadProcessed",!0,t.imageElement);const e=o.createLoader(t.promise);e&&(r.setAttribute("src","",t.imageElement),r.setAttribute("uploadId",e.id,t.imageElement))}}),t.editing.view.document.on("dragover",(t,e)=>{e.preventDefault()}),e.on("change",()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0});for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,i="$graveyard"==e.position.root.rootName;for(const e of nm(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=o.loaders.get(t);n&&(i?n.abort():"idle"==n.status&&this._readAndUpload(n,e))}}})}_readAndUpload(t,e){const n=this.editor,i=n.model,o=n.locale.t,r=n.plugins.get(wu),s=n.plugins.get(of);return i.enqueueChange("transparent",t=>{t.setAttribute("uploadStatus","reading",e)}),t.read().then(()=>{const o=t.upload();if(fo.isSafari){const t=uh(n.editing.mapper.toViewElement(e));n.editing.view.once("render",()=>{if(!t.parent)return;const e=n.editing.view.domConverter.mapViewToDom(t.parent);if(!e)return;const i=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=i})}return i.enqueueChange("transparent",t=>{t.setAttribute("uploadStatus","uploading",e)}),o}).then(t=>{i.enqueueChange("transparent",n=>{n.setAttributes({uploadStatus:"complete",src:t.default},e),this._parseAndSetSrcsetAttributeOnImage(t,e,n)}),a()}).catch(n=>{if("error"!==t.status&&"aborted"!==t.status)throw n;"error"==t.status&&n&&s.showWarning(n,{title:o("Upload failed"),namespace:"upload"}),a(),i.enqueueChange("transparent",t=>{t.remove(e)})});function a(){i.enqueueChange("transparent",t=>{t.removeAttribute("uploadId",e),t.removeAttribute("uploadStatus",e)}),r.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let i=0;const o=Object.keys(t).filter(t=>{const e=parseInt(t,10);if(!isNaN(e))return i=Math.max(i,e),!0}).map(e=>`${t[e]} ${e}w`).join(", ");""!=o&&n.setAttribute("srcset",{data:o,width:i},e)}}function nm(t,e){return Array.from(t.model.createRangeOn(e)).filter(t=>t.item.is("element","image")).map(t=>t.item)}class im extends dd{static get pluginName(){return"ImageUpload"}static get requires(){return[em,qf,$f]}}class om extends bd{refresh(){const t=this.editor.model,e=xu(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&rm(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change(i=>{const o=(t.selection||n.selection).getSelectedBlocks();for(const t of o)!t.is("element","paragraph")&&rm(t,e.schema)&&i.rename(t,"paragraph")})}}function rm(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class sm extends bd{execute(t){const e=this.editor.model;let n=t.position;e.change(t=>{const i=t.createElement("paragraph");if(!e.schema.checkChild(n.parent,i)){const o=e.schema.findAllowedParent(n,i);if(!o)return;n=t.split(n,o).position}e.insertContent(i,n),t.setSelection(i,"in")})}}class am extends dd{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new om(t)),t.commands.add("insertParagraph",new sm(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>am.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}am.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class cm extends bd{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=xu(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some(e=>lm(t,e,this.editor.model.schema))}execute(t){const e=this.editor.model,n=e.document,i=t.value;e.change(t=>{const o=Array.from(n.selection.getSelectedBlocks()).filter(t=>lm(t,i,e.schema));for(const e of o)e.is("element",i)||t.rename(e,i)})}}function lm(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}class dm extends dd{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[am]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const i of e)"paragraph"!==i.model&&(t.model.schema.register(i.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(i),n.push(i.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new cm(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",(e,i)=>{const o=t.model.document.selection.getFirstPosition().parent;n.some(t=>o.is("element",t.model))&&!o.is("element","paragraph")&&0===o.childCount&&i.writer.rename(o,"paragraph")})}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:un.get("low")+1})}}class um{constructor(t,e){e&&ji(this,e),t&&this.set(t)}}xn(um,Hi);n(12);class hm extends dd{init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map(t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t})}(t),i=e("Choose heading"),o=e("Heading");t.ui.componentFactory.add("heading",e=>{const r={},s=new An,a=t.commands.get("heading"),c=t.commands.get("paragraph"),l=[a];for(const t of n){const e={type:"button",model:new um({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(c,"value"),e.model.set("commandName","paragraph"),l.push(c)):(e.model.bind("isOn").to(a,"value",e=>e===t.model),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=nd(e);return id(d,s),d.buttonView.set({isOn:!1,withText:!0,tooltip:o}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(l,"isEnabled",(...t)=>t.some(t=>t)),d.buttonView.bind("label").to(a,"value",c,"value",(t,e)=>{const n=t||e&&"paragraph";return r[n]?r[n]:i}),this.listenTo(d,"execute",e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()}),d})}}function fm(t){for(const e of t.getChildren())if(e&&e.is("element","caption"))return e;return null}function mm(t){const e=t.parent;return"figcaption"==t.name&&e&&"figure"==e.name&&e.hasClass("image")?{name:!0}:null}class gm extends dd{static get pluginName(){return"ImageCaptionEditing"}init(){const t=this.editor,e=t.editing.view,n=t.model.schema,i=t.data,o=t.editing,r=t.t;n.register("caption",{allowIn:"image",allowContentOf:"$block",isLimit:!0}),t.model.document.registerPostFixer(t=>this._insertMissingModelCaptionElement(t)),t.conversion.for("upcast").elementToElement({view:mm,model:"caption"});i.downcastDispatcher.on("insert:caption",pm(t=>t.createContainerElement("figcaption"),!1));const s=function(t,e){return n=>{const i=n.createEditableElement("figcaption");return n.setCustomProperty("imageCaption",!0,i),Jc({view:t,element:i,text:e}),ih(i,n)}}(e,r("Enter image caption"));o.downcastDispatcher.on("insert:caption",pm(s)),o.downcastDispatcher.on("insert",this._fixCaptionVisibility(t=>t.item),{priority:"high"}),o.downcastDispatcher.on("remove",this._fixCaptionVisibility(t=>t.position.parent),{priority:"high"}),e.document.registerPostFixer(t=>this._updateCaptionVisibility(t))}_updateCaptionVisibility(t){const e=this.editor.editing.mapper,n=this._lastSelectedCaption;let i;const o=this.editor.model.document.selection,r=o.getSelectedElement();if(r&&r.is("element","image")){const t=fm(r);i=e.toViewElement(t)}const s=bm(o.getFirstPosition().parent);if(s&&(i=e.toViewElement(s)),i)return n?(n===i||(wm(n,t),this._lastSelectedCaption=i),km(i,t)):(this._lastSelectedCaption=i,km(i,t));if(n){const e=wm(n,t);return this._lastSelectedCaption=null,e}return!1}_fixCaptionVisibility(t){return(e,n,i)=>{const o=bm(t(n)),r=this.editor.editing.mapper,s=i.writer;if(o){const t=r.toViewElement(o);t&&(o.childCount?s.removeClass("ck-hidden",t):s.addClass("ck-hidden",t))}}}_insertMissingModelCaptionElement(t){const e=this.editor.model,n=e.document.differ.getChanges(),i=[];for(const t of n)if("insert"==t.type&&"$text"!=t.name){const n=t.position.nodeAfter;if(n.is("element","image")&&!fm(n)&&i.push(n),!n.is("element","image")&&n.childCount)for(const t of e.createRangeIn(n).getItems())t.is("element","image")&&!fm(t)&&i.push(t)}for(const e of i)t.appendElement("caption",e);return!!i.length}}function pm(t,e=!0){return(n,i,o)=>{const r=i.item;if((r.childCount||e)&&ch(r.parent)){if(!o.consumable.consume(i.item,"insert"))return;const e=o.mapper.toViewElement(i.range.start.parent),n=t(o.writer),s=o.writer;r.childCount||s.addClass("ck-hidden",n),function(t,e,n,i){const o=i.writer.createPositionAt(n,"end");i.writer.insert(o,t),i.mapper.bindElements(e,t)}(n,i.item,e,o)}}}function bm(t){const e=t.getAncestors({includeSelf:!0}).find(t=>"caption"==t.name);return e&&e.parent&&"image"==e.parent.name?e:null}function wm(t,e){return!t.childCount&&!t.hasClass("ck-hidden")&&(e.addClass("ck-hidden",t),!0)}function km(t,e){return!!t.hasClass("ck-hidden")&&(e.removeClass("ck-hidden",t),!0)}n(74);class _m extends bd{constructor(t,e){super(t),this.defaultStyle=!1,this.styles=e.reduce((t,e)=>(t[e.name]=e,e.isDefault&&(this.defaultStyle=e.name),t),{})}refresh(){const t=this.editor.model.document.selection.getSelectedElement();if(this.isEnabled=ch(t),t)if(t.hasAttribute("imageStyle")){const e=t.getAttribute("imageStyle");this.value=!!this.styles[e]&&e}else this.value=this.defaultStyle;else this.value=!1}execute(t){const e=t.value,n=this.editor.model,i=n.document.selection.getSelectedElement();n.change(t=>{this.styles[e].isDefault?t.removeAttribute("imageStyle",i):t.setAttribute("imageStyle",e,i)})}}function vm(t,e){for(const n of e)if(n.name===t)return n}var ym='',xm='',Am='',Cm='';const Tm={full:{name:"full",title:"Full size image",icon:ym,isDefault:!0},side:{name:"side",title:"Side image",icon:Cm,className:"image-style-side"},alignLeft:{name:"alignLeft",title:"Left aligned image",icon:xm,className:"image-style-align-left"},alignCenter:{name:"alignCenter",title:"Centered image",icon:Am,className:"image-style-align-center"},alignRight:{name:"alignRight",title:"Right aligned image",icon:Cm,className:"image-style-align-right"}},Pm={full:ym,left:xm,right:Cm,center:Am};function Sm(t=[]){return t.map(Em)}function Em(t){if("string"==typeof t){const e=t;Tm[e]?t=Object.assign({},Tm[e]):(Object(hn.c)("image-style-not-found",{name:e}),t={name:e})}else if(Tm[t.name]){const e=Tm[t.name],n=Object.assign({},t);for(const i in e)Object.prototype.hasOwnProperty.call(t,i)||(n[i]=e[i]);t=n}return"string"==typeof t.icon&&Pm[t.icon]&&(t.icon=Pm[t.icon]),t}class Mm extends dd{static get pluginName(){return"ImageStyleEditing"}init(){const t=this.editor,e=t.model.schema,n=t.data,i=t.editing;t.config.define("image.styles",["full","side"]);const o=Sm(t.config.get("image.styles"));e.extend("image",{allowAttributes:"imageStyle"});const r=function(t){return(e,n,i)=>{if(!i.consumable.consume(n.item,e.name))return;const o=vm(n.attributeNewValue,t),r=vm(n.attributeOldValue,t),s=i.mapper.toViewElement(n.item),a=i.writer;r&&a.removeClass(r.className,s),o&&a.addClass(o.className,s)}}(o);i.downcastDispatcher.on("attribute:imageStyle:image",r),n.downcastDispatcher.on("attribute:imageStyle:image",r),n.upcastDispatcher.on("element:figure",function(t){const e=t.filter(t=>!t.isDefault);return(t,n,i)=>{if(!n.modelRange)return;const o=n.viewItem,r=xu(n.modelRange.getItems());if(i.schema.checkAttribute(r,"imageStyle"))for(const t of e)i.consumable.consume(o,{classes:t.className})&&i.writer.setAttribute("imageStyle",t.name,r)}}(o),{priority:"low"}),t.commands.add("imageStyle",new _m(t,o))}}n(76);class Im extends dd{static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=function(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}(Sm(this.editor.config.get("image.styles")),this.localizedDefaultStylesTitles);for(const e of t)this._createButton(e)}_createButton(t){const e=this.editor,n="imageStyle:"+t.name;e.ui.componentFactory.add(n,n=>{const i=e.commands.get("imageStyle"),o=new Gl(n);return o.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),o.bind("isEnabled").to(i,"isEnabled"),o.bind("isOn").to(i,"value",e=>e===t.name),this.listenTo(o,"execute",()=>{e.execute("imageStyle",{value:t.name}),e.editing.view.focus()}),o})}}class Nm extends dd{static get requires(){return[Df]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Xu(e))})(t.editing.view.document.selection)&&e.stop()},{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",()=>{this._updateToolbarsVisibility()}),this.listenTo(t.ui,"update",()=>{this._updateToolbarsVisibility()}),this.listenTo(t.ui.focusTracker,"change:isFocused",()=>{this._updateToolbarsVisibility()},{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:i,balloonClassName:o="ck-toolbar-container"}){if(!n.length)return void Object(hn.c)("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new od(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new hn.a("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,r.ui.componentFactory),this._toolbarDefinitions.set(t,{view:a,getRelatedElement:i,balloonClassName:o})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const i of this._toolbarDefinitions.values()){const o=i.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&o)if(this.editor.ui.focusTracker.isFocused){const r=o.getAncestors().length;r>t&&(t=r,e=o,n=i)}else this._isToolbarVisible(i)&&this._hideToolbar(i);else this._isToolbarInBalloon(i)&&this._hideToolbar(i)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?Om(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Rm(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);Om(this.editor,e)}}))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function Om(t,e){const n=t.plugins.get("ContextualBalloon"),i=Rm(t,e);n.updatePosition(i)}function Rm(t,e){const n=t.editing.view,i=Yu.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast,rh]}}class Dm extends bd{constructor(t){super(t),this._childCommands=[]}refresh(){}execute(...t){return this._getFirstEnabledCommand().execute(t)}registerChildCommand(t){this._childCommands.push(t),t.on("change:isEnabled",()=>this._checkEnabled()),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){return this._childCommands.find(t=>t.isEnabled)}}class Lm extends dd{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new Dm(t)),t.commands.add("outdent",new Dm(t))}}var Vm='',jm='';class zm extends dd{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?Vm:jm,o="ltr"==e.uiLanguageDirection?jm:Vm;this._defineButton("indent",n("Increase indent"),i),this._defineButton("outdent",n("Decrease indent"),o)}_defineButton(t,e,n){const i=this.editor;i.ui.componentFactory.add(t,o=>{const r=i.commands.get(t),s=new Gl(o);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(s,"execute",()=>{i.execute(t),i.editing.view.focus()}),s})}}class Bm extends jr{constructor(t){super(t),this.domEventType="click"}onDomEvent(t){this.fire(t.type,t)}}n(78);class Fm extends xl{constructor(t,e){super(t);const n=t.t;this.focusTracker=new Gc,this.keystrokes=new zc,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),If,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Nf,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new il,this._focusCycler=new Rl({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&i.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:i,tabindex:"-1"},children:this.children}),Ef(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce((t,e)=>(t[e.name]=e.isOn,t),{})}render(){super.render(),Mf({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Tf(this.locale,Sf);return e.label=t("Link URL"),e}_createButton(t,e,n,i){const o=new Gl(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.extendTemplate({attributes:{class:n}}),i&&o.delegate("execute").to(this,i),o}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const i=new td(this.locale);i.set({name:n.id,label:n.label,withText:!0}),i.bind("isOn").toMany([n,t],"value",(t,e)=>void 0===e&&void 0===t?n.defaultValue:t),i.on("execute",()=>{n.set("value",!i.isOn)}),e.add(i)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new xl;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map(t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}})),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}n(80);class Um extends xl{constructor(t){super(t);const e=t.t;this.focusTracker=new Gc,this.keystrokes=new zc,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),'',"edit"),this.set("href"),this._focusables=new il,this._focusCycler=new Rl({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const i=new Gl(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.delegate("execute").to(this,n),i}_createPreviewButton(){const t=new Gl(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",t=>t&&Yh(t)),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",t=>t||n("This link has no URL")),t.bind("isEnabled").to(this,"href",t=>!!t),t.template.tag="a",t.template.eventListeners={},t}}class Hm extends dd{static get requires(){return[Df]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(Bm),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(Df),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:"link-ui",view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:"link-ui",view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new Um(t.locale),n=t.commands.get("link"),i=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(i),this.listenTo(e,"edit",()=>{this._addFormView()}),this.listenTo(e,"unlink",()=>{t.execute("unlink"),this._hideUI()}),e.keystrokes.set("Esc",(t,e)=>{this._hideUI(),e()}),e.keystrokes.set("Ctrl+K",(t,e)=>{this._addFormView(),e()}),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),i=new Fm(t.locale,e);return i.urlInputView.fieldView.bind("value").to(e,"value"),i.urlInputView.bind("isReadOnly").to(e,"isEnabled",t=>!t),i.saveButtonView.bind("isEnabled").to(e),this.listenTo(i,"submit",()=>{const{value:e}=i.urlInputView.fieldView.element,o=Kh(e,n);t.execute("link",o,i.getDecoratorSwitchesState()),this._closeFormView()}),this.listenTo(i,"cancel",()=>{this._closeFormView()}),i.keystrokes.set("Esc",(t,e)=>{this._closeFormView(),e()}),i}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set("Ctrl+K",(t,n)=>{n(),e.isEnabled&&this._showUI(!0)}),t.ui.componentFactory.add("link",t=>{const i=new Gl(t);return i.isEnabled=!0,i.label=n("Link"),i.icon='',i.keystroke="Ctrl+K",i.tooltip=!0,i.isToggleable=!0,i.bind("isEnabled").to(e,"isEnabled"),i.bind("isOn").to(e,"value",t=>!!t),this.listenTo(i,"execute",()=>this._showUI(!0)),i})}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",()=>{this._getSelectedLinkElement()&&this._showUI()}),this.editor.keystrokes.set("Tab",(t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())},{priority:"high"}),this.editor.keystrokes.set("Esc",(t,e)=>{this._isUIVisible&&(this._hideUI(),e())}),ed({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),i=r();const o=()=>{const t=this._getSelectedLinkElement(),e=r();n&&!t||!n&&e!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,i=e};function r(){return e.selection.focus.getAncestors().reverse().find(t=>t.is("element"))}this.listenTo(t.ui,"update",o),this.listenTo(this._balloon,"change:visibleView",o)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let i=null;if(e.markers.has("link-ui")){const e=Array.from(this.editor.editing.mapper.markerNameToElements("link-ui")),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));i=t.domConverter.viewRangeToDom(n)}else{const e=this._getSelectedLinkElement(),o=n.selection.getFirstRange();i=e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(o)}return{target:i}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection;if(e.isCollapsed)return Wm(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),i=Wm(n.start),o=Wm(n.end);return i&&i==o&&t.createRangeIn(i).getTrimmed().isEqual(n)?i:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change(e=>{const n=t.document.selection.getFirstRange();if(t.markers.has("link-ui"))e.updateMarker("link-ui",{range:n});else if(n.start.isAtEnd){const i=function t(e,n,i){const o=[e.start.path[0]+1,0],r=i.createPositionFromPath(e.start.root,o,"toNext"),s=i.createRange(r,e.end);if(s.start.path[0]>e.end.path[0])return i.createRange(n);if(r.isAtStart&&r.isAtEnd)return t(s,n,i);return s}(n,t.document.selection.focus,e);e.addMarker("link-ui",{usingOperation:!1,affectsData:!1,range:i})}else e.addMarker("link-ui",{usingOperation:!1,affectsData:!1,range:n})})}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has("link-ui")&&t.change(t=>{t.removeMarker("link-ui")})}}function Wm(t){return t.getAncestors().find(t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e})}function qm(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce((t,i)=>i.is("$text")||i.is("$textProxy")?t+i.data:(n=e.createPositionAfter(i),""),""),range:e.createRange(n,t.end)}}class $m{constructor(t,e){this.model=t,this.testCallback=e,this.hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))}),this._startListening()}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",(e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this.hasMatch=!1))}),this.listenTo(t,"change:data",(t,e)=>{"transparent"!=e.type&&this._evaluateTextBeforeSelection("data",{batch:e})})}_evaluateTextBeforeSelection(t,e={}){const n=this.model,i=n.document.selection,o=n.createRange(n.createPositionAt(i.focus.parent,0),i.focus),{text:r,range:s}=qm(o,n),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this.hasMatch=!!a,a){const n=Object.assign(e,{text:r,range:s});"object"==typeof a&&Object.assign(n,a),this.fire("matched:"+t,n)}}}xn($m,Hi);const Ym=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.))+(?:[a-z\\u00a1-\\uffff]{2,})))$","i");class Gm extends dd{static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")}),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new $m(t.model,t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=Km(t.substr(0,t.length-1));return e?{url:e}:void 0}),n=t.plugins.get("Input");e.on("matched:data",(e,i)=>{const{batch:o,range:r,url:s}=i;if(!n.isInput(o))return;const a=r.end.getShiftedBy(-1),c=a.getShiftedBy(-s.length),l=t.model.createRange(c,a);this._applyAutoLink(s,l)}),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)})}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)})}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:i}=qm(t,e),o=Km(n);if(o){const t=e.createRange(i.end.getShiftedBy(-o.length),i.end);this._applyAutoLink(o,t)}}_applyAutoLink(t,e){const n=this.editor.model;this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&n.enqueueChange(n=>{const i=this.editor.config.get("link.defaultProtocol"),o=Kh(t,i);n.setAttribute("linkHref",o,e)})}}function Km(t){const e=Ym.exec(t);return e?e[2]:null}class Qm extends bd{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document,n=Array.from(e.selection.getSelectedBlocks()).filter(e=>Zm(e,t.schema)),i=!0===this.value;t.change(t=>{if(i){let e=n[n.length-1].nextSibling,i=Number.POSITIVE_INFINITY,o=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)r>o.getAttribute("listIndent")&&(r=o.getAttribute("listIndent")),o.getAttribute("listIndent")==r&&t[e?"unshift":"push"](o),o=o[e?"previousSibling":"nextSibling"]}}function Zm(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class Xm extends bd{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change(t=>{const e=n[n.length-1];let i=e.nextSibling;for(;i&&"listItem"==i.name&&i.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(i),i=i.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)})}_checkEnabled(){const t=xu(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let i=t.previousSibling;for(;i&&i.is("element","listItem")&&i.getAttribute("listIndent")>=e;){if(i.getAttribute("listIndent")==e)return i.getAttribute("listType")==n;i=i.previousSibling}return!1}return!0}}function tg(t,e){const n=e.mapper,i=e.writer,o="numbered"==t.getAttribute("listType")?"ol":"ul",r=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=sg,e}(i),s=i.createContainerElement(o,null);return i.insert(i.createPositionAt(s,0),r),n.bindElements(t,r),r}function eg(t,e,n,i){const o=e.parent,r=n.mapper,s=n.writer;let a=r.toViewPosition(i.createPositionBefore(t));const c=og(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),l=t.previousSibling;if(c&&c.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(c);a=s.breakContainer(s.createPositionAfter(t))}else if(l&&"listItem"==l.name){a=r.toViewPosition(i.createPositionAt(l,"end"));const t=r.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=r.toViewPosition(i.createPositionBefore(t));if(a=ig(a),s.insert(a,o),l&&"listItem"==l.name){const t=r.toViewElement(l),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const i=s.breakContainer(s.createPositionBefore(t.item)),o=t.item.parent,r=s.createPositionAt(e,"end");ng(s,r.nodeBefore,r.nodeAfter),s.move(s.createRangeOn(o),r),n.position=i}}else{const n=o.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let i=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;i=e}i&&(s.breakContainer(s.createPositionAfter(i)),s.move(s.createRangeOn(i.parent),s.createPositionAt(e,"end")))}}ng(s,o,o.nextSibling),ng(s,o.previousSibling,o)}function ng(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function ig(t){return t.getLastMatchingPosition(t=>t.item.is("uiElement"))}function og(t,e){const n=!!e.sameIndent,i=!!e.smallerIndent,o=e.listIndent;let r=t;for(;r&&"listItem"==r.name;){const t=r.getAttribute("listIndent");if(n&&o==t||i&&o>t)return r;r="forward"===e.direction?r.nextSibling:r.previousSibling}return null}function rg(t,e,n,i){t.ui.componentFactory.add(e,o=>{const r=t.commands.get(e),s=new Gl(o);return s.set({label:n,icon:i,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",()=>{t.execute(e),t.editing.view.focus()}),s})}function sg(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:Vi.call(this)}function ag(t){return(e,n,i)=>{const o=i.consumable;if(!o.test(n.item,"insert")||!o.test(n.item,"attribute:listType")||!o.test(n.item,"attribute:listIndent"))return;o.consume(n.item,"insert"),o.consume(n.item,"attribute:listType"),o.consume(n.item,"attribute:listIndent");const r=n.item;eg(r,tg(r,i),i,t)}}function cg(t,e,n){if(!n.consumable.consume(e.item,"attribute:listType"))return;const i=n.mapper.toViewElement(e.item),o=n.writer;o.breakContainer(o.createPositionBefore(i)),o.breakContainer(o.createPositionAfter(i));const r=i.parent,s="numbered"==e.attributeNewValue?"ol":"ul";o.rename(s,r)}function lg(t,e,n){const i=n.mapper.toViewElement(e.item).parent,o=n.writer;ng(o,i,i.nextSibling),ng(o,i.previousSibling,i);for(const t of e.item.getChildren())n.consumable.consume(t,"insert")}function dg(t,e,n){if("listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const i=n.writer,o=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=i.breakContainer(t),"li"==t.parent.name);){const e=t,n=i.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=i.remove(i.createRange(e,n));o.push(t)}t=i.createPositionAfter(t.parent)}if(o.length>0){for(let e=0;e0){const e=ng(i,n,n.nextSibling);e&&e.parent==n&&t.offset--}}ng(i,t.nodeBefore,t.nodeAfter)}}}function ug(t,e,n){const i=n.mapper.toViewPosition(e.position),o=i.nodeBefore,r=i.nodeAfter;ng(n.writer,o,r)}function hg(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,i=t.createElement("listItem"),o=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",o,i);const r=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",r,i),!n.safeInsert(i,e.modelCursor))return;const s=function(t,e,n){const{writer:i,schema:o}=n;let r=i.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)r=n.convertItem(s,r).modelCursor;else{const e=n.convertItem(s,i.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!o.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:bg(e.modelCursor),r=i.createPositionAfter(t))}return r}(i,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(i,e)}}function fg(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t){!(e.is("element","li")||kg(e))&&e._remove()}}}function mg(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1,i=!0;for(const e of t)n&&!kg(e)&&e._remove(),e.is("$text")?(i&&(e._data=e.data.replace(/^\s+/,"")),e.nextSibling&&!kg(e.nextSibling)||(e._data=e.data.replace(/\s+$/,""))):kg(e)&&(n=!0),i=!1}}function gg(t){return(e,n)=>{if(n.isPhantom)return;const i=n.modelPosition.nodeBefore;if(i&&i.is("element","listItem")){const e=n.mapper.toViewElement(i),o=e.getAncestors().find(kg),r=t.createPositionAt(e,0).getWalker();for(const t of r){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==o){n.viewPosition=t.nextPosition;break}}}}}function pg(t,[e,n]){let i,o=e.is("documentFragment")?e.getChild(0):e;if(i=n?this.createSelection(n):this.document.selection,o&&o.is("element","listItem")){const t=i.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;o&&o.is("element","listItem");)o._setAttribute("listIndent",o.getAttribute("listIndent")+t),o=o.nextSibling}}}function bg(t){const e=new xs({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function wg(t,e,n,i,o,r){const s=og(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=o.mapper,c=o.writer,l=s?s.getAttribute("listIndent"):null;let d;if(s)if(l==t){const t=a.toViewElement(s).parent;d=c.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}else d=n;d=ig(d);for(const t of[...i.getChildren()])kg(t)&&(d=c.move(c.createRangeOn(t),d).end,ng(c,t,t.nextSibling),ng(c,t.previousSibling,t))}function kg(t){return t.is("element","ol")||t.is("element","ul")}class _g extends dd{static get pluginName(){return"ListEditing"}static get requires(){return[am]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var i;t.model.document.registerPostFixer(e=>function(t,e){const n=t.document.differ.getChanges(),i=new Map;let o=!1;for(const i of n)if("insert"==i.type&&"listItem"==i.name)r(i.position);else if("insert"==i.type&&"listItem"!=i.name){if("$text"!=i.name){const n=i.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),o=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),o=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),o=!0);for(const e of Array.from(t.createRangeIn(n)).filter(t=>t.item.is("element","listItem")))r(e.previousPosition)}r(i.position.getShiftedBy(i.length))}else"remove"==i.type&&"listItem"==i.name?r(i.position):("attribute"==i.type&&"listIndent"==i.attributeKey||"attribute"==i.type&&"listType"==i.attributeKey)&&r(i.range.start);for(const t of i.values())s(t),a(t);return o;function r(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(i.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,i.has(t))return;i.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&i.set(e,e)}}function s(t){let n=0,i=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(r>n){let s;null===i?(i=r-n,s=n):(i>r&&(i=r),s=r-i),e.setAttribute("listIndent",s,t),o=!0}else i=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],i=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(i&&i.getAttribute("listIndent")>r&&(n=n.slice(0,r+1)),0!=r)if(n[r]){const i=n[r];t.getAttribute("listType")!=i&&(e.setAttribute("listType",i,t),o=!0)}else n[r]=t.getAttribute("listType");i=t,t=t.nextSibling}}}(t.model,e)),n.mapper.registerViewToModelLength("li",vg),e.mapper.registerViewToModelLength("li",vg),n.mapper.on("modelToViewPosition",gg(n.view)),n.mapper.on("viewToModelPosition",(i=t.model,(t,e)=>{const n=e.viewPosition,o=n.parent,r=e.mapper;if("ul"==o.name||"ol"==o.name){if(n.isAtEnd){const t=r.toModelElement(n.nodeBefore),o=r.getModelLength(n.nodeBefore);e.modelPosition=i.createPositionBefore(t).getShiftedBy(o)}else{const t=r.toModelElement(n.nodeAfter);e.modelPosition=i.createPositionBefore(t)}t.stop()}else if("li"==o.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=r.toModelElement(o);let a=1,c=n.nodeBefore;for(;c&&kg(c);)a+=r.getModelLength(c),c=c.previousSibling;e.modelPosition=i.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",gg(n.view)),t.conversion.for("editingDowncast").add(e=>{e.on("insert",dg,{priority:"high"}),e.on("insert:listItem",ag(t.model)),e.on("attribute:listType:listItem",cg,{priority:"high"}),e.on("attribute:listType:listItem",lg,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,i)=>{if(!i.consumable.consume(n.item,"attribute:listIndent"))return;const o=i.mapper.toViewElement(n.item),r=i.writer;r.breakContainer(r.createPositionBefore(o)),r.breakContainer(r.createPositionAfter(o));const s=o.parent,a=s.previousSibling,c=r.createRangeOn(s);r.remove(c),a&&a.nextSibling&&ng(r,a,a.nextSibling),wg(n.attributeOldValue+1,n.range.start,c.start,o,i,t),eg(n.item,o,i,t);for(const t of n.item.getChildren())i.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,i)=>{const o=i.mapper.toViewPosition(n.position).getLastMatchingPosition(t=>!t.item.is("element","li")).nodeAfter,r=i.writer;r.breakContainer(r.createPositionBefore(o)),r.breakContainer(r.createPositionAfter(o));const s=o.parent,a=s.previousSibling,c=r.createRangeOn(s),l=r.remove(c);a&&a.nextSibling&&ng(r,a,a.nextSibling);wg(i.mapper.toModelElement(o).getAttribute("listIndent")+1,n.position,c.start,o,i,t);for(const t of r.createRangeIn(l).getItems())i.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",ug,{priority:"low"})}),t.conversion.for("dataDowncast").add(e=>{e.on("insert",dg,{priority:"high"}),e.on("insert:listItem",ag(t.model))}),t.conversion.for("upcast").add(t=>{t.on("element:ul",fg,{priority:"high"}),t.on("element:ol",fg,{priority:"high"}),t.on("element:li",mg,{priority:"high"}),t.on("element:li",hg)}),t.model.on("insertContent",pg,{priority:"high"}),t.commands.add("numberedList",new Qm(t,"numbered")),t.commands.add("bulletedList",new Qm(t,"bulleted")),t.commands.add("indentList",new Xm(t,"forward")),t.commands.add("outdentList",new Xm(t,"backward"));const o=n.view.document;this.listenTo(o,"enter",(t,e)=>{const n=this.editor.model.document,i=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==i.name&&i.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),this.listenTo(o,"delete",(t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const i=n.getFirstPosition();if(!i.isAtStart)return;const o=i.parent;if("listItem"!==o.name)return;o.previousSibling&&"listItem"===o.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop())},{priority:"high"});const r=t=>(e,n)=>{this.editor.commands.get(t).isEnabled&&(this.editor.execute(t),n())};t.keystrokes.set("Tab",r("indentList")),t.keystrokes.set("Shift+Tab",r("outdentList"))}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function vg(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=vg(t);return e}class yg extends dd{init(){const t=this.editor.t;rg(this.editor,"numberedList",t("Numbered List"),''),rg(this.editor,"bulletedList",t("Bulleted List"),'')}}function xg(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,i,o){if(!o.consumable.consume(i.item,n.name))return;const r=i.attributeNewValue,s=o.writer,a=o.mapper.toViewElement(i.item),c=[...a.getChildren()].find(t=>t.getCustomProperty("media-content"));s.remove(c);const l=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),l)}}function Ag(t,e,n,i){const o=t.createContainerElement("figure",{class:"media"});return t.insert(t.createPositionAt(o,0),e.getMediaViewElement(t,n,i)),o}function Cg(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function Tg(t,e,n){t.change(i=>{const o=i.createElement("media",{url:e});t.insertContent(o,n),i.setSelection(o,"on")})}class Pg extends bd{refresh(){const t=this.editor.model,e=t.document.selection,n=t.schema,i=oh(e,t),o=Cg(e);let r=i.parent;r.isEmpty&&!t.schema.isLimit(r)&&(r=r.parent),this.value=o?o.getAttribute("url"):null,this.isEnabled=n.checkChild(r,"media")}execute(t){const e=this.editor.model,n=e.document.selection,i=Cg(n);if(i)e.change(e=>{e.setAttribute("url",t,i)});else{const i=oh(n,e);Tg(e,t,i)}}}class Sg{constructor(t,e){const n=e.providers,i=e.extraProviders||[],o=new Set(e.removeProviders),r=n.concat(i).filter(t=>{const e=t.name;return e?!o.has(e):(Object(hn.c)("media-embed-no-provider-name",{provider:t}),!1)});this.locale=t,this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new Eg(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,i=Tn(e.url);for(const e of i){const i=this._getUrlMatches(t,e);if(i)return new Eg(this.locale,t,i,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let i=t.replace(/^https?:\/\//,"");return n=i.match(e),n||(i=i.replace(/^www\./,""),n=i.match(e),n||null)}}class Eg{constructor(t,e,n,i){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=i}getViewElement(t,e){const n={};let i;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const o=this._getPreviewHtml(e);i=t.createRawElement("div",n,(function(t){t.innerHTML=o}))}else this.url&&(n.url=this.url),i=t.createEmptyElement("oembed",n);return t.setCustomProperty("media-content",!0,i),i}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new Yl,e=new $l;t.text=this._t("Open media in new tab"),e.content='',e.viewBox="0 0 64 42";return new ol({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}n(82);class Mg extends dd{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>`
          `},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>`
          `},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>`
          `},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>`
          `},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:/^google\.com\/maps/},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new Sg(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,i=t.conversion,o=t.config.get("mediaEmbed.previewsInData"),r=this.registry;t.commands.add("mediaEmbed",new Pg(t)),e.register("media",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["url"]}),i.for("dataDowncast").elementToElement({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return Ag(e,r,n,{renderMediaPreview:n&&o})}}),i.for("dataDowncast").add(xg(r,{renderMediaPreview:o})),i.for("editingDowncast").elementToElement({model:"media",view:(t,{writer:e})=>{const i=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),th(t,e,{label:n})}(Ag(e,r,i,{renderForEditingView:!0}),e,n("media widget"))}}),i.for("editingDowncast").add(xg(r,{renderForEditingView:!0})),i.for("upcast").elementToElement({view:{name:"oembed",attributes:{url:!0}},model:(t,{writer:e})=>{const n=t.getAttribute("url");if(r.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(r.hasMedia(n))return e.createElement("media",{url:n})}})}}const Ig=/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=%]+$/;class Ng extends dd{static get requires(){return[pd,mu]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get(pd),"inputTransformation",()=>{const t=e.selection.getFirstRange(),n=vc.fromPosition(t.start);n.stickiness="toPrevious";const i=vc.fromPosition(t.end);i.stickiness="toNext",e.once("change:data",()=>{this._embedMediaBetweenPositions(n,i),n.detach(),i.detach()},{priority:"high"})}),t.commands.get("undo").on("execute",()=>{this._timeoutId&&(rr.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)},{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,i=n.plugins.get(Mg).registry,o=new Us(t,e),r=o.getWalker({ignoreElementEnd:!0});let s="";for(const t of r)t.item.is("$textProxy")&&(s+=t.item.data);if(s=s.trim(),!s.match(Ig))return void o.detach();if(!i.hasMedia(s))return void o.detach();n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=vc.fromPosition(t),this._timeoutId=rr.window.setTimeout(()=>{n.model.change(t=>{let e;this._timeoutId=null,t.remove(o),o.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),Tg(n.model,s,e),this._positionToInsert.detach(),this._positionToInsert=null})},100)):o.detach()}}n(84);class Og extends xl{constructor(t,e){super(e);const n=e.t;this.focusTracker=new Gc,this.keystrokes=new zc,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),If,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",t=>!!t),this.cancelButtonView=this._createButton(n("Cancel"),Nf,"ck-button-cancel","cancel"),this._focusables=new il,this._focusCycler=new Rl({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),Ef(this)}render(){super.render(),Mf({view:this});[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",(t,e)=>{e.stopPropagation()},{priority:"high"})}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Tf(this.locale,Sf),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()}),e}_createButton(t,e,n,i){const o=new Gl(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.extendTemplate({attributes:{class:n}}),i&&o.delegate("execute").to(this,i),o}}class Rg extends dd{static get requires(){return[Mg]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(Mg).registry;t.ui.componentFactory.add("mediaEmbed",i=>{const o=nd(i),r=new Og(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(o,r,e,t),this._setUpForm(o,r,e),o})}_setUpDropdown(t,e,n){const i=this.editor,o=i.t,r=t.buttonView;function s(){i.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),r.set({label:o("Insert media"),icon:'',tooltip:!0}),r.on("open",()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.focus(),e.enableCssTransitions()},{priority:"low"}),t.on("submit",()=>{e.isValid()&&(i.execute("mediaEmbed",e.url),s())}),t.on("change:isOpen",()=>e.resetFormStatus()),t.on("cancel",()=>s())}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",t=>!t)}}n(86);function Dg(t,e){if(!t.childCount)return;const n=new Zf(t.document),i=function(t,e){const n=e.createRangeIn(t),i=new jn({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),o=[];for(const t of n)if("elementStart"===t.type&&i.match(t.item)){const e=jg(t.item);o.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return o}(t,n);if(!i.length)return;let o=null,r=1;i.forEach((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;if(!n)return!0;return i=n,!(i.is("element","ol")||i.is("element","ul"));var i}(i[s-1],t),c=a?null:i[s-1],l=(u=t,(d=c)?u.indent-d.indent:u.indent-1);var d,u;if(a&&(o=null,r=1),!o||0!==l){const i=function(t,e){const n=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi"),i=/mso-level-number-format:([^;]*);/gi,o=n.exec(e);let r="decimal",s="ol";if(o&&o[1]){const e=i.exec(o[1]);if(e&&e[1]&&(r=e[1].trim(),s="bullet"!==r&&"image"!==r?"ol":"ul"),"bullet"===r){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;const e=t.getChild(0).getChild(0);if(e.is("$text"))return e;return e.getChild(0)}(t);if(!e)return null;const n=e._data;if("o"===n)return"circle";if("·"===n)return"disc";if("§"===n)return"square";return null}(t.element);e&&(r=e)}}return{type:s,style:Lg(r)}}(t,e);if(o){if(t.indent>r){const t=o.getChild(o.childCount-1),e=t.getChild(t.childCount-1);o=Vg(i,e,n),r+=1}else if(t.indent(\s+)<\/span>/g,(t,e)=>1===e.length?" ":Array(e.length+1).join("  ").substr(0,e.length))}function Ug(t,e){const n=new DOMParser,i=function(t){return Fg(Fg(t)).replace(/([\s]*?)[\r\n]+(\s*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>(\s*[\r\n]\s*)<")}(function(t){const e=t.match(/<\/body>(.*?)(<\/html>|$)/);e&&e[1]&&(t=t.slice(0,e.index)+t.slice(e.index).replace(e[1],""));return t}(t=t.replace(/

          abc

          \n\t\t\t//\n\t\t\tif ( isAttribute && this._wrapAttributeElement( wrapElement, child ) ) {\n\t\t\t\twrapPositions.push( new Position( parent, i ) );\n\t\t\t}\n\t\t\t//\n\t\t\t// Wrap the child if it is not an attribute element or if it is an attribute element that should be inside\n\t\t\t// `wrapElement` (due to priority).\n\t\t\t//\n\t\t\t//

          abc

          -->

          abc

          \n\t\t\t//

          abc

          -->

          abc

          \n\t\t\telse if ( isText || isEmpty || isUI || isRaw || ( isAttribute && shouldABeOutsideB( wrapElement, child ) ) ) {\n\t\t\t\t// Clone attribute.\n\t\t\t\tconst newAttribute = wrapElement._clone();\n\n\t\t\t\t// Wrap current node with new attribute.\n\t\t\t\tchild._remove();\n\t\t\t\tnewAttribute._appendChild( child );\n\n\t\t\t\tparent._insertChild( i, newAttribute );\n\t\t\t\tthis._addToClonedElementsGroup( newAttribute );\n\n\t\t\t\twrapPositions.push( new Position( parent, i ) );\n\t\t\t}\n\t\t\t//\n\t\t\t// If other nested attribute is found and it wasn't wrapped (see above), continue wrapping inside it.\n\t\t\t//\n\t\t\t//
          -->

          abc

          \n\t\t\t//\n\t\t\telse if ( isAttribute ) {\n\t\t\t\tthis._wrapChildren( child, 0, child.childCount, wrapElement );\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\n\t\t// Merge at each wrap.\n\t\tlet offsetChange = 0;\n\n\t\tfor ( const position of wrapPositions ) {\n\t\t\tposition.offset -= offsetChange;\n\n\t\t\t// Do not merge with elements outside selected children.\n\t\t\tif ( position.offset == startOffset ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newPosition = this.mergeAttributes( position );\n\n\t\t\t// If nodes were merged - other merge offsets will change.\n\t\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\t\toffsetChange++;\n\t\t\t\tendOffset--;\n\t\t\t}\n\t\t}\n\n\t\treturn Range._createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n\t}\n\n\t/**\n\t * Unwraps children from provided `unwrapElement`. Only children contained in `parent` element between\n\t * `startOffset` and `endOffset` will be unwrapped.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} parent\n\t * @param {Number} startOffset\n\t * @param {Number} endOffset\n\t * @param {module:engine/view/element~Element} unwrapElement\n\t */\n\t_unwrapChildren( parent, startOffset, endOffset, unwrapElement ) {\n\t\tlet i = startOffset;\n\t\tconst unwrapPositions = [];\n\n\t\t// Iterate over each element between provided offsets inside parent.\n\t\t// We don't use tree walker or range iterator because we will be removing and merging potentially multiple nodes,\n\t\t// so it could get messy. It is safer to it manually in this case.\n\t\twhile ( i < endOffset ) {\n\t\t\tconst child = parent.getChild( i );\n\n\t\t\t// Skip all text nodes. There should be no container element's here either.\n\t\t\tif ( !child.is( 'attributeElement' ) ) {\n\t\t\t\ti++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// (In all examples, assume that `unwrapElement` is `` element.)\n\t\t\t//\n\t\t\t// If the child is similar to the given attribute element, unwrap it - it will be completely removed.\n\t\t\t//\n\t\t\t//

          abcxyz

          -->

          abcxyz

          \n\t\t\t//\n\t\t\tif ( child.isSimilar( unwrapElement ) ) {\n\t\t\t\tconst unwrapped = child.getChildren();\n\t\t\t\tconst count = child.childCount;\n\n\t\t\t\t// Replace wrapper element with its children\n\t\t\t\tchild._remove();\n\t\t\t\tparent._insertChild( i, unwrapped );\n\n\t\t\t\tthis._removeFromClonedElementsGroup( child );\n\n\t\t\t\t// Save start and end position of moved items.\n\t\t\t\tunwrapPositions.push(\n\t\t\t\t\tnew Position( parent, i ),\n\t\t\t\t\tnew Position( parent, i + count )\n\t\t\t\t);\n\n\t\t\t\t// Skip elements that were unwrapped. Assuming there won't be another element to unwrap in child elements.\n\t\t\t\ti += count;\n\t\t\t\tendOffset += count - 1;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// If the child is not similar but is an attribute element, try partial unwrapping - remove the same attributes/styles/classes.\n\t\t\t// Partial unwrapping will happen only if the elements have the same name.\n\t\t\t//\n\t\t\t//

          abcxyz

          -->

          abcxyz

          \n\t\t\t//

          abcxyz

          -->

          abcxyz

          \n\t\t\t//\n\t\t\tif ( this._unwrapAttributeElement( unwrapElement, child ) ) {\n\t\t\t\tunwrapPositions.push(\n\t\t\t\t\tnew Position( parent, i ),\n\t\t\t\t\tnew Position( parent, i + 1 )\n\t\t\t\t);\n\n\t\t\t\ti++;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//\n\t\t\t// If other nested attribute is found, look through it's children for elements to unwrap.\n\t\t\t//\n\t\t\t//

          abc

          -->

          abc

          \n\t\t\t//\n\t\t\tthis._unwrapChildren( child, 0, child.childCount, unwrapElement );\n\n\t\t\ti++;\n\t\t}\n\n\t\t// Merge at each unwrap.\n\t\tlet offsetChange = 0;\n\n\t\tfor ( const position of unwrapPositions ) {\n\t\t\tposition.offset -= offsetChange;\n\n\t\t\t// Do not merge with elements outside selected children.\n\t\t\tif ( position.offset == startOffset || position.offset == endOffset ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newPosition = this.mergeAttributes( position );\n\n\t\t\t// If nodes were merged - other merge offsets will change.\n\t\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\t\toffsetChange++;\n\t\t\t\tendOffset--;\n\t\t\t}\n\t\t}\n\n\t\treturn Range._createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n\t}\n\n\t/**\n\t * Helper function for `view.writer.wrap`. Wraps range with provided attribute element.\n\t * This method will also merge newly added attribute element with its siblings whenever possible.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n\t * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/range~Range} range\n\t * @param {module:engine/view/attributeelement~AttributeElement} attribute\n\t * @returns {module:engine/view/range~Range} New range after wrapping, spanning over wrapping attribute element.\n\t */\n\t_wrapRange( range, attribute ) {\n\t\t// Break attributes at range start and end.\n\t\tconst { start: breakStart, end: breakEnd } = this._breakAttributesRange( range, true );\n\t\tconst parentContainer = breakStart.parent;\n\n\t\t// Wrap all children with attribute.\n\t\tconst newRange = this._wrapChildren( parentContainer, breakStart.offset, breakEnd.offset, attribute );\n\n\t\t// Merge attributes at the both ends and return a new range.\n\t\tconst start = this.mergeAttributes( newRange.start );\n\n\t\t// If start position was merged - move end position back.\n\t\tif ( !start.isEqual( newRange.start ) ) {\n\t\t\tnewRange.end.offset--;\n\t\t}\n\t\tconst end = this.mergeAttributes( newRange.end );\n\n\t\treturn new Range( start, end );\n\t}\n\n\t/**\n\t * Helper function for {@link #wrap}. Wraps position with provided attribute element.\n\t * This method will also merge newly added attribute element with its siblings whenever possible.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n\t * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/position~Position} position\n\t * @param {module:engine/view/attributeelement~AttributeElement} attribute\n\t * @returns {module:engine/view/position~Position} New position after wrapping.\n\t */\n\t_wrapPosition( position, attribute ) {\n\t\t// Return same position when trying to wrap with attribute similar to position parent.\n\t\tif ( attribute.isSimilar( position.parent ) ) {\n\t\t\treturn movePositionToTextNode( position.clone() );\n\t\t}\n\n\t\t// When position is inside text node - break it and place new position between two text nodes.\n\t\tif ( position.parent.is( '$text' ) ) {\n\t\t\tposition = breakTextNode( position );\n\t\t}\n\n\t\t// Create fake element that will represent position, and will not be merged with other attributes.\n\t\tconst fakePosition = this.createAttributeElement();\n\t\tfakePosition._priority = Number.POSITIVE_INFINITY;\n\t\tfakePosition.isSimilar = () => false;\n\n\t\t// Insert fake element in position location.\n\t\tposition.parent._insertChild( position.offset, fakePosition );\n\n\t\t// Range around inserted fake attribute element.\n\t\tconst wrapRange = new Range( position, position.getShiftedBy( 1 ) );\n\n\t\t// Wrap fake element with attribute (it will also merge if possible).\n\t\tthis.wrap( wrapRange, attribute );\n\n\t\t// Remove fake element and place new position there.\n\t\tconst newPosition = new Position( fakePosition.parent, fakePosition.index );\n\t\tfakePosition._remove();\n\n\t\t// If position is placed between text nodes - merge them and return position inside.\n\t\tconst nodeBefore = newPosition.nodeBefore;\n\t\tconst nodeAfter = newPosition.nodeAfter;\n\n\t\tif ( nodeBefore instanceof Text && nodeAfter instanceof Text ) {\n\t\t\treturn mergeTextNodes( nodeBefore, nodeAfter );\n\t\t}\n\n\t\t// If position is next to text node - move position inside.\n\t\treturn movePositionToTextNode( newPosition );\n\t}\n\n\t/**\n\t * \tWraps one {@link module:engine/view/attributeelement~AttributeElement AttributeElement} into another by\n\t * \tmerging them if possible. When merging is possible - all attributes, styles and classes are moved from wrapper\n\t * \telement to element being wrapped.\n\t *\n\t * \t@private\n\t * \t@param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n\t * \t@param {module:engine/view/attributeelement~AttributeElement} toWrap AttributeElement to wrap using wrapper element.\n\t * \t@returns {Boolean} Returns `true` if elements are merged.\n\t */\n\t_wrapAttributeElement( wrapper, toWrap ) {\n\t\tif ( !canBeJoined( wrapper, toWrap ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Can't merge if name or priority differs.\n\t\tif ( wrapper.name !== toWrap.name || wrapper.priority !== toWrap.priority ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if attributes can be merged.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If some attributes are different we cannot wrap.\n\t\t\tif ( toWrap.hasAttribute( key ) && toWrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if styles can be merged.\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\tif ( toWrap.hasStyle( key ) && toWrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Move all attributes/classes/styles from wrapper to wrapped AttributeElement.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Move only these attributes that are not present - other are similar.\n\t\t\tif ( !toWrap.hasAttribute( key ) ) {\n\t\t\t\tthis.setAttribute( key, wrapper.getAttribute( key ), toWrap );\n\t\t\t}\n\t\t}\n\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\tif ( !toWrap.hasStyle( key ) ) {\n\t\t\t\tthis.setStyle( key, wrapper.getStyle( key ), toWrap );\n\t\t\t}\n\t\t}\n\n\t\tfor ( const key of wrapper.getClassNames() ) {\n\t\t\tif ( !toWrap.hasClass( key ) ) {\n\t\t\t\tthis.addClass( key, toWrap );\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Unwraps {@link module:engine/view/attributeelement~AttributeElement AttributeElement} from another by removing\n\t * corresponding attributes, classes and styles. All attributes, classes and styles from wrapper should be present\n\t * inside element being unwrapped.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n\t * @param {module:engine/view/attributeelement~AttributeElement} toUnwrap AttributeElement to unwrap using wrapper element.\n\t * @returns {Boolean} Returns `true` if elements are unwrapped.\n\t **/\n\t_unwrapAttributeElement( wrapper, toUnwrap ) {\n\t\tif ( !canBeJoined( wrapper, toUnwrap ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Can't unwrap if name or priority differs.\n\t\tif ( wrapper.name !== toUnwrap.name || wrapper.priority !== toUnwrap.priority ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper attributes.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If some attributes are missing or different we cannot unwrap.\n\t\t\tif ( !toUnwrap.hasAttribute( key ) || toUnwrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper classes.\n\t\tif ( !toUnwrap.hasClass( ...wrapper.getClassNames() ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if AttributeElement has all wrapper styles.\n\t\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t\t// If some styles are missing or different we cannot unwrap.\n\t\t\tif ( !toUnwrap.hasStyle( key ) || toUnwrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Remove all wrapper's attributes from unwrapped element.\n\t\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t\t// Classes and styles should be checked separately.\n\t\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis.removeAttribute( key, toUnwrap );\n\t\t}\n\n\t\t// Remove all wrapper's classes from unwrapped element.\n\t\tthis.removeClass( Array.from( wrapper.getClassNames() ), toUnwrap );\n\n\t\t// Remove all wrapper's styles from unwrapped element.\n\t\tthis.removeStyle( Array.from( wrapper.getStyleNames() ), toUnwrap );\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at the boundaries of given range.\n\t *\n\t * @private\n\t * @param {module:engine/view/range~Range} range Range which `start` and `end` positions will be used to break attributes.\n\t * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n\t * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n\t * @returns {module:engine/view/range~Range} New range with located at break positions.\n\t */\n\t_breakAttributesRange( range, forceSplitText = false ) {\n\t\tconst rangeStart = range.start;\n\t\tconst rangeEnd = range.end;\n\n\t\tvalidateRangeContainer( range, this.document );\n\n\t\t// Break at the collapsed position. Return new collapsed range.\n\t\tif ( range.isCollapsed ) {\n\t\t\tconst position = this._breakAttributes( range.start, forceSplitText );\n\n\t\t\treturn new Range( position, position );\n\t\t}\n\n\t\tconst breakEnd = this._breakAttributes( rangeEnd, forceSplitText );\n\t\tconst count = breakEnd.parent.childCount;\n\t\tconst breakStart = this._breakAttributes( rangeStart, forceSplitText );\n\n\t\t// Calculate new break end offset.\n\t\tbreakEnd.offset += breakEnd.parent.childCount - count;\n\n\t\treturn new Range( breakStart, breakEnd );\n\t}\n\n\t/**\n\t * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at given position.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element` when break position\n\t * is placed inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element` when break position\n\t * is placed inside {@link module:engine/view/uielement~UIElement UIElement}.\n\t *\n\t * @private\n\t * @param {module:engine/view/position~Position} position Position where to break attributes.\n\t * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n\t * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n\t * @returns {module:engine/view/position~Position} New position after breaking the attributes.\n\t */\n\t_breakAttributes( position, forceSplitText = false ) {\n\t\tconst positionOffset = position.offset;\n\t\tconst positionParent = position.parent;\n\n\t\t// If position is placed inside EmptyElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'emptyElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break an `EmptyElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-empty-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-empty-element', this.document );\n\t\t}\n\n\t\t// If position is placed inside UIElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'uiElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break a `UIElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-ui-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-ui-element', this.document );\n\t\t}\n\n\t\t// If position is placed inside RawElement - throw an exception as we cannot break inside.\n\t\tif ( position.parent.is( 'rawElement' ) ) {\n\t\t\t/**\n\t\t\t * Cannot break a `RawElement` instance.\n\t\t\t *\n\t\t\t * This error is thrown if\n\t\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes `DowncastWriter#breakAttributes()`}\n\t\t\t * was executed in an incorrect position.\n\t\t\t *\n\t\t\t * @error view-writer-cannot-break-raw-element\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-cannot-break-raw-element', this.document );\n\t\t}\n\n\t\t// There are no attributes to break and text nodes breaking is not forced.\n\t\tif ( !forceSplitText && positionParent.is( '$text' ) && isContainerOrFragment( positionParent.parent ) ) {\n\t\t\treturn position.clone();\n\t\t}\n\n\t\t// Position's parent is container, so no attributes to break.\n\t\tif ( isContainerOrFragment( positionParent ) ) {\n\t\t\treturn position.clone();\n\t\t}\n\n\t\t// Break text and start again in new position.\n\t\tif ( positionParent.is( '$text' ) ) {\n\t\t\treturn this._breakAttributes( breakTextNode( position ), forceSplitText );\n\t\t}\n\n\t\tconst length = positionParent.childCount;\n\n\t\t//

          foobar{}

          \n\t\t//

          foobar[]

          \n\t\t//

          foobar[]

          \n\t\tif ( positionOffset == length ) {\n\t\t\tconst newPosition = new Position( positionParent.parent, positionParent.index + 1 );\n\n\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t} else {\n\t\t\t//

          foo{}bar

          \n\t\t\t//

          foo[]bar

          \n\t\t\t//

          foo{}bar

          \n\t\t\tif ( positionOffset === 0 ) {\n\t\t\t\tconst newPosition = new Position( positionParent.parent, positionParent.index );\n\n\t\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t\t}\n\t\t\t//

          foob{}ar

          \n\t\t\t//

          foob[]ar

          \n\t\t\t//

          foob[]ar

          \n\t\t\t//

          foob[]ar

          \n\t\t\telse {\n\t\t\t\tconst offsetAfter = positionParent.index + 1;\n\n\t\t\t\t// Break element.\n\t\t\t\tconst clonedNode = positionParent._clone();\n\n\t\t\t\t// Insert cloned node to position's parent node.\n\t\t\t\tpositionParent.parent._insertChild( offsetAfter, clonedNode );\n\t\t\t\tthis._addToClonedElementsGroup( clonedNode );\n\n\t\t\t\t// Get nodes to move.\n\t\t\t\tconst count = positionParent.childCount - positionOffset;\n\t\t\t\tconst nodesToMove = positionParent._removeChildren( positionOffset, count );\n\n\t\t\t\t// Move nodes to cloned node.\n\t\t\t\tclonedNode._appendChild( nodesToMove );\n\n\t\t\t\t// Create new position to work on.\n\t\t\t\tconst newPosition = new Position( positionParent.parent, offsetAfter );\n\n\t\t\t\treturn this._breakAttributes( newPosition, forceSplitText );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Stores the information that an {@link module:engine/view/attributeelement~AttributeElement attribute element} was\n\t * added to the tree. Saves the reference to the group in the given element and updates the group, so other elements\n\t * from the group now keep a reference to the given attribute element.\n\t *\n\t * The clones group can be obtained using {@link module:engine/view/attributeelement~AttributeElement#getElementsWithSameId}.\n\t *\n\t * Does nothing if added element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to save.\n\t */\n\t_addToClonedElementsGroup( element ) {\n\t\t// Add only if the element is in document tree.\n\t\tif ( !element.root.is( 'rootElement' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Traverse the element's children recursively to find other attribute elements that also might got inserted.\n\t\t// The loop is at the beginning so we can make fast returns later in the code.\n\t\tif ( element.is( 'element' ) ) {\n\t\t\tfor ( const child of element.getChildren() ) {\n\t\t\t\tthis._addToClonedElementsGroup( child );\n\t\t\t}\n\t\t}\n\n\t\tconst id = element.id;\n\n\t\tif ( !id ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet group = this._cloneGroups.get( id );\n\n\t\tif ( !group ) {\n\t\t\tgroup = new Set();\n\t\t\tthis._cloneGroups.set( id, group );\n\t\t}\n\n\t\tgroup.add( element );\n\t\telement._clonesGroup = group;\n\t}\n\n\t/**\n\t * Removes all the information about the given {@link module:engine/view/attributeelement~AttributeElement attribute element}\n\t * from its clones group.\n\t *\n\t * Keep in mind, that the element will still keep a reference to the group (but the group will not keep a reference to it).\n\t * This allows to reference the whole group even if the element was already removed from the tree.\n\t *\n\t * Does nothing if the element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n\t *\n\t * @private\n\t * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to remove.\n\t */\n\t_removeFromClonedElementsGroup( element ) {\n\t\t// Traverse the element's children recursively to find other attribute elements that also got removed.\n\t\t// The loop is at the beginning so we can make fast returns later in the code.\n\t\tif ( element.is( 'element' ) ) {\n\t\t\tfor ( const child of element.getChildren() ) {\n\t\t\t\tthis._removeFromClonedElementsGroup( child );\n\t\t\t}\n\t\t}\n\n\t\tconst id = element.id;\n\n\t\tif ( !id ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = this._cloneGroups.get( id );\n\n\t\tif ( !group ) {\n\t\t\treturn;\n\t\t}\n\n\t\tgroup.delete( element );\n\t\t// Not removing group from element on purpose!\n\t\t// If other parts of code have reference to this element, they will be able to get references to other elements from the group.\n\t}\n}\n\n// Helper function for `view.writer.wrap`. Checks if given element has any children that are not ui elements.\nfunction _hasNonUiChildren( parent ) {\n\treturn Array.from( parent.getChildren() ).some( child => !child.is( 'uiElement' ) );\n}\n\n/**\n * The `attribute` passed to {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#wrap()`}\n * must be an instance of {@link module:engine/view/attributeelement~AttributeElement `AttributeElement`}.\n *\n * @error view-writer-wrap-invalid-attribute\n */\n\n// Returns first parent container of specified {@link module:engine/view/position~Position Position}.\n// Position's parent node is checked as first, then next parents are checked.\n// Note that {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n//\n// @param {module:engine/view/position~Position} position Position used as a start point to locate parent container.\n// @returns {module:engine/view/containerelement~ContainerElement|module:engine/view/documentfragment~DocumentFragment|undefined}\n// Parent container element or `undefined` if container is not found.\nfunction getParentContainer( position ) {\n\tlet parent = position.parent;\n\n\twhile ( !isContainerOrFragment( parent ) ) {\n\t\tif ( !parent ) {\n\t\t\treturn undefined;\n\t\t}\n\t\tparent = parent.parent;\n\t}\n\n\treturn parent;\n}\n\n// Checks if first {@link module:engine/view/attributeelement~AttributeElement AttributeElement} provided to the function\n// can be wrapped otuside second element. It is done by comparing elements'\n// {@link module:engine/view/attributeelement~AttributeElement#priority priorities}, if both have same priority\n// {@link module:engine/view/element~Element#getIdentity identities} are compared.\n//\n// @param {module:engine/view/attributeelement~AttributeElement} a\n// @param {module:engine/view/attributeelement~AttributeElement} b\n// @returns {Boolean}\nfunction shouldABeOutsideB( a, b ) {\n\tif ( a.priority < b.priority ) {\n\t\treturn true;\n\t} else if ( a.priority > b.priority ) {\n\t\treturn false;\n\t}\n\n\t// When priorities are equal and names are different - use identities.\n\treturn a.getIdentity() < b.getIdentity();\n}\n\n// Returns new position that is moved to near text node. Returns same position if there is no text node before of after\n// specified position.\n//\n//\t\t

          foo[]

          ->

          foo{}

          \n//\t\t

          []foo

          ->

          {}foo

          \n//\n// @param {module:engine/view/position~Position} position\n// @returns {module:engine/view/position~Position} Position located inside text node or same position if there is no text nodes\n// before or after position location.\nfunction movePositionToTextNode( position ) {\n\tconst nodeBefore = position.nodeBefore;\n\n\tif ( nodeBefore && nodeBefore.is( '$text' ) ) {\n\t\treturn new Position( nodeBefore, nodeBefore.data.length );\n\t}\n\n\tconst nodeAfter = position.nodeAfter;\n\n\tif ( nodeAfter && nodeAfter.is( '$text' ) ) {\n\t\treturn new Position( nodeAfter, 0 );\n\t}\n\n\treturn position;\n}\n\n// Breaks text node into two text nodes when possible.\n//\n//\t\t

          foo{}bar

          ->

          foo[]bar

          \n//\t\t

          {}foobar

          ->

          []foobar

          \n//\t\t

          foobar{}

          ->

          foobar[]

          \n//\n// @param {module:engine/view/position~Position} position Position that need to be placed inside text node.\n// @returns {module:engine/view/position~Position} New position after breaking text node.\nfunction breakTextNode( position ) {\n\tif ( position.offset == position.parent.data.length ) {\n\t\treturn new Position( position.parent.parent, position.parent.index + 1 );\n\t}\n\n\tif ( position.offset === 0 ) {\n\t\treturn new Position( position.parent.parent, position.parent.index );\n\t}\n\n\t// Get part of the text that need to be moved.\n\tconst textToMove = position.parent.data.slice( position.offset );\n\n\t// Leave rest of the text in position's parent.\n\tposition.parent._data = position.parent.data.slice( 0, position.offset );\n\n\t// Insert new text node after position's parent text node.\n\tposition.parent.parent._insertChild( position.parent.index + 1, new Text( position.root.document, textToMove ) );\n\n\t// Return new position between two newly created text nodes.\n\treturn new Position( position.parent.parent, position.parent.index + 1 );\n}\n\n// Merges two text nodes into first node. Removes second node and returns merge position.\n//\n// @param {module:engine/view/text~Text} t1 First text node to merge. Data from second text node will be moved at the end of\n// this text node.\n// @param {module:engine/view/text~Text} t2 Second text node to merge. This node will be removed after merging.\n// @returns {module:engine/view/position~Position} Position after merging text nodes.\nfunction mergeTextNodes( t1, t2 ) {\n\t// Merge text data into first text node and remove second one.\n\tconst nodeBeforeLength = t1.data.length;\n\tt1._data += t2.data;\n\tt2._remove();\n\n\treturn new Position( t1, nodeBeforeLength );\n}\n\n// Checks if provided nodes are valid to insert.\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n// contains instances that are not supported ones (see error description for valid ones.\n//\n// @param Iterable. nodes\n// @param {Object} errorContext\nfunction validateNodesToInsert( nodes, errorContext ) {\n\tfor ( const node of nodes ) {\n\t\tif ( !validNodesToInsert.some( ( validNode => node instanceof validNode ) ) ) { // eslint-disable-line no-use-before-define\n\t\t\t/**\n\t\t\t * One of the nodes to be inserted is of an invalid type.\n\t\t\t *\n\t\t\t * Nodes to be inserted with {@link module:engine/view/downcastwriter~DowncastWriter#insert `DowncastWriter#insert()`} should be\n\t\t\t * of the following types:\n\t\t\t *\n\t\t\t * * {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n\t\t\t * * {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n\t\t\t * * {@link module:engine/view/emptyelement~EmptyElement EmptyElement},\n\t\t\t * * {@link module:engine/view/uielement~UIElement UIElement},\n\t\t\t * * {@link module:engine/view/rawelement~RawElement RawElement},\n\t\t\t * * {@link module:engine/view/text~Text Text}.\n\t\t\t *\n\t\t\t * @error view-writer-insert-invalid-node-type\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-insert-invalid-node-type', errorContext );\n\t\t}\n\n\t\tif ( !node.is( '$text' ) ) {\n\t\t\tvalidateNodesToInsert( node.getChildren(), errorContext );\n\t\t}\n\t}\n}\n\nconst validNodesToInsert = [ Text, AttributeElement, ContainerElement, EmptyElement, RawElement, UIElement ];\n\n// Checks if node is ContainerElement or DocumentFragment, because in most cases they should be treated the same way.\n//\n// @param {module:engine/view/node~Node} node\n// @returns {Boolean} Returns `true` if node is instance of ContainerElement or DocumentFragment.\nfunction isContainerOrFragment( node ) {\n\treturn node && ( node.is( 'containerElement' ) || node.is( 'documentFragment' ) );\n}\n\n// Checks if {@link module:engine/view/range~Range#start range start} and {@link module:engine/view/range~Range#end range end} are placed\n// inside same {@link module:engine/view/containerelement~ContainerElement container element}.\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when validation fails.\n//\n// @param {module:engine/view/range~Range} range\n// @param {Object} errorContext\nfunction validateRangeContainer( range, errorContext ) {\n\tconst startContainer = getParentContainer( range.start );\n\tconst endContainer = getParentContainer( range.end );\n\n\tif ( !startContainer || !endContainer || startContainer !== endContainer ) {\n\t\t/**\n\t\t * The container of the given range is invalid.\n\t\t *\n\t\t * This may happen if {@link module:engine/view/range~Range#start range start} and\n\t\t * {@link module:engine/view/range~Range#end range end} positions are not placed inside the same container element or\n\t\t * a parent container for these positions cannot be found.\n\t\t *\n\t\t * Methods like {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#remove()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#clean()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#wrap()`},\n\t\t * {@link module:engine/view/downcastwriter~DowncastWriter#wrap `DowncastWriter#unwrap()`} need to be called\n\t\t * on a range that has its start and end positions located in the same container element. Both positions can be\n\t\t * nested within other elements (e.g. an attribute element) but the closest container ancestor must be the same.\n\t\t *\n\t\t * @error view-writer-invalid-range-container\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-invalid-range-container', errorContext );\n\t}\n}\n\n// Checks if two attribute elements can be joined together. Elements can be joined together if, and only if\n// they do not have ids specified.\n//\n// @private\n// @param {module:engine/view/element~Element} a\n// @param {module:engine/view/element~Element} b\n// @returns {Boolean}\nfunction canBeJoined( a, b ) {\n\treturn a.id === null && b.id === null;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/istext\n */\n\n/**\n * Checks if the object is a native DOM Text node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isText( obj ) {\n\treturn Object.prototype.toString.call( obj ) == '[object Text]';\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\n\n/**\n * Set of utils related to block and inline fillers handling.\n *\n * Browsers do not allow to put caret in elements which does not have height. Because of it, we need to fill all\n * empty elements which should be selectable with elements or characters called \"fillers\". Unfortunately there is no one\n * universal filler, this is why two types are uses:\n *\n * * Block filler is an element which fill block elements, like `

          `. CKEditor uses `
          ` as a block filler during the editing,\n * as browsers do natively. So instead of an empty `

          ` there will be `


          `. The advantage of block filler is that\n * it is transparent for the selection, so when the caret is before the `
          ` and user presses right arrow he will be\n * moved to the next paragraph, not after the `
          `. The disadvantage is that it breaks a block, so it can not be used\n * in the middle of a line of text. The {@link module:engine/view/filler~BR_FILLER `
          ` filler} can be replaced with any other\n * character in the data output, for instance {@link module:engine/view/filler~NBSP_FILLER non-breaking space}.\n *\n * * Inline filler is a filler which does not break a line of text, so it can be used inside the text, for instance in the empty\n * `` surrendered by text: `foobar`, if we want to put the caret there. CKEditor uses a sequence of the zero-width\n * spaces as an {@link module:engine/view/filler~INLINE_FILLER inline filler} having the predetermined\n * {@link module:engine/view/filler~INLINE_FILLER_LENGTH length}. A sequence is used, instead of a single character to\n * avoid treating random zero-width spaces as the inline filler. Disadvantage of the inline filler is that it is not\n * transparent for the selection. The arrow key moves the caret between zero-width spaces characters, so the additional\n * code is needed to handle the caret.\n *\n * Both inline and block fillers are handled by the {@link module:engine/view/renderer~Renderer renderer} and are not present in the\n * view.\n *\n * @module engine/view/filler\n */\n\n/**\n * Non-breaking space filler creator. This is a function which creates ` ` text node.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~BR_FILLER\n * @function\n */\nexport const NBSP_FILLER = domDocument => domDocument.createTextNode( '\\u00A0' );\n\n/**\n * `
          ` filler creator. This is a function which creates `
          ` element.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~NBSP_FILLER\n * @function\n */\nexport const BR_FILLER = domDocument => {\n\tconst fillerBr = domDocument.createElement( 'br' );\n\tfillerBr.dataset.ckeFiller = true;\n\n\treturn fillerBr;\n};\n\n/**\n * Length of the {@link module:engine/view/filler~INLINE_FILLER INLINE_FILLER}.\n */\nexport const INLINE_FILLER_LENGTH = 7;\n\n/**\n * Inline filler which is a sequence of the zero width spaces.\n *\n * @type {String}\n */\nexport const INLINE_FILLER = ( () => {\n\tlet inlineFiller = '';\n\n\tfor ( let i = 0; i < INLINE_FILLER_LENGTH; i++ ) {\n\t\tinlineFiller += '\\u200b';\n\t}\n\n\treturn inlineFiller;\n} )(); // Usu IIF so the INLINE_FILLER appears as a constant in the docs.\n\n/**\n * Checks if the node is a text node which starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( 'foo' ) ); // false\n *\t\tstartsWithFiller( document.createElement( 'p' ) ); // false\n *\n * @param {Node} domNode DOM node.\n * @returns {Boolean} True if the text node starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\nexport function startsWithFiller( domNode ) {\n\treturn isText( domNode ) && ( domNode.data.substr( 0, INLINE_FILLER_LENGTH ) === INLINE_FILLER );\n}\n\n/**\n * Checks if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // false\n *\n * @param {Text} domText DOM text node.\n * @returns {Boolean} True if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\nexport function isInlineFiller( domText ) {\n\treturn domText.data.length == INLINE_FILLER_LENGTH && startsWithFiller( domText );\n}\n\n/**\n * Get string data from the text node, removing an {@link module:engine/view/filler~INLINE_FILLER inline filler} from it,\n * if text node contains it.\n *\n *\t\tgetDataWithoutFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ) == 'foo' // true\n *\t\tgetDataWithoutFiller( document.createTextNode( 'foo' ) ) == 'foo' // true\n *\n * @param {Text} domText DOM text node, possible with inline filler.\n * @returns {String} Data without filler.\n */\nexport function getDataWithoutFiller( domText ) {\n\tif ( startsWithFiller( domText ) ) {\n\t\treturn domText.data.slice( INLINE_FILLER_LENGTH );\n\t} else {\n\t\treturn domText.data;\n\t}\n}\n\n/**\n * Assign key observer which move cursor from the end of the inline filler to the beginning of it when\n * the left arrow is pressed, so the filler does not break navigation.\n *\n * @param {module:engine/view/view~View} view View controller instance we should inject quirks handling on.\n */\nexport function injectQuirksHandling( view ) {\n\tview.document.on( 'keydown', jumpOverInlineFiller );\n}\n\n// Move cursor from the end of the inline filler to the beginning of it when, so the filler does not break navigation.\nfunction jumpOverInlineFiller( evt, data ) {\n\tif ( data.keyCode == keyCodes.arrowleft ) {\n\t\tconst domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n\n\t\tif ( domSelection.rangeCount == 1 && domSelection.getRangeAt( 0 ).collapsed ) {\n\t\t\tconst domParent = domSelection.getRangeAt( 0 ).startContainer;\n\t\t\tconst domOffset = domSelection.getRangeAt( 0 ).startOffset;\n\n\t\t\tif ( startsWithFiller( domParent ) && domOffset <= INLINE_FILLER_LENGTH ) {\n\t\t\t\tdomSelection.collapse( domParent, 0 );\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/fastdiff\n */\n\n/**\n * Finds positions of the first and last change in the given string/array and generates a set of changes:\n *\n *\t\tfastDiff( '12a', '12xyza' );\n *\t\t// [ { index: 2, type: 'insert', values: [ 'x', 'y', 'z' ] } ]\n *\n *\t\tfastDiff( '12a', '12aa' );\n *\t\t// [ { index: 3, type: 'insert', values: [ 'a' ] } ]\n *\n *\t\tfastDiff( '12xyza', '12a' );\n *\t\t// [ { index: 2, type: 'delete', howMany: 3 } ]\n *\n *\t\tfastDiff( [ '1', '2', 'a', 'a' ], [ '1', '2', 'a' ] );\n *\t\t// [ { index: 3, type: 'delete', howMany: 1 } ]\n *\n *\t\tfastDiff( [ '1', '2', 'a', 'b', 'c', '3' ], [ '2', 'a', 'b' ] );\n *\t\t// [ { index: 0, type: 'insert', values: [ '2', 'a', 'b' ] }, { index: 3, type: 'delete', howMany: 6 } ]\n *\n * Passed arrays can contain any type of data, however to compare them correctly custom comparator function\n * should be passed as a third parameter:\n *\n *\t\tfastDiff( [ { value: 1 }, { value: 2 } ], [ { value: 1 }, { value: 3 } ], ( a, b ) => {\n *\t\t\treturn a.value === b.value;\n *\t\t} );\n *\t\t// [ { index: 1, type: 'insert', values: [ { value: 3 } ] }, { index: 2, type: 'delete', howMany: 1 } ]\n *\n * The resulted set of changes can be applied to the input in order to transform it into the output, for example:\n *\n *\t\tlet input = '12abc3';\n *\t\tconst output = '2ab';\n *\t\tconst changes = fastDiff( input, output );\n *\n *\t\tchanges.forEach( change => {\n *\t\t\tif ( change.type == 'insert' ) {\n *\t\t\t\tinput = input.substring( 0, change.index ) + change.values.join( '' ) + input.substring( change.index );\n *\t\t\t} else if ( change.type == 'delete' ) {\n *\t\t\t\tinput = input.substring( 0, change.index ) + input.substring( change.index + change.howMany );\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// input equals output now\n *\n * or in case of arrays:\n *\n *\t\tlet input = [ '1', '2', 'a', 'b', 'c', '3' ];\n *\t\tconst output = [ '2', 'a', 'b' ];\n *\t\tconst changes = fastDiff( input, output );\n *\n *\t\tchanges.forEach( change => {\n *\t\t\tif ( change.type == 'insert' ) {\n *\t\t\t\tinput = input.slice( 0, change.index ).concat( change.values, input.slice( change.index ) );\n *\t\t\t} else if ( change.type == 'delete' ) {\n *\t\t\t\tinput = input.slice( 0, change.index ).concat( input.slice( change.index + change.howMany ) );\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// input equals output now\n *\n * By passing `true` as the fourth parameter (`atomicChanges`) the output of this function will become compatible with\n * the {@link module:utils/diff~diff `diff()`} function:\n *\n *\t\tfastDiff( '12a', '12xyza' );\n *\t\t// [ 'equal', 'equal', 'insert', 'insert', 'insert', 'equal' ]\n *\n * The default output format of this function is compatible with the output format of\n * {@link module:utils/difftochanges~diffToChanges `diffToChanges()`}. The `diffToChanges()` input format is, in turn,\n * compatible with the output of {@link module:utils/diff~diff `diff()`}:\n *\n *\t\tconst a = '1234';\n *\t\tconst b = '12xyz34';\n *\n *\t\t// Both calls will return the same results (grouped changes format).\n *\t\tfastDiff( a, b );\n *\t\tdiffToChanges( diff( a, b ) );\n *\n *\t\t// Again, both calls will return the same results (atomic changes format).\n *\t\tfastDiff( a, b, null, true );\n *\t\tdiff( a, b );\n *\n *\n * @param {Array|String} a Input array or string.\n * @param {Array|String} b Input array or string.\n * @param {Function} [cmp] Optional function used to compare array values, by default `===` (strict equal operator) is used.\n * @param {Boolean} [atomicChanges=false] Whether an array of `inset|delete|equal` operations should\n * be returned instead of changes set. This makes this function compatible with {@link module:utils/diff~diff `diff()`}.\n * @returns {Array} Array of changes.\n */\nexport default function fastDiff( a, b, cmp, atomicChanges = false ) {\n\t// Set the comparator function.\n\tcmp = cmp || function( a, b ) {\n\t\treturn a === b;\n\t};\n\n\t// Convert the string (or any array-like object - eg. NodeList) to an array by using the slice() method because,\n\t// unlike Array.from(), it returns array of UTF-16 code units instead of the code points of a string.\n\t// One code point might be a surrogate pair of two code units. All text offsets are expected to be in code units.\n\t// See ckeditor/ckeditor5#3147.\n\t//\n\t// We need to make sure here that fastDiff() works identical to diff().\n\tif ( !Array.isArray( a ) ) {\n\t\ta = Array.prototype.slice.call( a );\n\t}\n\n\tif ( !Array.isArray( b ) ) {\n\t\tb = Array.prototype.slice.call( b );\n\t}\n\n\t// Find first and last change.\n\tconst changeIndexes = findChangeBoundaryIndexes( a, b, cmp );\n\n\t// Transform into changes array.\n\treturn atomicChanges ? changeIndexesToAtomicChanges( changeIndexes, b.length ) : changeIndexesToChanges( b, changeIndexes );\n}\n\n// Finds position of the first and last change in the given arrays. For example:\n//\n//\t\tconst indexes = findChangeBoundaryIndexes( [ '1', '2', '3', '4' ], [ '1', '3', '4', '2', '4' ] );\n//\t\tconsole.log( indexes ); // { firstIndex: 1, lastIndexOld: 3, lastIndexNew: 4 }\n//\n// The above indexes means that in the first array the modified part is `1[23]4` and in the second array it is `1[342]4`.\n// Based on such indexes, array with `insert`/`delete` operations which allows transforming first value into the second one\n// can be generated.\n//\n// @param {Array} arr1\n// @param {Array} arr2\n// @param {Function} cmp Comparator function.\n// @returns {Object}\n// @returns {Number} return.firstIndex Index of the first change in both values (always the same for both).\n// @returns {Number} result.lastIndexOld Index of the last common value in `arr1`.\n// @returns {Number} result.lastIndexNew Index of the last common value in `arr2`.\nfunction findChangeBoundaryIndexes( arr1, arr2, cmp ) {\n\t// Find the first difference between passed values.\n\tconst firstIndex = findFirstDifferenceIndex( arr1, arr2, cmp );\n\n\t// If arrays are equal return -1 indexes object.\n\tif ( firstIndex === -1 ) {\n\t\treturn { firstIndex: -1, lastIndexOld: -1, lastIndexNew: -1 };\n\t}\n\n\t// Remove the common part of each value and reverse them to make it simpler to find the last difference between them.\n\tconst oldArrayReversed = cutAndReverse( arr1, firstIndex );\n\tconst newArrayReversed = cutAndReverse( arr2, firstIndex );\n\n\t// Find the first difference between reversed values.\n\t// It should be treated as \"how many elements from the end the last difference occurred\".\n\t//\n\t// For example:\n\t//\n\t// \t\t\t\tinitial\t->\tafter cut\t-> reversed:\n\t// oldValue:\t'321ba'\t->\t'21ba'\t\t-> 'ab12'\n\t// newValue:\t'31xba'\t->\t'1xba'\t\t-> 'abx1'\n\t// lastIndex:\t\t\t\t\t\t\t-> 2\n\t//\n\t// So the last change occurred two characters from the end of the arrays.\n\tconst lastIndex = findFirstDifferenceIndex( oldArrayReversed, newArrayReversed, cmp );\n\n\t// Use `lastIndex` to calculate proper offset, starting from the beginning (`lastIndex` kind of starts from the end).\n\tconst lastIndexOld = arr1.length - lastIndex;\n\tconst lastIndexNew = arr2.length - lastIndex;\n\n\treturn { firstIndex, lastIndexOld, lastIndexNew };\n}\n\n// Returns a first index on which given arrays differ. If both arrays are the same, -1 is returned.\n//\n// @param {Array} arr1\n// @param {Array} arr2\n// @param {Function} cmp Comparator function.\n// @returns {Number}\nfunction findFirstDifferenceIndex( arr1, arr2, cmp ) {\n\tfor ( let i = 0; i < Math.max( arr1.length, arr2.length ); i++ ) {\n\t\tif ( arr1[ i ] === undefined || arr2[ i ] === undefined || !cmp( arr1[ i ], arr2[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1; // Return -1 if arrays are equal.\n}\n\n// Returns a copy of the given array with `howMany` elements removed starting from the beginning and in reversed order.\n//\n// @param {Array} arr Array to be processed.\n// @param {Number} howMany How many elements from array beginning to remove.\n// @returns {Array} Shortened and reversed array.\nfunction cutAndReverse( arr, howMany ) {\n\treturn arr.slice( howMany ).reverse();\n}\n\n// Generates changes array based on change indexes from `findChangeBoundaryIndexes` function. This function will\n// generate array with 0 (no changes), 1 (deletion or insertion) or 2 records (insertion and deletion).\n//\n// @param {Array} newArray New array for which change indexes were calculated.\n// @param {Object} changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n// @returns {Array.} Array of changes compatible with {@link module:utils/difftochanges~diffToChanges} format.\nfunction changeIndexesToChanges( newArray, changeIndexes ) {\n\tconst result = [];\n\tconst { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n\n\t// Order operations as 'insert', 'delete' array to keep compatibility with {@link module:utils/difftochanges~diffToChanges}\n\t// in most cases. However, 'diffToChanges' does not stick to any order so in some cases\n\t// (for example replacing '12345' with 'abcd') it will generate 'delete', 'insert' order.\n\tif ( lastIndexNew - firstIndex > 0 ) {\n\t\tresult.push( {\n\t\t\tindex: firstIndex,\n\t\t\ttype: 'insert',\n\t\t\tvalues: newArray.slice( firstIndex, lastIndexNew )\n\t\t} );\n\t}\n\n\tif ( lastIndexOld - firstIndex > 0 ) {\n\t\tresult.push( {\n\t\t\tindex: firstIndex + ( lastIndexNew - firstIndex ), // Increase index of what was inserted.\n\t\t\ttype: 'delete',\n\t\t\thowMany: lastIndexOld - firstIndex\n\t\t} );\n\t}\n\n\treturn result;\n}\n\n// Generates array with set `equal|insert|delete` operations based on change indexes from `findChangeBoundaryIndexes` function.\n//\n// @param {Object} changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n// @param {Number} newLength Length of the new array on which `findChangeBoundaryIndexes` calculated change indexes.\n// @returns {Array.} Array of changes compatible with {@link module:utils/diff~diff} format.\nfunction changeIndexesToAtomicChanges( changeIndexes, newLength ) {\n\tconst { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n\n\t// No changes.\n\tif ( firstIndex === -1 ) {\n\t\treturn Array( newLength ).fill( 'equal' );\n\t}\n\n\tlet result = [];\n\tif ( firstIndex > 0 ) {\n\t\tresult = result.concat( Array( firstIndex ).fill( 'equal' ) );\n\t}\n\n\tif ( lastIndexNew - firstIndex > 0 ) {\n\t\tresult = result.concat( Array( lastIndexNew - firstIndex ).fill( 'insert' ) );\n\t}\n\n\tif ( lastIndexOld - firstIndex > 0 ) {\n\t\tresult = result.concat( Array( lastIndexOld - firstIndex ).fill( 'delete' ) );\n\t}\n\n\tif ( lastIndexNew < newLength ) {\n\t\tresult = result.concat( Array( newLength - lastIndexNew ).fill( 'equal' ) );\n\t}\n\n\treturn result;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/diff\n */\n\nimport fastDiff from '../src/fastdiff';\n\n// The following code is based on the \"O(NP) Sequence Comparison Algorithm\"\n// by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n\n/**\n * Calculates the difference between two arrays or strings producing an array containing a list of changes\n * necessary to transform input into output.\n *\n *\t\tdiff( 'aba', 'acca' ); // [ 'equal', 'insert', 'insert', 'delete', 'equal' ]\n *\n * This function is based on the \"O(NP) Sequence Comparison Algorithm\" by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n * Unfortunately, while it gives the most precise results, its to complex for longer strings/arrow (above 200 items).\n * Therefore, `diff()` automatically switches to {@link module:utils/fastdiff~fastDiff `fastDiff()`} when detecting\n * such a scenario. The return formats of both functions are identical.\n *\n * @param {Array|String} a Input array or string.\n * @param {Array|String} b Output array or string.\n * @param {Function} [cmp] Optional function used to compare array values, by default === is used.\n * @returns {Array} Array of changes.\n */\nexport default function diff( a, b, cmp ) {\n\t// Set the comparator function.\n\tcmp = cmp || function( a, b ) {\n\t\treturn a === b;\n\t};\n\n\tconst aLength = a.length;\n\tconst bLength = b.length;\n\n\t// Perform `fastDiff` for longer strings/arrays (see #269).\n\tif ( aLength > 200 || bLength > 200 || aLength + bLength > 300 ) {\n\t\treturn diff.fastDiff( a, b, cmp, true );\n\t}\n\n\t// Temporary action type statics.\n\tlet _insert, _delete;\n\n\t// Swapped the arrays to use the shorter one as the first one.\n\tif ( bLength < aLength ) {\n\t\tconst tmp = a;\n\n\t\ta = b;\n\t\tb = tmp;\n\n\t\t// We swap the action types as well.\n\t\t_insert = 'delete';\n\t\t_delete = 'insert';\n\t} else {\n\t\t_insert = 'insert';\n\t\t_delete = 'delete';\n\t}\n\n\tconst m = a.length;\n\tconst n = b.length;\n\tconst delta = n - m;\n\n\t// Edit scripts, for each diagonal.\n\tconst es = {};\n\t// Furthest points, the furthest y we can get on each diagonal.\n\tconst fp = {};\n\n\tfunction snake( k ) {\n\t\t// We use -1 as an alternative below to handle initial values ( instead of filling the fp with -1 first ).\n\t\t// Furthest points (y) on the diagonal below k.\n\t\tconst y1 = ( fp[ k - 1 ] !== undefined ? fp[ k - 1 ] : -1 ) + 1;\n\t\t// Furthest points (y) on the diagonal above k.\n\t\tconst y2 = fp[ k + 1 ] !== undefined ? fp[ k + 1 ] : -1;\n\t\t// The way we should go to get further.\n\t\tconst dir = y1 > y2 ? -1 : 1;\n\n\t\t// Clone previous changes array (if any).\n\t\tif ( es[ k + dir ] ) {\n\t\t\tes[ k ] = es[ k + dir ].slice( 0 );\n\t\t}\n\n\t\t// Create changes array.\n\t\tif ( !es[ k ] ) {\n\t\t\tes[ k ] = [];\n\t\t}\n\n\t\t// Push the action.\n\t\tes[ k ].push( y1 > y2 ? _insert : _delete );\n\n\t\t// Set the beginning coordinates.\n\t\tlet y = Math.max( y1, y2 );\n\t\tlet x = y - k;\n\n\t\t// Traverse the diagonal as long as the values match.\n\t\twhile ( x < m && y < n && cmp( a[ x ], b[ y ] ) ) {\n\t\t\tx++;\n\t\t\ty++;\n\t\t\t// Push no change action.\n\t\t\tes[ k ].push( 'equal' );\n\t\t}\n\n\t\treturn y;\n\t}\n\n\tlet p = 0;\n\tlet k;\n\n\t// Traverse the graph until we reach the end of the longer string.\n\tdo {\n\t\t// Updates furthest points and edit scripts for diagonals below delta.\n\t\tfor ( k = -p; k < delta; k++ ) {\n\t\t\tfp[ k ] = snake( k );\n\t\t}\n\n\t\t// Updates furthest points and edit scripts for diagonals above delta.\n\t\tfor ( k = delta + p; k > delta; k-- ) {\n\t\t\tfp[ k ] = snake( k );\n\t\t}\n\n\t\t// Updates furthest point and edit script for the delta diagonal.\n\t\t// note that the delta diagonal is the one which goes through the sink (m, n).\n\t\tfp[ delta ] = snake( delta );\n\n\t\tp++;\n\t} while ( fp[ delta ] !== n );\n\n\t// Return the final list of edit changes.\n\t// We remove the first item that represents the action for the injected nulls.\n\treturn es[ delta ].slice( 1 );\n}\n\n// Store the API in static property to easily overwrite it in tests.\n// Too bad dependency injection does not work in Webpack + ES 6 (const) + Babel.\ndiff.fastDiff = fastDiff;\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/insertat\n */\n\n/**\n * Inserts node to the parent at given index.\n *\n * @param {Element} parentElement Parent element.\n * @param {Number} index Insertions index.\n * @param {Node} nodeToInsert Node to insert.\n */\nexport default function insertAt( parentElement, index, nodeToInsert ) {\n\tparentElement.insertBefore( nodeToInsert, parentElement.childNodes[ index ] || null );\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/remove\n */\n\n/**\n * Removes given node from parent.\n *\n * @param {Node} node Node to remove.\n */\nexport default function remove( node ) {\n\tconst parent = node.parentNode;\n\n\tif ( parent ) {\n\t\tparent.removeChild( node );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/isnode\n */\n\n/**\n * Checks if the object is a native DOM Node.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isNode( obj ) {\n\tif ( obj ) {\n\t\tif ( obj.defaultView ) {\n\t\t\treturn obj instanceof obj.defaultView.Document;\n\t\t} else if ( obj.ownerDocument && obj.ownerDocument.defaultView ) {\n\t\t\treturn obj instanceof obj.ownerDocument.defaultView.Node;\n\t\t}\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module engine/view/renderer\n */\n\nimport ViewText from './text';\nimport ViewPosition from './position';\nimport { INLINE_FILLER, INLINE_FILLER_LENGTH, startsWithFiller, isInlineFiller } from './filler';\n\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport diff from '@ckeditor/ckeditor5-utils/src/diff';\nimport insertAt from '@ckeditor/ckeditor5-utils/src/dom/insertat';\nimport remove from '@ckeditor/ckeditor5-utils/src/dom/remove';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport isNode from '@ckeditor/ckeditor5-utils/src/dom/isnode';\nimport fastDiff from '@ckeditor/ckeditor5-utils/src/fastdiff';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n\n/**\n * Renderer is responsible for updating the DOM structure and the DOM selection based on\n * the {@link module:engine/view/renderer~Renderer#markToSync information about updated view nodes}.\n * In other words, it renders the view to the DOM.\n *\n * Its main responsibility is to make only the necessary, minimal changes to the DOM. However, unlike in many\n * virtual DOM implementations, the primary reason for doing minimal changes is not the performance but ensuring\n * that native editing features such as text composition, autocompletion, spell checking, selection's x-index are\n * affected as little as possible.\n *\n * Renderer uses {@link module:engine/view/domconverter~DomConverter} to transform view nodes and positions\n * to and from the DOM.\n */\nexport default class Renderer {\n\t/**\n\t * Creates a renderer instance.\n\t *\n\t * @param {module:engine/view/domconverter~DomConverter} domConverter Converter instance.\n\t * @param {module:engine/view/documentselection~DocumentSelection} selection View selection.\n\t */\n\tconstructor( domConverter, selection ) {\n\t\t/**\n\t\t * Set of DOM Documents instances.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.domDocuments = new Set();\n\n\t\t/**\n\t\t * Converter instance.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/domconverter~DomConverter}\n\t\t */\n\t\tthis.domConverter = domConverter;\n\n\t\t/**\n\t\t * Set of nodes which attributes changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedAttributes = new Set();\n\n\t\t/**\n\t\t * Set of elements which child lists changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedChildren = new Set();\n\n\t\t/**\n\t\t * Set of text nodes which text data changed and may need to be rendered.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Set.}\n\t\t */\n\t\tthis.markedTexts = new Set();\n\n\t\t/**\n\t\t * View selection. Renderer updates DOM selection based on the view selection.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/documentselection~DocumentSelection}\n\t\t */\n\t\tthis.selection = selection;\n\n\t\t/**\n\t\t * Indicates if the view document is focused and selection can be rendered. Selection will not be rendered if\n\t\t * this is set to `false`.\n\t\t *\n\t\t * @member {Boolean}\n\t\t */\n\t\tthis.isFocused = false;\n\n\t\t/**\n\t\t * The text node in which the inline filler was rendered.\n\t\t *\n\t\t * @private\n\t\t * @member {Text}\n\t\t */\n\t\tthis._inlineFiller = null;\n\n\t\t/**\n\t\t * DOM element containing fake selection.\n\t\t *\n\t\t * @private\n\t\t * @type {null|HTMLElement}\n\t\t */\n\t\tthis._fakeSelectionContainer = null;\n\t}\n\n\t/**\n\t * Marks a view node to be updated in the DOM by {@link #render `render()`}.\n\t *\n\t * Note that only view nodes whose parents have corresponding DOM elements need to be marked to be synchronized.\n\t *\n\t * @see #markedAttributes\n\t * @see #markedChildren\n\t * @see #markedTexts\n\t *\n\t * @param {module:engine/view/document~ChangeType} type Type of the change.\n\t * @param {module:engine/view/node~Node} node Node to be marked.\n\t */\n\tmarkToSync( type, node ) {\n\t\tif ( type === 'text' ) {\n\t\t\tif ( this.domConverter.mapViewToDom( node.parent ) ) {\n\t\t\t\tthis.markedTexts.add( node );\n\t\t\t}\n\t\t} else {\n\t\t\t// If the node has no DOM element it is not rendered yet,\n\t\t\t// its children/attributes do not need to be marked to be sync.\n\t\t\tif ( !this.domConverter.mapViewToDom( node ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( type === 'attributes' ) {\n\t\t\t\tthis.markedAttributes.add( node );\n\t\t\t} else if ( type === 'children' ) {\n\t\t\t\tthis.markedChildren.add( node );\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Unknown type passed to Renderer.markToSync.\n\t\t\t\t *\n\t\t\t\t * @error view-renderer-unknown-type\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'view-renderer-unknown-type', this );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Renders all buffered changes ({@link #markedAttributes}, {@link #markedChildren} and {@link #markedTexts}) and\n\t * the current view selection (if needed) to the DOM by applying a minimal set of changes to it.\n\t *\n\t * Renderer tries not to break the text composition (e.g. IME) and x-index of the selection,\n\t * so it does as little as it is needed to update the DOM.\n\t *\n\t * Renderer also handles {@link module:engine/view/filler fillers}. Especially, it checks if the inline filler is needed\n\t * at the selection position and adds or removes it. To prevent breaking text composition inline filler will not be\n\t * removed as long as the selection is in the text node which needed it at first.\n\t */\n\trender() {\n\t\tlet inlineFillerPosition;\n\n\t\t// Refresh mappings.\n\t\tfor ( const element of this.markedChildren ) {\n\t\t\tthis._updateChildrenMappings( element );\n\t\t}\n\n\t\t// There was inline filler rendered in the DOM but it's not\n\t\t// at the selection position any more, so we can remove it\n\t\t// (cause even if it's needed, it must be placed in another location).\n\t\tif ( this._inlineFiller && !this._isSelectionInInlineFiller() ) {\n\t\t\tthis._removeInlineFiller();\n\t\t}\n\n\t\t// If we've got the filler, let's try to guess its position in the view.\n\t\tif ( this._inlineFiller ) {\n\t\t\tinlineFillerPosition = this._getInlineFillerPosition();\n\t\t}\n\t\t// Otherwise, if it's needed, create it at the selection position.\n\t\telse if ( this._needsInlineFillerAtSelection() ) {\n\t\t\tinlineFillerPosition = this.selection.getFirstPosition();\n\n\t\t\t// Do not use `markToSync` so it will be added even if the parent is already added.\n\t\t\tthis.markedChildren.add( inlineFillerPosition.parent );\n\t\t}\n\n\t\tfor ( const element of this.markedAttributes ) {\n\t\t\tthis._updateAttrs( element );\n\t\t}\n\n\t\tfor ( const element of this.markedChildren ) {\n\t\t\tthis._updateChildren( element, { inlineFillerPosition } );\n\t\t}\n\n\t\tfor ( const node of this.markedTexts ) {\n\t\t\tif ( !this.markedChildren.has( node.parent ) && this.domConverter.mapViewToDom( node.parent ) ) {\n\t\t\t\tthis._updateText( node, { inlineFillerPosition } );\n\t\t\t}\n\t\t}\n\n\t\t// Check whether the inline filler is required and where it really is in the DOM.\n\t\t// At this point in most cases it will be in the DOM, but there are exceptions.\n\t\t// For example, if the inline filler was deep in the created DOM structure, it will not be created.\n\t\t// Similarly, if it was removed at the beginning of this function and then neither text nor children were updated,\n\t\t// it will not be present.\n\t\t// Fix those and similar scenarios.\n\t\tif ( inlineFillerPosition ) {\n\t\t\tconst fillerDomPosition = this.domConverter.viewPositionToDom( inlineFillerPosition );\n\t\t\tconst domDocument = fillerDomPosition.parent.ownerDocument;\n\n\t\t\tif ( !startsWithFiller( fillerDomPosition.parent ) ) {\n\t\t\t\t// Filler has not been created at filler position. Create it now.\n\t\t\t\tthis._inlineFiller = addInlineFiller( domDocument, fillerDomPosition.parent, fillerDomPosition.offset );\n\t\t\t} else {\n\t\t\t\t// Filler has been found, save it.\n\t\t\t\tthis._inlineFiller = fillerDomPosition.parent;\n\t\t\t}\n\t\t} else {\n\t\t\t// There is no filler needed.\n\t\t\tthis._inlineFiller = null;\n\t\t}\n\n\t\tthis._updateSelection();\n\t\tthis._updateFocus();\n\n\t\tthis.markedTexts.clear();\n\t\tthis.markedAttributes.clear();\n\t\tthis.markedChildren.clear();\n\t}\n\n\t/**\n\t * Updates mappings of view element's children.\n\t *\n\t * Children that were replaced in the view structure by similar elements (same tag name) are treated as 'replaced'.\n\t * This means that their mappings can be updated so the new view elements are mapped to the existing DOM elements.\n\t * Thanks to that these elements do not need to be re-rendered completely.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewElement The view element whose children mappings will be updated.\n\t */\n\t_updateChildrenMappings( viewElement ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that it was already removed from DOM and there is no need to process it.\n\t\t\treturn;\n\t\t}\n\n\t\tconst actualDomChildren = this.domConverter.mapViewToDom( viewElement ).childNodes;\n\t\tconst expectedDomChildren = Array.from(\n\t\t\tthis.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { withChildren: false } )\n\t\t);\n\t\tconst diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );\n\t\tconst actions = this._findReplaceActions( diff, actualDomChildren, expectedDomChildren );\n\n\t\tif ( actions.indexOf( 'replace' ) !== -1 ) {\n\t\t\tconst counter = { equal: 0, insert: 0, delete: 0 };\n\n\t\t\tfor ( const action of actions ) {\n\t\t\t\tif ( action === 'replace' ) {\n\t\t\t\t\tconst insertIndex = counter.equal + counter.insert;\n\t\t\t\t\tconst deleteIndex = counter.equal + counter.delete;\n\t\t\t\t\tconst viewChild = viewElement.getChild( insertIndex );\n\n\t\t\t\t\t// UIElement and RawElement are special cases. Their children are not stored in a view (#799)\n\t\t\t\t\t// so we cannot use them with replacing flow (since they use view children during rendering\n\t\t\t\t\t// which will always result in rendering empty elements).\n\t\t\t\t\tif ( viewChild && !( viewChild.is( 'uiElement' ) || viewChild.is( 'rawElement' ) ) ) {\n\t\t\t\t\t\tthis._updateElementMappings( viewChild, actualDomChildren[ deleteIndex ] );\n\t\t\t\t\t}\n\n\t\t\t\t\tremove( expectedDomChildren[ insertIndex ] );\n\t\t\t\t\tcounter.equal++;\n\t\t\t\t} else {\n\t\t\t\t\tcounter[ action ]++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Updates mappings of a given view element.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewElement The view element whose mappings will be updated.\n\t * @param {Node} domElement The DOM element representing the given view element.\n\t */\n\t_updateElementMappings( viewElement, domElement ) {\n\t\t// Remap 'DomConverter' bindings.\n\t\tthis.domConverter.unbindDomElement( domElement );\n\t\tthis.domConverter.bindElements( domElement, viewElement );\n\n\t\t// View element may have children which needs to be updated, but are not marked, mark them to update.\n\t\tthis.markedChildren.add( viewElement );\n\n\t\t// Because we replace new view element mapping with the existing one, the corresponding DOM element\n\t\t// will not be rerendered. The new view element may have different attributes than the previous one.\n\t\t// Since its corresponding DOM element will not be rerendered, new attributes will not be added\n\t\t// to the DOM, so we need to mark it here to make sure its attributes gets updated. See #1427 for more\n\t\t// detailed case study.\n\t\t// Also there are cases where replaced element is removed from the view structure and then has\n\t\t// its attributes changed or removed. In such cases the element will not be present in `markedAttributes`\n\t\t// and also may be the same (`element.isSimilar()`) as the reused element not having its attributes updated.\n\t\t// To prevent such situations we always mark reused element to have its attributes rerenderd (#1560).\n\t\tthis.markedAttributes.add( viewElement );\n\t}\n\n\t/**\n\t * Gets the position of the inline filler based on the current selection.\n\t * Here, we assume that we know that the filler is needed and\n\t * {@link #_isSelectionInInlineFiller is at the selection position}, and, since it is needed,\n\t * it is somewhere at the selection position.\n\t *\n\t * Note: The filler position cannot be restored based on the filler's DOM text node, because\n\t * when this method is called (before rendering), the bindings will often be broken. View-to-DOM\n\t * bindings are only dependable after rendering.\n\t *\n\t * @private\n\t * @returns {module:engine/view/position~Position}\n\t */\n\t_getInlineFillerPosition() {\n\t\tconst firstPos = this.selection.getFirstPosition();\n\n\t\tif ( firstPos.parent.is( '$text' ) ) {\n\t\t\treturn ViewPosition._createBefore( this.selection.getFirstPosition().parent );\n\t\t} else {\n\t\t\treturn firstPos;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the selection has not left the inline filler's text node.\n\t * If it is `true`, it means that the filler had been added for a reason and the selection did not\n\t * leave the filler's text node. For example, the user can be in the middle of a composition so it should not be touched.\n\t *\n\t * @private\n\t * @returns {Boolean} `true` if the inline filler and selection are in the same place.\n\t */\n\t_isSelectionInInlineFiller() {\n\t\tif ( this.selection.rangeCount != 1 || !this.selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Note, we can't check if selection's position equals position of the\n\t\t// this._inlineFiller node, because of #663. We may not be able to calculate\n\t\t// the filler's position in the view at this stage.\n\t\t// Instead, we check it the other way – whether selection is anchored in\n\t\t// that text node or next to it.\n\n\t\t// Possible options are:\n\t\t// \"FILLER{}\"\n\t\t// \"FILLERadded-text{}\"\n\t\tconst selectionPosition = this.selection.getFirstPosition();\n\t\tconst position = this.domConverter.viewPositionToDom( selectionPosition );\n\n\t\tif ( position && isText( position.parent ) && startsWithFiller( position.parent ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Removes the inline filler.\n\t *\n\t * @private\n\t */\n\t_removeInlineFiller() {\n\t\tconst domFillerNode = this._inlineFiller;\n\n\t\t// Something weird happened and the stored node doesn't contain the filler's text.\n\t\tif ( !startsWithFiller( domFillerNode ) ) {\n\t\t\t/**\n\t\t\t * The inline filler node was lost. Most likely, something overwrote the filler text node\n\t\t\t * in the DOM.\n\t\t\t *\n\t\t\t * @error view-renderer-filler-was-lost\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-renderer-filler-was-lost', this );\n\t\t}\n\n\t\tif ( isInlineFiller( domFillerNode ) ) {\n\t\t\tdomFillerNode.parentNode.removeChild( domFillerNode );\n\t\t} else {\n\t\t\tdomFillerNode.data = domFillerNode.data.substr( INLINE_FILLER_LENGTH );\n\t\t}\n\n\t\tthis._inlineFiller = null;\n\t}\n\n\t/**\n\t * Checks if the inline {@link module:engine/view/filler filler} should be added.\n\t *\n\t * @private\n\t * @returns {Boolean} `true` if the inline filler should be added.\n\t */\n\t_needsInlineFillerAtSelection() {\n\t\tif ( this.selection.rangeCount != 1 || !this.selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectionPosition = this.selection.getFirstPosition();\n\t\tconst selectionParent = selectionPosition.parent;\n\t\tconst selectionOffset = selectionPosition.offset;\n\n\t\t// If there is no DOM root we do not care about fillers.\n\t\tif ( !this.domConverter.mapViewToDom( selectionParent.root ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !( selectionParent.is( 'element' ) ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Prevent adding inline filler inside elements with contenteditable=false.\n\t\t// https://github.com/ckeditor/ckeditor5-engine/issues/1170\n\t\tif ( !isEditable( selectionParent ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// We have block filler, we do not need inline one.\n\t\tif ( selectionOffset === selectionParent.getFillerOffset() ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst nodeBefore = selectionPosition.nodeBefore;\n\t\tconst nodeAfter = selectionPosition.nodeAfter;\n\n\t\tif ( nodeBefore instanceof ViewText || nodeAfter instanceof ViewText ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks if text needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/text~Text} viewText View text to update.\n\t * @param {Object} options\n\t * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n\t * filler should be rendered.\n\t */\n\t_updateText( viewText, options ) {\n\t\tconst domText = this.domConverter.findCorrespondingDomText( viewText );\n\t\tconst newDomText = this.domConverter.viewToDom( viewText, domText.ownerDocument );\n\n\t\tconst actualText = domText.data;\n\t\tlet expectedText = newDomText.data;\n\n\t\tconst filler = options.inlineFillerPosition;\n\n\t\tif ( filler && filler.parent == viewText.parent && filler.offset == viewText.index ) {\n\t\t\texpectedText = INLINE_FILLER + expectedText;\n\t\t}\n\n\t\tif ( actualText != expectedText ) {\n\t\t\tconst actions = fastDiff( actualText, expectedText );\n\n\t\t\tfor ( const action of actions ) {\n\t\t\t\tif ( action.type === 'insert' ) {\n\t\t\t\t\tdomText.insertData( action.index, action.values.join( '' ) );\n\t\t\t\t} else { // 'delete'\n\t\t\t\t\tdomText.deleteData( action.index, action.howMany );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if attribute list needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} viewElement The view element to update.\n\t */\n\t_updateAttrs( viewElement ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that 'viewElement' is outdated as its mapping was updated\n\t\t\t// in 'this._updateChildrenMappings()'. There is no need to process it as new view element which\n\t\t\t// replaced old 'viewElement' mapping was also added to 'this.markedAttributes'\n\t\t\t// in 'this._updateChildrenMappings()' so it will be processed separately.\n\t\t\treturn;\n\t\t}\n\n\t\tconst domAttrKeys = Array.from( domElement.attributes ).map( attr => attr.name );\n\t\tconst viewAttrKeys = viewElement.getAttributeKeys();\n\n\t\t// Add or overwrite attributes.\n\t\tfor ( const key of viewAttrKeys ) {\n\t\t\tdomElement.setAttribute( key, viewElement.getAttribute( key ) );\n\t\t}\n\n\t\t// Remove from DOM attributes which do not exists in the view.\n\t\tfor ( const key of domAttrKeys ) {\n\t\t\tif ( !viewElement.hasAttribute( key ) ) {\n\t\t\t\tdomElement.removeAttribute( key );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if elements child list needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t * @param {module:engine/view/element~Element} viewElement View element to update.\n\t * @param {Object} options\n\t * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n\t * filler should be rendered.\n\t */\n\t_updateChildren( viewElement, options ) {\n\t\tconst domElement = this.domConverter.mapViewToDom( viewElement );\n\n\t\tif ( !domElement ) {\n\t\t\t// If there is no `domElement` it means that it was already removed from DOM.\n\t\t\t// There is no need to process it. It will be processed when re-inserted.\n\t\t\treturn;\n\t\t}\n\n\t\tconst inlineFillerPosition = options.inlineFillerPosition;\n\t\tconst actualDomChildren = this.domConverter.mapViewToDom( viewElement ).childNodes;\n\t\tconst expectedDomChildren = Array.from(\n\t\t\tthis.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { bind: true, inlineFillerPosition } )\n\t\t);\n\n\t\t// Inline filler element has to be created as it is present in the DOM, but not in the view. It is required\n\t\t// during diffing so text nodes could be compared correctly and also during rendering to maintain\n\t\t// proper order and indexes while updating the DOM.\n\t\tif ( inlineFillerPosition && inlineFillerPosition.parent === viewElement ) {\n\t\t\taddInlineFiller( domElement.ownerDocument, expectedDomChildren, inlineFillerPosition.offset );\n\t\t}\n\n\t\tconst diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );\n\n\t\tlet i = 0;\n\t\tconst nodesToUnbind = new Set();\n\n\t\t// Handle deletions first.\n\t\t// This is to prevent a situation where an element that already exists in `actualDomChildren` is inserted at a different\n\t\t// index in `actualDomChildren`. Since `actualDomChildren` is a `NodeList`, this works like move, not like an insert,\n\t\t// and it disrupts the whole algorithm. See https://github.com/ckeditor/ckeditor5/issues/6367.\n\t\t//\n\t\t// It doesn't matter in what order we remove or add nodes, as long as we remove and add correct nodes at correct indexes.\n\t\tfor ( const action of diff ) {\n\t\t\tif ( action === 'delete' ) {\n\t\t\t\tnodesToUnbind.add( actualDomChildren[ i ] );\n\t\t\t\tremove( actualDomChildren[ i ] );\n\t\t\t} else if ( action === 'equal' ) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\ti = 0;\n\n\t\tfor ( const action of diff ) {\n\t\t\tif ( action === 'insert' ) {\n\t\t\t\tinsertAt( domElement, i, expectedDomChildren[ i ] );\n\t\t\t\ti++;\n\t\t\t} else if ( action === 'equal' ) {\n\t\t\t\t// Force updating text nodes inside elements which did not change and do not need to be re-rendered (#1125).\n\t\t\t\t// Do it here (not in the loop above) because only after insertions the `i` index is correct.\n\t\t\t\tthis._markDescendantTextToSync( this.domConverter.domToView( expectedDomChildren[ i ] ) );\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\t// Unbind removed nodes. When node does not have a parent it means that it was removed from DOM tree during\n\t\t// comparison with the expected DOM. We don't need to check child nodes, because if child node was reinserted,\n\t\t// it was moved to DOM tree out of the removed node.\n\t\tfor ( const node of nodesToUnbind ) {\n\t\t\tif ( !node.parentNode ) {\n\t\t\t\tthis.domConverter.unbindDomElement( node );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Shorthand for diffing two arrays or node lists of DOM nodes.\n\t *\n\t * @private\n\t * @param {Array.|NodeList} actualDomChildren Actual DOM children\n\t * @param {Array.|NodeList} expectedDomChildren Expected DOM children.\n\t * @returns {Array.} The list of actions based on the {@link module:utils/diff~diff} function.\n\t */\n\t_diffNodeLists( actualDomChildren, expectedDomChildren ) {\n\t\tactualDomChildren = filterOutFakeSelectionContainer( actualDomChildren, this._fakeSelectionContainer );\n\n\t\treturn diff( actualDomChildren, expectedDomChildren, sameNodes.bind( null, this.domConverter ) );\n\t}\n\n\t/**\n\t * Finds DOM nodes that were replaced with the similar nodes (same tag name) in the view. All nodes are compared\n\t * within one `insert`/`delete` action group, for example:\n\t *\n\t * \t\tActual DOM:\t\t

          FooBarBazBax

          \n\t * \t\tExpected DOM:\t

          Bar123Baz456

          \n\t * \t\tInput actions:\t[ insert, insert, delete, delete, equal, insert, delete ]\n\t * \t\tOutput actions:\t[ insert, replace, delete, equal, replace ]\n\t *\n\t * @private\n\t * @param {Array.} actions Actions array which is a result of the {@link module:utils/diff~diff} function.\n\t * @param {Array.|NodeList} actualDom Actual DOM children\n\t * @param {Array.} expectedDom Expected DOM children.\n\t * @returns {Array.} Actions array modified with the `replace` actions.\n\t */\n\t_findReplaceActions( actions, actualDom, expectedDom ) {\n\t\t// If there is no both 'insert' and 'delete' actions, no need to check for replaced elements.\n\t\tif ( actions.indexOf( 'insert' ) === -1 || actions.indexOf( 'delete' ) === -1 ) {\n\t\t\treturn actions;\n\t\t}\n\n\t\tlet newActions = [];\n\t\tlet actualSlice = [];\n\t\tlet expectedSlice = [];\n\n\t\tconst counter = { equal: 0, insert: 0, delete: 0 };\n\n\t\tfor ( const action of actions ) {\n\t\t\tif ( action === 'insert' ) {\n\t\t\t\texpectedSlice.push( expectedDom[ counter.equal + counter.insert ] );\n\t\t\t} else if ( action === 'delete' ) {\n\t\t\t\tactualSlice.push( actualDom[ counter.equal + counter.delete ] );\n\t\t\t} else { // equal\n\t\t\t\tnewActions = newActions.concat( diff( actualSlice, expectedSlice, areSimilar ).map( x => x === 'equal' ? 'replace' : x ) );\n\t\t\t\tnewActions.push( 'equal' );\n\t\t\t\t// Reset stored elements on 'equal'.\n\t\t\t\tactualSlice = [];\n\t\t\t\texpectedSlice = [];\n\t\t\t}\n\t\t\tcounter[ action ]++;\n\t\t}\n\n\t\treturn newActions.concat( diff( actualSlice, expectedSlice, areSimilar ).map( x => x === 'equal' ? 'replace' : x ) );\n\t}\n\n\t/**\n\t * Marks text nodes to be synchronized.\n\t *\n\t * If a text node is passed, it will be marked. If an element is passed, all descendant text nodes inside it will be marked.\n\t *\n\t * @private\n\t * @param {module:engine/view/node~Node} viewNode View node to sync.\n\t */\n\t_markDescendantTextToSync( viewNode ) {\n\t\tif ( !viewNode ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( viewNode.is( '$text' ) ) {\n\t\t\tthis.markedTexts.add( viewNode );\n\t\t} else if ( viewNode.is( 'element' ) ) {\n\t\t\tfor ( const child of viewNode.getChildren() ) {\n\t\t\t\tthis._markDescendantTextToSync( child );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the selection needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t */\n\t_updateSelection() {\n\t\t// If there is no selection - remove DOM and fake selections.\n\t\tif ( this.selection.rangeCount === 0 ) {\n\t\t\tthis._removeDomSelection();\n\t\t\tthis._removeFakeSelection();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst domRoot = this.domConverter.mapViewToDom( this.selection.editableElement );\n\n\t\t// Do nothing if there is no focus, or there is no DOM element corresponding to selection's editable element.\n\t\tif ( !this.isFocused || !domRoot ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Render selection.\n\t\tif ( this.selection.isFake ) {\n\t\t\tthis._updateFakeSelection( domRoot );\n\t\t} else {\n\t\t\tthis._removeFakeSelection();\n\t\t\tthis._updateDomSelection( domRoot );\n\t\t}\n\t}\n\n\t/**\n\t * Updates the fake selection.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where the fake selection container should be added.\n\t */\n\t_updateFakeSelection( domRoot ) {\n\t\tconst domDocument = domRoot.ownerDocument;\n\n\t\tif ( !this._fakeSelectionContainer ) {\n\t\t\tthis._fakeSelectionContainer = createFakeSelectionContainer( domDocument );\n\t\t}\n\n\t\tconst container = this._fakeSelectionContainer;\n\n\t\t// Bind fake selection container with the current selection *position*.\n\t\tthis.domConverter.bindFakeSelection( container, this.selection );\n\n\t\tif ( !this._fakeSelectionNeedsUpdate( domRoot ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !container.parentElement || container.parentElement != domRoot ) {\n\t\t\tdomRoot.appendChild( container );\n\t\t}\n\n\t\tcontainer.textContent = this.selection.fakeSelectionLabel || '\\u00A0';\n\n\t\tconst domSelection = domDocument.getSelection();\n\t\tconst domRange = domDocument.createRange();\n\n\t\tdomSelection.removeAllRanges();\n\t\tdomRange.selectNodeContents( container );\n\t\tdomSelection.addRange( domRange );\n\t}\n\n\t/**\n\t * Updates the DOM selection.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where the DOM selection should be rendered.\n\t */\n\t_updateDomSelection( domRoot ) {\n\t\tconst domSelection = domRoot.ownerDocument.defaultView.getSelection();\n\n\t\t// Let's check whether DOM selection needs updating at all.\n\t\tif ( !this._domSelectionNeedsUpdate( domSelection ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Multi-range selection is not available in most browsers, and, at least in Chrome, trying to\n\t\t// set such selection, that is not continuous, throws an error. Because of that, we will just use anchor\n\t\t// and focus of view selection.\n\t\t// Since we are not supporting multi-range selection, we also do not need to check if proper editable is\n\t\t// selected. If there is any editable selected, it is okay (editable is taken from selection anchor).\n\t\tconst anchor = this.domConverter.viewPositionToDom( this.selection.anchor );\n\t\tconst focus = this.domConverter.viewPositionToDom( this.selection.focus );\n\n\t\t// Focus the new editing host.\n\t\t// Otherwise, FF may throw an error (https://github.com/ckeditor/ckeditor5/issues/721).\n\t\tdomRoot.focus();\n\n\t\tdomSelection.collapse( anchor.parent, anchor.offset );\n\t\tdomSelection.extend( focus.parent, focus.offset );\n\n\t\t// Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n\t\tif ( env.isGecko ) {\n\t\t\tfixGeckoSelectionAfterBr( focus, domSelection );\n\t\t}\n\t}\n\n\t/**\n\t * Checks whether a given DOM selection needs to be updated.\n\t *\n\t * @private\n\t * @param {Selection} domSelection The DOM selection to check.\n\t * @returns {Boolean}\n\t */\n\t_domSelectionNeedsUpdate( domSelection ) {\n\t\tif ( !this.domConverter.isDomSelectionCorrect( domSelection ) ) {\n\t\t\t// Current DOM selection is in incorrect position. We need to update it.\n\t\t\treturn true;\n\t\t}\n\n\t\tconst oldViewSelection = domSelection && this.domConverter.domSelectionToView( domSelection );\n\n\t\tif ( oldViewSelection && this.selection.isEqual( oldViewSelection ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If selection is not collapsed, it does not need to be updated if it is similar.\n\t\tif ( !this.selection.isCollapsed && this.selection.isSimilar( oldViewSelection ) ) {\n\t\t\t// Selection did not changed and is correct, do not update.\n\t\t\treturn false;\n\t\t}\n\n\t\t// Selections are not similar.\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks whether the fake selection needs to be updated.\n\t *\n\t * @private\n\t * @param {HTMLElement} domRoot A valid DOM root where a new fake selection container should be added.\n\t * @returns {Boolean}\n\t */\n\t_fakeSelectionNeedsUpdate( domRoot ) {\n\t\tconst container = this._fakeSelectionContainer;\n\t\tconst domSelection = domRoot.ownerDocument.getSelection();\n\n\t\t// Fake selection needs to be updated if there's no fake selection container, or the container currently sits\n\t\t// in a different root.\n\t\tif ( !container || container.parentElement !== domRoot ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Make sure that the selection actually is within the fake selection.\n\t\tif ( domSelection.anchorNode !== container && !container.contains( domSelection.anchorNode ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn container.textContent !== this.selection.fakeSelectionLabel;\n\t}\n\n\t/**\n\t * Removes the DOM selection.\n\t *\n\t * @private\n\t */\n\t_removeDomSelection() {\n\t\tfor ( const doc of this.domDocuments ) {\n\t\t\tconst domSelection = doc.getSelection();\n\n\t\t\tif ( domSelection.rangeCount ) {\n\t\t\t\tconst activeDomElement = doc.activeElement;\n\t\t\t\tconst viewElement = this.domConverter.mapDomToView( activeDomElement );\n\n\t\t\t\tif ( activeDomElement && viewElement ) {\n\t\t\t\t\tdoc.getSelection().removeAllRanges();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Removes the fake selection.\n\t *\n\t * @private\n\t */\n\t_removeFakeSelection() {\n\t\tconst container = this._fakeSelectionContainer;\n\n\t\tif ( container ) {\n\t\t\tcontainer.remove();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if focus needs to be updated and possibly updates it.\n\t *\n\t * @private\n\t */\n\t_updateFocus() {\n\t\tif ( this.isFocused ) {\n\t\t\tconst editable = this.selection.editableElement;\n\n\t\t\tif ( editable ) {\n\t\t\t\tthis.domConverter.focus( editable );\n\t\t\t}\n\t\t}\n\t}\n}\n\nmix( Renderer, ObservableMixin );\n\n// Checks if provided element is editable.\n//\n// @private\n// @param {module:engine/view/element~Element} element\n// @returns {Boolean}\nfunction isEditable( element ) {\n\tif ( element.getAttribute( 'contenteditable' ) == 'false' ) {\n\t\treturn false;\n\t}\n\n\tconst parent = element.findAncestor( element => element.hasAttribute( 'contenteditable' ) );\n\n\treturn !parent || parent.getAttribute( 'contenteditable' ) == 'true';\n}\n\n// Adds inline filler at a given position.\n//\n// The position can be given as an array of DOM nodes and an offset in that array,\n// or a DOM parent element and an offset in that element.\n//\n// @private\n// @param {Document} domDocument\n// @param {Element|Array.} domParentOrArray\n// @param {Number} offset\n// @returns {Text} The DOM text node that contains an inline filler.\nfunction addInlineFiller( domDocument, domParentOrArray, offset ) {\n\tconst childNodes = domParentOrArray instanceof Array ? domParentOrArray : domParentOrArray.childNodes;\n\tconst nodeAfterFiller = childNodes[ offset ];\n\n\tif ( isText( nodeAfterFiller ) ) {\n\t\tnodeAfterFiller.data = INLINE_FILLER + nodeAfterFiller.data;\n\n\t\treturn nodeAfterFiller;\n\t} else {\n\t\tconst fillerNode = domDocument.createTextNode( INLINE_FILLER );\n\n\t\tif ( Array.isArray( domParentOrArray ) ) {\n\t\t\tchildNodes.splice( offset, 0, fillerNode );\n\t\t} else {\n\t\t\tinsertAt( domParentOrArray, offset, fillerNode );\n\t\t}\n\n\t\treturn fillerNode;\n\t}\n}\n\n// Whether two DOM nodes should be considered as similar.\n// Nodes are considered similar if they have the same tag name.\n//\n// @private\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\nfunction areSimilar( node1, node2 ) {\n\treturn isNode( node1 ) && isNode( node2 ) &&\n\t\t!isText( node1 ) && !isText( node2 ) &&\n\t\tnode1.nodeType !== Node.COMMENT_NODE && node2.nodeType !== Node.COMMENT_NODE &&\n\t\tnode1.tagName.toLowerCase() === node2.tagName.toLowerCase();\n}\n\n// Whether two dom nodes should be considered as the same.\n// Two nodes which are considered the same are:\n//\n//\t\t* Text nodes with the same text.\n//\t\t* Element nodes represented by the same object.\n//\t\t* Two block filler elements.\n//\n// @private\n// @param {String} blockFillerMode Block filler mode, see {@link module:engine/view/domconverter~DomConverter#blockFillerMode}.\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\nfunction sameNodes( domConverter, actualDomChild, expectedDomChild ) {\n\t// Elements.\n\tif ( actualDomChild === expectedDomChild ) {\n\t\treturn true;\n\t}\n\t// Texts.\n\telse if ( isText( actualDomChild ) && isText( expectedDomChild ) ) {\n\t\treturn actualDomChild.data === expectedDomChild.data;\n\t}\n\t// Block fillers.\n\telse if ( domConverter.isBlockFiller( actualDomChild ) &&\n\t\tdomConverter.isBlockFiller( expectedDomChild ) ) {\n\t\treturn true;\n\t}\n\n\t// Not matching types.\n\treturn false;\n}\n\n// The following is a Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n// When the native DOM selection is at the end of the block and preceded by
          e.g.\n//\n//\t\t

          foo
          []

          \n//\n// which happens a lot when using the soft line break, the browser fails to (visually) move the\n// caret to the new line. A quick fix is as simple as force–refreshing the selection with the same range.\nfunction fixGeckoSelectionAfterBr( focus, domSelection ) {\n\tconst parent = focus.parent;\n\n\t// This fix works only when the focus point is at the very end of an element.\n\t// There is no point in running it in cases unrelated to the browser bug.\n\tif ( parent.nodeType != Node.ELEMENT_NODE || focus.offset != parent.childNodes.length - 1 ) {\n\t\treturn;\n\t}\n\n\tconst childAtOffset = parent.childNodes[ focus.offset ];\n\n\t// To stay on the safe side, the fix being as specific as possible, it targets only the\n\t// selection which is at the very end of the element and preceded by
          .\n\tif ( childAtOffset && childAtOffset.tagName == 'BR' ) {\n\t\tdomSelection.addRange( domSelection.getRangeAt( 0 ) );\n\t}\n}\n\nfunction filterOutFakeSelectionContainer( domChildList, fakeSelectionContainer ) {\n\tconst childList = Array.from( domChildList );\n\n\tif ( childList.length == 0 || !fakeSelectionContainer ) {\n\t\treturn childList;\n\t}\n\n\tconst last = childList[ childList.length - 1 ];\n\n\tif ( last == fakeSelectionContainer ) {\n\t\tchildList.pop();\n\t}\n\n\treturn childList;\n}\n\n// Creates a fake selection container for a given document.\n//\n// @private\n// @param {Document} domDocument\n// @returns {HTMLElement}\nfunction createFakeSelectionContainer( domDocument ) {\n\tconst container = domDocument.createElement( 'div' );\n\n\tcontainer.className = 'ck-fake-selection-container';\n\n\tObject.assign( container.style, {\n\t\tposition: 'fixed',\n\t\ttop: 0,\n\t\tleft: '-9999px',\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/752.\n\t\twidth: '42px'\n\t} );\n\n\t// Fill it with a text node so we can update it later.\n\tcontainer.textContent = '\\u00A0';\n\n\treturn container;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window, document */\n\n/**\n * @module utils/dom/global\n */\n\n/**\n * A helper (module) giving an access to the global DOM objects such as `window` and\n * `document`. Accessing these objects using this helper allows easy and bulletproof\n * testing, i.e. stubbing native properties:\n *\n *\t\timport global from 'ckeditor5/utils/dom/global.js';\n *\n *\t\t// This stub will work for any code using global module.\n *\t\ttestUtils.sinon.stub( global, 'window', {\n *\t\t\tinnerWidth: 10000\n *\t\t} );\n *\n *\t\tconsole.log( global.window.innerWidth );\n */\nexport default { window, document };\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/indexof\n */\n\n/**\n * Returns index of the node in the parent element.\n *\n * @param {Node} node Node which index is tested.\n * @returns {Number} Index of the node in the parent element. Returns 0 if node has no parent.\n */\nexport default function indexOf( node ) {\n\tlet index = 0;\n\n\twhile ( node.previousSibling ) {\n\t\tnode = node.previousSibling;\n\t\tindex++;\n\t}\n\n\treturn index;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module utils/dom/getancestors\n */\n\n/**\n * Returns all ancestors of given DOM node, starting from the top-most (root). Includes the given node itself. If the\n * node is a part of `DocumentFragment` that `DocumentFragment` will be returned. In contrary, if the node is\n * appended to a `Document`, that `Document` will not be returned (algorithms operating on DOM tree care for `Document#documentElement`\n * at most, which will be returned).\n *\n * @param {Node} node DOM node.\n * @returns {Array.} Array of given `node` parents.\n */\nexport default function getAncestors( node ) {\n\tconst nodes = [];\n\n\t// We are interested in `Node`s `DocumentFragment`s only.\n\twhile ( node && node.nodeType != Node.DOCUMENT_NODE ) {\n\t\tnodes.unshift( node );\n\t\tnode = node.parentNode;\n\t}\n\n\treturn nodes;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/domconverter\n */\n\n/* globals document, Node, NodeFilter, Text */\n\nimport ViewText from './text';\nimport ViewElement from './element';\nimport ViewPosition from './position';\nimport ViewRange from './range';\nimport ViewSelection from './selection';\nimport ViewDocumentFragment from './documentfragment';\nimport ViewTreeWalker from './treewalker';\nimport Matcher from './matcher';\nimport { BR_FILLER, getDataWithoutFiller, INLINE_FILLER_LENGTH, isInlineFiller, NBSP_FILLER, startsWithFiller } from './filler';\n\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport indexOf from '@ckeditor/ckeditor5-utils/src/dom/indexof';\nimport getAncestors from '@ckeditor/ckeditor5-utils/src/dom/getancestors';\nimport getCommonAncestor from '@ckeditor/ckeditor5-utils/src/dom/getcommonancestor';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport { isElement } from 'lodash-es';\n\n// eslint-disable-next-line new-cap\nconst BR_FILLER_REF = BR_FILLER( document );\n\n/**\n * `DomConverter` is a set of tools to do transformations between DOM nodes and view nodes. It also handles\n * {@link module:engine/view/domconverter~DomConverter#bindElements bindings} between these nodes.\n *\n * An instance of the DOM converter is available under\n * {@link module:engine/view/view~View#domConverter `editor.editing.view.domConverter`}.\n *\n * The DOM converter does not check which nodes should be rendered (use {@link module:engine/view/renderer~Renderer}), does not keep the\n * state of a tree nor keeps the synchronization between the tree view and the DOM tree (use {@link module:engine/view/document~Document}).\n *\n * The DOM converter keeps DOM elements to view element bindings, so when the converter gets destroyed, the bindings are lost.\n * Two converters will keep separate binding maps, so one tree view can be bound with two DOM trees.\n */\nexport default class DomConverter {\n\t/**\n\t * Creates a DOM converter.\n\t *\n\t * @param {module:engine/view/document~Document} document The view document instance.\n\t * @param {Object} options An object with configuration options.\n\t * @param {module:engine/view/filler~BlockFillerMode} [options.blockFillerMode='br'] The type of the block filler to use.\n\t */\n\tconstructor( document, options = {} ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\n\t\t/**\n\t\t * The mode of a block filler used by the DOM converter.\n\t\t *\n\t\t * @readonly\n\t\t * @member {'br'|'nbsp'} module:engine/view/domconverter~DomConverter#blockFillerMode\n\t\t */\n\t\tthis.blockFillerMode = options.blockFillerMode || 'br';\n\n\t\t/**\n\t\t * Elements which are considered pre-formatted elements.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/view/domconverter~DomConverter#preElements\n\t\t */\n\t\tthis.preElements = [ 'pre' ];\n\n\t\t/**\n\t\t * Elements which are considered block elements (and hence should be filled with a\n\t\t * {@link #isBlockFiller block filler}).\n\t\t *\n\t\t * Whether an element is considered a block element also affects handling of trailing whitespaces.\n\t\t *\n\t\t * You can extend this array if you introduce support for block elements which are not yet recognized here.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/view/domconverter~DomConverter#blockElements\n\t\t */\n\t\tthis.blockElements = [ 'p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'dd', 'dt', 'figcaption', 'td', 'th' ];\n\n\t\t/**\n\t\t * Block {@link module:engine/view/filler filler} creator, which is used to create all block fillers during the\n\t\t * view-to-DOM conversion and to recognize block fillers during the DOM-to-view conversion.\n\t\t *\n\t\t * @readonly\n\t\t * @private\n\t\t * @member {Function} module:engine/view/domconverter~DomConverter#_blockFiller\n\t\t */\n\t\tthis._blockFiller = this.blockFillerMode == 'br' ? BR_FILLER : NBSP_FILLER;\n\n\t\t/**\n\t\t * The DOM-to-view mapping.\n\t\t *\n\t\t * @private\n\t\t * @member {WeakMap} module:engine/view/domconverter~DomConverter#_domToViewMapping\n\t\t */\n\t\tthis._domToViewMapping = new WeakMap();\n\n\t\t/**\n\t\t * The view-to-DOM mapping.\n\t\t *\n\t\t * @private\n\t\t * @member {WeakMap} module:engine/view/domconverter~DomConverter#_viewToDomMapping\n\t\t */\n\t\tthis._viewToDomMapping = new WeakMap();\n\n\t\t/**\n\t\t * Holds the mapping between fake selection containers and corresponding view selections.\n\t\t *\n\t\t * @private\n\t\t * @member {WeakMap} module:engine/view/domconverter~DomConverter#_fakeSelectionMapping\n\t\t */\n\t\tthis._fakeSelectionMapping = new WeakMap();\n\n\t\t/**\n\t\t * Matcher for view elements whose content should be treated as a raw data\n\t\t * and not processed during conversion from DOM nodes to view elements.\n\t\t *\n\t\t * @private\n\t\t * @type {module:engine/view/matcher~Matcher}\n\t\t */\n\t\tthis._rawContentElementMatcher = new Matcher();\n\n\t\t/**\n\t\t * Set of encountered raw content DOM nodes. It is used for preventing left trimming of the following text node.\n\t\t *\n\t\t * @private\n\t\t * @type {WeakSet.}\n\t\t */\n\t\tthis._encounteredRawContentDomNodes = new WeakSet();\n\t}\n\n\t/**\n\t * Binds given DOM element that represents fake selection to a **position** of a\n\t * {@link module:engine/view/documentselection~DocumentSelection document selection}.\n\t * Document selection copy is stored and can be retrieved by\n\t * {@link module:engine/view/domconverter~DomConverter#fakeSelectionToView} method.\n\t *\n\t * @param {HTMLElement} domElement\n\t * @param {module:engine/view/documentselection~DocumentSelection} viewDocumentSelection\n\t */\n\tbindFakeSelection( domElement, viewDocumentSelection ) {\n\t\tthis._fakeSelectionMapping.set( domElement, new ViewSelection( viewDocumentSelection ) );\n\t}\n\n\t/**\n\t * Returns {@link module:engine/view/selection~Selection view selection} instance corresponding to\n\t * given DOM element that represents fake selection. Returns `undefined` if binding to given DOM element does not exists.\n\t *\n\t * @param {HTMLElement} domElement\n\t * @returns {module:engine/view/selection~Selection|undefined}\n\t */\n\tfakeSelectionToView( domElement ) {\n\t\treturn this._fakeSelectionMapping.get( domElement );\n\t}\n\n\t/**\n\t * Binds DOM and View elements, so it will be possible to get corresponding elements using\n\t * {@link module:engine/view/domconverter~DomConverter#mapDomToView} and\n\t * {@link module:engine/view/domconverter~DomConverter#mapViewToDom}.\n\t *\n\t * @param {HTMLElement} domElement DOM element to bind.\n\t * @param {module:engine/view/element~Element} viewElement View element to bind.\n\t */\n\tbindElements( domElement, viewElement ) {\n\t\tthis._domToViewMapping.set( domElement, viewElement );\n\t\tthis._viewToDomMapping.set( viewElement, domElement );\n\t}\n\n\t/**\n\t * Unbinds given `domElement` from the view element it was bound to. Unbinding is deep, meaning that all children of\n\t * `domElement` will be unbound too.\n\t *\n\t * @param {HTMLElement} domElement DOM element to unbind.\n\t */\n\tunbindDomElement( domElement ) {\n\t\tconst viewElement = this._domToViewMapping.get( domElement );\n\n\t\tif ( viewElement ) {\n\t\t\tthis._domToViewMapping.delete( domElement );\n\t\t\tthis._viewToDomMapping.delete( viewElement );\n\n\t\t\tfor ( const child of domElement.childNodes ) {\n\t\t\t\tthis.unbindDomElement( child );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Binds DOM and View document fragments, so it will be possible to get corresponding document fragments using\n\t * {@link module:engine/view/domconverter~DomConverter#mapDomToView} and\n\t * {@link module:engine/view/domconverter~DomConverter#mapViewToDom}.\n\t *\n\t * @param {DocumentFragment} domFragment DOM document fragment to bind.\n\t * @param {module:engine/view/documentfragment~DocumentFragment} viewFragment View document fragment to bind.\n\t */\n\tbindDocumentFragments( domFragment, viewFragment ) {\n\t\tthis._domToViewMapping.set( domFragment, viewFragment );\n\t\tthis._viewToDomMapping.set( viewFragment, domFragment );\n\t}\n\n\t/**\n\t * Converts view to DOM. For all text nodes, not bound elements and document fragments new items will\n\t * be created. For bound elements and document fragments function will return corresponding items.\n\t *\n\t * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} viewNode\n\t * View node or document fragment to transform.\n\t * @param {Document} domDocument Document which will be used to create DOM nodes.\n\t * @param {Object} [options] Conversion options.\n\t * @param {Boolean} [options.bind=false] Determines whether new elements will be bound.\n\t * @param {Boolean} [options.withChildren=true] If `true`, node's and document fragment's children will be converted too.\n\t * @returns {Node|DocumentFragment} Converted node or DocumentFragment.\n\t */\n\tviewToDom( viewNode, domDocument, options = {} ) {\n\t\tif ( viewNode.is( '$text' ) ) {\n\t\t\tconst textData = this._processDataFromViewText( viewNode );\n\n\t\t\treturn domDocument.createTextNode( textData );\n\t\t} else {\n\t\t\tif ( this.mapViewToDom( viewNode ) ) {\n\t\t\t\treturn this.mapViewToDom( viewNode );\n\t\t\t}\n\n\t\t\tlet domElement;\n\n\t\t\tif ( viewNode.is( 'documentFragment' ) ) {\n\t\t\t\t// Create DOM document fragment.\n\t\t\t\tdomElement = domDocument.createDocumentFragment();\n\n\t\t\t\tif ( options.bind ) {\n\t\t\t\t\tthis.bindDocumentFragments( domElement, viewNode );\n\t\t\t\t}\n\t\t\t} else if ( viewNode.is( 'uiElement' ) ) {\n\t\t\t\t// UIElement has its own render() method (see #799).\n\t\t\t\tdomElement = viewNode.render( domDocument );\n\n\t\t\t\tif ( options.bind ) {\n\t\t\t\t\tthis.bindElements( domElement, viewNode );\n\t\t\t\t}\n\n\t\t\t\treturn domElement;\n\t\t\t} else {\n\t\t\t\t// Create DOM element.\n\t\t\t\tif ( viewNode.hasAttribute( 'xmlns' ) ) {\n\t\t\t\t\tdomElement = domDocument.createElementNS( viewNode.getAttribute( 'xmlns' ), viewNode.name );\n\t\t\t\t} else {\n\t\t\t\t\tdomElement = domDocument.createElement( viewNode.name );\n\t\t\t\t}\n\n\t\t\t\t// RawElement take care of their children in RawElement#render() method which can be customized\n\t\t\t\t// (see https://github.com/ckeditor/ckeditor5/issues/4469).\n\t\t\t\tif ( viewNode.is( 'rawElement' ) ) {\n\t\t\t\t\tviewNode.render( domElement );\n\t\t\t\t}\n\n\t\t\t\tif ( options.bind ) {\n\t\t\t\t\tthis.bindElements( domElement, viewNode );\n\t\t\t\t}\n\n\t\t\t\t// Copy element's attributes.\n\t\t\t\tfor ( const key of viewNode.getAttributeKeys() ) {\n\t\t\t\t\tdomElement.setAttribute( key, viewNode.getAttribute( key ) );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( options.withChildren !== false ) {\n\t\t\t\tfor ( const child of this.viewChildrenToDom( viewNode, domDocument, options ) ) {\n\t\t\t\t\tdomElement.appendChild( child );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn domElement;\n\t\t}\n\t}\n\n\t/**\n\t * Converts children of the view element to DOM using the\n\t * {@link module:engine/view/domconverter~DomConverter#viewToDom} method.\n\t * Additionally, this method adds block {@link module:engine/view/filler filler} to the list of children, if needed.\n\t *\n\t * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} viewElement Parent view element.\n\t * @param {Document} domDocument Document which will be used to create DOM nodes.\n\t * @param {Object} options See {@link module:engine/view/domconverter~DomConverter#viewToDom} options parameter.\n\t * @returns {Iterable.} DOM nodes.\n\t */\n\t* viewChildrenToDom( viewElement, domDocument, options = {} ) {\n\t\tconst fillerPositionOffset = viewElement.getFillerOffset && viewElement.getFillerOffset();\n\t\tlet offset = 0;\n\n\t\tfor ( const childView of viewElement.getChildren() ) {\n\t\t\tif ( fillerPositionOffset === offset ) {\n\t\t\t\tyield this._blockFiller( domDocument );\n\t\t\t}\n\n\t\t\tyield this.viewToDom( childView, domDocument, options );\n\n\t\t\toffset++;\n\t\t}\n\n\t\tif ( fillerPositionOffset === offset ) {\n\t\t\tyield this._blockFiller( domDocument );\n\t\t}\n\t}\n\n\t/**\n\t * Converts view {@link module:engine/view/range~Range} to DOM range.\n\t * Inline and block {@link module:engine/view/filler fillers} are handled during the conversion.\n\t *\n\t * @param {module:engine/view/range~Range} viewRange View range.\n\t * @returns {Range} DOM range.\n\t */\n\tviewRangeToDom( viewRange ) {\n\t\tconst domStart = this.viewPositionToDom( viewRange.start );\n\t\tconst domEnd = this.viewPositionToDom( viewRange.end );\n\n\t\tconst domRange = document.createRange();\n\t\tdomRange.setStart( domStart.parent, domStart.offset );\n\t\tdomRange.setEnd( domEnd.parent, domEnd.offset );\n\n\t\treturn domRange;\n\t}\n\n\t/**\n\t * Converts view {@link module:engine/view/position~Position} to DOM parent and offset.\n\t *\n\t * Inline and block {@link module:engine/view/filler fillers} are handled during the conversion.\n\t * If the converted position is directly before inline filler it is moved inside the filler.\n\t *\n\t * @param {module:engine/view/position~Position} viewPosition View position.\n\t * @returns {Object|null} position DOM position or `null` if view position could not be converted to DOM.\n\t * @returns {Node} position.parent DOM position parent.\n\t * @returns {Number} position.offset DOM position offset.\n\t */\n\tviewPositionToDom( viewPosition ) {\n\t\tconst viewParent = viewPosition.parent;\n\n\t\tif ( viewParent.is( '$text' ) ) {\n\t\t\tconst domParent = this.findCorrespondingDomText( viewParent );\n\n\t\t\tif ( !domParent ) {\n\t\t\t\t// Position is in a view text node that has not been rendered to DOM yet.\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet offset = viewPosition.offset;\n\n\t\t\tif ( startsWithFiller( domParent ) ) {\n\t\t\t\toffset += INLINE_FILLER_LENGTH;\n\t\t\t}\n\n\t\t\treturn { parent: domParent, offset };\n\t\t} else {\n\t\t\t// viewParent is instance of ViewElement.\n\t\t\tlet domParent, domBefore, domAfter;\n\n\t\t\tif ( viewPosition.offset === 0 ) {\n\t\t\t\tdomParent = this.mapViewToDom( viewParent );\n\n\t\t\t\tif ( !domParent ) {\n\t\t\t\t\t// Position is in a view element that has not been rendered to DOM yet.\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tdomAfter = domParent.childNodes[ 0 ];\n\t\t\t} else {\n\t\t\t\tconst nodeBefore = viewPosition.nodeBefore;\n\n\t\t\t\tdomBefore = nodeBefore.is( '$text' ) ?\n\t\t\t\t\tthis.findCorrespondingDomText( nodeBefore ) :\n\t\t\t\t\tthis.mapViewToDom( viewPosition.nodeBefore );\n\n\t\t\t\tif ( !domBefore ) {\n\t\t\t\t\t// Position is after a view element that has not been rendered to DOM yet.\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tdomParent = domBefore.parentNode;\n\t\t\t\tdomAfter = domBefore.nextSibling;\n\t\t\t}\n\n\t\t\t// If there is an inline filler at position return position inside the filler. We should never return\n\t\t\t// the position before the inline filler.\n\t\t\tif ( isText( domAfter ) && startsWithFiller( domAfter ) ) {\n\t\t\t\treturn { parent: domAfter, offset: INLINE_FILLER_LENGTH };\n\t\t\t}\n\n\t\t\tconst offset = domBefore ? indexOf( domBefore ) + 1 : 0;\n\n\t\t\treturn { parent: domParent, offset };\n\t\t}\n\t}\n\n\t/**\n\t * Converts DOM to view. For all text nodes, not bound elements and document fragments new items will\n\t * be created. For bound elements and document fragments function will return corresponding items. For\n\t * {@link module:engine/view/filler fillers} `null` will be returned.\n\t * For all DOM elements rendered by {@link module:engine/view/uielement~UIElement} that UIElement will be returned.\n\t *\n\t * @param {Node|DocumentFragment} domNode DOM node or document fragment to transform.\n\t * @param {Object} [options] Conversion options.\n\t * @param {Boolean} [options.bind=false] Determines whether new elements will be bound.\n\t * @param {Boolean} [options.withChildren=true] If `true`, node's and document fragment's children will be converted too.\n\t * @param {Boolean} [options.keepOriginalCase=false] If `false`, node's tag name will be converter to lower case.\n\t * @returns {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment|null} Converted node or document fragment\n\t * or `null` if DOM node is a {@link module:engine/view/filler filler} or the given node is an empty text node.\n\t */\n\tdomToView( domNode, options = {} ) {\n\t\tif ( this.isBlockFiller( domNode, this.blockFillerMode ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// When node is inside a UIElement or a RawElement return that parent as it's view representation.\n\t\tconst hostElement = this.getHostViewElement( domNode );\n\n\t\tif ( hostElement ) {\n\t\t\treturn hostElement;\n\t\t}\n\n\t\tif ( isText( domNode ) ) {\n\t\t\tif ( isInlineFiller( domNode ) ) {\n\t\t\t\treturn null;\n\t\t\t} else {\n\t\t\t\tconst textData = this._processDataFromDomText( domNode );\n\n\t\t\t\treturn textData === '' ? null : new ViewText( this.document, textData );\n\t\t\t}\n\t\t} else if ( this.isComment( domNode ) ) {\n\t\t\treturn null;\n\t\t} else {\n\t\t\tif ( this.mapDomToView( domNode ) ) {\n\t\t\t\treturn this.mapDomToView( domNode );\n\t\t\t}\n\n\t\t\tlet viewElement;\n\n\t\t\tif ( this.isDocumentFragment( domNode ) ) {\n\t\t\t\t// Create view document fragment.\n\t\t\t\tviewElement = new ViewDocumentFragment( this.document );\n\n\t\t\t\tif ( options.bind ) {\n\t\t\t\t\tthis.bindDocumentFragments( domNode, viewElement );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Create view element.\n\t\t\t\tconst viewName = options.keepOriginalCase ? domNode.tagName : domNode.tagName.toLowerCase();\n\t\t\t\tviewElement = new ViewElement( this.document, viewName );\n\n\t\t\t\tif ( options.bind ) {\n\t\t\t\t\tthis.bindElements( domNode, viewElement );\n\t\t\t\t}\n\n\t\t\t\t// Copy element's attributes.\n\t\t\t\tconst attrs = domNode.attributes;\n\n\t\t\t\tfor ( let i = attrs.length - 1; i >= 0; i-- ) {\n\t\t\t\t\tviewElement._setAttribute( attrs[ i ].name, attrs[ i ].value );\n\t\t\t\t}\n\n\t\t\t\t// Treat this element's content as a raw data if it was registered as such.\n\t\t\t\tif ( options.withChildren !== false && this._rawContentElementMatcher.match( viewElement ) ) {\n\t\t\t\t\tviewElement._setCustomProperty( '$rawContent', domNode.innerHTML );\n\n\t\t\t\t\t// Store a DOM node to prevent left trimming of the following text node.\n\t\t\t\t\tthis._encounteredRawContentDomNodes.add( domNode );\n\n\t\t\t\t\treturn viewElement;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( options.withChildren !== false ) {\n\t\t\t\tfor ( const child of this.domChildrenToView( domNode, options ) ) {\n\t\t\t\t\tviewElement._appendChild( child );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn viewElement;\n\t\t}\n\t}\n\n\t/**\n\t * Converts children of the DOM element to view nodes using\n\t * the {@link module:engine/view/domconverter~DomConverter#domToView} method.\n\t * Additionally this method omits block {@link module:engine/view/filler filler}, if it exists in the DOM parent.\n\t *\n\t * @param {HTMLElement} domElement Parent DOM element.\n\t * @param {Object} options See {@link module:engine/view/domconverter~DomConverter#domToView} options parameter.\n\t * @returns {Iterable.} View nodes.\n\t */\n\t* domChildrenToView( domElement, options = {} ) {\n\t\tfor ( let i = 0; i < domElement.childNodes.length; i++ ) {\n\t\t\tconst domChild = domElement.childNodes[ i ];\n\t\t\tconst viewChild = this.domToView( domChild, options );\n\n\t\t\tif ( viewChild !== null ) {\n\t\t\t\tyield viewChild;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Converts DOM selection to view {@link module:engine/view/selection~Selection}.\n\t * Ranges which cannot be converted will be omitted.\n\t *\n\t * @param {Selection} domSelection DOM selection.\n\t * @returns {module:engine/view/selection~Selection} View selection.\n\t */\n\tdomSelectionToView( domSelection ) {\n\t\t// DOM selection might be placed in fake selection container.\n\t\t// If container contains fake selection - return corresponding view selection.\n\t\tif ( domSelection.rangeCount === 1 ) {\n\t\t\tlet container = domSelection.getRangeAt( 0 ).startContainer;\n\n\t\t\t// The DOM selection might be moved to the text node inside the fake selection container.\n\t\t\tif ( isText( container ) ) {\n\t\t\t\tcontainer = container.parentNode;\n\t\t\t}\n\n\t\t\tconst viewSelection = this.fakeSelectionToView( container );\n\n\t\t\tif ( viewSelection ) {\n\t\t\t\treturn viewSelection;\n\t\t\t}\n\t\t}\n\n\t\tconst isBackward = this.isDomSelectionBackward( domSelection );\n\n\t\tconst viewRanges = [];\n\n\t\tfor ( let i = 0; i < domSelection.rangeCount; i++ ) {\n\t\t\t// DOM Range have correct start and end, no matter what is the DOM Selection direction. So we don't have to fix anything.\n\t\t\tconst domRange = domSelection.getRangeAt( i );\n\t\t\tconst viewRange = this.domRangeToView( domRange );\n\n\t\t\tif ( viewRange ) {\n\t\t\t\tviewRanges.push( viewRange );\n\t\t\t}\n\t\t}\n\n\t\treturn new ViewSelection( viewRanges, { backward: isBackward } );\n\t}\n\n\t/**\n\t * Converts DOM Range to view {@link module:engine/view/range~Range}.\n\t * If the start or end position can not be converted `null` is returned.\n\t *\n\t * @param {Range} domRange DOM range.\n\t * @returns {module:engine/view/range~Range|null} View range.\n\t */\n\tdomRangeToView( domRange ) {\n\t\tconst viewStart = this.domPositionToView( domRange.startContainer, domRange.startOffset );\n\t\tconst viewEnd = this.domPositionToView( domRange.endContainer, domRange.endOffset );\n\n\t\tif ( viewStart && viewEnd ) {\n\t\t\treturn new ViewRange( viewStart, viewEnd );\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Converts DOM parent and offset to view {@link module:engine/view/position~Position}.\n\t *\n\t * If the position is inside a {@link module:engine/view/filler filler} which has no corresponding view node,\n\t * position of the filler will be converted and returned.\n\t *\n\t * If the position is inside DOM element rendered by {@link module:engine/view/uielement~UIElement}\n\t * that position will be converted to view position before that UIElement.\n\t *\n\t * If structures are too different and it is not possible to find corresponding position then `null` will be returned.\n\t *\n\t * @param {Node} domParent DOM position parent.\n\t * @param {Number} domOffset DOM position offset.\n\t * @returns {module:engine/view/position~Position} viewPosition View position.\n\t */\n\tdomPositionToView( domParent, domOffset ) {\n\t\tif ( this.isBlockFiller( domParent, this.blockFillerMode ) ) {\n\t\t\treturn this.domPositionToView( domParent.parentNode, indexOf( domParent ) );\n\t\t}\n\n\t\t// If position is somewhere inside UIElement or a RawElement - return position before that element.\n\t\tconst viewElement = this.mapDomToView( domParent );\n\n\t\tif ( viewElement && ( viewElement.is( 'uiElement' ) || viewElement.is( 'rawElement' ) ) ) {\n\t\t\treturn ViewPosition._createBefore( viewElement );\n\t\t}\n\n\t\tif ( isText( domParent ) ) {\n\t\t\tif ( isInlineFiller( domParent ) ) {\n\t\t\t\treturn this.domPositionToView( domParent.parentNode, indexOf( domParent ) );\n\t\t\t}\n\n\t\t\tconst viewParent = this.findCorrespondingViewText( domParent );\n\t\t\tlet offset = domOffset;\n\n\t\t\tif ( !viewParent ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( startsWithFiller( domParent ) ) {\n\t\t\t\toffset -= INLINE_FILLER_LENGTH;\n\t\t\t\toffset = offset < 0 ? 0 : offset;\n\t\t\t}\n\n\t\t\treturn new ViewPosition( viewParent, offset );\n\t\t}\n\t\t// domParent instanceof HTMLElement.\n\t\telse {\n\t\t\tif ( domOffset === 0 ) {\n\t\t\t\tconst viewParent = this.mapDomToView( domParent );\n\n\t\t\t\tif ( viewParent ) {\n\t\t\t\t\treturn new ViewPosition( viewParent, 0 );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst domBefore = domParent.childNodes[ domOffset - 1 ];\n\t\t\t\tconst viewBefore = isText( domBefore ) ?\n\t\t\t\t\tthis.findCorrespondingViewText( domBefore ) :\n\t\t\t\t\tthis.mapDomToView( domBefore );\n\n\t\t\t\t// TODO #663\n\t\t\t\tif ( viewBefore && viewBefore.parent ) {\n\t\t\t\t\treturn new ViewPosition( viewBefore.parent, viewBefore.index + 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Returns corresponding view {@link module:engine/view/element~Element Element} or\n\t * {@link module:engine/view/documentfragment~DocumentFragment} for provided DOM element or\n\t * document fragment. If there is no view item {@link module:engine/view/domconverter~DomConverter#bindElements bound}\n\t * to the given DOM - `undefined` is returned.\n\t *\n\t * For all DOM elements rendered by a {@link module:engine/view/uielement~UIElement} or\n\t * a {@link module:engine/view/rawelement~RawElement}, the parent `UIElement` or `RawElement` will be returned.\n\t *\n\t * @param {DocumentFragment|Element} domElementOrDocumentFragment DOM element or document fragment.\n\t * @returns {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment|undefined}\n\t * Corresponding view element, document fragment or `undefined` if no element was bound.\n\t */\n\tmapDomToView( domElementOrDocumentFragment ) {\n\t\tconst hostElement = this.getHostViewElement( domElementOrDocumentFragment );\n\n\t\treturn hostElement || this._domToViewMapping.get( domElementOrDocumentFragment );\n\t}\n\n\t/**\n\t * Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~DomConverter#bindElements bound},\n\t * corresponding text node is returned based on the sibling or parent.\n\t *\n\t * If the directly previous sibling is a {@link module:engine/view/domconverter~DomConverter#bindElements bound} element, it is used\n\t * to find the corresponding text node.\n\t *\n\t * If this is a first child in the parent and the parent is a {@link module:engine/view/domconverter~DomConverter#bindElements bound}\n\t * element, it is used to find the corresponding text node.\n\t *\n\t * For all text nodes rendered by a {@link module:engine/view/uielement~UIElement} or\n\t * a {@link module:engine/view/rawelement~RawElement}, the parent `UIElement` or `RawElement` will be returned.\n\t *\n\t * Otherwise `null` is returned.\n\t *\n\t * Note that for the block or inline {@link module:engine/view/filler filler} this method returns `null`.\n\t *\n\t * @param {Text} domText DOM text node.\n\t * @returns {module:engine/view/text~Text|null} Corresponding view text node or `null`, if it was not possible to find a\n\t * corresponding node.\n\t */\n\tfindCorrespondingViewText( domText ) {\n\t\tif ( isInlineFiller( domText ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// If DOM text was rendered by a UIElement or a RawElement - return this parent element.\n\t\tconst hostElement = this.getHostViewElement( domText );\n\n\t\tif ( hostElement ) {\n\t\t\treturn hostElement;\n\t\t}\n\n\t\tconst previousSibling = domText.previousSibling;\n\n\t\t// Try to use previous sibling to find the corresponding text node.\n\t\tif ( previousSibling ) {\n\t\t\tif ( !( this.isElement( previousSibling ) ) ) {\n\t\t\t\t// The previous is text or comment.\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst viewElement = this.mapDomToView( previousSibling );\n\n\t\t\tif ( viewElement ) {\n\t\t\t\tconst nextSibling = viewElement.nextSibling;\n\n\t\t\t\t// It might be filler which has no corresponding view node.\n\t\t\t\tif ( nextSibling instanceof ViewText ) {\n\t\t\t\t\treturn viewElement.nextSibling;\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Try to use parent to find the corresponding text node.\n\t\telse {\n\t\t\tconst viewElement = this.mapDomToView( domText.parentNode );\n\n\t\t\tif ( viewElement ) {\n\t\t\t\tconst firstChild = viewElement.getChild( 0 );\n\n\t\t\t\t// It might be filler which has no corresponding view node.\n\t\t\t\tif ( firstChild instanceof ViewText ) {\n\t\t\t\t\treturn firstChild;\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns corresponding DOM item for provided {@link module:engine/view/element~Element Element} or\n\t * {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment}.\n\t * To find a corresponding text for {@link module:engine/view/text~Text view Text instance}\n\t * use {@link #findCorrespondingDomText}.\n\t *\n\t * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} viewNode\n\t * View element or document fragment.\n\t * @returns {Node|DocumentFragment|undefined} Corresponding DOM node or document fragment.\n\t */\n\tmapViewToDom( documentFragmentOrElement ) {\n\t\treturn this._viewToDomMapping.get( documentFragmentOrElement );\n\t}\n\n\t/**\n\t * Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~DomConverter#bindElements bound},\n\t * corresponding text node is returned based on the sibling or parent.\n\t *\n\t * If the directly previous sibling is a {@link module:engine/view/domconverter~DomConverter#bindElements bound} element, it is used\n\t * to find the corresponding text node.\n\t *\n\t * If this is a first child in the parent and the parent is a {@link module:engine/view/domconverter~DomConverter#bindElements bound}\n\t * element, it is used to find the corresponding text node.\n\t *\n\t * Otherwise `null` is returned.\n\t *\n\t * @param {module:engine/view/text~Text} viewText View text node.\n\t * @returns {Text|null} Corresponding DOM text node or `null`, if it was not possible to find a corresponding node.\n\t */\n\tfindCorrespondingDomText( viewText ) {\n\t\tconst previousSibling = viewText.previousSibling;\n\n\t\t// Try to use previous sibling to find the corresponding text node.\n\t\tif ( previousSibling && this.mapViewToDom( previousSibling ) ) {\n\t\t\treturn this.mapViewToDom( previousSibling ).nextSibling;\n\t\t}\n\n\t\t// If this is a first node, try to use parent to find the corresponding text node.\n\t\tif ( !previousSibling && viewText.parent && this.mapViewToDom( viewText.parent ) ) {\n\t\t\treturn this.mapViewToDom( viewText.parent ).childNodes[ 0 ];\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Focuses DOM editable that is corresponding to provided {@link module:engine/view/editableelement~EditableElement}.\n\t *\n\t * @param {module:engine/view/editableelement~EditableElement} viewEditable\n\t */\n\tfocus( viewEditable ) {\n\t\tconst domEditable = this.mapViewToDom( viewEditable );\n\n\t\tif ( domEditable && domEditable.ownerDocument.activeElement !== domEditable ) {\n\t\t\t// Save the scrollX and scrollY positions before the focus.\n\t\t\tconst { scrollX, scrollY } = global.window;\n\t\t\tconst scrollPositions = [];\n\n\t\t\t// Save all scrollLeft and scrollTop values starting from domEditable up to\n\t\t\t// document#documentElement.\n\t\t\tforEachDomNodeAncestor( domEditable, node => {\n\t\t\t\tconst { scrollLeft, scrollTop } = node;\n\n\t\t\t\tscrollPositions.push( [ scrollLeft, scrollTop ] );\n\t\t\t} );\n\n\t\t\tdomEditable.focus();\n\n\t\t\t// Restore scrollLeft and scrollTop values starting from domEditable up to\n\t\t\t// document#documentElement.\n\t\t\t// https://github.com/ckeditor/ckeditor5-engine/issues/951\n\t\t\t// https://github.com/ckeditor/ckeditor5-engine/issues/957\n\t\t\tforEachDomNodeAncestor( domEditable, node => {\n\t\t\t\tconst [ scrollLeft, scrollTop ] = scrollPositions.shift();\n\n\t\t\t\tnode.scrollLeft = scrollLeft;\n\t\t\t\tnode.scrollTop = scrollTop;\n\t\t\t} );\n\n\t\t\t// Restore the scrollX and scrollY positions after the focus.\n\t\t\t// https://github.com/ckeditor/ckeditor5-engine/issues/951\n\t\t\tglobal.window.scrollTo( scrollX, scrollY );\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` when `node.nodeType` equals `Node.ELEMENT_NODE`.\n\t *\n\t * @param {Node} node Node to check.\n\t * @returns {Boolean}\n\t */\n\tisElement( node ) {\n\t\treturn node && node.nodeType == Node.ELEMENT_NODE;\n\t}\n\n\t/**\n\t * Returns `true` when `node.nodeType` equals `Node.DOCUMENT_FRAGMENT_NODE`.\n\t *\n\t * @param {Node} node Node to check.\n\t * @returns {Boolean}\n\t */\n\tisDocumentFragment( node ) {\n\t\treturn node && node.nodeType == Node.DOCUMENT_FRAGMENT_NODE;\n\t}\n\n\t/**\n\t * Returns `true` when `node.nodeType` equals `Node.COMMENT_NODE`.\n\t *\n\t * @param {Node} node Node to check.\n\t * @returns {Boolean}\n\t */\n\tisComment( node ) {\n\t\treturn node && node.nodeType == Node.COMMENT_NODE;\n\t}\n\n\t/**\n\t * Checks if the node is an instance of the block filler for this DOM converter.\n\t *\n\t *\t\tconst converter = new DomConverter( viewDocument, { blockFillerMode: 'br' } );\n\t *\n\t *\t\tconverter.isBlockFiller( BR_FILLER( document ) ); // true\n\t *\t\tconverter.isBlockFiller( NBSP_FILLER( document ) ); // false\n\t *\n\t * **Note:**: For the `'nbsp'` mode the method also checks context of a node so it cannot be a detached node.\n\t *\n\t * **Note:** A special case in the `'nbsp'` mode exists where the `
          ` in `


          ` is treated as a block filler.\n\t *\n\t * @param {Node} domNode DOM node to check.\n\t * @returns {Boolean} True if a node is considered a block filler for given mode.\n\t */\n\tisBlockFiller( domNode ) {\n\t\tif ( this.blockFillerMode == 'br' ) {\n\t\t\treturn domNode.isEqualNode( BR_FILLER_REF );\n\t\t}\n\n\t\t// Special case for


          in which case the
          should be treated as filler even\n\t\t// when we're in the 'nbsp' mode. See ckeditor5#5564.\n\t\tif ( domNode.tagName === 'BR' && hasBlockParent( domNode, this.blockElements ) && domNode.parentNode.childNodes.length === 1 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn isNbspBlockFiller( domNode, this.blockElements );\n\t}\n\n\t/**\n\t * Returns `true` if given selection is a backward selection, that is, if it's `focus` is before `anchor`.\n\t *\n\t * @param {Selection} DOM Selection instance to check.\n\t * @returns {Boolean}\n\t */\n\tisDomSelectionBackward( selection ) {\n\t\tif ( selection.isCollapsed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Since it takes multiple lines of code to check whether a \"DOM Position\" is before/after another \"DOM Position\",\n\t\t// we will use the fact that range will collapse if it's end is before it's start.\n\t\tconst range = document.createRange();\n\n\t\trange.setStart( selection.anchorNode, selection.anchorOffset );\n\t\trange.setEnd( selection.focusNode, selection.focusOffset );\n\n\t\tconst backward = range.collapsed;\n\n\t\trange.detach();\n\n\t\treturn backward;\n\t}\n\n\t/**\n\t * Returns a parent {@link module:engine/view/uielement~UIElement} or {@link module:engine/view/rawelement~RawElement}\n\t * that hosts the provided DOM node. Returns `null` if there is no such parent.\n\t *\n\t * @param {Node} domNode\n\t * @returns {module:engine/view/uielement~UIElement|module:engine/view/rawelement~RawElement|null}\n\t */\n\tgetHostViewElement( domNode ) {\n\t\tconst ancestors = getAncestors( domNode );\n\n\t\t// Remove domNode from the list.\n\t\tancestors.pop();\n\n\t\twhile ( ancestors.length ) {\n\t\t\tconst domNode = ancestors.pop();\n\t\t\tconst viewNode = this._domToViewMapping.get( domNode );\n\n\t\t\tif ( viewNode && ( viewNode.is( 'uiElement' ) || viewNode.is( 'rawElement' ) ) ) {\n\t\t\t\treturn viewNode;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Checks if the given selection's boundaries are at correct places.\n\t *\n\t * The following places are considered as incorrect for selection boundaries:\n\t *\n\t * * before or in the middle of an inline filler sequence,\n\t * * inside a DOM element which represents {@link module:engine/view/uielement~UIElement a view UI element},\n\t * * inside a DOM element which represents {@link module:engine/view/rawelement~RawElement a view raw element}.\n\t *\n\t * @param {Selection} domSelection The DOM selection object to be checked.\n\t * @returns {Boolean} `true` if the given selection is at a correct place, `false` otherwise.\n\t */\n\tisDomSelectionCorrect( domSelection ) {\n\t\treturn this._isDomSelectionPositionCorrect( domSelection.anchorNode, domSelection.anchorOffset ) &&\n\t\t\tthis._isDomSelectionPositionCorrect( domSelection.focusNode, domSelection.focusOffset );\n\t}\n\n\t/**\n\t * Registers a {@link module:engine/view/matcher~MatcherPattern} for view elements whose content should be treated as a raw data\n\t * and not processed during conversion from DOM nodes to view elements.\n\t *\n\t * This is affecting how {@link module:engine/view/domconverter~DomConverter#domToView} and\n\t * {@link module:engine/view/domconverter~DomConverter#domChildrenToView} processes DOM nodes.\n\t *\n\t * The raw data can be later accessed by {@link module:engine/view/element~Element#getCustomProperty view element custom property}\n\t * `\"$rawContent\"`.\n\t *\n\t * @param {module:engine/view/matcher~MatcherPattern} pattern Pattern matching view element which content should\n\t * be treated as a raw data.\n\t */\n\tregisterRawContentMatcher( pattern ) {\n\t\tthis._rawContentElementMatcher.add( pattern );\n\t}\n\n\t/**\n\t * Checks if the given DOM position is a correct place for selection boundary. See {@link #isDomSelectionCorrect}.\n\t *\n\t * @private\n\t * @param {Element} domParent Position parent.\n\t * @param {Number} offset Position offset.\n\t * @returns {Boolean} `true` if given position is at a correct place for selection boundary, `false` otherwise.\n\t */\n\t_isDomSelectionPositionCorrect( domParent, offset ) {\n\t\t// If selection is before or in the middle of inline filler string, it is incorrect.\n\t\tif ( isText( domParent ) && startsWithFiller( domParent ) && offset < INLINE_FILLER_LENGTH ) {\n\t\t\t// Selection in a text node, at wrong position (before or in the middle of filler).\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( this.isElement( domParent ) && startsWithFiller( domParent.childNodes[ offset ] ) ) {\n\t\t\t// Selection in an element node, before filler text node.\n\t\t\treturn false;\n\t\t}\n\n\t\tconst viewParent = this.mapDomToView( domParent );\n\n\t\t// The position is incorrect when anchored inside a UIElement or a RawElement.\n\t\t// Note: In case of UIElement and RawElement, mapDomToView() returns a parent element for any DOM child\n\t\t// so there's no need to perform any additional checks.\n\t\tif ( viewParent && ( viewParent.is( 'uiElement' ) || viewParent.is( 'rawElement' ) ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Takes text data from a given {@link module:engine/view/text~Text#data} and processes it so\n\t * it is correctly displayed in the DOM.\n\t *\n\t * Following changes are done:\n\t *\n\t * * a space at the beginning is changed to ` ` if this is the first text node in its container\n\t * element or if a previous text node ends with a space character,\n\t * * space at the end of the text node is changed to ` ` if there are two spaces at the end of a node or if next node\n\t * starts with a space or if it is the last text node in its container,\n\t * * remaining spaces are replaced to a chain of spaces and ` ` (e.g. `'x x'` becomes `'x   x'`).\n\t *\n\t * Content of {@link #preElements} is not processed.\n\t *\n\t * @private\n\t * @param {module:engine/view/text~Text} node View text node to process.\n\t * @returns {String} Processed text data.\n\t */\n\t_processDataFromViewText( node ) {\n\t\tlet data = node.data;\n\n\t\t// If any of node ancestors has a name which is in `preElements` array, then currently processed\n\t\t// view text node is (will be) in preformatted element. We should not change whitespaces then.\n\t\tif ( node.getAncestors().some( parent => this.preElements.includes( parent.name ) ) ) {\n\t\t\treturn data;\n\t\t}\n\n\t\t// 1. Replace the first space with a nbsp if the previous node ends with a space or there is no previous node\n\t\t// (container element boundary).\n\t\tif ( data.charAt( 0 ) == ' ' ) {\n\t\t\tconst prevNode = this._getTouchingViewTextNode( node, false );\n\t\t\tconst prevEndsWithSpace = prevNode && this._nodeEndsWithSpace( prevNode );\n\n\t\t\tif ( prevEndsWithSpace || !prevNode ) {\n\t\t\t\tdata = '\\u00A0' + data.substr( 1 );\n\t\t\t}\n\t\t}\n\n\t\t// 2. Replace the last space with nbsp if there are two spaces at the end or if the next node starts with space or there is no\n\t\t// next node (container element boundary).\n\t\t//\n\t\t// Keep in mind that Firefox prefers $nbsp; before tag, not inside it:\n\t\t//\n\t\t// Foo  bar <-- bad.\n\t\t// Foo  bar <-- good.\n\t\t//\n\t\t// More here: https://github.com/ckeditor/ckeditor5-engine/issues/1747.\n\t\tif ( data.charAt( data.length - 1 ) == ' ' ) {\n\t\t\tconst nextNode = this._getTouchingViewTextNode( node, true );\n\n\t\t\tif ( data.charAt( data.length - 2 ) == ' ' || !nextNode || nextNode.data.charAt( 0 ) == ' ' ) {\n\t\t\t\tdata = data.substr( 0, data.length - 1 ) + '\\u00A0';\n\t\t\t}\n\t\t}\n\n\t\t// 3. Create space+nbsp pairs.\n\t\treturn data.replace( / {2}/g, ' \\u00A0' );\n\t}\n\n\t/**\n\t * Checks whether given node ends with a space character after changing appropriate space characters to ` `s.\n\t *\n\t * @private\n\t * @param {module:engine/view/text~Text} node Node to check.\n\t * @returns {Boolean} `true` if given `node` ends with space, `false` otherwise.\n\t */\n\t_nodeEndsWithSpace( node ) {\n\t\tif ( node.getAncestors().some( parent => this.preElements.includes( parent.name ) ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst data = this._processDataFromViewText( node );\n\n\t\treturn data.charAt( data.length - 1 ) == ' ';\n\t}\n\n\t/**\n\t * Takes text data from native `Text` node and processes it to a correct {@link module:engine/view/text~Text view text node} data.\n\t *\n\t * Following changes are done:\n\t *\n\t * * multiple whitespaces are replaced to a single space,\n\t * * space at the beginning of a text node is removed if it is the first text node in its container\n\t * element or if the previous text node ends with a space character,\n\t * * space at the end of the text node is removed if there are two spaces at the end of a node or if next node\n\t * starts with a space or if it is the last text node in its container\n\t * * nbsps are converted to spaces.\n\t *\n\t * @param {Node} node DOM text node to process.\n\t * @returns {String} Processed data.\n\t * @private\n\t */\n\t_processDataFromDomText( node ) {\n\t\tlet data = node.data;\n\n\t\tif ( _hasDomParentOfType( node, this.preElements ) ) {\n\t\t\treturn getDataWithoutFiller( node );\n\t\t}\n\n\t\t// Change all consecutive whitespace characters (from the [ \\n\\t\\r] set –\n\t\t// see https://github.com/ckeditor/ckeditor5-engine/issues/822#issuecomment-311670249) to a single space character.\n\t\t// That's how multiple whitespaces are treated when rendered, so we normalize those whitespaces.\n\t\t// We're replacing 1+ (and not 2+) to also normalize singular \\n\\t\\r characters (#822).\n\t\tdata = data.replace( /[ \\n\\t\\r]{1,}/g, ' ' );\n\n\t\tconst prevNode = this._getTouchingInlineDomNode( node, false );\n\t\tconst nextNode = this._getTouchingInlineDomNode( node, true );\n\n\t\tconst shouldLeftTrim = this._checkShouldLeftTrimDomText( node, prevNode );\n\t\tconst shouldRightTrim = this._checkShouldRightTrimDomText( node, nextNode );\n\n\t\t// If the previous dom text node does not exist or it ends by whitespace character, remove space character from the beginning\n\t\t// of this text node. Such space character is treated as a whitespace.\n\t\tif ( shouldLeftTrim ) {\n\t\t\tdata = data.replace( /^ /, '' );\n\t\t}\n\n\t\t// If the next text node does not exist remove space character from the end of this text node.\n\t\tif ( shouldRightTrim ) {\n\t\t\tdata = data.replace( / $/, '' );\n\t\t}\n\n\t\t// At the beginning and end of a block element, Firefox inserts normal space +
          instead of non-breaking space.\n\t\t// This means that the text node starts/end with normal space instead of non-breaking space.\n\t\t// This causes a problem because the normal space would be removed in `.replace` calls above. To prevent that,\n\t\t// the inline filler is removed only after the data is initially processed (by the `.replace` above). See ckeditor5#692.\n\t\tdata = getDataWithoutFiller( new Text( data ) );\n\n\t\t// At this point we should have removed all whitespaces from DOM text data.\n\t\t//\n\t\t// Now, We will reverse the process that happens in `_processDataFromViewText`.\n\t\t//\n\t\t// We have to change   chars, that were in DOM text data because of rendering reasons, to spaces.\n\t\t// First, change all ` \\u00A0` pairs (space +  ) to two spaces. DOM converter changes two spaces from model/view to\n\t\t// ` \\u00A0` to ensure proper rendering. Since here we convert back, we recognize those pairs and change them back to ` `.\n\t\tdata = data.replace( / \\u00A0/g, ' ' );\n\n\t\t// Then, let's change the last nbsp to a space.\n\t\tif ( /( |\\u00A0)\\u00A0$/.test( data ) || !nextNode || ( nextNode.data && nextNode.data.charAt( 0 ) == ' ' ) ) {\n\t\t\tdata = data.replace( /\\u00A0$/, ' ' );\n\t\t}\n\n\t\t// Then, change   character that is at the beginning of the text node to space character.\n\t\t// We do that replacement only if this is the first node or the previous node ends on whitespace character.\n\t\tif ( shouldLeftTrim ) {\n\t\t\tdata = data.replace( /^\\u00A0/, ' ' );\n\t\t}\n\n\t\t// At this point, all whitespaces should be removed and all   created for rendering reasons should be\n\t\t// changed to normal space. All left   are   inserted intentionally.\n\t\treturn data;\n\t}\n\n\t/**\n\t * Helper function which checks if a DOM text node, preceded by the given `prevNode` should\n\t * be trimmed from the left side.\n\t *\n\t * @private\n\t * @param {Node} node\n\t * @param {Node} prevNode\n\t */\n\t_checkShouldLeftTrimDomText( node, prevNode ) {\n\t\tif ( !prevNode ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( isElement( prevNode ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Shouldn't left trim if previous node is a node that was encountered as a raw content node.\n\t\tif ( this._encounteredRawContentDomNodes.has( node.previousSibling ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn /[^\\S\\u00A0]/.test( prevNode.data.charAt( prevNode.data.length - 1 ) );\n\t}\n\n\t/**\n\t * Helper function which checks if a DOM text node, succeeded by the given `nextNode` should\n\t * be trimmed from the right side.\n\t *\n\t * @private\n\t * @param {Node} node\n\t * @param {Node} nextNode\n\t */\n\t_checkShouldRightTrimDomText( node, nextNode ) {\n\t\tif ( nextNode ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !startsWithFiller( node );\n\t}\n\n\t/**\n\t * Helper function. For given {@link module:engine/view/text~Text view text node}, it finds previous or next sibling\n\t * that is contained in the same container element. If there is no such sibling, `null` is returned.\n\t *\n\t * @private\n\t * @param {module:engine/view/text~Text} node Reference node.\n\t * @param {Boolean} getNext\n\t * @returns {module:engine/view/text~Text|null} Touching text node or `null` if there is no next or previous touching text node.\n\t */\n\t_getTouchingViewTextNode( node, getNext ) {\n\t\tconst treeWalker = new ViewTreeWalker( {\n\t\t\tstartPosition: getNext ? ViewPosition._createAfter( node ) : ViewPosition._createBefore( node ),\n\t\t\tdirection: getNext ? 'forward' : 'backward'\n\t\t} );\n\n\t\tfor ( const value of treeWalker ) {\n\t\t\t// ViewContainerElement is found on a way to next ViewText node, so given `node` was first/last\n\t\t\t// text node in its container element.\n\t\t\tif ( value.item.is( 'containerElement' ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t//
          found – it works like a block boundary, so do not scan further.\n\t\t\telse if ( value.item.is( 'element', 'br' ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t// Found a text node in the same container element.\n\t\t\telse if ( value.item.is( '$textProxy' ) ) {\n\t\t\t\treturn value.item;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Helper function. For the given text node, it finds the closest touching node which is either\n\t * a text node or a `
          `. The search is terminated at block element boundaries and if a matching node\n\t * wasn't found so far, `null` is returned.\n\t *\n\t * In the following DOM structure:\n\t *\n\t *\t\t

          foobar
          bom

          \n\t *\n\t * * `foo` doesn't have its previous touching inline node (`null` is returned),\n\t * * `foo`'s next touching inline node is `bar`\n\t * * `bar`'s next touching inline node is `
          `\n\t *\n\t * This method returns text nodes and `
          ` elements because these types of nodes affect how\n\t * spaces in the given text node need to be converted.\n\t *\n\t * @private\n\t * @param {Text} node\n\t * @param {Boolean} getNext\n\t * @returns {Text|Element|null}\n\t */\n\t_getTouchingInlineDomNode( node, getNext ) {\n\t\tif ( !node.parentNode ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst direction = getNext ? 'nextNode' : 'previousNode';\n\t\tconst document = node.ownerDocument;\n\t\tconst topmostParent = getAncestors( node )[ 0 ];\n\n\t\tconst treeWalker = document.createTreeWalker( topmostParent, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT, {\n\t\t\tacceptNode( node ) {\n\t\t\t\tif ( isText( node ) ) {\n\t\t\t\t\treturn NodeFilter.FILTER_ACCEPT;\n\t\t\t\t}\n\n\t\t\t\tif ( node.tagName == 'BR' ) {\n\t\t\t\t\treturn NodeFilter.FILTER_ACCEPT;\n\t\t\t\t}\n\n\t\t\t\treturn NodeFilter.FILTER_SKIP;\n\t\t\t}\n\t\t} );\n\n\t\ttreeWalker.currentNode = node;\n\n\t\tconst touchingNode = treeWalker[ direction ]();\n\n\t\tif ( touchingNode !== null ) {\n\t\t\tconst lca = getCommonAncestor( node, touchingNode );\n\n\t\t\t// If there is common ancestor between the text node and next/prev text node,\n\t\t\t// and there are no block elements on a way from the text node to that ancestor,\n\t\t\t// and there are no block elements on a way from next/prev text node to that ancestor...\n\t\t\tif (\n\t\t\t\tlca &&\n\t\t\t\t!_hasDomParentOfType( node, this.blockElements, lca ) &&\n\t\t\t\t!_hasDomParentOfType( touchingNode, this.blockElements, lca )\n\t\t\t) {\n\t\t\t\t// Then they are in the same container element.\n\t\t\t\treturn touchingNode;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n// Helper function.\n// Used to check if given native `Element` or `Text` node has parent with tag name from `types` array.\n//\n// @param {Node} node\n// @param {Array.} types\n// @param {Boolean} [boundaryParent] Can be given if parents should be checked up to a given element (excluding that element).\n// @returns {Boolean} `true` if such parent exists or `false` if it does not.\nfunction _hasDomParentOfType( node, types, boundaryParent ) {\n\tlet parents = getAncestors( node );\n\n\tif ( boundaryParent ) {\n\t\tparents = parents.slice( parents.indexOf( boundaryParent ) + 1 );\n\t}\n\n\treturn parents.some( parent => parent.tagName && types.includes( parent.tagName.toLowerCase() ) );\n}\n\n// A helper that executes given callback for each DOM node's ancestor, starting from the given node\n// and ending in document#documentElement.\n//\n// @param {Node} node\n// @param {Function} callback A callback to be executed for each ancestor.\nfunction forEachDomNodeAncestor( node, callback ) {\n\twhile ( node && node != global.document ) {\n\t\tcallback( node );\n\t\tnode = node.parentNode;\n\t}\n}\n\n// Checks if given node is a nbsp block filler.\n//\n// A   is a block filler only if it is a single child of a block element.\n//\n// @param {Node} domNode DOM node.\n// @returns {Boolean}\nfunction isNbspBlockFiller( domNode, blockElements ) {\n\tconst isNBSP = isText( domNode ) && domNode.data == '\\u00A0';\n\n\treturn isNBSP && hasBlockParent( domNode, blockElements ) && domNode.parentNode.childNodes.length === 1;\n}\n\n// Checks if domNode has block parent.\n//\n// @param {Node} domNode DOM node.\n// @returns {Boolean}\nfunction hasBlockParent( domNode, blockElements ) {\n\tconst parent = domNode.parentNode;\n\n\treturn parent && parent.tagName && blockElements.includes( parent.tagName.toLowerCase() );\n}\n\n/**\n * Enum representing type of the block filler.\n *\n * Possible values:\n *\n * * `br` - for `
          ` block filler used in editing view,\n * * `nbsp` - for ` ` block fillers used in the data.\n *\n * @typedef {String} module:engine/view/filler~BlockFillerMode\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/getcommonancestor\n */\n\nimport getAncestors from './getancestors';\n\n/**\n * Searches and returns the lowest common ancestor of two given nodes.\n *\n * @param {Node} nodeA First node.\n * @param {Node} nodeB Second node.\n * @returns {Node|DocumentFragment|Document|null} Lowest common ancestor of both nodes or `null` if nodes do not have a common ancestor.\n */\nexport default function getCommonAncestor( nodeA, nodeB ) {\n\tconst ancestorsA = getAncestors( nodeA );\n\tconst ancestorsB = getAncestors( nodeB );\n\n\tlet i = 0;\n\n\t// It does not matter which array is shorter.\n\twhile ( ancestorsA[ i ] == ancestorsB[ i ] && ancestorsA[ i ] ) {\n\t\ti++;\n\t}\n\n\treturn i === 0 ? null : ancestorsA[ i - 1 ];\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/iswindow\n */\n\n/**\n * Checks if the object is a native DOM Window.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isWindow( obj ) {\n\tconst stringifiedObject = Object.prototype.toString.apply( obj );\n\n\t// Returns `true` for the `window` object in browser environments.\n\tif ( stringifiedObject == '[object Window]' ) {\n\t\treturn true;\n\t}\n\n\t// Returns `true` for the `window` object in the Electron environment.\n\tif ( stringifiedObject == '[object global]' ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/emittermixin\n */\n\nimport { default as EmitterMixin, _getEmitterListenedTo, _setEmitterId } from '../emittermixin';\nimport uid from '../uid';\nimport isNode from './isnode';\nimport isWindow from './iswindow';\nimport { extend } from 'lodash-es';\n\n/**\n * Mixin that injects the DOM events API into its host. It provides the API\n * compatible with {@link module:utils/emittermixin~EmitterMixin}.\n *\n * DOM emitter mixin is by default available in the {@link module:ui/view~View} class,\n * but it can also be mixed into any other class:\n *\n *\t\timport mix from '../utils/mix.js';\n *\t\timport DomEmitterMixin from '../utils/dom/emittermixin.js';\n *\n *\t\tclass SomeView {}\n *\t\tmix( SomeView, DomEmitterMixin );\n *\n *\t\tconst view = new SomeView();\n *\t\tview.listenTo( domElement, ( evt, domEvt ) => {\n *\t\t\tconsole.log( evt, domEvt );\n *\t\t} );\n *\n * @mixin EmitterMixin\n * @mixes module:utils/emittermixin~EmitterMixin\n * @implements module:utils/dom/emittermixin~Emitter\n */\nconst DomEmitterMixin = extend( {}, EmitterMixin, {\n\t/**\n\t * Registers a callback function to be executed when an event is fired in a specific Emitter or DOM Node.\n\t * It is backwards compatible with {@link module:utils/emittermixin~EmitterMixin#listenTo}.\n\t *\n\t * @param {module:utils/emittermixin~Emitter|Node} emitter The object that fires the event.\n\t * @param {String} event The name of the event.\n\t * @param {Function} callback The function to be called on event.\n\t * @param {Object} [options={}] Additional options.\n\t * @param {module:utils/priorities~PriorityString|Number} [options.priority='normal'] The priority of this event callback. The higher\n\t * the priority value the sooner the callback will be fired. Events having the same priority are called in the\n\t * order they were added.\n\t * @param {Boolean} [options.useCapture=false] Indicates that events of this type will be dispatched to the registered\n\t * listener before being dispatched to any EventTarget beneath it in the DOM tree.\n\t * @param {Boolean} [options.usePassive=false] Indicates that the function specified by listener will never call preventDefault()\n\t * and prevents blocking browser's main thread by this event handler.\n\t */\n\tlistenTo( emitter, ...rest ) {\n\t\t// Check if emitter is an instance of DOM Node. If so, replace the argument with\n\t\t// corresponding ProxyEmitter (or create one if not existing).\n\t\tif ( isNode( emitter ) || isWindow( emitter ) ) {\n\t\t\tconst proxy = this._getProxyEmitter( emitter ) || new ProxyEmitter( emitter );\n\n\t\t\tproxy.attach( ...rest );\n\n\t\t\temitter = proxy;\n\t\t}\n\n\t\t// Execute parent class method with Emitter (or ProxyEmitter) instance.\n\t\tEmitterMixin.listenTo.call( this, emitter, ...rest );\n\t},\n\n\t/**\n\t * Stops listening for events. It can be used at different levels:\n\t * It is backwards compatible with {@link module:utils/emittermixin~EmitterMixin#listenTo}.\n\t *\n\t * * To stop listening to a specific callback.\n\t * * To stop listening to a specific event.\n\t * * To stop listening to all events fired by a specific object.\n\t * * To stop listening to all events fired by all object.\n\t *\n\t * @param {module:utils/emittermixin~Emitter|Node} [emitter] The object to stop listening to. If omitted, stops it for all objects.\n\t * @param {String} [event] (Requires the `emitter`) The name of the event to stop listening to. If omitted, stops it\n\t * for all events from `emitter`.\n\t * @param {Function} [callback] (Requires the `event`) The function to be removed from the call list for the given\n\t * `event`.\n\t */\n\tstopListening( emitter, event, callback ) {\n\t\t// Check if emitter is an instance of DOM Node. If so, replace the argument with corresponding ProxyEmitter.\n\t\tif ( isNode( emitter ) || isWindow( emitter ) ) {\n\t\t\tconst proxy = this._getProxyEmitter( emitter );\n\n\t\t\t// Element has no listeners.\n\t\t\tif ( !proxy ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\temitter = proxy;\n\t\t}\n\n\t\t// Execute parent class method with Emitter (or ProxyEmitter) instance.\n\t\tEmitterMixin.stopListening.call( this, emitter, event, callback );\n\n\t\tif ( emitter instanceof ProxyEmitter ) {\n\t\t\temitter.detach( event );\n\t\t}\n\t},\n\n\t/**\n\t * Retrieves ProxyEmitter instance for given DOM Node residing in this Host.\n\t *\n\t * @private\n\t * @param {Node} node DOM Node of the ProxyEmitter.\n\t * @returns {module:utils/dom/emittermixin~ProxyEmitter} ProxyEmitter instance or null.\n\t */\n\t_getProxyEmitter( node ) {\n\t\treturn _getEmitterListenedTo( this, getNodeUID( node ) );\n\t}\n} );\n\nexport default DomEmitterMixin;\n\n/**\n * Creates a ProxyEmitter instance. Such an instance is a bridge between a DOM Node firing events\n * and any Host listening to them. It is backwards compatible with {@link module:utils/emittermixin~EmitterMixin#on}.\n *\n * listenTo( click, ... )\n * +-----------------------------------------+\n * | stopListening( ... ) |\n * +----------------------------+ | addEventListener( click, ... )\n * | Host | | +---------------------------------------------+\n * +----------------------------+ | | removeEventListener( click, ... ) |\n * | _listeningTo: { | +----------v-------------+ |\n * | UID: { | | ProxyEmitter | |\n * | emitter: ProxyEmitter, | +------------------------+ +------------v----------+\n * | callbacks: { | | events: { | | Node (HTMLElement) |\n * | click: [ callbacks ] | | click: [ callbacks ] | +-----------------------+\n * | } | | }, | | data-ck-expando: UID |\n * | } | | _domNode: Node, | +-----------------------+\n * | } | | _domListeners: {}, | |\n * | +------------------------+ | | _emitterId: UID | |\n * | | DomEmitterMixin | | +--------------^---------+ |\n * | +------------------------+ | | | |\n * +--------------^-------------+ | +---------------------------------------------+\n * | | click (DOM Event)\n * +-----------------------------------------+\n * fire( click, DOM Event )\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n * @implements module:utils/dom/emittermixin~Emitter\n * @private\n */\nclass ProxyEmitter {\n\t/**\n\t * @param {Node} node DOM Node that fires events.\n\t * @returns {Object} ProxyEmitter instance bound to the DOM Node.\n\t */\n\tconstructor( node ) {\n\t\t// Set emitter ID to match DOM Node \"expando\" property.\n\t\t_setEmitterId( this, getNodeUID( node ) );\n\n\t\t// Remember the DOM Node this ProxyEmitter is bound to.\n\t\tthis._domNode = node;\n\t}\n}\n\nextend( ProxyEmitter.prototype, EmitterMixin, {\n\t/**\n\t * Collection of native DOM listeners.\n\t *\n\t * @private\n\t * @member {Object} module:utils/dom/emittermixin~ProxyEmitter#_domListeners\n\t */\n\n\t/**\n\t * Registers a callback function to be executed when an event is fired.\n\t *\n\t * It attaches a native DOM listener to the DOM Node. When fired,\n\t * a corresponding Emitter event will also fire with DOM Event object as an argument.\n\t *\n\t * @method module:utils/dom/emittermixin~ProxyEmitter#attach\n\t * @param {String} event The name of the event.\n\t * @param {Function} callback The function to be called on event.\n\t * @param {Object} [options={}] Additional options.\n\t * @param {Boolean} [options.useCapture=false] Indicates that events of this type will be dispatched to the registered\n\t * listener before being dispatched to any EventTarget beneath it in the DOM tree.\n\t * @param {Boolean} [options.usePassive=false] Indicates that the function specified by listener will never call preventDefault()\n\t * and prevents blocking browser's main thread by this event handler.\n\t */\n\tattach( event, callback, options = {} ) {\n\t\t// If the DOM Listener for given event already exist it is pointless\n\t\t// to attach another one.\n\t\tif ( this._domListeners && this._domListeners[ event ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst listenerOptions = {\n\t\t\tcapture: !!options.useCapture,\n\t\t\tpassive: !!options.usePassive\n\t\t};\n\n\t\tconst domListener = this._createDomListener( event, listenerOptions );\n\n\t\t// Attach the native DOM listener to DOM Node.\n\t\tthis._domNode.addEventListener( event, domListener, listenerOptions );\n\n\t\tif ( !this._domListeners ) {\n\t\t\tthis._domListeners = {};\n\t\t}\n\n\t\t// Store the native DOM listener in this ProxyEmitter. It will be helpful\n\t\t// when stopping listening to the event.\n\t\tthis._domListeners[ event ] = domListener;\n\t},\n\n\t/**\n\t * Stops executing the callback on the given event.\n\t *\n\t * @method module:utils/dom/emittermixin~ProxyEmitter#detach\n\t * @param {String} event The name of the event.\n\t */\n\tdetach( event ) {\n\t\tlet events;\n\n\t\t// Remove native DOM listeners which are orphans. If no callbacks\n\t\t// are awaiting given event, detach native DOM listener from DOM Node.\n\t\t// See: {@link attach}.\n\n\t\tif ( this._domListeners[ event ] && ( !( events = this._events[ event ] ) || !events.callbacks.length ) ) {\n\t\t\tthis._domListeners[ event ].removeListener();\n\t\t}\n\t},\n\n\t/**\n\t * Creates a native DOM listener callback. When the native DOM event\n\t * is fired it will fire corresponding event on this ProxyEmitter.\n\t * Note: A native DOM Event is passed as an argument.\n\t *\n\t * @private\n\t * @method module:utils/dom/emittermixin~ProxyEmitter#_createDomListener\n\t * @param {String} event The name of the event.\n\t * @param {Object} [options] Additional options.\n\t * @param {Boolean} [options.capture=false] Indicates whether the listener was created for capturing event.\n\t * @param {Boolean} [options.passive=false] Indicates that the function specified by listener will never call preventDefault()\n\t * and prevents blocking browser's main thread by this event handler.\n\t * @returns {Function} The DOM listener callback.\n\t */\n\t_createDomListener( event, options ) {\n\t\tconst domListener = domEvt => {\n\t\t\tthis.fire( event, domEvt );\n\t\t};\n\n\t\t// Supply the DOM listener callback with a function that will help\n\t\t// detach it from the DOM Node, when it is no longer necessary.\n\t\t// See: {@link detach}.\n\t\tdomListener.removeListener = () => {\n\t\t\tthis._domNode.removeEventListener( event, domListener, options );\n\t\t\tdelete this._domListeners[ event ];\n\t\t};\n\n\t\treturn domListener;\n\t}\n} );\n\n// Gets an unique DOM Node identifier. The identifier will be set if not defined.\n//\n// @private\n// @param {Node} node\n// @returns {String} UID for given DOM Node.\nfunction getNodeUID( node ) {\n\treturn node[ 'data-ck-expando' ] || ( node[ 'data-ck-expando' ] = uid() );\n}\n\n/**\n * Interface representing classes which mix in {@link module:utils/dom/emittermixin~EmitterMixin}.\n *\n * @interface Emitter\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/observer\n */\n\nimport DomEmitterMixin from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n\n/**\n * Abstract base observer class. Observers are classes which listen to DOM events, do the preliminary\n * processing and fire events on the {@link module:engine/view/document~Document} objects.\n * Observers can also add features to the view, for instance by updating its status or marking elements\n * which need a refresh on DOM events.\n *\n * @abstract\n */\nexport default class Observer {\n\t/**\n\t * Creates an instance of the observer.\n\t *\n\t * @param {module:engine/view/view~View} view\n\t */\n\tconstructor( view ) {\n\t\t/**\n\t\t * An instance of the view controller.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/view~View}\n\t\t */\n\t\tthis.view = view;\n\n\t\t/**\n\t\t * A reference to the {@link module:engine/view/document~Document} object.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = view.document;\n\n\t\t/**\n\t\t * State of the observer. If it is disabled no events will be fired.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Boolean}\n\t\t */\n\t\tthis.isEnabled = false;\n\t}\n\n\t/**\n\t * Enables the observer. This method is called when the observer is registered to the\n\t * {@link module:engine/view/view~View} and after {@link module:engine/view/view~View#forceRender rendering}\n\t * (all observers are {@link #disable disabled} before rendering).\n\t *\n\t * A typical use case for disabling observers is that mutation observers need to be disabled for the rendering.\n\t * However, a child class may not need to be disabled, so it can implement an empty method.\n\t *\n\t * @see module:engine/view/observer/observer~Observer#disable\n\t */\n\tenable() {\n\t\tthis.isEnabled = true;\n\t}\n\n\t/**\n\t * Disables the observer. This method is called before\n\t * {@link module:engine/view/view~View#forceRender rendering} to prevent firing events during rendering.\n\t *\n\t * @see module:engine/view/observer/observer~Observer#enable\n\t */\n\tdisable() {\n\t\tthis.isEnabled = false;\n\t}\n\n\t/**\n\t * Disables and destroys the observer, among others removes event listeners created by the observer.\n\t */\n\tdestroy() {\n\t\tthis.disable();\n\t\tthis.stopListening();\n\t}\n\n\t/**\n\t * Checks whether a given DOM event should be ignored (should not be turned into a synthetic view document event).\n\t *\n\t * Currently, an event will be ignored only if its target or any of its ancestors has the `data-cke-ignore-events` attribute.\n\t * This attribute can be used inside the structures generated by\n\t * {@link module:engine/view/downcastwriter~DowncastWriter#createUIElement `DowncastWriter#createUIElement()`} to ignore events\n\t * fired within a UI that should be excluded from CKEditor 5's realms.\n\t *\n\t * @param {Node} domTarget The DOM event target to check (usually an element, sometimes a text node and\n\t * potentially sometimes a document, too).\n\t * @returns {Boolean} Whether this event should be ignored by the observer.\n\t */\n\tcheckShouldIgnoreEventFromTarget( domTarget ) {\n\t\tif ( domTarget && domTarget.nodeType === 3 ) {\n\t\t\tdomTarget = domTarget.parentNode;\n\t\t}\n\n\t\tif ( !domTarget || domTarget.nodeType !== 1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn domTarget.matches( '[data-cke-ignore-events], [data-cke-ignore-events] *' );\n\t}\n\n\t/**\n\t * Starts observing the given root element.\n\t *\n\t * @method #observe\n\t * @param {HTMLElement} domElement\n\t * @param {String} name The name of the root element.\n\t */\n}\n\nmix( Observer, DomEmitterMixin );\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/mutationobserver\n */\n\n/* globals window */\n\nimport Observer from './observer';\nimport ViewSelection from '../selection';\nimport { startsWithFiller, getDataWithoutFiller } from '../filler';\nimport { isEqualWith } from 'lodash-es';\n\n/**\n * Mutation observer class observes changes in the DOM, fires {@link module:engine/view/document~Document#event:mutations} event, mark view\n * elements as changed and call {@link module:engine/view/renderer~Renderer#render}.\n * Because all mutated nodes are marked as \"to be rendered\" and the\n * {@link module:engine/view/renderer~Renderer#render} is called, all changes will be reverted, unless the mutation will be handled by the\n * {@link module:engine/view/document~Document#event:mutations} event listener. It means user will see only handled changes, and the editor\n * will block all changes which are not handled.\n *\n * Mutation Observer also take care of reducing number of mutations which are fired. It removes duplicates and\n * mutations on elements which do not have corresponding view elements. Also\n * {@link module:engine/view/observer/mutationobserver~MutatedText text mutation} is fired only if parent element do not change child list.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/observer~Observer\n */\nexport default class MutationObserver extends Observer {\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\t/**\n\t\t * Native mutation observer config.\n\t\t *\n\t\t * @private\n\t\t * @member {Object}\n\t\t */\n\t\tthis._config = {\n\t\t\tchildList: true,\n\t\t\tcharacterData: true,\n\t\t\tcharacterDataOldValue: true,\n\t\t\tsubtree: true\n\t\t};\n\n\t\t/**\n\t\t * Reference to the {@link module:engine/view/view~View#domConverter}.\n\t\t *\n\t\t * @member {module:engine/view/domconverter~DomConverter}\n\t\t */\n\t\tthis.domConverter = view.domConverter;\n\n\t\t/**\n\t\t * Reference to the {@link module:engine/view/view~View#_renderer}.\n\t\t *\n\t\t * @member {module:engine/view/renderer~Renderer}\n\t\t */\n\t\tthis.renderer = view._renderer;\n\n\t\t/**\n\t\t * Observed DOM elements.\n\t\t *\n\t\t * @private\n\t\t * @member {Array.}\n\t\t */\n\t\tthis._domElements = [];\n\n\t\t/**\n\t\t * Native mutation observer.\n\t\t *\n\t\t * @private\n\t\t * @member {MutationObserver}\n\t\t */\n\t\tthis._mutationObserver = new window.MutationObserver( this._onMutations.bind( this ) );\n\t}\n\n\t/**\n\t * Synchronously fires {@link module:engine/view/document~Document#event:mutations} event with all mutations in record queue.\n\t * At the same time empties the queue so mutations will not be fired twice.\n\t */\n\tflush() {\n\t\tthis._onMutations( this._mutationObserver.takeRecords() );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tobserve( domElement ) {\n\t\tthis._domElements.push( domElement );\n\n\t\tif ( this.isEnabled ) {\n\t\t\tthis._mutationObserver.observe( domElement, this._config );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tenable() {\n\t\tsuper.enable();\n\n\t\tfor ( const domElement of this._domElements ) {\n\t\t\tthis._mutationObserver.observe( domElement, this._config );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdisable() {\n\t\tsuper.disable();\n\n\t\tthis._mutationObserver.disconnect();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t\tsuper.destroy();\n\n\t\tthis._mutationObserver.disconnect();\n\t}\n\n\t/**\n\t * Handles mutations. Deduplicates, mark view elements to sync, fire event and call render.\n\t *\n\t * @private\n\t * @param {Array.} domMutations Array of native mutations.\n\t */\n\t_onMutations( domMutations ) {\n\t\t// As a result of this.flush() we can have an empty collection.\n\t\tif ( domMutations.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst domConverter = this.domConverter;\n\n\t\t// Use map and set for deduplication.\n\t\tconst mutatedTexts = new Map();\n\t\tconst mutatedElements = new Set();\n\n\t\t// Handle `childList` mutations first, so we will be able to check if the `characterData` mutation is in the\n\t\t// element with changed structure anyway.\n\t\tfor ( const mutation of domMutations ) {\n\t\t\tif ( mutation.type === 'childList' ) {\n\t\t\t\tconst element = domConverter.mapDomToView( mutation.target );\n\n\t\t\t\t// Do not collect mutations from UIElements and RawElements.\n\t\t\t\tif ( element && ( element.is( 'uiElement' ) || element.is( 'rawElement' ) ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( element && !this._isBogusBrMutation( mutation ) ) {\n\t\t\t\t\tmutatedElements.add( element );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Handle `characterData` mutations later, when we have the full list of nodes which changed structure.\n\t\tfor ( const mutation of domMutations ) {\n\t\t\tconst element = domConverter.mapDomToView( mutation.target );\n\n\t\t\t// Do not collect mutations from UIElements and RawElements.\n\t\t\tif ( element && ( element.is( 'uiElement' ) || element.is( 'rawElement' ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( mutation.type === 'characterData' ) {\n\t\t\t\tconst text = domConverter.findCorrespondingViewText( mutation.target );\n\n\t\t\t\tif ( text && !mutatedElements.has( text.parent ) ) {\n\t\t\t\t\t// Use text as a key, for deduplication. If there will be another mutation on the same text element\n\t\t\t\t\t// we will have only one in the map.\n\t\t\t\t\tmutatedTexts.set( text, {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\toldText: text.data,\n\t\t\t\t\t\tnewText: getDataWithoutFiller( mutation.target ),\n\t\t\t\t\t\tnode: text\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\t// When we added first letter to the text node which had only inline filler, for the DOM it is mutation\n\t\t\t\t// on text, but for the view, where filler text node did not existed, new text node was created, so we\n\t\t\t\t// need to fire 'children' mutation instead of 'text'.\n\t\t\t\telse if ( !text && startsWithFiller( mutation.target ) ) {\n\t\t\t\t\tmutatedElements.add( domConverter.mapDomToView( mutation.target.parentNode ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Now we build the list of mutations to fire and mark elements. We did not do it earlier to avoid marking the\n\t\t// same node multiple times in case of duplication.\n\n\t\t// List of mutations we will fire.\n\t\tconst viewMutations = [];\n\n\t\tfor ( const mutatedText of mutatedTexts.values() ) {\n\t\t\tthis.renderer.markToSync( 'text', mutatedText.node );\n\t\t\tviewMutations.push( mutatedText );\n\t\t}\n\n\t\tfor ( const viewElement of mutatedElements ) {\n\t\t\tconst domElement = domConverter.mapViewToDom( viewElement );\n\t\t\tconst viewChildren = Array.from( viewElement.getChildren() );\n\t\t\tconst newViewChildren = Array.from( domConverter.domChildrenToView( domElement, { withChildren: false } ) );\n\n\t\t\t// It may happen that as a result of many changes (sth was inserted and then removed),\n\t\t\t// both elements haven't really changed. #1031\n\t\t\tif ( !isEqualWith( viewChildren, newViewChildren, sameNodes ) ) {\n\t\t\t\tthis.renderer.markToSync( 'children', viewElement );\n\n\t\t\t\tviewMutations.push( {\n\t\t\t\t\ttype: 'children',\n\t\t\t\t\toldChildren: viewChildren,\n\t\t\t\t\tnewChildren: newViewChildren,\n\t\t\t\t\tnode: viewElement\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t// Retrieve `domSelection` using `ownerDocument` of one of mutated nodes.\n\t\t// There should not be simultaneous mutation in multiple documents, so it's fine.\n\t\tconst domSelection = domMutations[ 0 ].target.ownerDocument.getSelection();\n\n\t\tlet viewSelection = null;\n\n\t\tif ( domSelection && domSelection.anchorNode ) {\n\t\t\t// If `domSelection` is inside a dom node that is already bound to a view node from view tree, get\n\t\t\t// corresponding selection in the view and pass it together with `viewMutations`. The `viewSelection` may\n\t\t\t// be used by features handling mutations.\n\t\t\t// Only one range is supported.\n\n\t\t\tconst viewSelectionAnchor = domConverter.domPositionToView( domSelection.anchorNode, domSelection.anchorOffset );\n\t\t\tconst viewSelectionFocus = domConverter.domPositionToView( domSelection.focusNode, domSelection.focusOffset );\n\n\t\t\t// Anchor and focus has to be properly mapped to view.\n\t\t\tif ( viewSelectionAnchor && viewSelectionFocus ) {\n\t\t\t\tviewSelection = new ViewSelection( viewSelectionAnchor );\n\t\t\t\tviewSelection.setFocus( viewSelectionFocus );\n\t\t\t}\n\t\t}\n\n\t\t// In case only non-relevant mutations were recorded it skips the event and force render (#5600).\n\t\tif ( viewMutations.length ) {\n\t\t\tthis.document.fire( 'mutations', viewMutations, viewSelection );\n\n\t\t\t// If nothing changes on `mutations` event, at this point we have \"dirty DOM\" (changed) and de-synched\n\t\t\t// view (which has not been changed). In order to \"reset DOM\" we render the view again.\n\t\t\tthis.view.forceRender();\n\t\t}\n\n\t\tfunction sameNodes( child1, child2 ) {\n\t\t\t// First level of comparison (array of children vs array of children) – use the Lodash's default behavior.\n\t\t\tif ( Array.isArray( child1 ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Elements.\n\t\t\tif ( child1 === child2 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t// Texts.\n\t\t\telse if ( child1.is( '$text' ) && child2.is( '$text' ) ) {\n\t\t\t\treturn child1.data === child2.data;\n\t\t\t}\n\n\t\t\t// Not matching types.\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/**\n\t * Checks if mutation was generated by the browser inserting bogus br on the end of the block element.\n\t * Such mutations are generated while pressing space or performing native spellchecker correction\n\t * on the end of the block element in Firefox browser.\n\t *\n\t * @private\n\t * @param {Object} mutation Native mutation object.\n\t * @returns {Boolean}\n\t */\n\t_isBogusBrMutation( mutation ) {\n\t\tlet addedNode = null;\n\n\t\t// Check if mutation added only one node on the end of its parent.\n\t\tif ( mutation.nextSibling === null && mutation.removedNodes.length === 0 && mutation.addedNodes.length == 1 ) {\n\t\t\taddedNode = this.domConverter.domToView( mutation.addedNodes[ 0 ], {\n\t\t\t\twithChildren: false\n\t\t\t} );\n\t\t}\n\n\t\treturn addedNode && addedNode.is( 'element', 'br' );\n\t}\n}\n\n/**\n * Fired when mutation occurred. If tree view is not changed on this event, DOM will be reverted to the state before\n * mutation, so all changes which should be applied, should be handled on this event.\n *\n * Introduced by {@link module:engine/view/observer/mutationobserver~MutationObserver}.\n *\n * Note that because {@link module:engine/view/observer/mutationobserver~MutationObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/mutationobserver~MutationObserver\n * @event module:engine/view/document~Document#event:mutations\n * @param {Array.}\n * viewMutations Array of mutations.\n * For mutated texts it will be {@link module:engine/view/observer/mutationobserver~MutatedText} and for mutated elements it will be\n * {@link module:engine/view/observer/mutationobserver~MutatedChildren}. You can recognize the type based on the `type` property.\n * @param {module:engine/view/selection~Selection|null} viewSelection View selection that is a result of converting DOM selection to view.\n * Keep in\n * mind that the DOM selection is already \"updated\", meaning that it already acknowledges changes done in mutation.\n */\n\n/**\n * Mutation item for text.\n *\n * @see module:engine/view/document~Document#event:mutations\n * @see module:engine/view/observer/mutationobserver~MutatedChildren\n *\n * @typedef {Object} module:engine/view/observer/mutationobserver~MutatedText\n *\n * @property {String} type For text mutations it is always 'text'.\n * @property {module:engine/view/text~Text} node Mutated text node.\n * @property {String} oldText Old text.\n * @property {String} newText New text.\n */\n\n/**\n * Mutation item for child nodes.\n *\n * @see module:engine/view/document~Document#event:mutations\n * @see module:engine/view/observer/mutationobserver~MutatedText\n *\n * @typedef {Object} module:engine/view/observer/mutationobserver~MutatedChildren\n *\n * @property {String} type For child nodes mutations it is always 'children'.\n * @property {module:engine/view/element~Element} node Parent of the mutated children.\n * @property {Array.} oldChildren Old child nodes.\n * @property {Array.} newChildren New child nodes.\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/domeventdata\n */\n\nimport { extend } from 'lodash-es';\n\n/**\n * Information about a DOM event in context of the {@link module:engine/view/document~Document}.\n * It wraps the native event, which usually should not be used as the wrapper contains\n * additional data (like key code for keyboard events).\n */\nexport default class DomEventData {\n\t/**\n\t * @param {module:engine/view/view~View} view The instance of the view controller.\n\t * @param {Event} domEvent The DOM event.\n\t * @param {Object} [additionalData] Additional properties that the instance should contain.\n\t */\n\tconstructor( view, domEvent, additionalData ) {\n\t\t/**\n\t\t * Instance of the view controller.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/view~View} module:engine/view/observer/observer~Observer.DomEvent#view\n\t\t */\n\t\tthis.view = view;\n\n\t\t/**\n\t\t * The instance of the document.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/document~Document} module:engine/view/observer/observer~Observer.DomEvent#document\n\t\t */\n\t\tthis.document = view.document;\n\n\t\t/**\n\t\t * The DOM event.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Event} module:engine/view/observer/observer~Observer.DomEvent#domEvent\n\t\t */\n\t\tthis.domEvent = domEvent;\n\n\t\t/**\n\t\t * The DOM target.\n\t\t *\n\t\t * @readonly\n\t\t * @member {HTMLElement} module:engine/view/observer/observer~Observer.DomEvent#target\n\t\t */\n\t\tthis.domTarget = domEvent.target;\n\n\t\textend( this, additionalData );\n\t}\n\n\t/**\n\t * The tree view element representing the target.\n\t *\n\t * @readonly\n\t * @type module:engine/view/element~Element\n\t */\n\tget target() {\n\t\treturn this.view.domConverter.mapDomToView( this.domTarget );\n\t}\n\n\t/**\n\t * Prevents the native's event default action.\n\t */\n\tpreventDefault() {\n\t\tthis.domEvent.preventDefault();\n\t}\n\n\t/**\n\t * Stops native event propagation.\n\t */\n\tstopPropagation() {\n\t\tthis.domEvent.stopPropagation();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/domeventobserver\n */\n\nimport Observer from './observer';\nimport DomEventData from './domeventdata';\n\n/**\n * Base class for DOM event observers. This class handles\n * {@link module:engine/view/observer/observer~Observer#observe adding} listeners to DOM elements,\n * {@link module:engine/view/observer/observer~Observer#disable disabling} and\n * {@link module:engine/view/observer/observer~Observer#enable re-enabling} events.\n * Child class needs to define\n * {@link module:engine/view/observer/domeventobserver~DomEventObserver#domEventType DOM event type} and\n * {@link module:engine/view/observer/domeventobserver~DomEventObserver#onDomEvent callback}.\n *\n * For instance:\n *\n *\t\tclass ClickObserver extends DomEventObserver {\n *\t\t\t// It can also be defined as a normal property in the constructor.\n *\t\t\tget domEventType() {\n *\t\t\t\treturn 'click';\n *\t\t\t}\n *\n *\t\t\tonDomEvent( domEvent ) {\n *\t\t\t\tthis.fire( 'click', domEvent );\n *\t\t\t}\n *\t\t}\n *\n * @extends module:engine/view/observer/observer~Observer\n */\nexport default class DomEventObserver extends Observer {\n\t/**\n\t * Type of the DOM event the observer should listen to. Array of types can be defined\n\t * if the observer should listen to multiple DOM events.\n\t *\n\t * @readonly\n\t * @member {String|Array.} #domEventType\n\t */\n\n\t/**\n\t * Callback which should be called when the DOM event occurred. Note that the callback will not be called if\n\t * observer {@link #isEnabled is not enabled}.\n\t *\n\t * @see #domEventType\n\t * @abstract\n\t * @method #onDomEvent\n\t */\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\t/**\n\t\t * If set to `true` DOM events will be listened on the capturing phase.\n\t\t * Default value is `false`.\n\t\t *\n\t\t * @member {Boolean}\n\t\t */\n\t\tthis.useCapture = false;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tobserve( domElement ) {\n\t\tconst types = typeof this.domEventType == 'string' ? [ this.domEventType ] : this.domEventType;\n\n\t\ttypes.forEach( type => {\n\t\t\tthis.listenTo( domElement, type, ( eventInfo, domEvent ) => {\n\t\t\t\tif ( this.isEnabled && !this.checkShouldIgnoreEventFromTarget( domEvent.target ) ) {\n\t\t\t\t\tthis.onDomEvent( domEvent );\n\t\t\t\t}\n\t\t\t}, { useCapture: this.useCapture } );\n\t\t} );\n\t}\n\n\t/**\n\t * Calls `Document#fire()` if observer {@link #isEnabled is enabled}.\n\t *\n\t * @see module:utils/emittermixin~EmitterMixin#fire\n\t * @param {String} eventType The event type (name).\n\t * @param {Event} domEvent The DOM event.\n\t * @param {Object} [additionalData] The additional data which should extend the\n\t * {@link module:engine/view/observer/domeventdata~DomEventData event data} object.\n\t */\n\tfire( eventType, domEvent, additionalData ) {\n\t\tif ( this.isEnabled ) {\n\t\t\tthis.document.fire( eventType, new DomEventData( this.view, domEvent, additionalData ) );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/keyobserver\n */\n\nimport DomEventObserver from './domeventobserver';\nimport { getCode } from '@ckeditor/ckeditor5-utils/src/keyboard';\n\n/**\n * Observer for events connected with pressing keyboard keys.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\nexport default class KeyObserver extends DomEventObserver {\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\tthis.domEventType = [ 'keydown', 'keyup' ];\n\t}\n\n\tonDomEvent( domEvt ) {\n\t\tthis.fire( domEvt.type, domEvt, {\n\t\t\tkeyCode: domEvt.keyCode,\n\n\t\t\taltKey: domEvt.altKey,\n\t\t\tctrlKey: domEvt.ctrlKey || domEvt.metaKey,\n\t\t\tshiftKey: domEvt.shiftKey,\n\n\t\t\tget keystroke() {\n\t\t\t\treturn getCode( this );\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Fired when a key has been pressed.\n *\n * Introduced by {@link module:engine/view/observer/keyobserver~KeyObserver}.\n *\n * Note that because {@link module:engine/view/observer/keyobserver~KeyObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/keyobserver~KeyObserver\n * @event module:engine/view/document~Document#event:keydown\n * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEventData\n */\n\n/**\n * Fired when a key has been released.\n *\n * Introduced by {@link module:engine/view/observer/keyobserver~KeyObserver}.\n *\n * Note that because {@link module:engine/view/observer/keyobserver~KeyObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/keyobserver~KeyObserver\n * @event module:engine/view/document~Document#event:keyup\n * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEventData\n */\n\n/**\n * The value of both events - {@link module:engine/view/document~Document#event:keydown} and\n * {@link module:engine/view/document~Document#event:keyup}.\n *\n * @class module:engine/view/observer/keyobserver~KeyEventData\n * @extends module:engine/view/observer/domeventdata~DomEventData\n * @implements module:utils/keyboard~KeystrokeInfo\n */\n\n/**\n * Code of the whole keystroke. See {@link module:utils/keyboard~getCode}.\n *\n * @readonly\n * @member {Number} module:engine/view/observer/keyobserver~KeyEventData#keystroke\n */\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/fakeselectionobserver\n */\n\nimport Observer from './observer';\nimport ViewSelection from '../selection';\nimport { keyCodes, isArrowKeyCode } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport { debounce } from 'lodash-es';\n\n/**\n * Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens\n * on {@link module:engine/view/document~Document#event:keydown keydown} events and handles moving fake view selection to the correct place\n * if arrow keys are pressed.\n * Fires {@link module:engine/view/document~Document#event:selectionChange selectionChange event} simulating natural behaviour of\n * {@link module:engine/view/observer/selectionobserver~SelectionObserver SelectionObserver}.\n *\n * @extends module:engine/view/observer/observer~Observer\n */\nexport default class FakeSelectionObserver extends Observer {\n\t/**\n\t * Creates new FakeSelectionObserver instance.\n\t *\n\t * @param {module:engine/view/view~View} view\n\t */\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\t/**\n\t\t * Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call.\n\t\t *\n\t\t * @private\n\t\t * @param {Object} data Selection change data.\n\t\t * @method #_fireSelectionChangeDoneDebounced\n\t\t */\n\t\tthis._fireSelectionChangeDoneDebounced = debounce( data => this.document.fire( 'selectionChangeDone', data ), 200 );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tobserve() {\n\t\tconst document = this.document;\n\n\t\tdocument.on( 'keydown', ( eventInfo, data ) => {\n\t\t\tconst selection = document.selection;\n\n\t\t\tif ( selection.isFake && isArrowKeyCode( data.keyCode ) && this.isEnabled ) {\n\t\t\t\t// Prevents default key down handling - no selection change will occur.\n\t\t\t\tdata.preventDefault();\n\n\t\t\t\tthis._handleSelectionMove( data.keyCode );\n\t\t\t}\n\t\t}, { priority: 'lowest' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t\tsuper.destroy();\n\n\t\tthis._fireSelectionChangeDoneDebounced.cancel();\n\t}\n\n\t/**\n\t * Handles collapsing view selection according to given key code. If left or up key is provided - new selection will be\n\t * collapsed to left. If right or down key is pressed - new selection will be collapsed to right.\n\t *\n\t * This method fires {@link module:engine/view/document~Document#event:selectionChange} and\n\t * {@link module:engine/view/document~Document#event:selectionChangeDone} events imitating behaviour of\n\t * {@link module:engine/view/observer/selectionobserver~SelectionObserver}.\n\t *\n\t * @private\n\t * @param {Number} keyCode\n\t * @fires module:engine/view/document~Document#event:selectionChange\n\t * @fires module:engine/view/document~Document#event:selectionChangeDone\n\t */\n\t_handleSelectionMove( keyCode ) {\n\t\tconst selection = this.document.selection;\n\t\tconst newSelection = new ViewSelection( selection.getRanges(), { backward: selection.isBackward, fake: false } );\n\n\t\t// Left or up arrow pressed - move selection to start.\n\t\tif ( keyCode == keyCodes.arrowleft || keyCode == keyCodes.arrowup ) {\n\t\t\tnewSelection.setTo( newSelection.getFirstPosition() );\n\t\t}\n\n\t\t// Right or down arrow pressed - move selection to end.\n\t\tif ( keyCode == keyCodes.arrowright || keyCode == keyCodes.arrowdown ) {\n\t\t\tnewSelection.setTo( newSelection.getLastPosition() );\n\t\t}\n\n\t\tconst data = {\n\t\t\toldSelection: selection,\n\t\t\tnewSelection,\n\t\t\tdomSelection: null\n\t\t};\n\n\t\t// Fire dummy selection change event.\n\t\tthis.document.fire( 'selectionChange', data );\n\n\t\t// Call` #_fireSelectionChangeDoneDebounced` every time when `selectionChange` event is fired.\n\t\t// This function is debounced what means that `selectionChangeDone` event will be fired only when\n\t\t// defined int the function time will elapse since the last time the function was called.\n\t\t// So `selectionChangeDone` will be fired when selection will stop changing.\n\t\tthis._fireSelectionChangeDoneDebounced( data );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/selectionobserver\n */\n\n/* global setInterval, clearInterval */\n\nimport Observer from './observer';\nimport MutationObserver from './mutationobserver';\nimport { debounce } from 'lodash-es';\n\n/**\n * Selection observer class observes selection changes in the document. If a selection changes on the document this\n * observer checks if there are any mutations and if the DOM selection is different from the\n * {@link module:engine/view/document~Document#selection view selection}. The selection observer fires\n * {@link module:engine/view/document~Document#event:selectionChange} event only if a selection change was the only change in the document\n * and the DOM selection is different then the view selection.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @see module:engine/view/observer/mutationobserver~MutationObserver\n * @extends module:engine/view/observer/observer~Observer\n */\nexport default class SelectionObserver extends Observer {\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\t/**\n\t\t * Instance of the mutation observer. Selection observer calls\n\t\t * {@link module:engine/view/observer/mutationobserver~MutationObserver#flush} to ensure that the mutations will be handled\n\t\t * before the {@link module:engine/view/document~Document#event:selectionChange} event is fired.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/observer/mutationobserver~MutationObserver}\n\t\t * module:engine/view/observer/selectionobserver~SelectionObserver#mutationObserver\n\t\t */\n\t\tthis.mutationObserver = view.getObserver( MutationObserver );\n\n\t\t/**\n\t\t * Reference to the view {@link module:engine/view/documentselection~DocumentSelection} object used to compare\n\t\t * new selection with it.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/documentselection~DocumentSelection}\n\t\t * module:engine/view/observer/selectionobserver~SelectionObserver#selection\n\t\t */\n\t\tthis.selection = this.document.selection;\n\n\t\t/* eslint-disable max-len */\n\t\t/**\n\t\t * Reference to the {@link module:engine/view/view~View#domConverter}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/view/domconverter~DomConverter} module:engine/view/observer/selectionobserver~SelectionObserver#domConverter\n\t\t */\n\t\t/* eslint-enable max-len */\n\t\tthis.domConverter = view.domConverter;\n\n\t\t/**\n\t\t * A set of documents which have added `selectionchange` listener to avoid adding a listener twice to the same\n\t\t * document.\n\t\t *\n\t\t * @private\n\t\t * @member {WeakSet.} module:engine/view/observer/selectionobserver~SelectionObserver#_documents\n\t\t */\n\t\tthis._documents = new WeakSet();\n\n\t\t/**\n\t\t * Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call.\n\t\t *\n\t\t * @private\n\t\t * @param {Object} data Selection change data.\n\t\t * @method #_fireSelectionChangeDoneDebounced\n\t\t */\n\t\tthis._fireSelectionChangeDoneDebounced = debounce( data => this.document.fire( 'selectionChangeDone', data ), 200 );\n\n\t\tthis._clearInfiniteLoopInterval = setInterval( () => this._clearInfiniteLoop(), 1000 );\n\n\t\t/**\n\t\t * Private property to check if the code does not enter infinite loop.\n\t\t *\n\t\t * @private\n\t\t * @member {Number} module:engine/view/observer/selectionobserver~SelectionObserver#_loopbackCounter\n\t\t */\n\t\tthis._loopbackCounter = 0;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tobserve( domElement ) {\n\t\tconst domDocument = domElement.ownerDocument;\n\n\t\t// Add listener once per each document.\n\t\tif ( this._documents.has( domDocument ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.listenTo( domDocument, 'selectionchange', ( evt, domEvent ) => {\n\t\t\tthis._handleSelectionChange( domEvent, domDocument );\n\t\t} );\n\n\t\tthis._documents.add( domDocument );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t\tsuper.destroy();\n\n\t\tclearInterval( this._clearInfiniteLoopInterval );\n\t\tthis._fireSelectionChangeDoneDebounced.cancel();\n\t}\n\n\t/**\n\t * Selection change listener. {@link module:engine/view/observer/mutationobserver~MutationObserver#flush Flush} mutations, check if\n\t * a selection changes and fires {@link module:engine/view/document~Document#event:selectionChange} event on every change\n\t * and {@link module:engine/view/document~Document#event:selectionChangeDone} when a selection stop changing.\n\t *\n\t * @private\n\t * @param {Event} domEvent DOM event.\n\t * @param {Document} domDocument DOM document.\n\t */\n\t_handleSelectionChange( domEvent, domDocument ) {\n\t\tif ( !this.isEnabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst domSelection = domDocument.defaultView.getSelection();\n\n\t\tif ( this.checkShouldIgnoreEventFromTarget( domSelection.anchorNode ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure the mutation event will be before selection event on all browsers.\n\t\tthis.mutationObserver.flush();\n\n\t\t// If there were mutations then the view will be re-rendered by the mutation observer and the selection\n\t\t// will be updated, so the selections will equal and the event will not be fired, as expected.\n\t\tconst newViewSelection = this.domConverter.domSelectionToView( domSelection );\n\n\t\t// Do not convert selection change if the new view selection has no ranges in it.\n\t\t//\n\t\t// It means that the DOM selection is in some way incorrect. Ranges that were in the DOM selection could not be\n\t\t// converted to the view. This happens when the DOM selection was moved outside of the editable element.\n\t\tif ( newViewSelection.rangeCount == 0 ) {\n\t\t\tthis.view.hasDomSelection = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.view.hasDomSelection = true;\n\n\t\tif ( this.selection.isEqual( newViewSelection ) && this.domConverter.isDomSelectionCorrect( domSelection ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure we are not in the infinite loop (#400).\n\t\t// This counter is reset each second. 60 selection changes in 1 second is enough high number\n\t\t// to be very difficult (impossible) to achieve using just keyboard keys (during normal editor use).\n\t\tif ( ++this._loopbackCounter > 60 ) {\n\t\t\t// Selection change observer detected an infinite rendering loop.\n\t\t\t// Most probably you try to put the selection in the position which is not allowed\n\t\t\t// by the browser and browser fixes it automatically what causes `selectionchange` event on\n\t\t\t// which a loopback through a model tries to re-render the wrong selection and again.\n\t\t\t//\n\t\t\t// @if CK_DEBUG // console.warn( 'Selection change observer detected an infinite rendering loop.' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.selection.isSimilar( newViewSelection ) ) {\n\t\t\t// If selection was equal and we are at this point of algorithm, it means that it was incorrect.\n\t\t\t// Just re-render it, no need to fire any events, etc.\n\t\t\tthis.view.forceRender();\n\t\t} else {\n\t\t\tconst data = {\n\t\t\t\toldSelection: this.selection,\n\t\t\t\tnewSelection: newViewSelection,\n\t\t\t\tdomSelection\n\t\t\t};\n\n\t\t\t// Prepare data for new selection and fire appropriate events.\n\t\t\tthis.document.fire( 'selectionChange', data );\n\n\t\t\t// Call `#_fireSelectionChangeDoneDebounced` every time when `selectionChange` event is fired.\n\t\t\t// This function is debounced what means that `selectionChangeDone` event will be fired only when\n\t\t\t// defined int the function time will elapse since the last time the function was called.\n\t\t\t// So `selectionChangeDone` will be fired when selection will stop changing.\n\t\t\tthis._fireSelectionChangeDoneDebounced( data );\n\t\t}\n\t}\n\n\t/**\n\t * Clears `SelectionObserver` internal properties connected with preventing infinite loop.\n\t *\n\t * @protected\n\t */\n\t_clearInfiniteLoop() {\n\t\tthis._loopbackCounter = 0;\n\t}\n}\n\n/**\n * Fired when a selection has changed. This event is fired only when the selection change was the only change that happened\n * in the document, and the old selection is different then the new selection.\n *\n * Introduced by {@link module:engine/view/observer/selectionobserver~SelectionObserver}.\n *\n * Note that because {@link module:engine/view/observer/selectionobserver~SelectionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/selectionobserver~SelectionObserver\n * @event module:engine/view/document~Document#event:selectionChange\n * @param {Object} data\n * @param {module:engine/view/documentselection~DocumentSelection} data.oldSelection Old View selection which is\n * {@link module:engine/view/document~Document#selection}.\n * @param {module:engine/view/selection~Selection} data.newSelection New View selection which is converted DOM selection.\n * @param {Selection} data.domSelection Native DOM selection.\n */\n\n/**\n * Fired when selection stops changing.\n *\n * Introduced by {@link module:engine/view/observer/selectionobserver~SelectionObserver}.\n *\n * Note that because {@link module:engine/view/observer/selectionobserver~SelectionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/selectionobserver~SelectionObserver\n * @event module:engine/view/document~Document#event:selectionChangeDone\n * @param {Object} data\n * @param {module:engine/view/documentselection~DocumentSelection} data.oldSelection Old View selection which is\n * {@link module:engine/view/document~Document#selection}.\n * @param {module:engine/view/selection~Selection} data.newSelection New View selection which is converted DOM selection.\n * @param {Selection} data.domSelection Native DOM selection.\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/focusobserver\n */\n\n/* globals setTimeout, clearTimeout */\n\nimport DomEventObserver from './domeventobserver';\n\n/**\n * {@link module:engine/view/document~Document#event:focus Focus}\n * and {@link module:engine/view/document~Document#event:blur blur} events observer.\n * Focus observer handle also {@link module:engine/view/rooteditableelement~RootEditableElement#isFocused isFocused} property of the\n * {@link module:engine/view/rooteditableelement~RootEditableElement root elements}.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\nexport default class FocusObserver extends DomEventObserver {\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\tthis.domEventType = [ 'focus', 'blur' ];\n\t\tthis.useCapture = true;\n\t\tconst document = this.document;\n\n\t\tdocument.on( 'focus', () => {\n\t\t\tdocument.isFocused = true;\n\n\t\t\t// Unfortunately native `selectionchange` event is fired asynchronously.\n\t\t\t// We need to wait until `SelectionObserver` handle the event and then render. Otherwise rendering will\n\t\t\t// overwrite new DOM selection with selection from the view.\n\t\t\t// See https://github.com/ckeditor/ckeditor5-engine/issues/795 for more details.\n\t\t\t// Long timeout is needed to solve #676 and https://github.com/ckeditor/ckeditor5-engine/issues/1157 issues.\n\t\t\tthis._renderTimeoutId = setTimeout( () => view.forceRender(), 50 );\n\t\t} );\n\n\t\tdocument.on( 'blur', ( evt, data ) => {\n\t\t\tconst selectedEditable = document.selection.editableElement;\n\n\t\t\tif ( selectedEditable === null || selectedEditable === data.target ) {\n\t\t\t\tdocument.isFocused = false;\n\n\t\t\t\t// Re-render the document to update view elements.\n\t\t\t\tview.forceRender();\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * Identifier of the timeout currently used by focus listener to delay rendering execution.\n\t\t *\n\t\t * @private\n\t\t * @member {Number} #_renderTimeoutId\n\t\t */\n\t}\n\n\tonDomEvent( domEvent ) {\n\t\tthis.fire( domEvent.type, domEvent );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t\tif ( this._renderTimeoutId ) {\n\t\t\tclearTimeout( this._renderTimeoutId );\n\t\t}\n\n\t\tsuper.destroy();\n\t}\n}\n\n/**\n * Fired when one of the editables gets focus.\n *\n * Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.\n *\n * Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/focusobserver~FocusObserver\n * @event module:engine/view/document~Document#event:focus\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n/**\n * Fired when one of the editables loses focus.\n *\n * Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.\n *\n * Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/focusobserver~FocusObserver\n * @event module:engine/view/document~Document#event:blur\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/compositionobserver\n */\n\nimport DomEventObserver from './domeventobserver';\n\n/**\n * {@link module:engine/view/document~Document#event:compositionstart Compositionstart},\n * {@link module:engine/view/document~Document#event:compositionupdate compositionupdate} and\n * {@link module:engine/view/document~Document#event:compositionend compositionend} events observer.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\nexport default class CompositionObserver extends DomEventObserver {\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\tthis.domEventType = [ 'compositionstart', 'compositionupdate', 'compositionend' ];\n\t\tconst document = this.document;\n\n\t\tdocument.on( 'compositionstart', () => {\n\t\t\tdocument.isComposing = true;\n\t\t} );\n\n\t\tdocument.on( 'compositionend', () => {\n\t\t\tdocument.isComposing = false;\n\t\t} );\n\t}\n\n\tonDomEvent( domEvent ) {\n\t\tthis.fire( domEvent.type, domEvent );\n\t}\n}\n\n/**\n * Fired when composition starts inside one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/compositionobserver~CompositionObserver\n * @event module:engine/view/document~Document#event:compositionstart\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n/**\n * Fired when composition is updated inside one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/compositionobserver~CompositionObserver\n * @event module:engine/view/document~Document#event:compositionupdate\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n/**\n * Fired when composition ends inside one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/compositionobserver~CompositionObserver\n * @event module:engine/view/document~Document#event:compositionend\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/view/observer/inputobserver\n */\n\nimport DomEventObserver from './domeventobserver';\n\n/**\n * Observer for events connected with data input.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\nexport default class InputObserver extends DomEventObserver {\n\tconstructor( view ) {\n\t\tsuper( view );\n\n\t\tthis.domEventType = [ 'beforeinput' ];\n\t}\n\n\tonDomEvent( domEvent ) {\n\t\tthis.fire( domEvent.type, domEvent );\n\t}\n}\n\n/**\n * Fired before browser inputs (or deletes) some data.\n *\n * This event is available only on browsers which support DOM `beforeinput` event.\n *\n * Introduced by {@link module:engine/view/observer/inputobserver~InputObserver}.\n *\n * Note that because {@link module:engine/view/observer/inputobserver~InputObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/inputobserver~InputObserver\n * @event module:engine/view/document~Document#event:beforeinput\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/isrange\n */\n\n/**\n * Checks if the object is a native DOM Range.\n *\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isRange( obj ) {\n\treturn Object.prototype.toString.apply( obj ) == '[object Range]';\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/getborderwidths\n */\n\n/**\n * Returns an object containing CSS border widths of a specified HTML element.\n *\n * @param {HTMLElement} element An element which has CSS borders.\n * @returns {Object} An object containing `top`, `left`, `right` and `bottom` properties\n * with numerical values of the `border-[top,left,right,bottom]-width` CSS styles.\n */\nexport default function getBorderWidths( element ) {\n\t// Call getComputedStyle on the window the element document belongs to.\n\tconst style = element.ownerDocument.defaultView.getComputedStyle( element );\n\n\treturn {\n\t\ttop: parseInt( style.borderTopWidth, 10 ),\n\t\tright: parseInt( style.borderRightWidth, 10 ),\n\t\tbottom: parseInt( style.borderBottomWidth, 10 ),\n\t\tleft: parseInt( style.borderLeftWidth, 10 )\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/rect\n */\n\nimport isRange from './isrange';\nimport isWindow from './iswindow';\nimport getBorderWidths from './getborderwidths';\nimport isText from './istext';\nimport { isElement } from 'lodash-es';\n\nconst rectProperties = [ 'top', 'right', 'bottom', 'left', 'width', 'height' ];\n\n/**\n * A helper class representing a `ClientRect` object, e.g. value returned by\n * the native `object.getBoundingClientRect()` method. Provides a set of methods\n * to manipulate the rect and compare it against other rect instances.\n */\nexport default class Rect {\n\t/**\n\t * Creates an instance of rect.\n\t *\n\t *\t\t// Rect of an HTMLElement.\n\t *\t\tconst rectA = new Rect( document.body );\n\t *\n\t *\t\t// Rect of a DOM Range.\n\t *\t\tconst rectB = new Rect( document.getSelection().getRangeAt( 0 ) );\n\t *\n\t *\t\t// Rect of a window (web browser viewport).\n\t *\t\tconst rectC = new Rect( window );\n\t *\n\t *\t\t// Rect out of an object.\n\t *\t\tconst rectD = new Rect( { top: 0, right: 10, bottom: 10, left: 0, width: 10, height: 10 } );\n\t *\n\t *\t\t// Rect out of another Rect instance.\n\t *\t\tconst rectE = new Rect( rectD );\n\t *\n\t *\t\t// Rect out of a ClientRect.\n\t *\t\tconst rectF = new Rect( document.body.getClientRects().item( 0 ) );\n\t *\n\t * **Note**: By default a rect of an HTML element includes its CSS borders and scrollbars (if any)\n\t * ant the rect of a `window` includes scrollbars too. Use {@link #excludeScrollbarsAndBorders}\n\t * to get the inner part of the rect.\n\t *\n\t * @param {HTMLElement|Range|Window|ClientRect|module:utils/dom/rect~Rect|Object} source A source object to create the rect.\n\t */\n\tconstructor( source ) {\n\t\tconst isSourceRange = isRange( source );\n\n\t\t/**\n\t\t * The object this rect is for.\n\t\t *\n\t\t * @protected\n\t\t * @readonly\n\t\t * @member {HTMLElement|Range|ClientRect|module:utils/dom/rect~Rect|Object} #_source\n\t\t */\n\t\tObject.defineProperty( this, '_source', {\n\t\t\t// If the source is a Rect instance, copy it's #_source.\n\t\t\tvalue: source._source || source,\n\t\t\twritable: true,\n\t\t\tenumerable: false\n\t\t} );\n\n\t\tif ( isElement( source ) || isSourceRange ) {\n\t\t\t// The `Rect` class depends on `getBoundingClientRect` and `getClientRects` DOM methods. If the source\n\t\t\t// of a rect in an HTML element or a DOM range but it does not belong to any rendered DOM tree, these methods\n\t\t\t// will fail to obtain the geometry and the rect instance makes little sense to the features using it.\n\t\t\t// To get rid of this warning make sure the source passed to the constructor is a descendant of `window.document.body`.\n\t\t\t// @if CK_DEBUG // const sourceNode = isSourceRange ? source.startContainer : source;\n\t\t\t// @if CK_DEBUG // if ( !sourceNode.ownerDocument || !sourceNode.ownerDocument.body.contains( sourceNode ) ) {\n\t\t\t// @if CK_DEBUG // \tconsole.warn(\n\t\t\t// @if CK_DEBUG // \t\t'rect-source-not-in-dom: The source of this rect does not belong to any rendered DOM tree.',\n\t\t\t// @if CK_DEBUG // \t\t{ source } );\n\t\t\t// @if CK_DEBUG // }\n\n\t\t\tif ( isSourceRange ) {\n\t\t\t\tconst rangeRects = Rect.getDomRangeRects( source );\n\t\t\t\tcopyRectProperties( this, Rect.getBoundingRect( rangeRects ) );\n\t\t\t} else {\n\t\t\t\tcopyRectProperties( this, source.getBoundingClientRect() );\n\t\t\t}\n\t\t} else if ( isWindow( source ) ) {\n\t\t\tconst { innerWidth, innerHeight } = source;\n\n\t\t\tcopyRectProperties( this, {\n\t\t\t\ttop: 0,\n\t\t\t\tright: innerWidth,\n\t\t\t\tbottom: innerHeight,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: innerWidth,\n\t\t\t\theight: innerHeight\n\t\t\t} );\n\t\t} else {\n\t\t\tcopyRectProperties( this, source );\n\t\t}\n\n\t\t/**\n\t\t * The \"top\" value of the rect.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Number} #top\n\t\t */\n\n\t\t/**\n\t\t * The \"right\" value of the rect.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Number} #right\n\t\t */\n\n\t\t/**\n\t\t * The \"bottom\" value of the rect.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Number} #bottom\n\t\t */\n\n\t\t/**\n\t\t * The \"left\" value of the rect.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Number} #left\n\t\t */\n\n\t\t/**\n\t\t * The \"width\" value of the rect.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Number} #width\n\t\t */\n\n\t\t/**\n\t\t * The \"height\" value of the rect.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Number} #height\n\t\t */\n\t}\n\n\t/**\n\t * Returns a clone of the rect.\n\t *\n\t * @returns {module:utils/dom/rect~Rect} A cloned rect.\n\t */\n\tclone() {\n\t\treturn new Rect( this );\n\t}\n\n\t/**\n\t * Moves the rect so that its upper–left corner lands in desired `[ x, y ]` location.\n\t *\n\t * @param {Number} x Desired horizontal location.\n\t * @param {Number} y Desired vertical location.\n\t * @returns {module:utils/dom/rect~Rect} A rect which has been moved.\n\t */\n\tmoveTo( x, y ) {\n\t\tthis.top = y;\n\t\tthis.right = x + this.width;\n\t\tthis.bottom = y + this.height;\n\t\tthis.left = x;\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Moves the rect in–place by a dedicated offset.\n\t *\n\t * @param {Number} x A horizontal offset.\n\t * @param {Number} y A vertical offset\n\t * @returns {module:utils/dom/rect~Rect} A rect which has been moved.\n\t */\n\tmoveBy( x, y ) {\n\t\tthis.top += y;\n\t\tthis.right += x;\n\t\tthis.left += x;\n\t\tthis.bottom += y;\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns a new rect a a result of intersection with another rect.\n\t *\n\t * @param {module:utils/dom/rect~Rect} anotherRect\n\t * @returns {module:utils/dom/rect~Rect}\n\t */\n\tgetIntersection( anotherRect ) {\n\t\tconst rect = {\n\t\t\ttop: Math.max( this.top, anotherRect.top ),\n\t\t\tright: Math.min( this.right, anotherRect.right ),\n\t\t\tbottom: Math.min( this.bottom, anotherRect.bottom ),\n\t\t\tleft: Math.max( this.left, anotherRect.left )\n\t\t};\n\n\t\trect.width = rect.right - rect.left;\n\t\trect.height = rect.bottom - rect.top;\n\n\t\tif ( rect.width < 0 || rect.height < 0 ) {\n\t\t\treturn null;\n\t\t} else {\n\t\t\treturn new Rect( rect );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the area of intersection with another rect.\n\t *\n\t * @param {module:utils/dom/rect~Rect} anotherRect [description]\n\t * @returns {Number} Area of intersection.\n\t */\n\tgetIntersectionArea( anotherRect ) {\n\t\tconst rect = this.getIntersection( anotherRect );\n\n\t\tif ( rect ) {\n\t\t\treturn rect.getArea();\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the area of the rect.\n\t *\n\t * @returns {Number}\n\t */\n\tgetArea() {\n\t\treturn this.width * this.height;\n\t}\n\n\t/**\n\t * Returns a new rect, a part of the original rect, which is actually visible to the user,\n\t * e.g. an original rect cropped by parent element rects which have `overflow` set in CSS\n\t * other than `\"visible\"`.\n\t *\n\t * If there's no such visible rect, which is when the rect is limited by one or many of\n\t * the ancestors, `null` is returned.\n\t *\n\t * @returns {module:utils/dom/rect~Rect|null} A visible rect instance or `null`, if there's none.\n\t */\n\tgetVisible() {\n\t\tconst source = this._source;\n\t\tlet visibleRect = this.clone();\n\n\t\t// There's no ancestor to crop with the overflow.\n\t\tif ( !isBody( source ) ) {\n\t\t\tlet parent = source.parentNode || source.commonAncestorContainer;\n\n\t\t\t// Check the ancestors all the way up to the .\n\t\t\twhile ( parent && !isBody( parent ) ) {\n\t\t\t\tconst parentRect = new Rect( parent );\n\t\t\t\tconst intersectionRect = visibleRect.getIntersection( parentRect );\n\n\t\t\t\tif ( intersectionRect ) {\n\t\t\t\t\tif ( intersectionRect.getArea() < visibleRect.getArea() ) {\n\t\t\t\t\t\t// Reduce the visible rect to the intersection.\n\t\t\t\t\t\tvisibleRect = intersectionRect;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// There's no intersection, the rect is completely invisible.\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\t\t}\n\n\t\treturn visibleRect;\n\t}\n\n\t/**\n\t * Checks if all property values ({@link #top}, {@link #left}, {@link #right},\n\t * {@link #bottom}, {@link #width} and {@link #height}) are the equal in both rect\n\t * instances.\n\t *\n\t * @param {module:utils/dom/rect~Rect} rect A rect instance to compare with.\n\t * @returns {Boolean} `true` when Rects are equal. `false` otherwise.\n\t */\n\tisEqual( anotherRect ) {\n\t\tfor ( const prop of rectProperties ) {\n\t\t\tif ( this[ prop ] !== anotherRect[ prop ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks whether a rect fully contains another rect instance.\n\t *\n\t * @param {module:utils/dom/rect~Rect} anotherRect\n\t * @returns {Boolean} `true` if contains, `false` otherwise.\n\t */\n\tcontains( anotherRect ) {\n\t\tconst intersectRect = this.getIntersection( anotherRect );\n\n\t\treturn !!( intersectRect && intersectRect.isEqual( anotherRect ) );\n\t}\n\n\t/**\n\t * Excludes scrollbars and CSS borders from the rect.\n\t *\n\t * * Borders are removed when {@link #_source} is an HTML element.\n\t * * Scrollbars are excluded from HTML elements and the `window`.\n\t *\n\t * @returns {module:utils/dom/rect~Rect} A rect which has been updated.\n\t */\n\texcludeScrollbarsAndBorders() {\n\t\tconst source = this._source;\n\t\tlet scrollBarWidth, scrollBarHeight, direction;\n\n\t\tif ( isWindow( source ) ) {\n\t\t\tscrollBarWidth = source.innerWidth - source.document.documentElement.clientWidth;\n\t\t\tscrollBarHeight = source.innerHeight - source.document.documentElement.clientHeight;\n\t\t\tdirection = source.getComputedStyle( source.document.documentElement ).direction;\n\t\t} else {\n\t\t\tconst borderWidths = getBorderWidths( this._source );\n\n\t\t\tscrollBarWidth = source.offsetWidth - source.clientWidth - borderWidths.left - borderWidths.right;\n\t\t\tscrollBarHeight = source.offsetHeight - source.clientHeight - borderWidths.top - borderWidths.bottom;\n\t\t\tdirection = source.ownerDocument.defaultView.getComputedStyle( source ).direction;\n\n\t\t\tthis.left += borderWidths.left;\n\t\t\tthis.top += borderWidths.top;\n\t\t\tthis.right -= borderWidths.right;\n\t\t\tthis.bottom -= borderWidths.bottom;\n\t\t\tthis.width = this.right - this.left;\n\t\t\tthis.height = this.bottom - this.top;\n\t\t}\n\n\t\tthis.width -= scrollBarWidth;\n\n\t\tif ( direction === 'ltr' ) {\n\t\t\tthis.right -= scrollBarWidth;\n\t\t} else {\n\t\t\tthis.left += scrollBarWidth;\n\t\t}\n\n\t\tthis.height -= scrollBarHeight;\n\t\tthis.bottom -= scrollBarHeight;\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns an array of rects of the given native DOM Range.\n\t *\n\t * @param {Range} range A native DOM range.\n\t * @returns {Array.} DOM Range rects.\n\t */\n\tstatic getDomRangeRects( range ) {\n\t\tconst rects = [];\n\t\t// Safari does not iterate over ClientRectList using for...of loop.\n\t\tconst clientRects = Array.from( range.getClientRects() );\n\n\t\tif ( clientRects.length ) {\n\t\t\tfor ( const rect of clientRects ) {\n\t\t\t\trects.push( new Rect( rect ) );\n\t\t\t}\n\t\t}\n\t\t// If there's no client rects for the Range, use parent container's bounding rect\n\t\t// instead and adjust rect's width to simulate the actual geometry of such range.\n\t\t// https://github.com/ckeditor/ckeditor5-utils/issues/153\n\t\t// https://github.com/ckeditor/ckeditor5-ui/issues/317\n\t\telse {\n\t\t\tlet startContainer = range.startContainer;\n\n\t\t\tif ( isText( startContainer ) ) {\n\t\t\t\tstartContainer = startContainer.parentNode;\n\t\t\t}\n\n\t\t\tconst rect = new Rect( startContainer.getBoundingClientRect() );\n\t\t\trect.right = rect.left;\n\t\t\trect.width = 0;\n\n\t\t\trects.push( rect );\n\t\t}\n\n\t\treturn rects;\n\t}\n\n\t/**\n\t * Returns a bounding rectangle that contains all the given `rects`.\n\t *\n\t * @param {Iterable.} rects A list of rectangles that should be contained in the result rectangle.\n\t * @returns {module:utils/dom/rect~Rect|null} Bounding rectangle or `null` if no `rects` were given.\n\t */\n\tstatic getBoundingRect( rects ) {\n\t\tconst boundingRectData = {\n\t\t\tleft: Number.POSITIVE_INFINITY,\n\t\t\ttop: Number.POSITIVE_INFINITY,\n\t\t\tright: Number.NEGATIVE_INFINITY,\n\t\t\tbottom: Number.NEGATIVE_INFINITY\n\t\t};\n\t\tlet rectangleCount = 0;\n\n\t\tfor ( const rect of rects ) {\n\t\t\trectangleCount++;\n\n\t\t\tboundingRectData.left = Math.min( boundingRectData.left, rect.left );\n\t\t\tboundingRectData.top = Math.min( boundingRectData.top, rect.top );\n\t\t\tboundingRectData.right = Math.max( boundingRectData.right, rect.right );\n\t\t\tboundingRectData.bottom = Math.max( boundingRectData.bottom, rect.bottom );\n\t\t}\n\n\t\tif ( rectangleCount == 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tboundingRectData.width = boundingRectData.right - boundingRectData.left;\n\t\tboundingRectData.height = boundingRectData.bottom - boundingRectData.top;\n\n\t\treturn new Rect( boundingRectData );\n\t}\n}\n\n// Acquires all the rect properties from the passed source.\n//\n// @private\n// @param {module:utils/dom/rect~Rect} rect\n// @param {ClientRect|module:utils/dom/rect~Rect|Object} source\nfunction copyRectProperties( rect, source ) {\n\tfor ( const p of rectProperties ) {\n\t\trect[ p ] = source[ p ];\n\t}\n}\n\n// Checks if provided object is a HTML element.\n//\n// @private\n// @param {HTMLElement|Range} elementOrRange\n// @returns {Boolean}\nfunction isBody( elementOrRange ) {\n\tif ( !isElement( elementOrRange ) ) {\n\t\treturn false;\n\t}\n\n\treturn elementOrRange === elementOrRange.ownerDocument.body;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/dom/scroll\n */\n\nimport isRange from './isrange';\nimport Rect from './rect';\nimport isText from './istext';\n\nconst utils = {};\n\n/**\n * Makes any page `HTMLElement` or `Range` (`target`) visible inside the browser viewport.\n * This helper will scroll all `target` ancestors and the web browser viewport to reveal the target to\n * the user. If the `target` is already visible, nothing will happen.\n *\n * @param {HTMLElement|Range} options.target A target, which supposed to become visible to the user.\n * @param {Number} [options.viewportOffset] An offset from the edge of the viewport (in pixels)\n * the `target` will be moved by when the viewport is scrolled. It enhances the user experience\n * by keeping the `target` some distance from the edge of the viewport and thus making it easier to\n * read or edit by the user.\n */\nexport function scrollViewportToShowTarget( { target, viewportOffset = 0 } ) {\n\tconst targetWindow = getWindow( target );\n\tlet currentWindow = targetWindow;\n\tlet currentFrame = null;\n\n\t// Iterate over all windows, starting from target's parent window up to window#top.\n\twhile ( currentWindow ) {\n\t\tlet firstAncestorToScroll;\n\n\t\t// Let's scroll target's ancestors first to reveal it. Then, once the ancestor scrolls\n\t\t// settled down, the algorithm can eventually scroll the viewport of the current window.\n\t\t//\n\t\t// Note: If the current window is target's **original** window (e.g. the first one),\n\t\t// start scrolling the closest parent of the target. If not, scroll the closest parent\n\t\t// of an iframe that resides in the current window.\n\t\tif ( currentWindow == targetWindow ) {\n\t\t\tfirstAncestorToScroll = getParentElement( target );\n\t\t} else {\n\t\t\tfirstAncestorToScroll = getParentElement( currentFrame );\n\t\t}\n\n\t\t// Scroll the target's ancestors first. Once done, scrolling the viewport is easy.\n\t\tscrollAncestorsToShowRect( firstAncestorToScroll, () => {\n\t\t\t// Note: If the target does not belong to the current window **directly**,\n\t\t\t// i.e. it resides in an iframe belonging to the window, obtain the target's rect\n\t\t\t// in the coordinates of the current window. By default, a Rect returns geometry\n\t\t\t// relative to the current window's viewport. To make it work in a parent window,\n\t\t\t// it must be shifted.\n\t\t\treturn getRectRelativeToWindow( target, currentWindow );\n\t\t} );\n\n\t\t// Obtain the rect of the target after it has been scrolled within its ancestors.\n\t\t// It's time to scroll the viewport.\n\t\tconst targetRect = getRectRelativeToWindow( target, currentWindow );\n\n\t\tscrollWindowToShowRect( currentWindow, targetRect, viewportOffset );\n\n\t\tif ( currentWindow.parent != currentWindow ) {\n\t\t\t// Keep the reference to the ' +\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'spotify',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(artist\\/\\w+)/,\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(album\\/\\w+)/,\n\t\t\t\t\t\t/^open\\.spotify\\.com\\/(track\\/\\w+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
          ' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
          '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'youtube',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^(?:m\\.)?youtube\\.com\\/watch\\?v=([\\w-]+)/,\n\t\t\t\t\t\t/^(?:m\\.)?youtube\\.com\\/v\\/([\\w-]+)/,\n\t\t\t\t\t\t/^youtube\\.com\\/embed\\/([\\w-]+)/,\n\t\t\t\t\t\t/^youtu\\.be\\/([\\w-]+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
          ' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
          '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'vimeo',\n\t\t\t\t\turl: [\n\t\t\t\t\t\t/^vimeo\\.com\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/[^/]+\\/[^/]+\\/video\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/album\\/[^/]+\\/video\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/channels\\/[^/]+\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/groups\\/[^/]+\\/videos\\/(\\d+)/,\n\t\t\t\t\t\t/^vimeo\\.com\\/ondemand\\/[^/]+\\/(\\d+)/,\n\t\t\t\t\t\t/^player\\.vimeo\\.com\\/video\\/(\\d+)/\n\t\t\t\t\t],\n\t\t\t\t\thtml: match => {\n\t\t\t\t\t\tconst id = match[ 1 ];\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'
          ' +\n\t\t\t\t\t\t\t\t`' +\n\t\t\t\t\t\t\t'
          '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tname: 'instagram',\n\t\t\t\t\turl: /^instagram\\.com\\/p\\/(\\w+)/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'twitter',\n\t\t\t\t\turl: /^twitter\\.com/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'googleMaps',\n\t\t\t\t\turl: /^google\\.com\\/maps/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'flickr',\n\t\t\t\t\turl: /^flickr\\.com/\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'facebook',\n\t\t\t\t\turl: /^facebook\\.com/\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\t/**\n\t\t * The media registry managing the media providers in the editor.\n\t\t *\n\t\t * @member {module:media-embed/mediaregistry~MediaRegistry} #registry\n\t\t */\n\t\tthis.registry = new MediaRegistry( editor.locale, editor.config.get( 'mediaEmbed' ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\t\tconst renderMediaPreview = editor.config.get( 'mediaEmbed.previewsInData' );\n\t\tconst registry = this.registry;\n\n\t\teditor.commands.add( 'mediaEmbed', new MediaEmbedCommand( editor ) );\n\n\t\t// Configure the schema.\n\t\tschema.register( 'media', {\n\t\t\tisObject: true,\n\t\t\tisBlock: true,\n\t\t\tallowWhere: '$block',\n\t\t\tallowAttributes: [ 'url' ]\n\t\t} );\n\n\t\t// Model -> Data\n\t\tconversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: 'media',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst url = modelElement.getAttribute( 'url' );\n\n\t\t\t\treturn createMediaFigureElement( writer, registry, url, {\n\t\t\t\t\trenderMediaPreview: url && renderMediaPreview\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> Data (url -> data-oembed-url)\n\t\tconversion.for( 'dataDowncast' ).add(\n\t\t\tmodelToViewUrlAttributeConverter( registry, {\n\t\t\t\trenderMediaPreview\n\t\t\t} ) );\n\n\t\t// Model -> View (element)\n\t\tconversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\tmodel: 'media',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst url = modelElement.getAttribute( 'url' );\n\t\t\t\tconst figure = createMediaFigureElement( writer, registry, url, {\n\t\t\t\t\trenderForEditingView: true\n\t\t\t\t} );\n\n\t\t\t\treturn toMediaWidget( figure, writer, t( 'media widget' ) );\n\t\t\t}\n\t\t} );\n\n\t\t// Model -> View (url -> data-oembed-url)\n\t\tconversion.for( 'editingDowncast' ).add(\n\t\t\tmodelToViewUrlAttributeConverter( registry, {\n\t\t\t\trenderForEditingView: true\n\t\t\t} ) );\n\n\t\t// View -> Model (data-oembed-url -> url)\n\t\tconversion.for( 'upcast' )\n\t\t\t// Upcast semantic media.\n\t\t\t.elementToElement( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'oembed',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\turl: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: ( viewMedia, { writer } ) => {\n\t\t\t\t\tconst url = viewMedia.getAttribute( 'url' );\n\n\t\t\t\t\tif ( registry.hasMedia( url ) ) {\n\t\t\t\t\t\treturn writer.createElement( 'media', { url } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t// Upcast non-semantic media.\n\t\t\t.elementToElement( {\n\t\t\t\tview: {\n\t\t\t\t\tname: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t'data-oembed-url': true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmodel: ( viewMedia, { writer } ) => {\n\t\t\t\t\tconst url = viewMedia.getAttribute( 'data-oembed-url' );\n\n\t\t\t\t\tif ( registry.hasMedia( url ) ) {\n\t\t\t\t\t\treturn writer.createElement( 'media', { url } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/automediaembed\n */\n\nimport MediaEmbedEditing from './mediaembedediting';\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\nimport LiveRange from '@ckeditor/ckeditor5-engine/src/model/liverange';\nimport LivePosition from '@ckeditor/ckeditor5-engine/src/model/liveposition';\nimport Undo from '@ckeditor/ckeditor5-undo/src/undo';\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport { insertMedia } from './utils';\n\nconst URL_REGEXP = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w.-]+)+[\\w\\-._~:/?#[\\]@!$&'()*+,;=%]+$/;\n\n/**\n * The auto-media embed plugin. It recognizes media links in the pasted content and embeds\n * them shortly after they are injected into the document.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class AutoMediaEmbed extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ Clipboard, Undo ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'AutoMediaEmbed';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor ) {\n\t\tsuper( editor );\n\n\t\t/**\n\t\t * The paste–to–embed `setTimeout` ID. Stored as a property to allow\n\t\t * cleaning of the timeout.\n\t\t *\n\t\t * @private\n\t\t * @member {Number} #_timeoutId\n\t\t */\n\t\tthis._timeoutId = null;\n\n\t\t/**\n\t\t * The position where the `` element will be inserted after the timeout,\n\t\t * determined each time the new content is pasted into the document.\n\t\t *\n\t\t * @private\n\t\t * @member {module:engine/model/liveposition~LivePosition} #_positionToInsert\n\t\t */\n\t\tthis._positionToInsert = null;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst modelDocument = editor.model.document;\n\n\t\t// We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n\t\t// After pasting, the content between those positions will be checked for a URL that could be transformed\n\t\t// into media.\n\t\tthis.listenTo( editor.plugins.get( Clipboard ), 'inputTransformation', () => {\n\t\t\tconst firstRange = modelDocument.selection.getFirstRange();\n\n\t\t\tconst leftLivePosition = LivePosition.fromPosition( firstRange.start );\n\t\t\tleftLivePosition.stickiness = 'toPrevious';\n\n\t\t\tconst rightLivePosition = LivePosition.fromPosition( firstRange.end );\n\t\t\trightLivePosition.stickiness = 'toNext';\n\n\t\t\tmodelDocument.once( 'change:data', () => {\n\t\t\t\tthis._embedMediaBetweenPositions( leftLivePosition, rightLivePosition );\n\n\t\t\t\tleftLivePosition.detach();\n\t\t\t\trightLivePosition.detach();\n\t\t\t}, { priority: 'high' } );\n\t\t} );\n\n\t\teditor.commands.get( 'undo' ).on( 'execute', () => {\n\t\t\tif ( this._timeoutId ) {\n\t\t\t\tglobal.window.clearTimeout( this._timeoutId );\n\t\t\t\tthis._positionToInsert.detach();\n\n\t\t\t\tthis._timeoutId = null;\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Analyzes the part of the document between provided positions in search for a URL representing media.\n\t * When the URL is found, it is automatically converted into media.\n\t *\n\t * @protected\n\t * @param {module:engine/model/liveposition~LivePosition} leftPosition Left position of the selection.\n\t * @param {module:engine/model/liveposition~LivePosition} rightPosition Right position of the selection.\n\t */\n\t_embedMediaBetweenPositions( leftPosition, rightPosition ) {\n\t\tconst editor = this.editor;\n\t\tconst mediaRegistry = editor.plugins.get( MediaEmbedEditing ).registry;\n\t\t// TODO: Use marker instead of LiveRange & LivePositions.\n\t\tconst urlRange = new LiveRange( leftPosition, rightPosition );\n\t\tconst walker = urlRange.getWalker( { ignoreElementEnd: true } );\n\n\t\tlet url = '';\n\n\t\tfor ( const node of walker ) {\n\t\t\tif ( node.item.is( '$textProxy' ) ) {\n\t\t\t\turl += node.item.data;\n\t\t\t}\n\t\t}\n\n\t\turl = url.trim();\n\n\t\t// If the URL does not match to universal URL regexp, let's skip that.\n\t\tif ( !url.match( URL_REGEXP ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// If the URL represents a media, let's use it.\n\t\tif ( !mediaRegistry.hasMedia( url ) ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaEmbedCommand = editor.commands.get( 'mediaEmbed' );\n\n\t\t// Do not anything if media element cannot be inserted at the current position (#47).\n\t\tif ( !mediaEmbedCommand.isEnabled ) {\n\t\t\turlRange.detach();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Position won't be available in the `setTimeout` function so let's clone it.\n\t\tthis._positionToInsert = LivePosition.fromPosition( leftPosition );\n\n\t\t// This action mustn't be executed if undo was called between pasting and auto-embedding.\n\t\tthis._timeoutId = global.window.setTimeout( () => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tthis._timeoutId = null;\n\n\t\t\t\twriter.remove( urlRange );\n\t\t\t\turlRange.detach();\n\n\t\t\t\tlet insertionPosition;\n\n\t\t\t\t// Check if position where the media element should be inserted is still valid.\n\t\t\t\t// Otherwise leave it as undefined to use document.selection - default behavior of model.insertContent().\n\t\t\t\tif ( this._positionToInsert.root.rootName !== '$graveyard' ) {\n\t\t\t\t\tinsertionPosition = this._positionToInsert;\n\t\t\t\t}\n\n\t\t\t\tinsertMedia( editor.model, url, insertionPosition );\n\n\t\t\t\tthis._positionToInsert.detach();\n\t\t\t\tthis._positionToInsert = null;\n\t\t\t} );\n\t\t}, 100 );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/ui/mediaformview\n */\n\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\n\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\n\nimport LabeledFieldView from '@ckeditor/ckeditor5-ui/src/labeledfield/labeledfieldview';\nimport { createLabeledInputText } from '@ckeditor/ckeditor5-ui/src/labeledfield/utils';\n\nimport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport injectCssTransitionDisabler from '@ckeditor/ckeditor5-ui/src/bindings/injectcsstransitiondisabler';\n\nimport checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\nimport '../../theme/mediaform.css';\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n\n/**\n * The media form view controller class.\n *\n * See {@link module:media-embed/ui/mediaformview~MediaFormView}.\n *\n * @extends module:ui/view~View\n */\nexport default class MediaFormView extends View {\n\t/**\n\t * @param {Array.} validators Form validators used by {@link #isValid}.\n\t * @param {module:utils/locale~Locale} [locale] The localization services instance.\n\t */\n\tconstructor( validators, locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\t/**\n\t\t * Tracks information about the DOM focus in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/focustracker~FocusTracker}\n\t\t */\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\t/**\n\t\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/keystrokehandler~KeystrokeHandler}\n\t\t */\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\t/**\n\t\t * The value of the URL input.\n\t\t *\n\t\t * @member {String} #mediaURLInputValue\n\t\t * @observable\n\t\t */\n\t\tthis.set( 'mediaURLInputValue', '' );\n\n\t\t/**\n\t\t * The URL input view.\n\t\t *\n\t\t * @member {module:ui/labeledfield/labeledfieldview~LabeledFieldView}\n\t\t */\n\t\tthis.urlInputView = this._createUrlInput();\n\n\t\t/**\n\t\t * The Save button view.\n\t\t *\n\t\t * @member {module:ui/button/buttonview~ButtonView}\n\t\t */\n\t\tthis.saveButtonView = this._createButton( t( 'Save' ), checkIcon, 'ck-button-save' );\n\t\tthis.saveButtonView.type = 'submit';\n\t\tthis.saveButtonView.bind( 'isEnabled' ).to( this, 'mediaURLInputValue', value => !!value );\n\n\t\t/**\n\t\t * The Cancel button view.\n\t\t *\n\t\t * @member {module:ui/button/buttonview~ButtonView}\n\t\t */\n\t\tthis.cancelButtonView = this._createButton( t( 'Cancel' ), cancelIcon, 'ck-button-cancel', 'cancel' );\n\n\t\t/**\n\t\t * A collection of views that can be focused in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis._focusables = new ViewCollection();\n\n\t\t/**\n\t\t * Helps cycling over {@link #_focusables} in the form.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/focuscycler~FocusCycler}\n\t\t */\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * An array of form validators used by {@link #isValid}.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {Array.}\n\t\t */\n\t\tthis._validators = validators;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-media-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.urlInputView,\n\t\t\t\tthis.saveButtonView,\n\t\t\t\tthis.cancelButtonView\n\t\t\t]\n\t\t} );\n\n\t\tinjectCssTransitionDisabler( this );\n\n\t\t/**\n\t\t * The default info text for the {@link #urlInputView}.\n\t\t *\n\t\t * @private\n\t\t * @member {String} #_urlInputViewInfoDefault\n\t\t */\n\n\t\t/**\n\t\t * The info text with an additional tip for the {@link #urlInputView},\n\t\t * displayed when the input has some value.\n\t\t *\n\t\t * @private\n\t\t * @member {String} #_urlInputViewInfoTip\n\t\t */\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\trender() {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.urlInputView,\n\t\t\tthis.saveButtonView,\n\t\t\tthis.cancelButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element );\n\n\t\tconst stopPropagation = data => data.stopPropagation();\n\n\t\t// Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n\t\t// keystroke handler would take over the key management in the URL input. We need to prevent\n\t\t// this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n\t\tthis.keystrokes.set( 'arrowright', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowleft', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowup', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowdown', stopPropagation );\n\n\t\t// Intercept the `selectstart` event, which is blocked by default because of the default behavior\n\t\t// of the DropdownView#panelView.\n\t\t// TODO: blocking `selectstart` in the #panelView should be configurable per–drop–down instance.\n\t\tthis.listenTo( this.urlInputView.element, 'selectstart', ( evt, domEvt ) => {\n\t\t\tdomEvt.stopPropagation();\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tfocus() {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #urlInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t *\n\t * @type {String}\n\t */\n\tget url() {\n\t\treturn this.urlInputView.fieldView.element.value.trim();\n\t}\n\n\tset url( url ) {\n\t\tthis.urlInputView.fieldView.element.value = url.trim();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t *\n\t * @returns {Boolean}\n\t */\n\tisValid() {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.urlInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #urlInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tresetFormStatus() {\n\t\tthis.urlInputView.errorText = null;\n\t\tthis.urlInputView.infoText = this._urlInputViewInfoDefault;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @private\n\t * @returns {module:ui/labeledfield/labeledfieldview~LabeledFieldView} Labeled input view instance.\n\t */\n\t_createUrlInput() {\n\t\tconst t = this.locale.t;\n\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\t\tconst inputField = labeledInput.fieldView;\n\n\t\tthis._urlInputViewInfoDefault = t( 'Paste the media URL in the input.' );\n\t\tthis._urlInputViewInfoTip = t( 'Tip: Paste the URL into the content to embed faster.' );\n\n\t\tlabeledInput.label = t( 'Media URL' );\n\t\tlabeledInput.infoText = this._urlInputViewInfoDefault;\n\n\t\tinputField.on( 'input', () => {\n\t\t\t// Display the tip text only when there is some value. Otherwise fall back to the default info text.\n\t\t\tlabeledInput.infoText = inputField.element.value ? this._urlInputViewInfoTip : this._urlInputViewInfoDefault;\n\t\t\tthis.mediaURLInputValue = inputField.element.value.trim();\n\t\t} );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @private\n\t * @param {String} label The button label.\n\t * @param {String} icon The button icon.\n\t * @param {String} className The additional button CSS class name.\n\t * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n\t * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n\t */\n\t_createButton( label, icon, className, eventName ) {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: className\n\t\t\t}\n\t\t} );\n\n\t\tif ( eventName ) {\n\t\t\tbutton.delegate( 'execute' ).to( this, eventName );\n\t\t}\n\n\t\treturn button;\n\t}\n}\n\n/**\n * Fired when the form view is submitted (when one of the children triggered the submit event),\n * e.g. click on {@link #saveButtonView}.\n *\n * @event submit\n */\n\n/**\n * Fired when the form view is canceled, e.g. by a click on {@link #cancelButtonView}.\n *\n * @event cancel\n */\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaembedui\n */\n\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport MediaFormView from './ui/mediaformview';\nimport MediaEmbedEditing from './mediaembedediting';\nimport mediaIcon from '../theme/icons/media.svg';\n\n/**\n * The media embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class MediaEmbedUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ MediaEmbedEditing ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'MediaEmbedUI';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( 'mediaEmbed' );\n\t\tconst registry = editor.plugins.get( MediaEmbedEditing ).registry;\n\n\t\teditor.ui.componentFactory.add( 'mediaEmbed', locale => {\n\t\t\tconst dropdown = createDropdown( locale );\n\n\t\t\tconst mediaForm = new MediaFormView( getFormValidators( editor.t, registry ), editor.locale );\n\n\t\t\tthis._setUpDropdown( dropdown, mediaForm, command, editor );\n\t\t\tthis._setUpForm( dropdown, mediaForm, command );\n\n\t\t\treturn dropdown;\n\t\t} );\n\t}\n\n\t/**\n\t * @private\n\t * @param {module:ui/dropdown/dropdownview~DropdownView} dropdown\n\t * @param {module:ui/view~View} form\n\t * @param {module:media-embed/mediaembedcommand~MediaEmbedCommand} command\n\t */\n\t_setUpDropdown( dropdown, form, command ) {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst button = dropdown.buttonView;\n\n\t\tdropdown.bind( 'isEnabled' ).to( command );\n\t\tdropdown.panelView.children.add( form );\n\n\t\tbutton.set( {\n\t\t\tlabel: t( 'Insert media' ),\n\t\t\ticon: mediaIcon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\t// Note: Use the low priority to make sure the following listener starts working after the\n\t\t// default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n\t\t// invisible form/input cannot be focused/selected.\n\t\tbutton.on( 'open', () => {\n\t\t\tform.disableCssTransitions();\n\n\t\t\t// Make sure that each time the panel shows up, the URL field remains in sync with the value of\n\t\t\t// the command. If the user typed in the input, then canceled (`urlInputView#fieldView#value` stays\n\t\t\t// unaltered) and re-opened it without changing the value of the media command (e.g. because they\n\t\t\t// didn't change the selection), they would see the old value instead of the actual value of the\n\t\t\t// command.\n\t\t\tform.url = command.value || '';\n\t\t\tform.urlInputView.fieldView.select();\n\t\t\tform.focus();\n\t\t\tform.enableCssTransitions();\n\t\t}, { priority: 'low' } );\n\n\t\tdropdown.on( 'submit', () => {\n\t\t\tif ( form.isValid() ) {\n\t\t\t\teditor.execute( 'mediaEmbed', form.url );\n\t\t\t\tcloseUI();\n\t\t\t}\n\t\t} );\n\n\t\tdropdown.on( 'change:isOpen', () => form.resetFormStatus() );\n\t\tdropdown.on( 'cancel', () => closeUI() );\n\n\t\tfunction closeUI() {\n\t\t\teditor.editing.view.focus();\n\t\t\tdropdown.isOpen = false;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {module:ui/dropdown/dropdownview~DropdownView} dropdown\n\t * @param {module:ui/view~View} form\n\t * @param {module:media-embed/mediaembedcommand~MediaEmbedCommand} command\n\t */\n\t_setUpForm( dropdown, form, command ) {\n\t\tform.delegate( 'submit', 'cancel' ).to( dropdown );\n\t\tform.urlInputView.bind( 'value' ).to( command, 'value' );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tform.urlInputView.bind( 'isReadOnly' ).to( command, 'isEnabled', value => !value );\n\t}\n}\n\nfunction getFormValidators( t, registry ) {\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.url.length ) {\n\t\t\t\treturn t( 'The URL must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( !registry.hasMedia( form.url ) ) {\n\t\t\t\treturn t( 'This media URL is not supported.' );\n\t\t\t}\n\t\t}\n\t];\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/list\n */\n\nimport Matcher from '@ckeditor/ckeditor5-engine/src/view/matcher';\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\n\n/**\n * Transforms Word specific list-like elements to the semantic HTML lists.\n *\n * Lists in Word are represented by block elements with special attributes like:\n *\n *\t\t

          ...

          // Paragraph based list.\n *\t\t

          ...

          // Heading 1 based list.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment The view structure to be transformed.\n * @param {String} stylesString Styles from which list-like elements styling will be extracted.\n */\nexport function transformListItemLikeElementsIntoLists( documentFragment, stylesString ) {\n\tif ( !documentFragment.childCount ) {\n\t\treturn;\n\t}\n\n\tconst writer = new UpcastWriter( documentFragment.document );\n\tconst itemLikeElements = findAllItemLikeElements( documentFragment, writer );\n\n\tif ( !itemLikeElements.length ) {\n\t\treturn;\n\t}\n\n\tlet currentList = null;\n\tlet currentIndentation = 1;\n\n\titemLikeElements.forEach( ( itemLikeElement, i ) => {\n\t\tconst isDifferentList = isNewListNeeded( itemLikeElements[ i - 1 ], itemLikeElement );\n\t\tconst previousItemLikeElement = isDifferentList ? null : itemLikeElements[ i - 1 ];\n\t\tconst indentationDifference = getIndentationDifference( previousItemLikeElement, itemLikeElement );\n\n\t\tif ( isDifferentList ) {\n\t\t\tcurrentList = null;\n\t\t\tcurrentIndentation = 1;\n\t\t}\n\n\t\tif ( !currentList || indentationDifference !== 0 ) {\n\t\t\tconst listStyle = detectListStyle( itemLikeElement, stylesString );\n\n\t\t\tif ( !currentList ) {\n\t\t\t\tcurrentList = insertNewEmptyList( listStyle, itemLikeElement.element, writer );\n\t\t\t} else if ( itemLikeElement.indent > currentIndentation ) {\n\t\t\t\tconst lastListItem = currentList.getChild( currentList.childCount - 1 );\n\t\t\t\tconst lastListItemChild = lastListItem.getChild( lastListItem.childCount - 1 );\n\n\t\t\t\tcurrentList = insertNewEmptyList( listStyle, lastListItemChild, writer );\n\t\t\t\tcurrentIndentation += 1;\n\t\t\t} else if ( itemLikeElement.indent < currentIndentation ) {\n\t\t\t\tconst differentIndentation = currentIndentation - itemLikeElement.indent;\n\n\t\t\t\tcurrentList = findParentListAtLevel( currentList, differentIndentation );\n\t\t\t\tcurrentIndentation = parseInt( itemLikeElement.indent );\n\t\t\t}\n\n\t\t\tif ( itemLikeElement.indent <= currentIndentation ) {\n\t\t\t\tif ( !currentList.is( 'element', listStyle.type ) ) {\n\t\t\t\t\tcurrentList = writer.rename( listStyle.type, currentList );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst listItem = transformElementIntoListItem( itemLikeElement.element, writer );\n\n\t\twriter.appendChild( listItem, currentList );\n\t} );\n}\n\n/**\n * Removes paragraph wrapping content inside a list item.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport function unwrapParagraphInListItem( documentFragment, writer ) {\n\tfor ( const value of writer.createRangeIn( documentFragment ) ) {\n\t\tconst element = value.item;\n\n\t\tif ( element.is( 'element', 'li' ) ) {\n\t\t\t// Google Docs allows on single paragraph inside LI.\n\t\t\tconst firstChild = element.getChild( 0 );\n\n\t\t\tif ( firstChild && firstChild.is( 'element', 'p' ) ) {\n\t\t\t\twriter.unwrapElement( firstChild );\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Finds all list-like elements in a given document fragment.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// in which to look for list-like nodes.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.} Array of found list-like items. Each item is an object containing:\n//\n//\t\t* {module:engine/src/view/element~Element} element List-like element.\n//\t\t* {Number} id List item id parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} order List item creation order parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} indent List item indentation level parsed from `mso-list` style (see `getListItemData()` function).\nfunction findAllItemLikeElements( documentFragment, writer ) {\n\tconst range = writer.createRangeIn( documentFragment );\n\n\t// Matcher for finding list-like elements.\n\tconst itemLikeElementsMatcher = new Matcher( {\n\t\tname: /^p|h\\d+$/,\n\t\tstyles: {\n\t\t\t'mso-list': /.*/\n\t\t}\n\t} );\n\n\tconst itemLikeElements = [];\n\n\tfor ( const value of range ) {\n\t\tif ( value.type === 'elementStart' && itemLikeElementsMatcher.match( value.item ) ) {\n\t\t\tconst itemData = getListItemData( value.item );\n\n\t\t\titemLikeElements.push( {\n\t\t\t\telement: value.item,\n\t\t\t\tid: itemData.id,\n\t\t\t\torder: itemData.order,\n\t\t\t\tindent: itemData.indent\n\t\t\t} );\n\t\t}\n\t}\n\n\treturn itemLikeElements;\n}\n\n// Extracts list item style from the provided CSS.\n//\n// List item style is extracted from CSS stylesheet. Each list with its specific style attribute\n// value (`mso-list:l1 level1 lfo1`) has its dedicated properties in a CSS stylesheet defined with a selector like:\n//\n// \t\t@list l1:level1 { ... }\n//\n// It contains `mso-level-number-format` property which defines list numbering/bullet style. If this property\n// is not defined it means default `decimal` numbering.\n//\n// Here CSS string representation is used as `mso-level-number-format` property is an invalid CSS property\n// and will be removed during CSS parsing.\n//\n// @param {Object} listLikeItem List-like item for which list style will be searched for. Usually\n// a result of `findAllItemLikeElements()` function.\n// @param {String} stylesString CSS stylesheet.\n// @returns {Object} result\n// @returns {String} result.type List type, could be `ul` or `ol`.\n// @returns {String|null} result.style List style, for example: `decimal`, `lower-roman`, etc. It is extracted\n// directly from Word stylesheet and adjusted to represent proper values for the CSS `list-style-type` property.\n// If it cannot be adjusted, the `null` value is returned.\nfunction detectListStyle( listLikeItem, stylesString ) {\n\tconst listStyleRegexp = new RegExp( `@list l${ listLikeItem.id }:level${ listLikeItem.indent }\\\\s*({[^}]*)`, 'gi' );\n\tconst listStyleTypeRegex = /mso-level-number-format:([^;]*);/gi;\n\n\tconst listStyleMatch = listStyleRegexp.exec( stylesString );\n\n\tlet listStyleType = 'decimal'; // Decimal is default one.\n\tlet type = 'ol'; //
            is default list.\n\n\tif ( listStyleMatch && listStyleMatch[ 1 ] ) {\n\t\tconst listStyleTypeMatch = listStyleTypeRegex.exec( listStyleMatch[ 1 ] );\n\n\t\tif ( listStyleTypeMatch && listStyleTypeMatch[ 1 ] ) {\n\t\t\tlistStyleType = listStyleTypeMatch[ 1 ].trim();\n\t\t\ttype = listStyleType !== 'bullet' && listStyleType !== 'image' ? 'ol' : 'ul';\n\t\t}\n\n\t\t// Styles for the numbered lists are always defined in Word CSS stylesheet.\n\t\t// Unordered lists MAY contain a value for the Word CSS definition `mso-level-text` but sometimes\n\t\t// the tag is missing. And because of that, we cannot depend on that. We need to predict the list style value based on\n\t\t// the list style marker element.\n\t\tif ( listStyleType === 'bullet' ) {\n\t\t\tconst bulletedStyle = findBulletedListStyle( listLikeItem.element );\n\n\t\t\tif ( bulletedStyle ) {\n\t\t\t\tlistStyleType = bulletedStyle;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\ttype,\n\t\tstyle: mapListStyleDefinition( listStyleType )\n\t};\n}\n\n// Tries extract the `list-style-type` value based on the marker element for bulleted list.\n//\n// @param {module:engine/view/element~Element} element\n// @returns {module:engine/view/element~Element|null}\nfunction findBulletedListStyle( element ) {\n\tconst listMarkerElement = findListMarkerNode( element );\n\n\tif ( !listMarkerElement ) {\n\t\treturn null;\n\t}\n\n\tconst listMarker = listMarkerElement._data;\n\n\tif ( listMarker === 'o' ) {\n\t\treturn 'circle';\n\t} else if ( listMarker === '·' ) {\n\t\treturn 'disc';\n\t}\n\t// Word returns '§' instead of '■' for the square list style.\n\telse if ( listMarker === '§' ) {\n\t\treturn 'square';\n\t}\n\n\treturn null;\n}\n\n// Tries to find a text node that represents the marker element (list-style-type).\n//\n// @param {module:engine/view/element~Element} element\n// @returns {module:engine/view/text~Text|null}\nfunction findListMarkerNode( element ) {\n\t// If the first child is a text node, it is a value for the element.\n\tif ( element.getChild( 0 ).is( '$text' ) ) {\n\t\treturn null;\n\t}\n\n\tconst textNodeOrElement = element.getChild( 0 ).getChild( 0 );\n\n\tif ( textNodeOrElement.is( '$text' ) ) {\n\t\treturn textNodeOrElement;\n\t}\n\n\treturn textNodeOrElement.getChild( 0 );\n}\n\n// Parses the `list-style-type` value extracted directly from the Word CSS stylesheet and returns proper CSS definition.\n//\n// @param {String|null} value\n// @returns {String|null}\nfunction mapListStyleDefinition( value ) {\n\tswitch ( value ) {\n\t\tcase 'arabic-leading-zero':\n\t\t\treturn 'decimal-leading-zero';\n\t\tcase 'alpha-upper':\n\t\t\treturn 'upper-alpha';\n\t\tcase 'alpha-lower':\n\t\t\treturn 'lower-alpha';\n\t\tcase 'roman-upper':\n\t\t\treturn 'upper-roman';\n\t\tcase 'roman-lower':\n\t\t\treturn 'lower-roman';\n\t\tcase 'circle':\n\t\tcase 'disc':\n\t\tcase 'square':\n\t\t\treturn value;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n// Creates empty list of a given type and inserts it after a specified element.\n//\n// @param {Object} listStyle List style object which determines the type of newly created list.\n// Usually a result of `detectListStyle()` function.\n// @param {module:engine/view/element~Element} element Element after which list is inserted.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} Newly created list element.\n\nfunction insertNewEmptyList( listStyle, element, writer ) {\n\tconst parent = element.parent;\n\tconst list = writer.createElement( listStyle.type );\n\tconst position = parent.getChildIndex( element ) + 1;\n\n\twriter.insertChild( position, list, parent );\n\n\t// We do not support modifying the marker for particular list item.\n\t// Set the value for the `list-style-type` property directly to the list container.\n\tif ( listStyle.style ) {\n\t\twriter.setStyle( 'list-style-type', listStyle.style, list );\n\t}\n\n\treturn list;\n}\n\n// Transforms given element into a semantic list item. As the function operates on a provided\n// {module:engine/src/view/element~Element element} it will modify the view structure to which this element belongs.\n//\n// @param {module:engine/view/element~Element} element Element which will be transformed into list item.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} New element to which the given one was transformed. It is\n// inserted in place of the old element (the reference to the old element is lost due to renaming).\nfunction transformElementIntoListItem( element, writer ) {\n\tremoveBulletElement( element, writer );\n\n\treturn writer.rename( 'li', element );\n}\n\n// Extracts list item information from Word specific list-like element style:\n//\n//\t\t`style=\"mso-list:l1 level1 lfo1\"`\n//\n// where:\n//\n//\t\t* `l1` is a list id (however it does not mean this is a continuous list - see #43),\n//\t\t* `level1` is a list item indentation level,\n//\t\t* `lfo1` is a list insertion order in a document.\n//\n// @param {module:engine/view/element~Element} element Element from which style data is extracted.\n// @returns {Object} result\n// @returns {Number} result.id Parent list id.\n// @returns {Number} result.order List item creation order.\n// @returns {Number} result.indent List item indentation level.\nfunction getListItemData( element ) {\n\tconst data = {};\n\tconst listStyle = element.getStyle( 'mso-list' );\n\n\tif ( listStyle ) {\n\t\tconst idMatch = listStyle.match( /(^|\\s+)l(\\d+)/i );\n\t\tconst orderMatch = listStyle.match( /\\s*lfo(\\d+)/i );\n\t\tconst indentMatch = listStyle.match( /\\s*level(\\d+)/i );\n\n\t\tif ( idMatch && orderMatch && indentMatch ) {\n\t\t\tdata.id = idMatch[ 2 ];\n\t\t\tdata.order = orderMatch[ 1 ];\n\t\t\tdata.indent = indentMatch[ 1 ];\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// Removes span with a numbering/bullet from a given element.\n//\n// @param {module:engine/view/element~Element} element\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\nfunction removeBulletElement( element, writer ) {\n\t// Matcher for finding `span` elements holding lists numbering/bullets.\n\tconst bulletMatcher = new Matcher( {\n\t\tname: 'span',\n\t\tstyles: {\n\t\t\t'mso-list': 'Ignore'\n\t\t}\n\t} );\n\n\tconst range = writer.createRangeIn( element );\n\n\tfor ( const value of range ) {\n\t\tif ( value.type === 'elementStart' && bulletMatcher.match( value.item ) ) {\n\t\t\twriter.remove( value.item );\n\t\t}\n\t}\n}\n\n// Whether previous and current item belongs to the same list. It is determined based on `item.id`\n// (extracted from `mso-list` style, see #getListItemData) and previous sibling of the current item.\n//\n// However, it's quite easy to change the `id` attribute for nested lists in Word. It will break the list feature while pasting.\n// Let's check also the `indent` attribute. If between those two elements, the difference is equal to 1, we can assume that\n// the `currentItem` is a beginning of the nested list because lists in CKEditor 5 always starts with the `indent=0` attribute.\n// See: https://github.com/ckeditor/ckeditor5/issues/7805.\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Boolean}\nfunction isNewListNeeded( previousItem, currentItem ) {\n\tif ( !previousItem ) {\n\t\treturn true;\n\t}\n\n\tif ( previousItem.id !== currentItem.id ) {\n\t\t// See: https://github.com/ckeditor/ckeditor5/issues/7805.\n\t\t//\n\t\t// * List item 1.\n\t\t// - Nested list item 1.\n\t\tif ( currentItem.indent - previousItem.indent === 1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tconst previousSibling = currentItem.element.previousSibling;\n\n\tif ( !previousSibling ) {\n\t\treturn true;\n\t}\n\n\t// Even with the same id the list does not have to be continuous (#43).\n\treturn !isList( previousSibling );\n}\n\nfunction isList( element ) {\n\treturn element.is( 'element', 'ol' ) || element.is( 'element', 'ul' );\n}\n\n// Calculates the indentation difference between two given list items (based on indent attribute\n// extracted from `mso-list` style, see #getListItemData).\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Number}\nfunction getIndentationDifference( previousItem, currentItem ) {\n\treturn previousItem ? currentItem.indent - previousItem.indent : currentItem.indent - 1;\n}\n\n// Finds parent list element (ul/ol) of a given list element with indentation level lower by a given value.\n//\n// @param {module:engine/view/element~Element} listElement List element from which to start looking for a parent list.\n// @param {Number} indentationDifference Indentation difference between lists.\n// @returns {module:engine/view/element~Element} Found list element with indentation level lower by a given value.\nfunction findParentListAtLevel( listElement, indentationDifference ) {\n\tconst ancestors = listElement.getAncestors( { parentFirst: true } );\n\n\tlet parentList = null;\n\tlet levelChange = 0;\n\n\tfor ( const ancestor of ancestors ) {\n\t\tif ( ancestor.name === 'ul' || ancestor.name === 'ol' ) {\n\t\t\tlevelChange++;\n\t\t}\n\n\t\tif ( levelChange === indentationDifference ) {\n\t\t\tparentList = ancestor;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parentList;\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/googledocsnormalizer\n */\n\nimport removeBoldWrapper from '../filters/removeboldwrapper';\nimport { unwrapParagraphInListItem } from '../filters/list';\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\n\nconst googleDocsMatch = /id=(\"|')docs-internal-guid-[-0-9a-f]+(\"|')/i;\n\n/**\n * Normalizer for the content pasted from Google Docs.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\nexport default class GoogleDocsNormalizer {\n\t/**\n\t * Creates a new `GoogleDocsNormalizer` instance.\n\t *\n\t * @param {module:engine/view/document~Document} document View document.\n\t */\n\tconstructor( document ) {\n\t\t/**\n\t\t * @readonly\n\t\t * @type {module:engine/view/document~Document}\n\t\t */\n\t\tthis.document = document;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tisActive( htmlString ) {\n\t\treturn googleDocsMatch.test( htmlString );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\texecute( data ) {\n\t\tconst writer = new UpcastWriter( this.document );\n\n\t\tremoveBoldWrapper( data.content, writer );\n\t\tunwrapParagraphInListItem( data.content, writer );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/removeboldwrapper\n */\n\n/**\n * Removes `` tag wrapper added by Google Docs to a copied content.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment element `data.content` obtained from clipboard\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport default function removeBoldWrapper( documentFragment, writer ) {\n\tfor ( const child of documentFragment.getChildren() ) {\n\t\tif ( child.is( 'element', 'b' ) && child.getStyle( 'font-weight' ) === 'normal' ) {\n\t\t\tconst childIndex = documentFragment.getChildIndex( child );\n\n\t\t\twriter.remove( child );\n\t\t\twriter.insertChild( childIndex, child.getChildren(), documentFragment );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/space\n */\n\n/**\n * Replaces last space preceding elements closing tag with ` `. Such operation prevents spaces from being removed\n * during further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n * This method also takes into account Word specific `` empty tags.\n * Additionally multiline sequences of spaces and new lines between tags are removed (see #39 and #40).\n *\n * @param {String} htmlString HTML string in which spacing should be normalized.\n * @returns {String} Input HTML with spaces normalized.\n */\nexport function normalizeSpacing( htmlString ) {\n\t// Run normalizeSafariSpaceSpans() two times to cover nested spans.\n\treturn normalizeSafariSpaceSpans( normalizeSafariSpaceSpans( htmlString ) )\n\t\t// Remove all \\r\\n from \"spacerun spans\" so the last replace line doesn't strip all whitespaces.\n\t\t.replace( /([\\s]*?)[\\r\\n]+(\\s*<\\/span>)/g, '$1$2' )\n\t\t.replace( /<\\/span>/g, '' )\n\t\t.replace( / <\\//g, '\\u00A0<\\/o:p>/g, '\\u00A0' )\n\t\t// Remove block filler from empty paragraph. Safari uses \\u00A0 instead of  .\n\t\t.replace( /( |\\u00A0)<\\/o:p>/g, '' )\n\t\t// Remove all whitespaces when they contain any \\r or \\n.\n\t\t.replace( />(\\s*[\\r\\n]\\s*)<' );\n}\n\n/**\n * Normalizes spacing in special Word `spacerun spans` (`\\s+`) by replacing\n * all spaces with `  ` pairs. This prevents spaces from being removed during further DOM/View processing\n * (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n *\n * @param {Document} htmlDocument Native `Document` object in which spacing should be normalized.\n */\nexport function normalizeSpacerunSpans( htmlDocument ) {\n\thtmlDocument.querySelectorAll( 'span[style*=spacerun]' ).forEach( el => {\n\t\tconst innerTextLength = el.innerText.length || 0;\n\n\t\tel.innerHTML = Array( innerTextLength + 1 ).join( '\\u00A0 ' ).substr( 0, innerTextLength );\n\t} );\n}\n\n// Normalizes specific spacing generated by Safari when content pasted from Word (` `)\n// by replacing all spaces sequences longer than 1 space with `  ` pairs. This prevents spaces from being removed during\n// further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n//\n// This function is similar to {@link module:clipboard/utils/normalizeclipboarddata normalizeClipboardData util} but uses\n// regular spaces /   sequence for replacement.\n//\n// @param {String} htmlString HTML string in which spacing should be normalized\n// @returns {String} Input HTML with spaces normalized.\nfunction normalizeSafariSpaceSpans( htmlString ) {\n\treturn htmlString.replace( /(\\s+)<\\/span>/g, ( fullMatch, spaces ) => {\n\t\treturn spaces.length === 1 ? ' ' : Array( spaces.length + 1 ).join( '\\u00A0 ' ).substr( 0, spaces.length );\n\t} );\n}\n","/**\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/parse\n */\n\n/* globals DOMParser */\n\nimport DomConverter from '@ckeditor/ckeditor5-engine/src/view/domconverter';\nimport ViewDocument from '@ckeditor/ckeditor5-engine/src/view/document';\n\nimport { normalizeSpacing, normalizeSpacerunSpans } from './space';\n\n/**\n * Parses provided HTML extracting contents of `` and ` {% endblock %} -{% block js %} - -{% endblock %} \ No newline at end of file diff --git a/webpack.mix.js b/webpack.mix.js index 68b8be93b..3316fdc67 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -13,6 +13,7 @@ mix .sass(`${assetsPath}scss/pages/toastify.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/dripicons.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/sweetalert2.scss`, "assets/css/pages") + .sass(`${assetsPath}scss/pages/fontawesome.scss`, "assets/css/pages") .sass(`${assetsPath}scss/pages/choices.scss`, "assets/css/pages") .sass(`${assetsPath}scss/widgets/chat.scss`, "assets/css/widgets") .sass(`${assetsPath}scss/widgets/todo.scss`, "assets/css/widgets") From 3edf219e92f2f4588baf518e3ee0312af37c375a Mon Sep 17 00:00:00 2001 From: NikB Date: Fri, 18 Mar 2022 22:23:06 +0100 Subject: [PATCH 16/83] Move iconly into assets folder --- src/assets/fonts/Iconly---Bold.eot | Bin 0 -> 24672 bytes src/assets/fonts/Iconly---Bold.svg | 19 ++ src/assets/fonts/Iconly---Bold.ttf | Bin 0 -> 24484 bytes src/assets/fonts/Iconly---Bold.woff | Bin 0 -> 24560 bytes src/assets/scss/iconly.scss | 327 ++++++++++++++++++++++++++++ src/index.html | 2 +- webpack.mix.js | 1 + 7 files changed, 348 insertions(+), 1 deletion(-) create mode 100644 src/assets/fonts/Iconly---Bold.eot create mode 100644 src/assets/fonts/Iconly---Bold.svg create mode 100644 src/assets/fonts/Iconly---Bold.ttf create mode 100644 src/assets/fonts/Iconly---Bold.woff create mode 100644 src/assets/scss/iconly.scss diff --git a/src/assets/fonts/Iconly---Bold.eot b/src/assets/fonts/Iconly---Bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..6e73b7114ca9c98f42a9ddc38a98e29764279f26 GIT binary patch literal 24672 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

            1wTu8Wdra0eb6iW@w)J` zR}Khyw$&?}g2bNn%0Z#XUV!99;yy;9Vz-oAX1Evqc)KVB#mBv}B&5Y5uPmedoL5$a zxES%uD%$V%%DNC|ZC=^H4)|a7%6^_z={`RoOt8aVyNNM0o*5M8*&psYdExxot35qE z(-+R3y7hb1PhYum@$zV2--Bni_MTt9(s%L90~by$Up}*P9!qlte;4sK^-(BOeE`oH zgwA^LHuhz-_uUF^&Jjq5AIdG|*PJ%zc;mzU39IkR-Oa0cVJY|LLcf2FXp ze17@T(v{^?g%ei`=(^{^h4Z}|hE~A)bPC9GyNthO{LmHr#1h`NP{6nQBKXUA*Z4et zx%(BguJB&;%J(JoUB*xf!U?=8zTiD|4|>w;<9qk)I)F6dUBZFeFu%gAJHgw$2^8QH zUYkM#Ag3;!IdS5|+2!7o7tU=4l~effGx$;ZJB!Ek@`0YaIegZJ(fE}M7njdpzVP6s zlgqsqF0J&PJ#!NE<;#84@p|}Q0K^F>mocRW@vA5KuU$ZC1;2KdgUG#3lj(EkduaL6 r02CVIo literal 0 HcmV?d00001 diff --git a/src/assets/fonts/Iconly---Bold.svg b/src/assets/fonts/Iconly---Bold.svg new file mode 100644 index 000000000..7c9c0bb2a --- /dev/null +++ b/src/assets/fonts/Iconly---Bold.svg @@ -0,0 +1,19 @@ + +{ + "fontFamily": "Iconly---Bold", + "majorVersion": 2, + "minorVersion": 0, + "fontURL": "https://ui8.net/piqodesign", + "description": "Iconly - Essential icons\nFont generated by IcoMoon.", + "copyright": "MIT", + "designer": "Piqo Design", + "designerURL": "https://dribbble.com/piqodesign", + "license": "MIT", + "licenseURL": "https://opensource.org/licenses/MIT", + "version": "Version 2.0", + "fontId": "Iconly---Bold", + "psName": "Iconly---Bold", + "subFamily": "Regular", + "fullName": "Iconly---Bold" +} + \ No newline at end of file diff --git a/src/assets/fonts/Iconly---Bold.ttf b/src/assets/fonts/Iconly---Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..78bbd65b8040315ee00ef4b938d43861b8f22c0e GIT binary patch literal 24484 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 literal 0 HcmV?d00001 diff --git a/src/assets/scss/iconly.scss b/src/assets/scss/iconly.scss new file mode 100644 index 000000000..670c7de1d --- /dev/null +++ b/src/assets/scss/iconly.scss @@ -0,0 +1,327 @@ +@font-face { + font-family: 'Iconly---Bold'; + src: url('../fonts/Iconly---Bold.eot?jilz72'); + src: url('../fonts/Iconly---Bold.eot?jilz72#iefix') format('embedded-opentype'), + url('../fonts/Iconly---Bold.ttf?jilz72') format('truetype'), + url('../fonts/Iconly---Bold.woff?jilz72') format('woff'), + url('../fonts/Iconly---Bold.svg?jilz72#Iconly---Bold') format('svg'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +[class^="iconly-bold"], [class*=" iconly-bold"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'Iconly---Bold' !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.iconly-boldActivity:before { + content: "\e900"; +} +.iconly-boldUser:before { + content: "\e901"; +} +.iconly-boldUser1:before { + content: "\e902"; +} +.iconly-boldAdd-User:before { + content: "\e903"; +} +.iconly-boldArrow---Down-2:before { + content: "\e904"; +} +.iconly-boldArrow---Down-3:before { + content: "\e905"; +} +.iconly-boldArrow---Down-Circle:before { + content: "\e906"; +} +.iconly-boldArrow---Down-Square:before { + content: "\e907"; +} +.iconly-boldArrow---Down:before { + content: "\e908"; +} +.iconly-boldArrow---Left-2:before { + content: "\e909"; +} +.iconly-boldArrow---Left-3:before { + content: "\e90a"; +} +.iconly-boldArrow---Left-Circle:before { + content: "\e90b"; +} +.iconly-boldArrow---Left-Square:before { + content: "\e90c"; +} +.iconly-boldArrow---Left:before { + content: "\e90d"; +} +.iconly-boldArrow---Right-2:before { + content: "\e90e"; +} +.iconly-boldArrow---Right-3:before { + content: "\e90f"; +} +.iconly-boldArrow---Right-Circle:before { + content: "\e910"; +} +.iconly-boldArrow---Right-Square:before { + content: "\e911"; +} +.iconly-boldArrow---Right:before { + content: "\e912"; +} +.iconly-boldArrow---Up-2:before { + content: "\e913"; +} +.iconly-boldArrow---Up-3:before { + content: "\e914"; +} +.iconly-boldArrow---Up-Circle:before { + content: "\e915"; +} +.iconly-boldArrow---Up-Square:before { + content: "\e916"; +} +.iconly-boldArrow---Up:before { + content: "\e917"; +} +.iconly-boldBag-2:before { + content: "\e918"; +} +.iconly-boldBag:before { + content: "\e919"; +} +.iconly-boldBookmark:before { + content: "\e91a"; +} +.iconly-boldBuy:before { + content: "\e91b"; +} +.iconly-boldCalendar:before { + content: "\e91c"; +} +.iconly-boldCall-Missed:before { + content: "\e91d"; +} +.iconly-boldCall-Silent:before { + content: "\e91e"; +} +.iconly-boldCall:before { + content: "\e91f"; +} +.iconly-boldCalling:before { + content: "\e920"; +} +.iconly-boldCamera:before { + content: "\e921"; +} +.iconly-boldCategory:before { + content: "\e922"; +} +.iconly-boldChart:before { + content: "\e923"; +} +.iconly-boldChat:before { + content: "\e924"; +} +.iconly-boldClose-Square:before { + content: "\e925"; +} +.iconly-boldDanger:before { + content: "\e926"; +} +.iconly-boldDelete:before { + content: "\e927"; +} +.iconly-boldDiscount:before { + content: "\e928"; +} +.iconly-boldDiscovery:before { + content: "\e929"; +} +.iconly-boldDocument:before { + content: "\e92a"; +} +.iconly-boldDownload:before { + content: "\e92b"; +} +.iconly-boldEdit-Square:before { + content: "\e92c"; +} +.iconly-boldEdit:before { + content: "\e92d"; +} +.iconly-boldFilter-2:before { + content: "\e92e"; +} +.iconly-boldFilter:before { + content: "\e92f"; +} +.iconly-boldFolder:before { + content: "\e930"; +} +.iconly-boldGame:before { + content: "\e931"; +} +.iconly-boldGraph:before { + content: "\e932"; +} +.iconly-boldHeart:before { + content: "\e933"; +} +.iconly-boldHide:before { + content: "\e934"; +} +.iconly-boldHome:before { + content: "\e935"; +} +.iconly-boldImage-2:before { + content: "\e936"; +} +.iconly-boldImage:before { + content: "\e937"; +} +.iconly-boldInfo-Circle:before { + content: "\e938"; +} +.iconly-boldInfo-Square:before { + content: "\e939"; +} +.iconly-boldLocation:before { + content: "\e93a"; +} +.iconly-boldLock:before { + content: "\e93b"; +} +.iconly-boldLogin:before { + content: "\e93c"; +} +.iconly-boldLogout:before { + content: "\e93d"; +} +.iconly-boldMessage:before { + content: "\e93e"; +} +.iconly-boldMore-Circle:before { + content: "\e93f"; +} +.iconly-boldMore-Square:before { + content: "\e940"; +} +.iconly-boldNotification:before { + content: "\e941"; +} +.iconly-boldPaper-Download:before { + content: "\e942"; +} +.iconly-boldPaper-Fail:before { + content: "\e943"; +} +.iconly-boldPaper-Negative:before { + content: "\e944"; +} +.iconly-boldPaper-Plus:before { + content: "\e945"; +} +.iconly-boldPaper-Upload:before { + content: "\e946"; +} +.iconly-boldPaper:before { + content: "\e947"; +} +.iconly-boldPassword:before { + content: "\e948"; +} +.iconly-boldPlay:before { + content: "\e949"; +} +.iconly-boldPlus:before { + content: "\e94a"; +} +.iconly-boldProfile:before { + content: "\e94b"; +} +.iconly-boldScan:before { + content: "\e94c"; +} +.iconly-boldSearch:before { + content: "\e94d"; +} +.iconly-boldSend:before { + content: "\e94e"; +} +.iconly-boldSetting:before { + content: "\e94f"; +} +.iconly-boldShield-Done:before { + content: "\e950"; +} +.iconly-boldShield-Fail:before { + content: "\e951"; +} +.iconly-boldShow:before { + content: "\e952"; +} +.iconly-boldStar:before { + content: "\e953"; +} +.iconly-boldSwap:before { + content: "\e954"; +} +.iconly-boldTick-Square:before { + content: "\e955"; +} +.iconly-boldTicket-Star:before { + content: "\e956"; +} +.iconly-boldTicket:before { + content: "\e957"; +} +.iconly-boldTime-Circle:before { + content: "\e958"; +} +.iconly-boldTime-Square:before { + content: "\e959"; +} +.iconly-boldUnlock:before { + content: "\e95a"; +} +.iconly-boldUpload:before { + content: "\e95b"; +} +.iconly-boldVideo:before { + content: "\e95c"; +} +.iconly-boldVoice-2:before { + content: "\e95d"; +} +.iconly-boldVoice:before { + content: "\e95e"; +} +.iconly-boldVolume-Down:before { + content: "\e95f"; +} +.iconly-boldVolume-Off:before { + content: "\e960"; +} +.iconly-boldVolume-Up:before { + content: "\e961"; +} +.iconly-boldWallet:before { + content: "\e962"; +} +.iconly-boldWork:before { + content: "\e963"; +} \ No newline at end of file diff --git a/src/index.html b/src/index.html index c250884a1..46d7ee0f5 100644 --- a/src/index.html +++ b/src/index.html @@ -4,7 +4,7 @@ {% extends 'layouts/master.html' %} {% block styles %} - + {% endblock %} {% block content %} diff --git a/webpack.mix.js b/webpack.mix.js index 3316fdc67..ff9ea111f 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -17,6 +17,7 @@ mix .sass(`${assetsPath}scss/pages/choices.scss`, "assets/css/pages") .sass(`${assetsPath}scss/widgets/chat.scss`, "assets/css/widgets") .sass(`${assetsPath}scss/widgets/todo.scss`, "assets/css/widgets") + .sass(`${assetsPath}scss/iconly.scss`, "assets/css") .js(`${assetsPath}js/mazer.js`, "assets/js") .js(`${assetsPath}js/extensions/toastify.js`, "assets/js/extensions") .js(`${assetsPath}js/extensions/sweetalert2.js`, "assets/js/extensions") From edac5f9c3810ad256ecf9ff02d6aabfc4c10e61a Mon Sep 17 00:00:00 2001 From: NikB Date: Sun, 20 Mar 2022 11:22:34 +0100 Subject: [PATCH 17/83] Load datatables from npm --- package.json | 2 + src/assets/js/extensions/datatables.js | 196 +++++++++++++++++++++++++ src/assets/scss/pages/datatables.scss | 8 + src/table-datatable-jquery.html | 21 +-- webpack.mix.js | 2 + 5 files changed, 211 insertions(+), 18 deletions(-) create mode 100644 src/assets/js/extensions/datatables.js create mode 100644 src/assets/scss/pages/datatables.scss diff --git a/package.json b/package.json index 285b3dca1..36f1fb1d5 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,8 @@ "bootstrap-icons": "^1.8.1", "browser-sync": "^2.27.3", "browser-sync-webpack-plugin": "^2.0.1", + "datatables.net-bs5": "^1.11.2", + "jquery": "^3.5.1", "laravel-mix-nunjucks": "^1.1.0", "laravel-mix-purgecss": "^6.0.0", "postcss": "^8.3.5", diff --git a/src/assets/js/extensions/datatables.js b/src/assets/js/extensions/datatables.js new file mode 100644 index 000000000..9b03169f5 --- /dev/null +++ b/src/assets/js/extensions/datatables.js @@ -0,0 +1,196 @@ + +let $ = require( 'jquery' ); +require( 'datatables.net' ); + + +/*! DataTables Bootstrap 5 integration + * 2020 SpryMedia Ltd - datatables.net/license + */ + +/** + * DataTables integration for Bootstrap 4. This requires Bootstrap 5 and + * DataTables 1.10 or newer. + * + * This file sets the defaults and adds options to DataTables to style its + * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap + * for further information. + * + * Customized for Mazer theme + */ + (function( factory ){ + if ( typeof define === 'function' && define.amd ) { + // AMD + define( ['jquery', 'datatables.net'], function ( $ ) { + return factory( $, window, document ); + } ); + } + else if ( typeof exports === 'object' ) { + // CommonJS + module.exports = function (root, $) { + if ( ! root ) { + root = window; + } + + if ( ! $ || ! $.fn.dataTable ) { + // Require DataTables, which attaches to jQuery, including + // jQuery if needed and have a $ property so we can access the + // jQuery object that is used + $ = require('datatables.net')(root, $).$; + } + + return factory( $, root, root.document ); + }; + } + else { + // Browser + factory( jQuery, window, document ); + } +}(function( $, window, document, undefined ) { +'use strict'; +var DataTable = $.fn.dataTable; + + +/* Set the defaults for DataTables initialisation */ +$.extend( true, DataTable.defaults, { + dom: + "<'row mb-3'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" + + "<'row mb-3'<'col-sm-12'tr>>" + + "<'row mb-3'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", + renderer: 'bootstrap' +} ); + + +/* Default class modification */ +$.extend( DataTable.ext.classes, { + sWrapper: "dataTables_wrapper dt-bootstrap5", + sFilterInput: "form-control form-control-sm rounded-pill px-3 py-2", + sLengthSelect: "form-select form-select-sm rounded-pill px-4 py-2", + sProcessing: "dataTables_processing card", + sPageButton: "paginate_button page-item" +} ); + + +/* Bootstrap paging button renderer */ +DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) { + var api = new DataTable.Api( settings ); + var classes = settings.oClasses; + var lang = settings.oLanguage.oPaginate; + var aria = settings.oLanguage.oAria.paginate || {}; + var btnDisplay, btnClass, counter=0; + + var attach = function( container, buttons ) { + var i, ien, node, button; + var clickHandler = function ( e ) { + e.preventDefault(); + if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) { + api.page( e.data.action ).draw( 'page' ); + } + }; + + for ( i=0, ien=buttons.length ; i 0 ? + '' : ' disabled'); + break; + + case 'previous': + // btnDisplay = lang.sPrevious; + btnDisplay = `

            `; + btnClass = button + (page > 0 ? + '' : ' disabled'); + break; + + case 'next': + // btnDisplay = lang.sNext; + btnDisplay = `
            `; + btnClass = button + (page < pages-1 ? + '' : ' disabled'); + break; + + case 'last': + btnDisplay = lang.sLast; + btnClass = button + (page < pages-1 ? + '' : ' disabled'); + break; + + default: + btnDisplay = button + 1; + btnClass = page === button ? + 'active' : ''; + break; + } + + if ( btnDisplay ) { + let classDefault = { + 'href': '#', + 'aria-controls': settings.sTableId, + 'aria-label': aria[ button ], + 'data-dt-idx': counter, + 'tabindex': settings.iTabIndex, + 'class': 'page-link rounded-circle d-inline-block ms-1', + } + node = $('
          1. ', { + 'class': classes.sPageButton+' '+btnClass, + 'id': idx === 0 && typeof button === 'string' ? + settings.sTableId +'_'+ button : + null + } ) + .append( $('', classDefault ) + .html( btnDisplay ) + ) + .appendTo( container ); + + settings.oApi._fnBindAction( + node, {action: button}, clickHandler + ); + + counter++; + } + } + } + }; + + // IE9 throws an 'unknown error' if document.activeElement is used + // inside an iframe or frame. + var activeEl; + + try { + // Because this approach is destroying and recreating the paging + // elements, focus is lost on the select button which is bad for + // accessibility. So we want to restore focus once the draw has + // completed + activeEl = $(host).find(document.activeElement).data('dt-idx'); + } + catch (e) {} + + attach( + $(host).empty().html(' @@ -1149,26 +1151,26 @@

          abc