From 6db8f35c43fe778eb1e37898be7779ec503cce46 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Wed, 18 Jan 2023 16:21:30 +0100 Subject: [PATCH] MDL-77277 theme_boost: import Bootstrap v4.6.2 --- .../hugo/dist/css/docs.css.map | 18 +- theme/boost/amd/build/bootstrap/alert.min.js | 2 +- .../amd/build/bootstrap/alert.min.js.map | 2 +- theme/boost/amd/build/bootstrap/button.min.js | 2 +- .../amd/build/bootstrap/button.min.js.map | 2 +- .../boost/amd/build/bootstrap/carousel.min.js | 2 +- .../amd/build/bootstrap/carousel.min.js.map | 2 +- .../boost/amd/build/bootstrap/collapse.min.js | 2 +- .../amd/build/bootstrap/collapse.min.js.map | 2 +- .../boost/amd/build/bootstrap/dropdown.min.js | 2 +- .../amd/build/bootstrap/dropdown.min.js.map | 2 +- theme/boost/amd/build/bootstrap/modal.min.js | 2 +- .../amd/build/bootstrap/modal.min.js.map | 2 +- .../boost/amd/build/bootstrap/popover.min.js | 2 +- .../amd/build/bootstrap/popover.min.js.map | 2 +- .../amd/build/bootstrap/scrollspy.min.js | 2 +- .../amd/build/bootstrap/scrollspy.min.js.map | 2 +- theme/boost/amd/build/bootstrap/tab.min.js | 2 +- .../boost/amd/build/bootstrap/tab.min.js.map | 2 +- theme/boost/amd/build/bootstrap/toast.min.js | 2 +- .../amd/build/bootstrap/toast.min.js.map | 2 +- .../build/bootstrap/tools/sanitizer.min.js | 2 +- .../bootstrap/tools/sanitizer.min.js.map | 2 +- .../boost/amd/build/bootstrap/tooltip.min.js | 2 +- .../amd/build/bootstrap/tooltip.min.js.map | 2 +- .../boost/amd/build/bootstrap/util.min.js.map | 2 +- theme/boost/amd/src/bootstrap/alert.js | 28 +- theme/boost/amd/src/bootstrap/button.js | 29 +- theme/boost/amd/src/bootstrap/carousel.js | 81 ++--- theme/boost/amd/src/bootstrap/collapse.js | 52 ++- theme/boost/amd/src/bootstrap/dropdown.js | 43 +-- theme/boost/amd/src/bootstrap/modal.js | 72 ++-- theme/boost/amd/src/bootstrap/popover.js | 28 +- theme/boost/amd/src/bootstrap/scrollspy.js | 52 ++- theme/boost/amd/src/bootstrap/tab.js | 42 +-- theme/boost/amd/src/bootstrap/toast.js | 38 +- .../amd/src/bootstrap/tools/sanitizer.js | 13 +- theme/boost/amd/src/bootstrap/tooltip.js | 90 ++--- theme/boost/amd/src/bootstrap/util.js | 9 +- theme/boost/amd/src/index.js | 41 +-- theme/boost/readme_moodle.txt | 4 +- theme/boost/scss/bootstrap/_card.scss | 10 +- theme/boost/scss/bootstrap/_carousel.scss | 7 +- theme/boost/scss/bootstrap/_custom-forms.scss | 16 +- theme/boost/scss/bootstrap/_forms.scss | 20 +- theme/boost/scss/bootstrap/_functions.scss | 48 ++- theme/boost/scss/bootstrap/_images.scss | 2 +- theme/boost/scss/bootstrap/_input-group.scss | 3 + theme/boost/scss/bootstrap/_jumbotron.scss | 2 +- theme/boost/scss/bootstrap/_modal.scss | 4 +- theme/boost/scss/bootstrap/_nav.scss | 5 + theme/boost/scss/bootstrap/_popover.scss | 18 +- theme/boost/scss/bootstrap/_print.scss | 9 - theme/boost/scss/bootstrap/_spinners.scss | 8 +- theme/boost/scss/bootstrap/_tooltip.scss | 8 +- theme/boost/scss/bootstrap/_transitions.scss | 6 + theme/boost/scss/bootstrap/_variables.scss | 25 +- .../boost/scss/bootstrap/bootstrap-grid.scss | 6 +- .../scss/bootstrap/bootstrap-reboot.scss | 6 +- theme/boost/scss/bootstrap/bootstrap.scss | 6 +- theme/boost/scss/bootstrap/mixins/_forms.scss | 16 +- .../bootstrap/mixins/_grid-framework.scss | 4 +- theme/boost/scss/bootstrap/mixins/_grid.scss | 22 +- .../scss/bootstrap/mixins/_reset-text.scss | 2 +- .../scss/bootstrap/mixins/_screen-reader.scss | 2 +- .../scss/bootstrap/utilities/_embed.scss | 2 +- .../scss/bootstrap/utilities/_spacing.scss | 2 +- theme/boost/scss/bootstrap/vendor/_rfs.scss | 228 ++++++------ theme/boost/style/moodle.css | 330 ++++++++++-------- theme/boost/thirdpartylibs.xml | 30 +- theme/classic/style/moodle.css | 330 ++++++++++-------- 71 files changed, 939 insertions(+), 928 deletions(-) diff --git a/admin/tool/componentlibrary/hugo/dist/css/docs.css.map b/admin/tool/componentlibrary/hugo/dist/css/docs.css.map index a42db447632f5..449e8e1f5eced 100644 --- a/admin/tool/componentlibrary/hugo/dist/css/docs.css.map +++ b/admin/tool/componentlibrary/hugo/dist/css/docs.css.map @@ -55,19 +55,19 @@ ], "sourcesContent": [ "/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License.\n * For details, see https://creativecommons.org/licenses/by/3.0/.\n */\n\n// Load Bootstrap variables and mixins\n\n@import \"theme/boost/scss/bootstrap/functions\";\n@import \"theme/boost/scss/bootstrap/variables\";\n@import \"theme/boost/scss/bootstrap/mixins\";\n\n// Load docs components\n@import \"variables\";\n@import \"content\";\n@import \"skippy\";\n@import \"sidebar\";\n@import \"toc\";\n@import \"footer\";\n@import \"component-examples\";\n@import \"callouts\";\n@import \"colors\";\n@import \"clipboard-js\";\n@import \"placeholder-img\";\n\n// Load docs dependencies\n@import \"syntax\";\n@import \"anchor\";\n\n// Accessibility\n@import \"componentlibrary\";\n", - "// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n @if length($map) > 0 {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n // Do not escape the url brackets\n @if str-index($string, \"url(\") == 1 {\n $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n } @else {\n $string: str-replace($string, $char, $encoded);\n }\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n", - "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"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;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n$table-th-font-weight: null !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$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;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-nav-scroll-max-height: 75vh !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-200 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-500 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$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`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n", + "// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n @if length($map) > 0 {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n // Do not escape the url brackets\n @if str-index($string, \"url(\") == 1 {\n $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n } @else {\n $string: str-replace($string, $char, $encoded);\n }\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @if type-of($value2) != number {\n $value2: unquote(\"(\") + $value2 + unquote(\")\");\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n", + "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"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;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n$table-th-font-weight: null !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$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;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer * .5 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-nav-scroll-max-height: 75vh !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-200 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-500 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width * .5 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$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`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n", "// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Vendor\n@import \"vendor/rfs\";\n\n// Deprecate\n@import \"mixins/deprecate\";\n\n// Utilities\n@import \"mixins/breakpoints\";\n@import \"mixins/hover\";\n@import \"mixins/image\";\n@import \"mixins/badge\";\n@import \"mixins/resize\";\n@import \"mixins/screen-reader\";\n@import \"mixins/size\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-emphasis\";\n@import \"mixins/text-hide\";\n@import \"mixins/text-truncate\";\n@import \"mixins/visibility\";\n\n// Components\n@import \"mixins/alert\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/nav-divider\";\n@import \"mixins/forms\";\n@import \"mixins/table-row\";\n\n// Skins\n@import \"mixins/background-variant\";\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n@import \"mixins/float\";\n", - "// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n", + "// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive font sizes\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize font size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-disable-class {\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity, which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-enable-class {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query($mq-value) {\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @content;\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @content;\n }\n }\n}\n\n// Responsive font size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Remove unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: divide($fs, $fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));\n }\n\n // Set default font size\n $rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);\n\n // Only add the media query if the font size is bigger than the minimum font size\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n @else {\n // Calculate the minimum font size for $fs\n $fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);\n\n // Calculate difference between $fs and the minimum font size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n $min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Set the calculated font-size\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n\n // Breakpoint formatting\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n\n @include _rfs-disable-class {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n\n @include _rfs-media-query($mq-value) {\n @include _rfs-enable-class {\n font-size: $rfs-fluid;\n }\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n", "// Deprecate mixin\n//\n// This mixin can be used to deprecate mixins or functions.\n// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to\n// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)\n@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {\n @if ($enable-deprecation-messages != false and $ignore-warning != true) {\n @warn \"#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.\";\n }\n}\n", "// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n", "// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n", "// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n", "@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus() {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n", "// Resize anything\n\n@mixin resizable($direction) {\n overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n resize: $direction; // Options: horizontal, vertical, both\n}\n", - "// Only display content to screen readers\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n", + "// Only display content to screen readers\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n", "// Sizing shortcuts\n\n@mixin size($width, $height: $width) {\n width: $width;\n height: $height;\n @include deprecate(\"`size()`\", \"v4.3.0\", \"v5\");\n}\n", - "@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n", + "@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n}\n", "// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus() {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n", "// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n", "// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n", @@ -79,7 +79,7 @@ "// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n", "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus() {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n", "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n", - "// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n\n // See https://github.com/twbs/bootstrap/pull/31557\n // Align tooltip to form elements\n .form-row > .col > &,\n .form-row > [class*=\"col-\"] > & {\n left: $form-grid-gutter-width / 2;\n }\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n", + "// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n\n // See https://github.com/twbs/bootstrap/pull/31557\n // Align tooltip to form elements\n .form-row > .col > &,\n .form-row > [class*=\"col-\"] > & {\n left: $form-grid-gutter-width * .5;\n }\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner !important; // stylelint-disable-line declaration-no-important\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n select.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-padding-x * 4 !important; // stylelint-disable-line declaration-no-important\n background-position: right $input-padding-x * 2 center;\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right !important; // stylelint-disable-line declaration-no-important\n background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n", "// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n", "// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus() {\n background-color: darken($color, 10%) !important;\n }\n }\n @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n", "// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n", @@ -87,8 +87,8 @@ "// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n", "// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n", "@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n", - "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n", - "/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n", + "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n", + "/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter * .5;\n margin-left: -$gutter * .5;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage(divide($size, $columns));\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage(divide($size, $columns));\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 divide(100%, $count);\n max-width: divide(100%, $count);\n }\n}\n", "// stylelint-disable declaration-no-important\n\n@mixin float-left() {\n float: left !important;\n @include deprecate(\"The `float-left` mixin\", \"v4.3.0\", \"v5\");\n}\n@mixin float-right() {\n float: right !important;\n @include deprecate(\"The `float-right` mixin\", \"v4.3.0\", \"v5\");\n}\n@mixin float-none() {\n float: none !important;\n @include deprecate(\"The `float-none` mixin\", \"v4.3.0\", \"v5\");\n}\n", "// stylelint-disable scss/dollar-variable-default\n\n// Local docs variables\n$bd-purple: #563d7c;\n$bd-purple-bright: lighten(saturate($bd-purple, 5%), 15%);\n$bd-purple-light: lighten(saturate($bd-purple, 5%), 45%);\n$bd-dark: #2a2730;\n$bd-download: #ffe484;\n$bd-info: #5bc0de;\n$bd-warning: #f0ad4e;\n$bd-danger: #d9534f;\n", "// stylelint-disable\n//\n// Automatically style Markdown-based tables like a Bootstrap `.table`.\n//\n\n.bd-content {\n\n // Hack the sticky header\n >h2[id],\n >h3[id],\n >h4[id] {\n pointer-events: none;\n\n &::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n }\n }\n\n // Override Bootstrap defaults\n >.table {\n max-width: 100%;\n margin-bottom: 1.5rem;\n\n @include media-breakpoint-down(md) {\n display: block;\n overflow-x: auto;\n\n &.table-bordered {\n border: 0;\n }\n }\n\n th,\n td {\n &:first-child {\n padding-left: 0;\n }\n\n &:not(:last-child) {\n padding-right: 1.5rem;\n }\n }\n\n // Prevent breaking of code (e.g., Grunt tasks list)\n td:first-child>code {\n white-space: nowrap;\n }\n }\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n//\n// Docs sections\n//\n\n.bd-content {\n >h2:not(:first-child) {\n margin-top: 3rem;\n }\n\n >h3 {\n margin-top: 1.5rem;\n }\n\n >ul li,\n >ol li {\n margin-bottom: .25rem;\n }\n}\n\n.bd-title {\n margin-bottom: .5rem;\n @include font-size(3rem);\n}\n\n.bd-lead {\n @include font-size(1.5rem);\n font-weight: 300;\n}\n\n.bd-text-purple {\n color: $bd-purple;\n}\n\n.bd-text-purple-bright {\n color: $bd-purple-bright;\n}\n", @@ -106,5 +106,5 @@ ".path-admin-tool-componentlibrary {\n #page.drawers {\n padding-left: 0;\n padding-right: 0;\n .main-inner {\n margin: 0;\n padding: 0;\n border-radius: 0;\n }\n div[role=\"main\"] {\n padding: 0;\n }\n }\n #page-header,\n #maincontent,\n .secondarynavigation {\n display: none;\n }\n #region-main {\n padding: 0;\n border: 0;\n }\n}\n" ], "names": [], - "mappings": "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" + "mappings": "AAAA;;;;;;GAMG;AqCDH,AAGI,WAHO,GAGN,EAAE,CAAA,AAAA,EAAC,AAAA;AAHR,WAAW,GAIN,EAAE,CAAA,AAAA,EAAC,AAAA;AAJR,WAAW,GAKN,EAAE,CAAA,AAAA,EAAC,AAAA,EAAI;EACJ,cAAc,EAAE,IAAI;CAQvB;;AAdL,AAQQ,WARG,GAGN,EAAE,CAAA,AAAA,EAAC,AAAA,CAKC,QAAQ;AARjB,WAAW,GAIN,EAAE,CAAA,AAAA,EAAC,AAAA,CAIC,QAAQ;AARjB,WAAW,GAKN,EAAE,CAAA,AAAA,EAAC,AAAA,CAGC,QAAQ,CAAC;EACN,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,EAAE;CACd;;AAbT,AAiBI,WAjBO,GAiBN,MAAM,CAAC;EACJ,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,MAAM;CA0BxB;;A/BuBD,MAAM,EAAE,SAAS,EAAE,QAAQ;E+BpE/B,AAiBI,WAjBO,GAiBN,MAAM,CAAC;IAKA,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,IAAI;GAsBvB;EA7CL,AAyBY,WAzBD,GAiBN,MAAM,AAQE,eAAe,CAAC;IACb,MAAM,EAAE,CAAC;GACZ;;;AA3Bb,AAgCY,WAhCD,GAiBN,MAAM,CAaH,EAAE,AAEG,YAAY;AAhCzB,WAAW,GAiBN,MAAM,CAcH,EAAE,AACG,YAAY,CAAC;EACV,YAAY,EAAE,CAAC;CAClB;;AAlCb,AAoCY,WApCD,GAiBN,MAAM,CAaH,EAAE,AAMG,IAAK,CAAA,WAAW;AApC7B,WAAW,GAiBN,MAAM,CAcH,EAAE,AAKG,IAAK,CAAA,WAAW,EAAE;EACf,aAAa,EAAE,MAAM;CACxB;;AAtCb,AA0CQ,WA1CG,GAiBN,MAAM,CAyBH,EAAE,AAAA,YAAY,GAAC,IAAI,CAAC;EAChB,WAAW,EAAE,MAAM;CACtB;;AAIT,AAAA,iBAAiB,CAAC;EACd,OAAO,EAAE,KAAK;EACd,cAAc,EAAE,IAAI;CACvB;;AAMD,AACI,WADO,GACN,EAAE,AAAA,IAAK,CAAA,YAAY,EAAE;EAClB,UAAU,EAAE,IAAI;CACnB;;AAHL,AAKI,WALO,GAKN,EAAE,CAAC;EACA,UAAU,EAAE,MAAM;CACrB;;AAPL,AASI,WATO,GASN,EAAE,CAAC,EAAE;AATV,WAAW,GAUN,EAAE,CAAC,EAAE,CAAC;EACH,aAAa,EAAE,MAAM;CACxB;;AAGL,AAAA,SAAS,CAAC;EACN,aAAa,EAAE,KAAK;EjCsGlB,SAAS,EAAC,IAAC;CiCpGhB;;AAED,AAAA,QAAQ,CAAC;EjCkGH,SAAS,EAAC,MAAC;EiChGb,WAAW,EAAE,GAAG;CACnB;;AAED,AAAA,eAAe,CAAC;EACZ,KAAK,EDrFU,OAAO;CCsFzB;;AAED,AAAA,sBAAsB,CAAC;EACnB,KAAK,EDxFU,OAAsC;CCyFxD;;AC7FD,AAAA,OAAO,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,GAAG;EACZ,KAAK,EpCIE,IAAI;EoCHX,UAAU,EAAE,MAAM;EAClB,gBAAgB,EFFD,OAAO;EEGtB,OAAO,EAAE,CAAC;CAKb;;AAXD,AAQI,OARG,AAQF,MAAM,CAAC;EACJ,KAAK,EpCFF,IAAI;CoCGV;;AAGL,AAAA,YAAY,CAAC;EACT,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,UAAU;CACtB;;ACbD,AAAA,QAAQ,CAAC;EACL,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACjB;;AjCsDG,MAAM,EAAE,SAAS,EAAE,KAAK;EiCnDxB,AAAA,QAAQ,CAAC;IACL,YAAY,EAAE,GAAG,CAAC,KAAK,CrCApB,OAAO;IqCCV,aAAa,EAAE,GAAG,CAAC,KAAK,CrCDrB,OAAO;GqCEb;;;AAGL,AAAA,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;EACnC,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,UAAU;CAC7B;;AAED,AAAA,aAAa,CAAC,EAAE,CAAC;EACb,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;CACZ;;AAED,AAAA,aAAa,GAAG,EAAE,CAAC;EACf,OAAO,EAAE,KAAK;CACjB;;AAED,AAAA,aAAa,CAAC,CAAC,CAAC;EACZ,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,KAAK,ErClBE,OAAO;EqCmBd,eAAe,EAAE,IAAI;EACrB,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,KAAK,CAAC,GAAG,CrC3Bd,OAAO;CqCiCjB;;AAbD,AAQI,aARS,CAAC,CAAC,AAQV,gBAAgB,AAAA,OAAO,CAAC;EACrB,WAAW,EAAE,IAAI;EACjB,SAAS,EAAE,IAAI;EACf,KAAK,ErC9BF,OAAO;CqC+Bb;;AAGL,AAAA,aAAa,CAAC,CAAC,AAAA,MAAM,CAAC;EAClB,gBAAgB,ErCrCT,OAAO;CqCsCjB;;AAED,AAAA,aAAa,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EACzB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,qBAAqB;CACpC;;AAED,AAAA,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EAC5B,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,qBAAqB;CACpC;;AAED,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EAC/B,AAAA,aAAa,GAAG,EAAE,GAAG,EAAE,AAAA,WAAW,CAAC,CAAC,CAAC;IACjC,aAAa,EAAE,KAAK,CAAC,GAAG,CrCnDrB,OAAO;GqCoDb;;;AAGL,AAAA,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;EACtB,UAAU,ErCxDH,OAAO;EqCyDd,WAAW,EAAE,IAAI;CACpB;;AAED,AAAA,aAAa,CAAC,WAAW,CAAC,aAAa,AAAA,IAAK,CAAA,OAAO,EAAE,EAAE,CAAC;EACpD,OAAO,EAAE,IAAI;CAChB;;AAED,AAAA,UAAU,CAAC;EACP,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,kBAA+B;EACvC,GAAG,EA9ES,IAAI;EA+EhB,UAAU,EAAE,IAAI;CACnB;;AAED,AAAA,gBAAgB,GAAG,EAAE,CAAC;EAClB,SAAS,EAAE,GAAG;EACd,YAAY,EAAE,CAAC;EACf,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,GAAG,CAAC,KAAK,CrC7Ef,OAAO;CqC6FjB;;AApBD,AAKI,gBALY,GAAG,EAAE,CAKjB,EAAE,CAAC;EACC,YAAY,EAAE,IAAI;CACrB;;AAPL,AAQI,gBARY,GAAG,EAAE,CAQjB,EAAE,CAAC;EACC,OAAO,EAAE,KAAK;CAUjB;;AAnBL,AAUQ,gBAVQ,GAAG,EAAE,CAQjB,EAAE,CAEE,CAAC,CAAC;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,cAAc;EACvB,KAAK,ErChFN,OAAO;CqCqFT;;AAlBT,AAcY,gBAdI,GAAG,EAAE,CAQjB,EAAE,CAEE,CAAC,AAII,MAAM,CAAC;EACJ,KAAK,ErC/DX,OAAO;EqCgED,eAAe,EAAE,IAAI;CACxB;;AClGb,AAAA,OAAO,CAAC,GAAG,CAAC;EACR,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,MAAK,CAAC,KAAK,CtCIjB,OAAO;CsCejB;;AAtBD,AAKI,OALG,CAAC,GAAG,GAKL,EAAE,CAAC;EACD,YAAY,EAAE,KAAK;EACnB,aAAa,EAAE,CAAC;CACnB;;AARL,AAUI,OAVG,CAAC,GAAG,GAUL,EAAE,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,KAAK;CACjB;;AAZL,AAcI,OAdG,CAAC,GAAG,CAcP,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;EACL,aAAa,EAAE,MAAM;EACrB,eAAe,EAAE,IAAI;CACxB;;AAjBL,AAmBI,OAnBG,CAAC,GAAG,CAmBP,CAAC,CAAC,IAAI,CAAC;EACH,IAAI,EAAE,OAAO;CAChB;;ACnBL,AAAA,UAAU,CAAC;ErCgLL,SAAS,EAAC,QAAC;EqC9Kb,KAAK,EAAE,OAAO;CAejB;;AAjBD,AAII,UAJM,CAIN,CAAC,CAAC;EACE,WAAW,EAAE,GAAG;EAChB,KAAK,EvCIF,OAAO;CuCEb;;AAZL,AAQQ,UARE,CAIN,CAAC,AAII,MAAM,EARf,UAAU,CAIN,CAAC,AAKI,MAAM,CAAC;EACJ,KAAK,EvCqBP,OAAO;CuCpBR;;AAXT,AAcI,UAdM,CAcN,CAAC,CAAC;EACE,aAAa,EAAE,CAAC;CACnB;;AAGL,AAAA,gBAAgB,CAAC;EACb,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,IAAI;CAStB;;AAXD,AAII,gBAJY,CAIZ,EAAE,CAAC;EACC,OAAO,EAAE,YAAY;CAKxB;;AAVL,AAOQ,gBAPQ,CAIZ,EAAE,GAGI,EAAE,CAAC;EACD,WAAW,EAAE,IAAI;CACpB;;AC1BT,AAGQ,eAHO,CACX,IAAI,GAEE,IAAI;AAHd,eAAe,CACX,IAAI,IAGE,AAAA,KAAC,EAAO,MAAM,AAAb,EAAe;EACd,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,MAAM;EACtB,gBAAgB,EAAE,uBAAsB;EACxC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,sBAAqB;CAC1C;;AATT,AAYI,eAZW,CAYX,IAAI,GAAG,IAAI,CAAC;EACR,UAAU,EAAE,IAAI;CACnB;;AAGL,AAAA,yBAAyB,CAAC,IAAI,CAAC;EAC3B,UAAU,EAAE,KAAK;EACjB,gBAAgB,EAAE,oBAAmB;CACxC;;AAED,AAAA,aAAa,CAAC;EACV,gBAAgB,EN1BD,uBAAO;EM2BtB,MAAM,EAAE,GAAG,CAAC,KAAK,CN3BF,uBAAO;CM4BzB;;AAED,AACI,iCAD6B,EAC7B,AAAA,KAAC,EAAO,WAAW,AAAlB,EAAoB;EACjB,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,MAAM;EACtB,gBAAgB,EAAE,uBAAsB;EACxC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,sBAAqB;CAC1C;;AAIL,AAAA,kBAAkB,CAAC;EACf,KAAK,EAAE,KAAK;ERvCd,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,IAAY;EAC3B,YAAY,EAAE,IAAY;EAC1B,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;CQqClB;;AAED,AAAA,YAAY,CAAC;ERnCX,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,YAAY,EAAE,KAAa;EAC3B,WAAW,EAAE,KAAa;CQkC3B;;AAED,AAAA,qBAAqB,CAAC;ERtBpB,QAAQ,EAAE,QAAQ;EAIlB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,IAAY;EAC3B,YAAY,EAAE,IAAY;CQ0B3B;;ApCFG,MAAM,EAAE,SAAS,EAAE,KAAK;EoCR5B,AAAA,qBAAqB,CAAC;IRZpB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAmC;IAI7C,SAAS,EAAE,GAAmC;GQkB/C;;;ApCFG,MAAM,EAAE,SAAS,EAAE,KAAK;EoCR5B,AAAA,qBAAqB,CAAC;IRZpB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAAmC;IAI7C,SAAS,EAAE,UAAmC;GQkB/C;;;AAED,AAAA,0BAA0B,CAAC;ERlCzB,QAAQ,EAAE,QAAQ;EAIlB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,IAAY;EAC3B,YAAY,EAAE,IAAY;CQsC3B;;ApCdG,MAAM,EAAE,SAAS,EAAE,KAAK;EoCI5B,AAAA,0BAA0B,CAAC;IRxBzB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAmC;IAI7C,SAAS,EAAE,GAAmC;GQ8B/C;;;ApCdG,MAAM,EAAE,SAAS,EAAE,KAAK;EoCI5B,AAAA,0BAA0B,CAAC;IRxBzB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAAmC;IAI7C,SAAS,EAAE,UAAmC;GQ8B/C;;;AAOD,AAAA,WAAW,CAAC;EACR,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI,CAAC,KAAyB,CAAC,CAAC;EACxC,MAAM,EAAE,KAAK,CxC7EN,OAAO;EwC8Ed,YAAY,EAAE,SAAS;CAoC1B;;AAzCD,AVhFE,WUgFS,AVhFR,OAAO,CAAC;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,EAAE;CACZ;;A1BuDC,MAAM,EAAE,SAAS,EAAE,KAAK;EoCqB5B,AAAA,WAAW,CAAC;IASJ,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,KAAK;GA6B1B;;;AAzCD,AAeI,WAfO,GAeL,UAAU;AAfhB,WAAW,GAgBL,UAAU,GAAG,UAAU,CAAC;EACtB,UAAU,EAAE,CAAC;CAChB;;AAlBL,AAoBI,WApBO,GAoBL,CAAC,CAAC;EACA,UAAU,EAAE,IAAI;CACnB;;AAtBL,AAyBQ,WAzBG,GAwBL,aAAa,GACT,aAAa,CAAC;EACZ,UAAU,EAAE,KAAK;CACpB;;AA3BT,AA8BI,WA9BO,GA8BL,IAAI,GAAG,IAAI;AA9BjB,WAAW,GA+BL,MAAM,GAAG,MAAM;AA/BrB,WAAW,GAgCL,OAAO,GAAG,OAAO;AAhCvB,WAAW,GAiCL,SAAS,GAAG,SAAS,CAAC;EACpB,UAAU,EAAE,IAAI;CACnB;;AAnCL,AAqCI,WArCO,GAqCL,cAAc,CAAC;EACb,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,KAAK;CACjB;;AAIL,AAEI,WAFO,GAEL,GAAG,GAAG,GAAG;AAFf,WAAW,GAGL,GAAG,GAAG,GAAG,CAAC;EACR,WAAW,EAAE,KAAK;CACrB;;AAIL,AAEI,WAFO,GAEL,IAAI;AAFV,WAAW,GAGL,UAAU,CAAC;EACT,UAAU,EAAE,MAAM;EAClB,aAAa,EAAE,MAAM;CACxB;;AANL,AAQI,WARO,GAQL,YAAY,GAAG,YAAY,CAAC;EAC1B,UAAU,EAAE,KAAK;CACpB;;AAIL,AAAA,WAAW,GAAG,WAAW,CAAC;EACtB,SAAS,EAAE,KAAK;CACnB;;AAED,AAAA,WAAW,IAAG,AAAA,KAAC,EAAO,uBAAuB,AAA9B,EAAgC;EAC3C,SAAS,EAAE,IAAI;CAClB;;AAGD,AAEI,WAFO,CAEP,UAAU;AAFd,WAAW,CAGP,WAAW,CAAC;EACR,QAAQ,EAAE,MAAM;EAChB,MAAM,EAAE,gBAAgB;CAC3B;;AANL,AAQI,WARO,CAQP,aAAa,CAAC;EACV,QAAQ,EAAE,MAAM;EAChB,MAAM,EAAE,gBAAgB;CAC3B;;ApC5GD,MAAM,EAAE,SAAS,EAAE,KAAK;EoCiG5B,AAeQ,WAfG,CAeH,UAAU;EAflB,WAAW,CAgBH,WAAW,CAAC;IACR,MAAM,EAAE,oBAAoB;GAC/B;EAlBT,AAoBQ,WApBG,CAoBH,aAAa,CAAC;IACV,MAAM,EAAE,oBAAoB;GAC/B;;;AAKT,AAAA,WAAW,CAAC,WAAW,CAAC;EACpB,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,KAAK;CACvB;;AAED,AAAA,iBAAiB,CAAC;EACd,gBAAgB,EAAE,OAAO;CAM5B;;AAPD,AAGI,iBAHa,CAGb,MAAM,CAAC;EACH,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,KAAK;CACjB;;AAIL,AAAA,aAAa,CAAC,CAAC,CAAC;EACZ,WAAW,EAAE,MAAM;CACtB;;AAGD,AAAA,kBAAkB,CAAC;EACf,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,KAAK;EACjB,QAAQ,EAAE,IAAI;CACjB;;AAED,AAAA,oBAAoB,CAAC;EACjB,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,KAAK;EACb,QAAQ,EAAE,IAAI;CACjB;;AAED,AACI,wBADoB,EACpB,AAAA,KAAC,EAAO,QAAQ,AAAf,EAAiB;EACd,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,MAAM;EACd,gBAAgB,EAAE,OAAO;CAC5B;;AAGL,AACI,0BADsB,EACtB,AAAA,KAAC,EAAO,QAAQ,AAAf,EAAiB;EACd,MAAM,EAAE,GAAG,CAAC,KAAK,CxC3Nd,OAAO;CwC4Nb;;AAOL,AAAA,UAAU,CAAC;EACP,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EACnB,gBAAgB,ExCzOT,OAAO;EwC0Od,kBAAkB,EAAE,wBAAwB;CAK/C;;ApC3LG,MAAM,EAAE,SAAS,EAAE,KAAK;EoCiL5B,AAAA,UAAU,CAAC;IAQH,OAAO,EAAE,MAAM;GAEtB;;;AAED,AAAA,WAAW,CAAC,UAAU,CAAC;EACnB,YAAY,EAAE,KAAyB;EACvC,WAAW,EAAE,KAAyB;CAMzC;;ApCrMG,MAAM,EAAE,SAAS,EAAE,KAAK;EoC6L5B,AAAA,WAAW,CAAC,UAAU,CAAC;IAKf,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;GAErB;;;AAED,AACI,UADM,CACN,GAAG,CAAC;EACA,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAChB,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;CACZ;;AAPL,AASI,UATM,CASN,GAAG,CAAC,IAAI,CAAC;EtCxGT,SAAS,EAAC,OAAC;EsC0GP,KAAK,ExC9PF,OAAO;CwC+Pb;;AC3QL,AAAA,WAAW,CAAC;EACR,OAAO,EAAE,OAAO;EAChB,UAAU,EAAE,OAAO;EACnB,aAAa,EAAE,OAAO;EACtB,MAAM,EAAE,GAAG,CAAC,KAAK,CzCCV,OAAO;EyCAd,iBAAiB,EAAE,MAAM;EfSzB,aAAa,E1B6Na,OAAM;CyCpNnC;;AAvBD,AAQI,WARO,CAQP,EAAE,CAAC;EACC,aAAa,EAAE,MAAM;CACxB;;AAVL,AAYI,WAZO,CAYP,CAAC,AAAA,WAAW,CAAC;EACT,aAAa,EAAE,CAAC;CACnB;;AAdL,AAgBI,WAhBO,CAgBP,IAAI,CAAC;EfFL,aAAa,E1B6Na,OAAM;CyCzN/B;;AAlBL,AAoBI,WApBO,GAoBL,WAAW,CAAC;EACV,UAAU,EAAE,OAAO;CACtB;;AAYL,AAAA,gBAAgB,CAAC;EAPb,iBAAiB,EPvBF,OAAO;COgCzB;;AAFD,AALI,gBAKY,CALZ,EAAE,CAAC;EACC,KAAK,EP1BM,OAAO;CO2BrB;;AAOL,AAAA,mBAAmB,CAAC;EAXhB,iBAAiB,EPtBF,OAAO;COmCzB;;AAFD,AATI,mBASe,CATf,EAAE,CAAC;EACC,KAAK,EPzBM,OAAO;CO0BrB;;AAWL,AAAA,kBAAkB,CAAC;EAff,iBAAiB,EPrBF,OAAO;COsCzB;;AAFD,AAbI,kBAac,CAbd,EAAE,CAAC;EACC,KAAK,EPxBM,OAAO;COyBrB;;AC9BD,AAAA,YAAY,CAAM;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,cAAc,CAAI;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,cAAc,CAAI;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,YAAY,CAAM;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,cAAc,CAAI;EACd,KAAK,E1CUF,OAAO;E0CTV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,cAAc,CAAI;EACd,KAAK,E1CUF,OAAO;E0CTV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,aAAa,CAAK;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,YAAY,CAAM;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,YAAY,CAAM;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,aAAa,CAAK;EACd,KAAK,E1CUF,OAAO;E0CTV,gBAAgB,EAAC,IAAC;CACrB;;AAHD,AAAA,YAAY,CAAM;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,iBAAiB,CAAC;EACd,KAAK,E1CCF,IAAI;E0CAP,gBAAgB,EAAC,OAAC;CACrB;;AAID,AAAA,WAAW,CAAO;EACd,KAAK,E1CGF,OAAO;E0CFV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CGF,OAAO;E0CFV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CGF,OAAO;E0CFV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CGF,OAAO;E0CFV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CGF,OAAO;E0CFV,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CNF,IAAI;E0COP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CNF,IAAI;E0COP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CNF,IAAI;E0COP,gBAAgB,EAAC,OAAC;CACrB;;AAHD,AAAA,WAAW,CAAO;EACd,KAAK,E1CNF,IAAI;E0COP,gBAAgB,EAAC,OAAC;CACrB;;ACXL,AAAA,aAAa,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,KAAK;CASf;;AAZD,AAKI,aALS,GAKP,UAAU,CAAC;EACT,UAAU,EAAE,CAAC;CAChB;;AvCiDD,MAAM,EAAE,SAAS,EAAE,KAAK;EuCxD5B,AAAA,aAAa,CAAC;IAUN,OAAO,EAAE,KAAK;GAErB;;;AAED,AAAA,cAAc,CAAC;EACX,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,KAAK;EACV,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,YAAY;EzC4IrB,SAAS,EAAC,MAAC;EyC1IX,KAAK,E3CXE,OAAO;E2CYd,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;EjBVT,aAAa,E1B6Na,OAAM;C2C5MnC;;AAjBD,AAaI,cAbU,AAaT,MAAM,CAAC;EACJ,KAAK,E3CzBF,IAAI;E2C0BP,gBAAgB,E3CEd,OAAO;C2CDZ;;AC5BL,AAAA,mBAAmB,CAAC;E1C8Kd,SAAS,EAAC,QAAC;E0C5Kb,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,IAAI;CACpB;;AAED,AAAA,sBAAsB,CAAC;E1CwKjB,SAAS,EAAC,MAAC;C0CtKhB;;ACZD,2DAA2D;AAC3D,gCAAgC;AAChC,8FAA8F;AAC9F,0IAA0I;AAC1I,+FAA+F;AAC/F,gFAAgF;AAChF,0EAA0E;AAE1E,4BAA4B;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAAA,SAAS;AACtE,aAAa;AAAC,AAAA,OAAO,CAAC,EAAE,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAC7C,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACvD,qBAAqB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,UAAU,EAAE,MAAM;EAAE,KAAK,EAAE,OAAO;CAAI;;AAAA,SAAS;AACnF,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACvD,oBAAoB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACrD,wBAAwB;AAAC,AAAA,OAAO,CAAC,IAAI,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAAA,SAAS;AACnE,oBAAoB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACrD,oBAAoB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,gBAAgB,EAAE,IAAI;EAAE,MAAM,EAAE,cAAc;CAAI;;AACrF,iBAAiB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,UAAU,EAAE,MAAM;CAAI;;AACtD,oBAAoB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAClD,qBAAqB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,gBAAgB,EAAE,IAAI;EAAE,MAAM,EAAE,cAAc;CAAI;;AACtF,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,eAAe,EAAE,SAAS;CAAI;;AAAA,SAAS;AAC5E,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACjD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACjD,kBAAkB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAChD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,WAAW,EAAE,GAAG;CAAI;;AAAA,SAAS;AAC/D,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACpD,uBAAuB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACrD,8BAA8B;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAC/D,aAAa;AAAC,AAAA,OAAO,CAAC,EAAE,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAC1C,qBAAqB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACnD,wBAAwB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACtD,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACpD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACjD,qBAAqB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACnD,iBAAiB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAC/C,mBAAmB;AAAC,AAAA,OAAO,CAAC,EAAE,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACnD,wBAAwB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACzD,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAAA,SAAS;AAChE,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACvD,0BAA0B;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAC3D,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACvD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACpD,iBAAiB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAC/C,eAAe;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAChD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACpD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACjD,kBAAkB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACnD,gBAAgB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACjD,eAAe;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAChD,mBAAmB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACpD,kBAAkB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAChD,aAAa;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAC9C,kBAAkB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAChD,cAAc;AAAC,AAAA,OAAO,CAAC,EAAE,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAC3C,kBAAkB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAChD,mBAAmB;AAAC,AAAA,OAAO,CAAC,EAAE,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACnD,yBAAyB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACvD,yBAAyB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACvD,wBAAwB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AAAA,SAAS;AAClE,2BAA2B;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACzD,uBAAuB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACrD,sBAAsB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,UAAU,EAAE,MAAM;EAAE,KAAK,EAAE,IAAI;CAAI;;AACxE,yBAAyB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACvD,0BAA0B;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACxD,2BAA2B;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACzD,wBAAwB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,OAAO;CAAI;;AACzD,yBAAyB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACvD,wBAAwB;AAAC,AAAA,OAAO,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AACtD,oBAAoB;AAAC,AAAA,OAAO,CAAC,EAAE,CAAC;EAAE,KAAK,EAAE,IAAI;CAAI;;AAEjD,AAGI,OAHG,CACL,cAAc,AAEX,QAAQ;AAHb,OAAO,CAEL,YAAY,AACT,QAAQ,CAAC;EACR,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,IAAI;CAClB;;AAPL,AAWI,OAXG,CACL,cAAc,CAUZ,EAAE;AAXN,OAAO,CAEL,YAAY,CASV,EAAE,CAAC;EACD,KAAK,EAAE,OAAO;CACf;;AAbL,AAgBE,OAhBK,CAgBL,oBAAoB,AAAA,QAAQ,CAAC;EAC3B,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,MAAM;EACf,WAAW,EAAE,IAAI;CAClB;;AC5FH,AAAA,cAAc,CAAC;EACX,WAAW,EAAE,GAAG;EAChB,KAAK,E9CiCC,sBAAO;E6BnBX,UAAU,EiBbQ,KAAK,CAAC,KAAI,CAAC,WAAW;CAM7C;;AjBWK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EiBpB5C,AAAA,cAAc,CAAC;IjBqBP,UAAU,EAAE,IAAI;GiBZvB;;;AATD,AAKI,cALU,AAKT,MAAM,CAAC;EACJ,KAAK,E9C6BH,OAAO;E8C5BT,eAAe,EAAE,IAAI;CACxB;;ACRL,AACI,iCAD6B,CAC7B,KAAK,AAAA,QAAQ,CAAC;EACV,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;CASnB;;AAZL,AAIQ,iCAJyB,CAC7B,KAAK,AAAA,QAAQ,CAGT,WAAW,CAAC;EACR,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,aAAa,EAAE,CAAC;CACnB;;AART,AASQ,iCATyB,CAC7B,KAAK,AAAA,QAAQ,CAQT,GAAG,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa;EACb,OAAO,EAAE,CAAC;CACb;;AAXT,AAaI,iCAb6B,CAa7B,YAAY;AAbhB,iCAAiC,CAc7B,YAAY;AAdhB,iCAAiC,CAe7B,oBAAoB,CAAC;EACjB,OAAO,EAAE,IAAI;CAChB;;AAjBL,AAkBI,iCAlB6B,CAkB7B,YAAY,CAAC;EACT,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;CACZ" } \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/alert.min.js b/theme/boost/amd/build/bootstrap/alert.min.js index 17ec33e7f128f..4a6ad3a5a3676 100644 --- a/theme/boost/amd/build/bootstrap/alert.min.js +++ b/theme/boost/amd/build/bootstrap/alert.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/alert",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const EVENT_KEY=".".concat("bs.alert"),JQUERY_NO_CONFLICT=_jquery.default.fn.alert,EVENT_CLOSE="close".concat(EVENT_KEY),EVENT_CLOSED="closed".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api");class Alert{constructor(element){this._element=element}static get VERSION(){return"4.6.0"}close(element){let rootElement=this._element;element&&(rootElement=this._getRootElement(element));this._triggerCloseEvent(rootElement).isDefaultPrevented()||this._removeElement(rootElement)}dispose(){_jquery.default.removeData(this._element,"bs.alert"),this._element=null}_getRootElement(element){const selector=_util.default.getSelectorFromElement(element);let parent=!1;return selector&&(parent=document.querySelector(selector)),parent||(parent=(0,_jquery.default)(element).closest(".".concat("alert"))[0]),parent}_triggerCloseEvent(element){const closeEvent=_jquery.default.Event(EVENT_CLOSE);return(0,_jquery.default)(element).trigger(closeEvent),closeEvent}_removeElement(element){if((0,_jquery.default)(element).removeClass("show"),!(0,_jquery.default)(element).hasClass("fade"))return void this._destroyElement(element);const transitionDuration=_util.default.getTransitionDurationFromElement(element);(0,_jquery.default)(element).one(_util.default.TRANSITION_END,(event=>this._destroyElement(element,event))).emulateTransitionEnd(transitionDuration)}_destroyElement(element){(0,_jquery.default)(element).detach().trigger(EVENT_CLOSED).remove()}static _jQueryInterface(config){return this.each((function(){const $element=(0,_jquery.default)(this);let data=$element.data("bs.alert");data||(data=new Alert(this),$element.data("bs.alert",data)),"close"===config&&data[config](this)}))}static _handleDismiss(alertInstance){return function(event){event&&event.preventDefault(),alertInstance.close(this)}}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-dismiss="alert"]',Alert._handleDismiss(new Alert)),_jquery.default.fn.alert=Alert._jQueryInterface,_jquery.default.fn.alert.Constructor=Alert,_jquery.default.fn.alert.noConflict=()=>(_jquery.default.fn.alert=JQUERY_NO_CONFLICT,Alert._jQueryInterface);var _default=Alert;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/alert",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const EVENT_KEY=".".concat("bs.alert"),JQUERY_NO_CONFLICT=_jquery.default.fn.alert,EVENT_CLOSE="close".concat(EVENT_KEY),EVENT_CLOSED="closed".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api");class Alert{constructor(element){this._element=element}static get VERSION(){return"4.6.2"}close(element){let rootElement=this._element;element&&(rootElement=this._getRootElement(element));this._triggerCloseEvent(rootElement).isDefaultPrevented()||this._removeElement(rootElement)}dispose(){_jquery.default.removeData(this._element,"bs.alert"),this._element=null}_getRootElement(element){const selector=_util.default.getSelectorFromElement(element);let parent=!1;return selector&&(parent=document.querySelector(selector)),parent||(parent=(0,_jquery.default)(element).closest(".".concat("alert"))[0]),parent}_triggerCloseEvent(element){const closeEvent=_jquery.default.Event(EVENT_CLOSE);return(0,_jquery.default)(element).trigger(closeEvent),closeEvent}_removeElement(element){if((0,_jquery.default)(element).removeClass("show"),!(0,_jquery.default)(element).hasClass("fade"))return void this._destroyElement(element);const transitionDuration=_util.default.getTransitionDurationFromElement(element);(0,_jquery.default)(element).one(_util.default.TRANSITION_END,(event=>this._destroyElement(element,event))).emulateTransitionEnd(transitionDuration)}_destroyElement(element){(0,_jquery.default)(element).detach().trigger(EVENT_CLOSED).remove()}static _jQueryInterface(config){return this.each((function(){const $element=(0,_jquery.default)(this);let data=$element.data("bs.alert");data||(data=new Alert(this),$element.data("bs.alert",data)),"close"===config&&data[config](this)}))}static _handleDismiss(alertInstance){return function(event){event&&event.preventDefault(),alertInstance.close(this)}}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-dismiss="alert"]',Alert._handleDismiss(new Alert)),_jquery.default.fn.alert=Alert._jQueryInterface,_jquery.default.fn.alert.Constructor=Alert,_jquery.default.fn.alert.noConflict=()=>(_jquery.default.fn.alert=JQUERY_NO_CONFLICT,Alert._jQueryInterface);var _default=Alert;return _exports.default=_default,_exports.default})); //# sourceMappingURL=alert.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/alert.min.js.map b/theme/boost/amd/build/bootstrap/alert.min.js.map index f17cd2712995f..90ad66f59cc88 100644 --- a/theme/boost/amd/build/bootstrap/alert.min.js.map +++ b/theme/boost/amd/build/bootstrap/alert.min.js.map @@ -1 +1 @@ -{"version":3,"file":"alert.min.js","sources":["../../src/bootstrap/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n"],"names":["EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","Alert","constructor","element","_element","VERSION","close","rootElement","this","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","document","querySelector","closest","closeEvent","Event","trigger","removeClass","hasClass","_destroyElement","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","config","each","$element","data","alertInstance","preventDefault","on","_handleDismiss","_jQueryInterface","Constructor","noConflict"],"mappings":"yVAmBMA,qBADW,YAGXC,mBAAqBC,gBAAEC,GAAF,MAIrBC,2BAAsBJ,WACtBK,6BAAwBL,WACxBM,oCAA+BN,kBAPhB,mBAmBfO,MACJC,YAAYC,cACLC,SAAWD,QAKPE,2BA7BG,QAmCdC,MAAMH,aACAI,YAAcC,KAAKJ,SACnBD,UACFI,YAAcC,KAAKC,gBAAgBN,UAGjBK,KAAKE,mBAAmBH,aAE5BI,2BAIXC,eAAeL,aAGtBM,0BACIC,WAAWN,KAAKJ,SAlDL,iBAmDRA,SAAW,KAKlBK,gBAAgBN,eACRY,SAAWC,cAAKC,uBAAuBd,aACzCe,QAAS,SAETH,WACFG,OAASC,SAASC,cAAcL,WAG7BG,SACHA,QAAS,mBAAEf,SAASkB,mBAtDD,UAsDiC,IAG/CH,OAGTR,mBAAmBP,eACXmB,WAAa1B,gBAAE2B,MAAMzB,uCAEzBK,SAASqB,QAAQF,YACZA,WAGTV,eAAeT,gCACXA,SAASsB,YAlES,UAoEf,mBAAEtB,SAASuB,SArEI,yBAsEbC,gBAAgBxB,eAIjByB,mBAAqBZ,cAAKa,iCAAiC1B,6BAE/DA,SACC2B,IAAId,cAAKe,gBAAgBC,OAASxB,KAAKmB,gBAAgBxB,QAAS6B,SAChEC,qBAAqBL,oBAG1BD,gBAAgBxB,6BACZA,SACC+B,SACAV,QAAQzB,cACRoC,iCAKmBC,eACf5B,KAAK6B,MAAK,iBACTC,UAAW,mBAAE9B,UACf+B,KAAOD,SAASC,KAzGT,YA2GNA,OACHA,KAAO,IAAItC,MAAMO,MACjB8B,SAASC,KA7GA,WA6GeA,OAGX,UAAXH,QACFG,KAAKH,QAAQ5B,+BAKGgC,sBACb,SAAUR,OACXA,OACFA,MAAMS,iBAGRD,cAAclC,MAAME,4BAWxBW,UAAUuB,GACV1C,qBAnIuB,yBAqIvBC,MAAM0C,eAAe,IAAI1C,wBASzBJ,GAAF,MAAaI,MAAM2C,iCACjB/C,GAAF,MAAWgD,YAAc5C,sBACvBJ,GAAF,MAAWiD,WAAa,qBACpBjD,GAAF,MAAaF,mBACNM,MAAM2C,+BAGA3C"} \ No newline at end of file +{"version":3,"file":"alert.min.js","sources":["../../src/bootstrap/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\n/**\n * Class definition\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n // Public\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n"],"names":["EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","Alert","constructor","element","_element","VERSION","close","rootElement","this","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","document","querySelector","closest","closeEvent","Event","trigger","removeClass","hasClass","_destroyElement","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","config","each","$element","data","alertInstance","preventDefault","on","_handleDismiss","_jQueryInterface","Constructor","noConflict"],"mappings":"yVAiBMA,qBADW,YAGXC,mBAAqBC,gBAAEC,GAAF,MAMrBC,2BAAsBJ,WACtBK,6BAAwBL,WACxBM,oCAA+BN,kBAThB,mBAiBfO,MACJC,YAAYC,cACLC,SAAWD,QAIPE,2BA1BG,QA+BdC,MAAMH,aACAI,YAAcC,KAAKJ,SACnBD,UACFI,YAAcC,KAAKC,gBAAgBN,UAGjBK,KAAKE,mBAAmBH,aAE5BI,2BAIXC,eAAeL,aAGtBM,0BACIC,WAAWN,KAAKJ,SA9CL,iBA+CRA,SAAW,KAIlBK,gBAAgBN,eACRY,SAAWC,cAAKC,uBAAuBd,aACzCe,QAAS,SAETH,WACFG,OAASC,SAASC,cAAcL,WAG7BG,SACHA,QAAS,mBAAEf,SAASkB,mBAvDD,UAuDiC,IAG/CH,OAGTR,mBAAmBP,eACXmB,WAAa1B,gBAAE2B,MAAMzB,uCAEzBK,SAASqB,QAAQF,YACZA,WAGTV,eAAeT,gCACXA,SAASsB,YAnES,UAqEf,mBAAEtB,SAASuB,SAtEI,yBAuEbC,gBAAgBxB,eAIjByB,mBAAqBZ,cAAKa,iCAAiC1B,6BAE/DA,SACC2B,IAAId,cAAKe,gBAAgBC,OAASxB,KAAKmB,gBAAgBxB,QAAS6B,SAChEC,qBAAqBL,oBAG1BD,gBAAgBxB,6BACZA,SACC+B,SACAV,QAAQzB,cACRoC,iCAImBC,eACf5B,KAAK6B,MAAK,iBACTC,UAAW,mBAAE9B,UACf+B,KAAOD,SAASC,KAnGT,YAqGNA,OACHA,KAAO,IAAItC,MAAMO,MACjB8B,SAASC,KAvGA,WAuGeA,OAGX,UAAXH,QACFG,KAAKH,QAAQ5B,+BAKGgC,sBACb,SAAUR,OACXA,OACFA,MAAMS,iBAGRD,cAAclC,MAAME,4BASxBW,UAAUuB,GACV1C,qBAnHuB,yBAqHvBC,MAAM0C,eAAe,IAAI1C,wBAOzBJ,GAAF,MAAaI,MAAM2C,iCACjB/C,GAAF,MAAWgD,YAAc5C,sBACvBJ,GAAF,MAAWiD,WAAa,qBACpBjD,GAAF,MAAaF,mBACNM,MAAM2C,+BAGA3C"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/button.min.js b/theme/boost/amd/build/bootstrap/button.min.js index 04b0974892fc5..5e6d51df329cb 100644 --- a/theme/boost/amd/build/bootstrap/button.min.js +++ b/theme/boost/amd/build/bootstrap/button.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/button",["exports","jquery"],(function(_exports,_jquery){var obj;Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const NAME="button",EVENT_KEY=".".concat("bs.button"),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),EVENT_FOCUS_BLUR_DATA_API="focus".concat(EVENT_KEY).concat(".data-api"," ")+"blur".concat(EVENT_KEY).concat(".data-api"),EVENT_LOAD_DATA_API="load".concat(EVENT_KEY).concat(".data-api");class Button{constructor(element){this._element=element,this.shouldAvoidTriggerChange=!1}static get VERSION(){return"4.6.0"}toggle(){let triggerChangeEvent=!0,addAriaPressed=!0;const rootElement=(0,_jquery.default)(this._element).closest('[data-toggle="buttons"]')[0];if(rootElement){const input=this._element.querySelector('input:not([type="hidden"])');if(input){if("radio"===input.type)if(input.checked&&this._element.classList.contains("active"))triggerChangeEvent=!1;else{const activeElement=rootElement.querySelector(".active");activeElement&&(0,_jquery.default)(activeElement).removeClass("active")}triggerChangeEvent&&("checkbox"!==input.type&&"radio"!==input.type||(input.checked=!this._element.classList.contains("active")),this.shouldAvoidTriggerChange||(0,_jquery.default)(input).trigger("change")),input.focus(),addAriaPressed=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(addAriaPressed&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),triggerChangeEvent&&(0,_jquery.default)(this._element).toggleClass("active"))}dispose(){_jquery.default.removeData(this._element,"bs.button"),this._element=null}static _jQueryInterface(config,avoidTriggerChange){return this.each((function(){const $element=(0,_jquery.default)(this);let data=$element.data("bs.button");data||(data=new Button(this),$element.data("bs.button",data)),data.shouldAvoidTriggerChange=avoidTriggerChange,"toggle"===config&&data[config]()}))}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-toggle^="button"]',(event=>{let button=event.target;const initialButton=button;if((0,_jquery.default)(button).hasClass("btn")||(button=(0,_jquery.default)(button).closest(".btn")[0]),!button||button.hasAttribute("disabled")||button.classList.contains("disabled"))event.preventDefault();else{const inputBtn=button.querySelector('input:not([type="hidden"])');if(inputBtn&&(inputBtn.hasAttribute("disabled")||inputBtn.classList.contains("disabled")))return void event.preventDefault();"INPUT"!==initialButton.tagName&&"LABEL"===button.tagName||Button._jQueryInterface.call((0,_jquery.default)(button),"toggle","INPUT"===initialButton.tagName)}})).on(EVENT_FOCUS_BLUR_DATA_API,'[data-toggle^="button"]',(event=>{const button=(0,_jquery.default)(event.target).closest(".btn")[0];(0,_jquery.default)(button).toggleClass("focus",/^focus(in)?$/.test(event.type))})),(0,_jquery.default)(window).on(EVENT_LOAD_DATA_API,(()=>{let buttons=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn'));for(let i=0,len=buttons.length;i(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Button._jQueryInterface);var _default=Button;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/button",["exports","jquery"],(function(_exports,_jquery){var obj;Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const NAME="button",EVENT_KEY=".".concat("bs.button"),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),EVENT_FOCUS_BLUR_DATA_API="focus".concat(EVENT_KEY).concat(".data-api"," ")+"blur".concat(EVENT_KEY).concat(".data-api"),EVENT_LOAD_DATA_API="load".concat(EVENT_KEY).concat(".data-api");class Button{constructor(element){this._element=element,this.shouldAvoidTriggerChange=!1}static get VERSION(){return"4.6.2"}toggle(){let triggerChangeEvent=!0,addAriaPressed=!0;const rootElement=(0,_jquery.default)(this._element).closest('[data-toggle="buttons"]')[0];if(rootElement){const input=this._element.querySelector('input:not([type="hidden"])');if(input){if("radio"===input.type)if(input.checked&&this._element.classList.contains("active"))triggerChangeEvent=!1;else{const activeElement=rootElement.querySelector(".active");activeElement&&(0,_jquery.default)(activeElement).removeClass("active")}triggerChangeEvent&&("checkbox"!==input.type&&"radio"!==input.type||(input.checked=!this._element.classList.contains("active")),this.shouldAvoidTriggerChange||(0,_jquery.default)(input).trigger("change")),input.focus(),addAriaPressed=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(addAriaPressed&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),triggerChangeEvent&&(0,_jquery.default)(this._element).toggleClass("active"))}dispose(){_jquery.default.removeData(this._element,"bs.button"),this._element=null}static _jQueryInterface(config,avoidTriggerChange){return this.each((function(){const $element=(0,_jquery.default)(this);let data=$element.data("bs.button");data||(data=new Button(this),$element.data("bs.button",data)),data.shouldAvoidTriggerChange=avoidTriggerChange,"toggle"===config&&data[config]()}))}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-toggle^="button"]',(event=>{let button=event.target;const initialButton=button;if((0,_jquery.default)(button).hasClass("btn")||(button=(0,_jquery.default)(button).closest(".btn")[0]),!button||button.hasAttribute("disabled")||button.classList.contains("disabled"))event.preventDefault();else{const inputBtn=button.querySelector('input:not([type="hidden"])');if(inputBtn&&(inputBtn.hasAttribute("disabled")||inputBtn.classList.contains("disabled")))return void event.preventDefault();"INPUT"!==initialButton.tagName&&"LABEL"===button.tagName||Button._jQueryInterface.call((0,_jquery.default)(button),"toggle","INPUT"===initialButton.tagName)}})).on(EVENT_FOCUS_BLUR_DATA_API,'[data-toggle^="button"]',(event=>{const button=(0,_jquery.default)(event.target).closest(".btn")[0];(0,_jquery.default)(button).toggleClass("focus",/^focus(in)?$/.test(event.type))})),(0,_jquery.default)(window).on(EVENT_LOAD_DATA_API,(()=>{let buttons=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn'));for(let i=0,len=buttons.length;i(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Button._jQueryInterface);var _default=Button;return _exports.default=_default,_exports.default})); //# sourceMappingURL=button.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/button.min.js.map b/theme/boost/amd/build/bootstrap/button.min.js.map index 7253861be865b..ba402a11682f5 100644 --- a/theme/boost/amd/build/bootstrap/button.min.js.map +++ b/theme/boost/amd/build/bootstrap/button.min.js.map @@ -1 +1 @@ -{"version":3,"file":"button.min.js","sources":["../../src/bootstrap/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_CLICK_DATA_API","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","constructor","element","_element","shouldAvoidTriggerChange","VERSION","toggle","triggerChangeEvent","addAriaPressed","rootElement","this","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","trigger","focus","hasAttribute","setAttribute","toggleClass","dispose","removeData","config","avoidTriggerChange","each","$element","data","document","on","event","button","target","initialButton","hasClass","preventDefault","inputBtn","tagName","_jQueryInterface","call","test","window","buttons","slice","querySelectorAll","i","len","length","add","remove","getAttribute","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"button.min.js","sources":["../../src/bootstrap/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\n/**\n * Class definition\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n // Public\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_CLICK_DATA_API","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","constructor","element","_element","shouldAvoidTriggerChange","VERSION","toggle","triggerChangeEvent","addAriaPressed","rootElement","this","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","trigger","focus","hasAttribute","setAttribute","toggleClass","dispose","removeData","config","avoidTriggerChange","each","$element","data","document","on","event","button","target","initialButton","hasClass","preventDefault","inputBtn","tagName","_jQueryInterface","call","test","window","buttons","slice","querySelectorAll","i","len","length","add","remove","getAttribute","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/carousel.min.js b/theme/boost/amd/build/bootstrap/carousel.min.js index 6bb73d112d345..9f75615560bf3 100644 --- a/theme/boost/amd/build/bootstrap/carousel.min.js +++ b/theme/boost/amd/build/bootstrap/carousel.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/carousel",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="carousel",DATA_KEY="bs.carousel",EVENT_KEY=".".concat(DATA_KEY),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},EVENT_SLIDE="slide".concat(EVENT_KEY),EVENT_SLID="slid".concat(EVENT_KEY),EVENT_KEYDOWN="keydown".concat(EVENT_KEY),EVENT_MOUSEENTER="mouseenter".concat(EVENT_KEY),EVENT_MOUSELEAVE="mouseleave".concat(EVENT_KEY),EVENT_TOUCHSTART="touchstart".concat(EVENT_KEY),EVENT_TOUCHMOVE="touchmove".concat(EVENT_KEY),EVENT_TOUCHEND="touchend".concat(EVENT_KEY),EVENT_POINTERDOWN="pointerdown".concat(EVENT_KEY),EVENT_POINTERUP="pointerup".concat(EVENT_KEY),EVENT_DRAG_START="dragstart".concat(EVENT_KEY),EVENT_LOAD_DATA_API="load".concat(EVENT_KEY).concat(".data-api"),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),PointerType={TOUCH:"touch",PEN:"pen"};class Carousel{constructor(element,config){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(config),this._element=element,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}static get VERSION(){return"4.6.0"}static get Default(){return Default}next(){this._isSliding||this._slide("next")}nextWhenVisible(){const $element=(0,_jquery.default)(this._element);!document.hidden&&$element.is(":visible")&&"hidden"!==$element.css("visibility")&&this.next()}prev(){this._isSliding||this._slide("prev")}pause(event){event||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(_util.default.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(event){event||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(index){this._activeElement=this._element.querySelector(".active.carousel-item");const activeIndex=this._getItemIndex(this._activeElement);if(index>this._items.length-1||index<0)return;if(this._isSliding)return void(0,_jquery.default)(this._element).one(EVENT_SLID,(()=>this.to(index)));if(activeIndex===index)return this.pause(),void this.cycle();const direction=index>activeIndex?"next":"prev";this._slide(direction,this._items[index])}dispose(){(0,_jquery.default)(this._element).off(EVENT_KEY),_jquery.default.removeData(this._element,DATA_KEY),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}_getConfig(config){return config={...Default,...config},_util.default.typeCheckConfig(NAME,config,DefaultType),config}_handleSwipe(){const absDeltax=Math.abs(this.touchDeltaX);if(absDeltax<=40)return;const direction=absDeltax/this.touchDeltaX;this.touchDeltaX=0,direction>0&&this.prev(),direction<0&&this.next()}_addEventListeners(){this._config.keyboard&&(0,_jquery.default)(this._element).on(EVENT_KEYDOWN,(event=>this._keydown(event))),"hover"===this._config.pause&&(0,_jquery.default)(this._element).on(EVENT_MOUSEENTER,(event=>this.pause(event))).on(EVENT_MOUSELEAVE,(event=>this.cycle(event))),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const start=event=>{this._pointerEvent&&PointerType[event.originalEvent.pointerType.toUpperCase()]?this.touchStartX=event.originalEvent.clientX:this._pointerEvent||(this.touchStartX=event.originalEvent.touches[0].clientX)},move=event=>{event.originalEvent.touches&&event.originalEvent.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=event.originalEvent.touches[0].clientX-this.touchStartX},end=event=>{this._pointerEvent&&PointerType[event.originalEvent.pointerType.toUpperCase()]&&(this.touchDeltaX=event.originalEvent.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((event=>this.cycle(event)),500+this._config.interval))};(0,_jquery.default)(this._element.querySelectorAll(".carousel-item img")).on(EVENT_DRAG_START,(e=>e.preventDefault())),this._pointerEvent?((0,_jquery.default)(this._element).on(EVENT_POINTERDOWN,(event=>start(event))),(0,_jquery.default)(this._element).on(EVENT_POINTERUP,(event=>end(event))),this._element.classList.add("pointer-event")):((0,_jquery.default)(this._element).on(EVENT_TOUCHSTART,(event=>start(event))),(0,_jquery.default)(this._element).on(EVENT_TOUCHMOVE,(event=>move(event))),(0,_jquery.default)(this._element).on(EVENT_TOUCHEND,(event=>end(event))))}_keydown(event){if(!/input|textarea/i.test(event.target.tagName))switch(event.which){case 37:event.preventDefault(),this.prev();break;case 39:event.preventDefault(),this.next()}}_getItemIndex(element){return this._items=element&&element.parentNode?[].slice.call(element.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(element)}_getItemByDirection(direction,activeElement){const isNextDirection="next"===direction,isPrevDirection="prev"===direction,activeIndex=this._getItemIndex(activeElement),lastItemIndex=this._items.length-1;if((isPrevDirection&&0===activeIndex||isNextDirection&&activeIndex===lastItemIndex)&&!this._config.wrap)return activeElement;const itemIndex=(activeIndex+("prev"===direction?-1:1))%this._items.length;return-1===itemIndex?this._items[this._items.length-1]:this._items[itemIndex]}_triggerSlideEvent(relatedTarget,eventDirectionName){const targetIndex=this._getItemIndex(relatedTarget),fromIndex=this._getItemIndex(this._element.querySelector(".active.carousel-item")),slideEvent=_jquery.default.Event(EVENT_SLIDE,{relatedTarget:relatedTarget,direction:eventDirectionName,from:fromIndex,to:targetIndex});return(0,_jquery.default)(this._element).trigger(slideEvent),slideEvent}_setActiveIndicatorElement(element){if(this._indicatorsElement){const indicators=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));(0,_jquery.default)(indicators).removeClass("active");const nextIndicator=this._indicatorsElement.children[this._getItemIndex(element)];nextIndicator&&(0,_jquery.default)(nextIndicator).addClass("active")}}_updateInterval(){const element=this._activeElement||this._element.querySelector(".active.carousel-item");if(!element)return;const elementInterval=parseInt(element.getAttribute("data-interval"),10);elementInterval?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=elementInterval):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(direction,element){const activeElement=this._element.querySelector(".active.carousel-item"),activeElementIndex=this._getItemIndex(activeElement),nextElement=element||activeElement&&this._getItemByDirection(direction,activeElement),nextElementIndex=this._getItemIndex(nextElement),isCycling=Boolean(this._interval);let directionalClassName,orderClassName,eventDirectionName;if("next"===direction?(directionalClassName="carousel-item-left",orderClassName="carousel-item-next",eventDirectionName="left"):(directionalClassName="carousel-item-right",orderClassName="carousel-item-prev",eventDirectionName="right"),nextElement&&(0,_jquery.default)(nextElement).hasClass("active"))return void(this._isSliding=!1);if(this._triggerSlideEvent(nextElement,eventDirectionName).isDefaultPrevented())return;if(!activeElement||!nextElement)return;this._isSliding=!0,isCycling&&this.pause(),this._setActiveIndicatorElement(nextElement),this._activeElement=nextElement;const slidEvent=_jquery.default.Event(EVENT_SLID,{relatedTarget:nextElement,direction:eventDirectionName,from:activeElementIndex,to:nextElementIndex});if((0,_jquery.default)(this._element).hasClass("slide")){(0,_jquery.default)(nextElement).addClass(orderClassName),_util.default.reflow(nextElement),(0,_jquery.default)(activeElement).addClass(directionalClassName),(0,_jquery.default)(nextElement).addClass(directionalClassName);const transitionDuration=_util.default.getTransitionDurationFromElement(activeElement);(0,_jquery.default)(activeElement).one(_util.default.TRANSITION_END,(()=>{(0,_jquery.default)(nextElement).removeClass("".concat(directionalClassName," ").concat(orderClassName)).addClass("active"),(0,_jquery.default)(activeElement).removeClass("".concat("active"," ").concat(orderClassName," ").concat(directionalClassName)),this._isSliding=!1,setTimeout((()=>(0,_jquery.default)(this._element).trigger(slidEvent)),0)})).emulateTransitionEnd(transitionDuration)}else(0,_jquery.default)(activeElement).removeClass("active"),(0,_jquery.default)(nextElement).addClass("active"),this._isSliding=!1,(0,_jquery.default)(this._element).trigger(slidEvent);isCycling&&this.cycle()}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data(DATA_KEY),_config={...Default,...(0,_jquery.default)(this).data()};"object"==typeof config&&(_config={..._config,...config});const action="string"==typeof config?config:_config.slide;if(data||(data=new Carousel(this,_config),(0,_jquery.default)(this).data(DATA_KEY,data)),"number"==typeof config)data.to(config);else if("string"==typeof action){if(void 0===data[action])throw new TypeError('No method named "'.concat(action,'"'));data[action]()}else _config.interval&&_config.ride&&(data.pause(),data.cycle())}))}static _dataApiClickHandler(event){const selector=_util.default.getSelectorFromElement(this);if(!selector)return;const target=(0,_jquery.default)(selector)[0];if(!target||!(0,_jquery.default)(target).hasClass("carousel"))return;const config={...(0,_jquery.default)(target).data(),...(0,_jquery.default)(this).data()},slideIndex=this.getAttribute("data-slide-to");slideIndex&&(config.interval=!1),Carousel._jQueryInterface.call((0,_jquery.default)(target),config),slideIndex&&(0,_jquery.default)(target).data(DATA_KEY).to(slideIndex),event.preventDefault()}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,"[data-slide], [data-slide-to]",Carousel._dataApiClickHandler),(0,_jquery.default)(window).on(EVENT_LOAD_DATA_API,(()=>{const carousels=[].slice.call(document.querySelectorAll('[data-ride="carousel"]'));for(let i=0,len=carousels.length;i(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Carousel._jQueryInterface);var _default=Carousel;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/carousel",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="carousel",DATA_KEY="bs.carousel",EVENT_KEY=".".concat(DATA_KEY),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],EVENT_SLIDE="slide".concat(EVENT_KEY),EVENT_SLID="slid".concat(EVENT_KEY),EVENT_KEYDOWN="keydown".concat(EVENT_KEY),EVENT_MOUSEENTER="mouseenter".concat(EVENT_KEY),EVENT_MOUSELEAVE="mouseleave".concat(EVENT_KEY),EVENT_TOUCHSTART="touchstart".concat(EVENT_KEY),EVENT_TOUCHMOVE="touchmove".concat(EVENT_KEY),EVENT_TOUCHEND="touchend".concat(EVENT_KEY),EVENT_POINTERDOWN="pointerdown".concat(EVENT_KEY),EVENT_POINTERUP="pointerup".concat(EVENT_KEY),EVENT_DRAG_START="dragstart".concat(EVENT_KEY),EVENT_LOAD_DATA_API="load".concat(EVENT_KEY).concat(".data-api"),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},PointerType={TOUCH:"touch",PEN:"pen"};class Carousel{constructor(element,config){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(config),this._element=element,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}static get VERSION(){return"4.6.2"}static get Default(){return Default}next(){this._isSliding||this._slide("next")}nextWhenVisible(){const $element=(0,_jquery.default)(this._element);!document.hidden&&$element.is(":visible")&&"hidden"!==$element.css("visibility")&&this.next()}prev(){this._isSliding||this._slide("prev")}pause(event){event||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(_util.default.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(event){event||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(index){this._activeElement=this._element.querySelector(".active.carousel-item");const activeIndex=this._getItemIndex(this._activeElement);if(index>this._items.length-1||index<0)return;if(this._isSliding)return void(0,_jquery.default)(this._element).one(EVENT_SLID,(()=>this.to(index)));if(activeIndex===index)return this.pause(),void this.cycle();const direction=index>activeIndex?"next":"prev";this._slide(direction,this._items[index])}dispose(){(0,_jquery.default)(this._element).off(EVENT_KEY),_jquery.default.removeData(this._element,DATA_KEY),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}_getConfig(config){return config={...Default,...config},_util.default.typeCheckConfig(NAME,config,DefaultType),config}_handleSwipe(){const absDeltax=Math.abs(this.touchDeltaX);if(absDeltax<=40)return;const direction=absDeltax/this.touchDeltaX;this.touchDeltaX=0,direction>0&&this.prev(),direction<0&&this.next()}_addEventListeners(){this._config.keyboard&&(0,_jquery.default)(this._element).on(EVENT_KEYDOWN,(event=>this._keydown(event))),"hover"===this._config.pause&&(0,_jquery.default)(this._element).on(EVENT_MOUSEENTER,(event=>this.pause(event))).on(EVENT_MOUSELEAVE,(event=>this.cycle(event))),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const start=event=>{this._pointerEvent&&PointerType[event.originalEvent.pointerType.toUpperCase()]?this.touchStartX=event.originalEvent.clientX:this._pointerEvent||(this.touchStartX=event.originalEvent.touches[0].clientX)},move=event=>{this.touchDeltaX=event.originalEvent.touches&&event.originalEvent.touches.length>1?0:event.originalEvent.touches[0].clientX-this.touchStartX},end=event=>{this._pointerEvent&&PointerType[event.originalEvent.pointerType.toUpperCase()]&&(this.touchDeltaX=event.originalEvent.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((event=>this.cycle(event)),500+this._config.interval))};(0,_jquery.default)(this._element.querySelectorAll(".carousel-item img")).on(EVENT_DRAG_START,(e=>e.preventDefault())),this._pointerEvent?((0,_jquery.default)(this._element).on(EVENT_POINTERDOWN,(event=>start(event))),(0,_jquery.default)(this._element).on(EVENT_POINTERUP,(event=>end(event))),this._element.classList.add("pointer-event")):((0,_jquery.default)(this._element).on(EVENT_TOUCHSTART,(event=>start(event))),(0,_jquery.default)(this._element).on(EVENT_TOUCHMOVE,(event=>move(event))),(0,_jquery.default)(this._element).on(EVENT_TOUCHEND,(event=>end(event))))}_keydown(event){if(!/input|textarea/i.test(event.target.tagName))switch(event.which){case 37:event.preventDefault(),this.prev();break;case 39:event.preventDefault(),this.next()}}_getItemIndex(element){return this._items=element&&element.parentNode?[].slice.call(element.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(element)}_getItemByDirection(direction,activeElement){const isNextDirection="next"===direction,isPrevDirection="prev"===direction,activeIndex=this._getItemIndex(activeElement),lastItemIndex=this._items.length-1;if((isPrevDirection&&0===activeIndex||isNextDirection&&activeIndex===lastItemIndex)&&!this._config.wrap)return activeElement;const itemIndex=(activeIndex+("prev"===direction?-1:1))%this._items.length;return-1===itemIndex?this._items[this._items.length-1]:this._items[itemIndex]}_triggerSlideEvent(relatedTarget,eventDirectionName){const targetIndex=this._getItemIndex(relatedTarget),fromIndex=this._getItemIndex(this._element.querySelector(".active.carousel-item")),slideEvent=_jquery.default.Event(EVENT_SLIDE,{relatedTarget:relatedTarget,direction:eventDirectionName,from:fromIndex,to:targetIndex});return(0,_jquery.default)(this._element).trigger(slideEvent),slideEvent}_setActiveIndicatorElement(element){if(this._indicatorsElement){const indicators=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));(0,_jquery.default)(indicators).removeClass("active");const nextIndicator=this._indicatorsElement.children[this._getItemIndex(element)];nextIndicator&&(0,_jquery.default)(nextIndicator).addClass("active")}}_updateInterval(){const element=this._activeElement||this._element.querySelector(".active.carousel-item");if(!element)return;const elementInterval=parseInt(element.getAttribute("data-interval"),10);elementInterval?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=elementInterval):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(direction,element){const activeElement=this._element.querySelector(".active.carousel-item"),activeElementIndex=this._getItemIndex(activeElement),nextElement=element||activeElement&&this._getItemByDirection(direction,activeElement),nextElementIndex=this._getItemIndex(nextElement),isCycling=Boolean(this._interval);let directionalClassName,orderClassName,eventDirectionName;if("next"===direction?(directionalClassName="carousel-item-left",orderClassName="carousel-item-next",eventDirectionName="left"):(directionalClassName="carousel-item-right",orderClassName="carousel-item-prev",eventDirectionName="right"),nextElement&&(0,_jquery.default)(nextElement).hasClass("active"))return void(this._isSliding=!1);if(this._triggerSlideEvent(nextElement,eventDirectionName).isDefaultPrevented())return;if(!activeElement||!nextElement)return;this._isSliding=!0,isCycling&&this.pause(),this._setActiveIndicatorElement(nextElement),this._activeElement=nextElement;const slidEvent=_jquery.default.Event(EVENT_SLID,{relatedTarget:nextElement,direction:eventDirectionName,from:activeElementIndex,to:nextElementIndex});if((0,_jquery.default)(this._element).hasClass("slide")){(0,_jquery.default)(nextElement).addClass(orderClassName),_util.default.reflow(nextElement),(0,_jquery.default)(activeElement).addClass(directionalClassName),(0,_jquery.default)(nextElement).addClass(directionalClassName);const transitionDuration=_util.default.getTransitionDurationFromElement(activeElement);(0,_jquery.default)(activeElement).one(_util.default.TRANSITION_END,(()=>{(0,_jquery.default)(nextElement).removeClass("".concat(directionalClassName," ").concat(orderClassName)).addClass("active"),(0,_jquery.default)(activeElement).removeClass("".concat("active"," ").concat(orderClassName," ").concat(directionalClassName)),this._isSliding=!1,setTimeout((()=>(0,_jquery.default)(this._element).trigger(slidEvent)),0)})).emulateTransitionEnd(transitionDuration)}else(0,_jquery.default)(activeElement).removeClass("active"),(0,_jquery.default)(nextElement).addClass("active"),this._isSliding=!1,(0,_jquery.default)(this._element).trigger(slidEvent);isCycling&&this.cycle()}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data(DATA_KEY),_config={...Default,...(0,_jquery.default)(this).data()};"object"==typeof config&&(_config={..._config,...config});const action="string"==typeof config?config:_config.slide;if(data||(data=new Carousel(this,_config),(0,_jquery.default)(this).data(DATA_KEY,data)),"number"==typeof config)data.to(config);else if("string"==typeof action){if(void 0===data[action])throw new TypeError('No method named "'.concat(action,'"'));data[action]()}else _config.interval&&_config.ride&&(data.pause(),data.cycle())}))}static _dataApiClickHandler(event){const selector=_util.default.getSelectorFromElement(this);if(!selector)return;const target=(0,_jquery.default)(selector)[0];if(!target||!(0,_jquery.default)(target).hasClass("carousel"))return;const config={...(0,_jquery.default)(target).data(),...(0,_jquery.default)(this).data()},slideIndex=this.getAttribute("data-slide-to");slideIndex&&(config.interval=!1),Carousel._jQueryInterface.call((0,_jquery.default)(target),config),slideIndex&&(0,_jquery.default)(target).data(DATA_KEY).to(slideIndex),event.preventDefault()}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,"[data-slide], [data-slide-to]",Carousel._dataApiClickHandler),(0,_jquery.default)(window).on(EVENT_LOAD_DATA_API,(()=>{const carousels=[].slice.call(document.querySelectorAll('[data-ride="carousel"]'));for(let i=0,len=carousels.length;i(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Carousel._jQueryInterface);var _default=Carousel;return _exports.default=_default,_exports.default})); //# sourceMappingURL=carousel.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/carousel.min.js.map b/theme/boost/amd/build/bootstrap/carousel.min.js.map index 3174c3e173940..44cf1fb065a5c 100644 --- a/theme/boost/amd/build/bootstrap/carousel.min.js.map +++ b/theme/boost/amd/build/bootstrap/carousel.min.js.map @@ -1 +1 @@ -{"version":3,"file":"carousel.min.js","sources":["../../src/bootstrap/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n if (!element) {\n return\n }\n\n const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","PointerType","TOUCH","PEN","Carousel","constructor","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","this","_getConfig","_element","_indicatorsElement","querySelector","_touchSupported","document","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","window","PointerEvent","MSPointerEvent","_addEventListeners","VERSION","next","_slide","nextWhenVisible","$element","hidden","is","css","prev","event","triggerTransitionEnd","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","typeCheckConfig","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","toUpperCase","clientX","touches","move","end","clearTimeout","setTimeout","querySelectorAll","e","preventDefault","classList","add","test","target","tagName","which","parentNode","slice","call","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","Event","from","trigger","_setActiveIndicatorElement","indicators","removeClass","nextIndicator","children","addClass","elementInterval","parseInt","getAttribute","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","emulateTransitionEnd","each","data","action","TypeError","ride","selector","getSelectorFromElement","slideIndex","_jQueryInterface","_dataApiClickHandler","carousels","i","len","$carousel","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"carousel.min.js","sources":["../../src/bootstrap/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ?\n 0 :\n event.originalEvent.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n if (!element) {\n return\n }\n\n const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","constructor","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","this","_getConfig","_element","_indicatorsElement","querySelector","_touchSupported","document","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","window","PointerEvent","MSPointerEvent","_addEventListeners","VERSION","next","_slide","nextWhenVisible","$element","hidden","is","css","prev","event","triggerTransitionEnd","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","typeCheckConfig","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","toUpperCase","clientX","touches","move","end","clearTimeout","setTimeout","querySelectorAll","e","preventDefault","classList","add","test","target","tagName","which","parentNode","slice","call","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","Event","from","trigger","_setActiveIndicatorElement","indicators","removeClass","nextIndicator","children","addClass","elementInterval","parseInt","getAttribute","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","emulateTransitionEnd","each","data","action","TypeError","ride","selector","getSelectorFromElement","slideIndex","_jQueryInterface","_dataApiClickHandler","carousels","i","len","$carousel","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/collapse.min.js b/theme/boost/amd/build/bootstrap/collapse.min.js index f622afd646c3c..222f8d67ef23a 100644 --- a/theme/boost/amd/build/bootstrap/collapse.min.js +++ b/theme/boost/amd/build/bootstrap/collapse.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/collapse",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="collapse",DATA_KEY="bs.collapse",EVENT_KEY=".".concat(DATA_KEY),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],Default={toggle:!0,parent:""},DefaultType={toggle:"boolean",parent:"(string|element)"},EVENT_SHOW="show".concat(EVENT_KEY),EVENT_SHOWN="shown".concat(EVENT_KEY),EVENT_HIDE="hide".concat(EVENT_KEY),EVENT_HIDDEN="hidden".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api");class Collapse{constructor(element,config){this._isTransitioning=!1,this._element=element,this._config=this._getConfig(config),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'.concat(element.id,'"],')+'[data-toggle="collapse"][data-target="#'.concat(element.id,'"]')));const toggleList=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]'));for(let i=0,len=toggleList.length;ifoundElem===element));null!==selector&&filterElement.length>0&&(this._selector=selector,this._triggerArray.push(elem))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get VERSION(){return"4.6.0"}static get Default(){return Default}toggle(){(0,_jquery.default)(this._element).hasClass("show")?this.hide():this.show()}show(){if(this._isTransitioning||(0,_jquery.default)(this._element).hasClass("show"))return;let actives,activesData;if(this._parent&&(actives=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((elem=>"string"==typeof this._config.parent?elem.getAttribute("data-parent")===this._config.parent:elem.classList.contains("collapse"))),0===actives.length&&(actives=null)),actives&&(activesData=(0,_jquery.default)(actives).not(this._selector).data(DATA_KEY),activesData&&activesData._isTransitioning))return;const startEvent=_jquery.default.Event(EVENT_SHOW);if((0,_jquery.default)(this._element).trigger(startEvent),startEvent.isDefaultPrevented())return;actives&&(Collapse._jQueryInterface.call((0,_jquery.default)(actives).not(this._selector),"hide"),activesData||(0,_jquery.default)(actives).data(DATA_KEY,null));const dimension=this._getDimension();(0,_jquery.default)(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[dimension]=0,this._triggerArray.length&&(0,_jquery.default)(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);const capitalizedDimension=dimension[0].toUpperCase()+dimension.slice(1),scrollSize="scroll".concat(capitalizedDimension),transitionDuration=_util.default.getTransitionDurationFromElement(this._element);(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(()=>{(0,_jquery.default)(this._element).removeClass("collapsing").addClass("".concat("collapse"," ").concat("show")),this._element.style[dimension]="",this.setTransitioning(!1),(0,_jquery.default)(this._element).trigger(EVENT_SHOWN)})).emulateTransitionEnd(transitionDuration),this._element.style[dimension]="".concat(this._element[scrollSize],"px")}hide(){if(this._isTransitioning||!(0,_jquery.default)(this._element).hasClass("show"))return;const startEvent=_jquery.default.Event(EVENT_HIDE);if((0,_jquery.default)(this._element).trigger(startEvent),startEvent.isDefaultPrevented())return;const dimension=this._getDimension();this._element.style[dimension]="".concat(this._element.getBoundingClientRect()[dimension],"px"),_util.default.reflow(this._element),(0,_jquery.default)(this._element).addClass("collapsing").removeClass("".concat("collapse"," ").concat("show"));const triggerArrayLength=this._triggerArray.length;if(triggerArrayLength>0)for(let i=0;i{this.setTransitioning(!1),(0,_jquery.default)(this._element).removeClass("collapsing").addClass("collapse").trigger(EVENT_HIDDEN)})).emulateTransitionEnd(transitionDuration)}setTransitioning(isTransitioning){this._isTransitioning=isTransitioning}dispose(){_jquery.default.removeData(this._element,DATA_KEY),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(config){return(config={...Default,...config}).toggle=Boolean(config.toggle),_util.default.typeCheckConfig(NAME,config,DefaultType),config}_getDimension(){return(0,_jquery.default)(this._element).hasClass("width")?"width":"height"}_getParent(){let parent;_util.default.isElement(this._config.parent)?(parent=this._config.parent,void 0!==this._config.parent.jquery&&(parent=this._config.parent[0])):parent=document.querySelector(this._config.parent);const selector='[data-toggle="collapse"][data-parent="'.concat(this._config.parent,'"]'),children=[].slice.call(parent.querySelectorAll(selector));return(0,_jquery.default)(children).each(((i,element)=>{this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element),[element])})),parent}_addAriaAndCollapsedClass(element,triggerArray){const isOpen=(0,_jquery.default)(element).hasClass("show");triggerArray.length&&(0,_jquery.default)(triggerArray).toggleClass("collapsed",!isOpen).attr("aria-expanded",isOpen)}static _getTargetFromElement(element){const selector=_util.default.getSelectorFromElement(element);return selector?document.querySelector(selector):null}static _jQueryInterface(config){return this.each((function(){const $element=(0,_jquery.default)(this);let data=$element.data(DATA_KEY);const _config={...Default,...$element.data(),..."object"==typeof config&&config?config:{}};if(!data&&_config.toggle&&"string"==typeof config&&/show|hide/.test(config)&&(_config.toggle=!1),data||(data=new Collapse(this,_config),$element.data(DATA_KEY,data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-toggle="collapse"]',(function(event){"A"===event.currentTarget.tagName&&event.preventDefault();const $trigger=(0,_jquery.default)(this),selector=_util.default.getSelectorFromElement(this),selectors=[].slice.call(document.querySelectorAll(selector));(0,_jquery.default)(selectors).each((function(){const $target=(0,_jquery.default)(this),config=$target.data(DATA_KEY)?"toggle":$trigger.data();Collapse._jQueryInterface.call($target,config)}))})),_jquery.default.fn[NAME]=Collapse._jQueryInterface,_jquery.default.fn[NAME].Constructor=Collapse,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Collapse._jQueryInterface);var _default=Collapse;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/collapse",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="collapse",DATA_KEY="bs.collapse",EVENT_KEY=".".concat(DATA_KEY),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],EVENT_SHOW="show".concat(EVENT_KEY),EVENT_SHOWN="shown".concat(EVENT_KEY),EVENT_HIDE="hide".concat(EVENT_KEY),EVENT_HIDDEN="hidden".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),Default={toggle:!0,parent:""},DefaultType={toggle:"boolean",parent:"(string|element)"};class Collapse{constructor(element,config){this._isTransitioning=!1,this._element=element,this._config=this._getConfig(config),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'.concat(element.id,'"],')+'[data-toggle="collapse"][data-target="#'.concat(element.id,'"]')));const toggleList=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]'));for(let i=0,len=toggleList.length;ifoundElem===element));null!==selector&&filterElement.length>0&&(this._selector=selector,this._triggerArray.push(elem))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get VERSION(){return"4.6.2"}static get Default(){return Default}toggle(){(0,_jquery.default)(this._element).hasClass("show")?this.hide():this.show()}show(){if(this._isTransitioning||(0,_jquery.default)(this._element).hasClass("show"))return;let actives,activesData;if(this._parent&&(actives=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((elem=>"string"==typeof this._config.parent?elem.getAttribute("data-parent")===this._config.parent:elem.classList.contains("collapse"))),0===actives.length&&(actives=null)),actives&&(activesData=(0,_jquery.default)(actives).not(this._selector).data(DATA_KEY),activesData&&activesData._isTransitioning))return;const startEvent=_jquery.default.Event(EVENT_SHOW);if((0,_jquery.default)(this._element).trigger(startEvent),startEvent.isDefaultPrevented())return;actives&&(Collapse._jQueryInterface.call((0,_jquery.default)(actives).not(this._selector),"hide"),activesData||(0,_jquery.default)(actives).data(DATA_KEY,null));const dimension=this._getDimension();(0,_jquery.default)(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[dimension]=0,this._triggerArray.length&&(0,_jquery.default)(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);const capitalizedDimension=dimension[0].toUpperCase()+dimension.slice(1),scrollSize="scroll".concat(capitalizedDimension),transitionDuration=_util.default.getTransitionDurationFromElement(this._element);(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(()=>{(0,_jquery.default)(this._element).removeClass("collapsing").addClass("".concat("collapse"," ").concat("show")),this._element.style[dimension]="",this.setTransitioning(!1),(0,_jquery.default)(this._element).trigger(EVENT_SHOWN)})).emulateTransitionEnd(transitionDuration),this._element.style[dimension]="".concat(this._element[scrollSize],"px")}hide(){if(this._isTransitioning||!(0,_jquery.default)(this._element).hasClass("show"))return;const startEvent=_jquery.default.Event(EVENT_HIDE);if((0,_jquery.default)(this._element).trigger(startEvent),startEvent.isDefaultPrevented())return;const dimension=this._getDimension();this._element.style[dimension]="".concat(this._element.getBoundingClientRect()[dimension],"px"),_util.default.reflow(this._element),(0,_jquery.default)(this._element).addClass("collapsing").removeClass("".concat("collapse"," ").concat("show"));const triggerArrayLength=this._triggerArray.length;if(triggerArrayLength>0)for(let i=0;i{this.setTransitioning(!1),(0,_jquery.default)(this._element).removeClass("collapsing").addClass("collapse").trigger(EVENT_HIDDEN)})).emulateTransitionEnd(transitionDuration)}setTransitioning(isTransitioning){this._isTransitioning=isTransitioning}dispose(){_jquery.default.removeData(this._element,DATA_KEY),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(config){return(config={...Default,...config}).toggle=Boolean(config.toggle),_util.default.typeCheckConfig(NAME,config,DefaultType),config}_getDimension(){return(0,_jquery.default)(this._element).hasClass("width")?"width":"height"}_getParent(){let parent;_util.default.isElement(this._config.parent)?(parent=this._config.parent,void 0!==this._config.parent.jquery&&(parent=this._config.parent[0])):parent=document.querySelector(this._config.parent);const selector='[data-toggle="collapse"][data-parent="'.concat(this._config.parent,'"]'),children=[].slice.call(parent.querySelectorAll(selector));return(0,_jquery.default)(children).each(((i,element)=>{this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element),[element])})),parent}_addAriaAndCollapsedClass(element,triggerArray){const isOpen=(0,_jquery.default)(element).hasClass("show");triggerArray.length&&(0,_jquery.default)(triggerArray).toggleClass("collapsed",!isOpen).attr("aria-expanded",isOpen)}static _getTargetFromElement(element){const selector=_util.default.getSelectorFromElement(element);return selector?document.querySelector(selector):null}static _jQueryInterface(config){return this.each((function(){const $element=(0,_jquery.default)(this);let data=$element.data(DATA_KEY);const _config={...Default,...$element.data(),..."object"==typeof config&&config?config:{}};if(!data&&_config.toggle&&"string"==typeof config&&/show|hide/.test(config)&&(_config.toggle=!1),data||(data=new Collapse(this,_config),$element.data(DATA_KEY,data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-toggle="collapse"]',(function(event){"A"===event.currentTarget.tagName&&event.preventDefault();const $trigger=(0,_jquery.default)(this),selector=_util.default.getSelectorFromElement(this),selectors=[].slice.call(document.querySelectorAll(selector));(0,_jquery.default)(selectors).each((function(){const $target=(0,_jquery.default)(this),config=$target.data(DATA_KEY)?"toggle":$trigger.data();Collapse._jQueryInterface.call($target,config)}))})),_jquery.default.fn[NAME]=Collapse._jQueryInterface,_jquery.default.fn[NAME].Constructor=Collapse,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Collapse._jQueryInterface);var _default=Collapse;return _exports.default=_default,_exports.default})); //# sourceMappingURL=collapse.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/collapse.min.js.map b/theme/boost/amd/build/bootstrap/collapse.min.js.map index 6a7dd565888f6..61e7b5297e8cd 100644 --- a/theme/boost/amd/build/bootstrap/collapse.min.js.map +++ b/theme/boost/amd/build/bootstrap/collapse.min.js.map @@ -1 +1 @@ -{"version":3,"file":"collapse.min.js","sources":["../../src/bootstrap/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","Default","toggle","parent","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","Collapse","constructor","element","config","_isTransitioning","_element","_config","this","_getConfig","_triggerArray","slice","call","document","querySelectorAll","id","toggleList","i","len","length","elem","selector","Util","getSelectorFromElement","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","VERSION","hasClass","hide","show","actives","activesData","getAttribute","classList","contains","not","data","startEvent","Event","trigger","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","capitalizedDimension","toUpperCase","scrollSize","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","triggerArrayLength","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","isElement","jquery","querySelector","children","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$element","test","TypeError","on","event","currentTarget","tagName","preventDefault","$trigger","selectors","$target","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"collapse.min.js","sources":["../../src/bootstrap/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","Default","toggle","parent","DefaultType","Collapse","constructor","element","config","_isTransitioning","_element","_config","this","_getConfig","_triggerArray","slice","call","document","querySelectorAll","id","toggleList","i","len","length","elem","selector","Util","getSelectorFromElement","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","VERSION","hasClass","hide","show","actives","activesData","getAttribute","classList","contains","not","data","startEvent","Event","trigger","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","capitalizedDimension","toUpperCase","scrollSize","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","triggerArrayLength","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","isElement","jquery","querySelector","children","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$element","test","TypeError","on","event","currentTarget","tagName","preventDefault","$trigger","selectors","$target","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/dropdown.min.js b/theme/boost/amd/build/bootstrap/dropdown.min.js index b9934735d6e61..a19286ad31402 100644 --- a/theme/boost/amd/build/bootstrap/dropdown.min.js +++ b/theme/boost/amd/build/bootstrap/dropdown.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/dropdown",["exports","jquery","core/popper","./util"],(function(_exports,_jquery,_popper,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_popper=_interopRequireDefault(_popper),_util=_interopRequireDefault(_util);const NAME="dropdown",DATA_KEY="bs.dropdown",EVENT_KEY=".".concat(DATA_KEY),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],REGEXP_KEYDOWN=new RegExp("".concat(38,"|").concat(40,"|").concat(27)),EVENT_HIDE="hide".concat(EVENT_KEY),EVENT_HIDDEN="hidden".concat(EVENT_KEY),EVENT_SHOW="show".concat(EVENT_KEY),EVENT_SHOWN="shown".concat(EVENT_KEY),EVENT_CLICK="click".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),EVENT_KEYDOWN_DATA_API="keydown".concat(EVENT_KEY).concat(".data-api"),EVENT_KEYUP_DATA_API="keyup".concat(EVENT_KEY).concat(".data-api"),Default={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},DefaultType={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"};class Dropdown{constructor(element,config){this._element=element,this._popper=null,this._config=this._getConfig(config),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get VERSION(){return"4.6.0"}static get Default(){return Default}static get DefaultType(){return DefaultType}toggle(){if(this._element.disabled||(0,_jquery.default)(this._element).hasClass("disabled"))return;const isActive=(0,_jquery.default)(this._menu).hasClass("show");Dropdown._clearMenus(),isActive||this.show(!0)}show(){let usePopper=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this._element.disabled||(0,_jquery.default)(this._element).hasClass("disabled")||(0,_jquery.default)(this._menu).hasClass("show"))return;const relatedTarget={relatedTarget:this._element},showEvent=_jquery.default.Event(EVENT_SHOW,relatedTarget),parent=Dropdown._getParentFromElement(this._element);if((0,_jquery.default)(parent).trigger(showEvent),!showEvent.isDefaultPrevented()){if(!this._inNavbar&&usePopper){if(void 0===_popper.default)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let referenceElement=this._element;"parent"===this._config.reference?referenceElement=parent:_util.default.isElement(this._config.reference)&&(referenceElement=this._config.reference,void 0!==this._config.reference.jquery&&(referenceElement=this._config.reference[0])),"scrollParent"!==this._config.boundary&&(0,_jquery.default)(parent).addClass("position-static"),this._popper=new _popper.default(referenceElement,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===(0,_jquery.default)(parent).closest(".navbar-nav").length&&(0,_jquery.default)(document.body).children().on("mouseover",null,_jquery.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),(0,_jquery.default)(this._menu).toggleClass("show"),(0,_jquery.default)(parent).toggleClass("show").trigger(_jquery.default.Event(EVENT_SHOWN,relatedTarget))}}hide(){if(this._element.disabled||(0,_jquery.default)(this._element).hasClass("disabled")||!(0,_jquery.default)(this._menu).hasClass("show"))return;const relatedTarget={relatedTarget:this._element},hideEvent=_jquery.default.Event(EVENT_HIDE,relatedTarget),parent=Dropdown._getParentFromElement(this._element);(0,_jquery.default)(parent).trigger(hideEvent),hideEvent.isDefaultPrevented()||(this._popper&&this._popper.destroy(),(0,_jquery.default)(this._menu).toggleClass("show"),(0,_jquery.default)(parent).toggleClass("show").trigger(_jquery.default.Event(EVENT_HIDDEN,relatedTarget)))}dispose(){_jquery.default.removeData(this._element,DATA_KEY),(0,_jquery.default)(this._element).off(EVENT_KEY),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)}update(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()}_addEventListeners(){(0,_jquery.default)(this._element).on(EVENT_CLICK,(event=>{event.preventDefault(),event.stopPropagation(),this.toggle()}))}_getConfig(config){return config={...this.constructor.Default,...(0,_jquery.default)(this._element).data(),...config},_util.default.typeCheckConfig(NAME,config,this.constructor.DefaultType),config}_getMenuElement(){if(!this._menu){const parent=Dropdown._getParentFromElement(this._element);parent&&(this._menu=parent.querySelector(".dropdown-menu"))}return this._menu}_getPlacement(){const $parentDropdown=(0,_jquery.default)(this._element.parentNode);let placement="bottom-start";return $parentDropdown.hasClass("dropup")?placement=(0,_jquery.default)(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":$parentDropdown.hasClass("dropright")?placement="right-start":$parentDropdown.hasClass("dropleft")?placement="left-start":(0,_jquery.default)(this._menu).hasClass("dropdown-menu-right")&&(placement="bottom-end"),placement}_detectNavbar(){return(0,_jquery.default)(this._element).closest(".navbar").length>0}_getOffset(){const offset={};return"function"==typeof this._config.offset?offset.fn=data=>(data.offsets={...data.offsets,...this._config.offset(data.offsets,this._element)||{}},data):offset.offset=this._config.offset,offset}_getPopperConfig(){const popperConfig={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(popperConfig.modifiers.applyStyle={enabled:!1}),{...popperConfig,...this._config.popperConfig}}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data(DATA_KEY);if(data||(data=new Dropdown(this,"object"==typeof config?config:null),(0,_jquery.default)(this).data(DATA_KEY,data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}static _clearMenus(event){if(event&&(3===event.which||"keyup"===event.type&&9!==event.which))return;const toggles=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]'));for(let i=0,len=toggles.length;i(0,_jquery.default)(item).is(":visible")));if(0===items.length)return;let index=items.indexOf(event.target);38===event.which&&index>0&&index--,40===event.which&&index{e.stopPropagation()})),_jquery.default.fn[NAME]=Dropdown._jQueryInterface,_jquery.default.fn[NAME].Constructor=Dropdown,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Dropdown._jQueryInterface);var _default=Dropdown;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/dropdown",["exports","jquery","core/popper","./util"],(function(_exports,_jquery,_popper,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_popper=_interopRequireDefault(_popper),_util=_interopRequireDefault(_util);const NAME="dropdown",DATA_KEY="bs.dropdown",EVENT_KEY=".".concat(DATA_KEY),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],REGEXP_KEYDOWN=new RegExp("".concat(38,"|").concat(40,"|").concat(27)),EVENT_HIDE="hide".concat(EVENT_KEY),EVENT_HIDDEN="hidden".concat(EVENT_KEY),EVENT_SHOW="show".concat(EVENT_KEY),EVENT_SHOWN="shown".concat(EVENT_KEY),EVENT_CLICK="click".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),EVENT_KEYDOWN_DATA_API="keydown".concat(EVENT_KEY).concat(".data-api"),EVENT_KEYUP_DATA_API="keyup".concat(EVENT_KEY).concat(".data-api"),Default={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},DefaultType={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"};class Dropdown{constructor(element,config){this._element=element,this._popper=null,this._config=this._getConfig(config),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get VERSION(){return"4.6.2"}static get Default(){return Default}static get DefaultType(){return DefaultType}toggle(){if(this._element.disabled||(0,_jquery.default)(this._element).hasClass("disabled"))return;const isActive=(0,_jquery.default)(this._menu).hasClass("show");Dropdown._clearMenus(),isActive||this.show(!0)}show(){let usePopper=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this._element.disabled||(0,_jquery.default)(this._element).hasClass("disabled")||(0,_jquery.default)(this._menu).hasClass("show"))return;const relatedTarget={relatedTarget:this._element},showEvent=_jquery.default.Event(EVENT_SHOW,relatedTarget),parent=Dropdown._getParentFromElement(this._element);if((0,_jquery.default)(parent).trigger(showEvent),!showEvent.isDefaultPrevented()){if(!this._inNavbar&&usePopper){if(void 0===_popper.default)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let referenceElement=this._element;"parent"===this._config.reference?referenceElement=parent:_util.default.isElement(this._config.reference)&&(referenceElement=this._config.reference,void 0!==this._config.reference.jquery&&(referenceElement=this._config.reference[0])),"scrollParent"!==this._config.boundary&&(0,_jquery.default)(parent).addClass("position-static"),this._popper=new _popper.default(referenceElement,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===(0,_jquery.default)(parent).closest(".navbar-nav").length&&(0,_jquery.default)(document.body).children().on("mouseover",null,_jquery.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),(0,_jquery.default)(this._menu).toggleClass("show"),(0,_jquery.default)(parent).toggleClass("show").trigger(_jquery.default.Event(EVENT_SHOWN,relatedTarget))}}hide(){if(this._element.disabled||(0,_jquery.default)(this._element).hasClass("disabled")||!(0,_jquery.default)(this._menu).hasClass("show"))return;const relatedTarget={relatedTarget:this._element},hideEvent=_jquery.default.Event(EVENT_HIDE,relatedTarget),parent=Dropdown._getParentFromElement(this._element);(0,_jquery.default)(parent).trigger(hideEvent),hideEvent.isDefaultPrevented()||(this._popper&&this._popper.destroy(),(0,_jquery.default)(this._menu).toggleClass("show"),(0,_jquery.default)(parent).toggleClass("show").trigger(_jquery.default.Event(EVENT_HIDDEN,relatedTarget)))}dispose(){_jquery.default.removeData(this._element,DATA_KEY),(0,_jquery.default)(this._element).off(EVENT_KEY),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)}update(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()}_addEventListeners(){(0,_jquery.default)(this._element).on(EVENT_CLICK,(event=>{event.preventDefault(),event.stopPropagation(),this.toggle()}))}_getConfig(config){return config={...this.constructor.Default,...(0,_jquery.default)(this._element).data(),...config},_util.default.typeCheckConfig(NAME,config,this.constructor.DefaultType),config}_getMenuElement(){if(!this._menu){const parent=Dropdown._getParentFromElement(this._element);parent&&(this._menu=parent.querySelector(".dropdown-menu"))}return this._menu}_getPlacement(){const $parentDropdown=(0,_jquery.default)(this._element.parentNode);let placement="bottom-start";return $parentDropdown.hasClass("dropup")?placement=(0,_jquery.default)(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":$parentDropdown.hasClass("dropright")?placement="right-start":$parentDropdown.hasClass("dropleft")?placement="left-start":(0,_jquery.default)(this._menu).hasClass("dropdown-menu-right")&&(placement="bottom-end"),placement}_detectNavbar(){return(0,_jquery.default)(this._element).closest(".navbar").length>0}_getOffset(){const offset={};return"function"==typeof this._config.offset?offset.fn=data=>(data.offsets={...data.offsets,...this._config.offset(data.offsets,this._element)},data):offset.offset=this._config.offset,offset}_getPopperConfig(){const popperConfig={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(popperConfig.modifiers.applyStyle={enabled:!1}),{...popperConfig,...this._config.popperConfig}}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data(DATA_KEY);if(data||(data=new Dropdown(this,"object"==typeof config?config:null),(0,_jquery.default)(this).data(DATA_KEY,data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}static _clearMenus(event){if(event&&(3===event.which||"keyup"===event.type&&9!==event.which))return;const toggles=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]'));for(let i=0,len=toggles.length;i(0,_jquery.default)(item).is(":visible")));if(0===items.length)return;let index=items.indexOf(event.target);38===event.which&&index>0&&index--,40===event.which&&index{e.stopPropagation()})),_jquery.default.fn[NAME]=Dropdown._jQueryInterface,_jquery.default.fn[NAME].Constructor=Dropdown,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Dropdown._jQueryInterface);var _default=Dropdown;return _exports.default=_default,_exports.default})); //# sourceMappingURL=dropdown.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/dropdown.min.js.map b/theme/boost/amd/build/bootstrap/dropdown.min.js.map index 2cdaba375b304..ef8106dd4aa67 100644 --- a/theme/boost/amd/build/bootstrap/dropdown.min.js.map +++ b/theme/boost/amd/build/bootstrap/dropdown.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dropdown.min.js","sources":["../../src/bootstrap/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'core/popper'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","REGEXP_KEYDOWN","RegExp","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","Default","offset","flip","boundary","reference","display","popperConfig","DefaultType","Dropdown","constructor","element","config","_element","_popper","_config","this","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","VERSION","toggle","disabled","hasClass","isActive","_clearMenus","show","usePopper","relatedTarget","showEvent","Event","parent","_getParentFromElement","trigger","isDefaultPrevented","Popper","TypeError","referenceElement","Util","isElement","jquery","addClass","_getPopperConfig","document","documentElement","closest","length","body","children","on","noop","focus","setAttribute","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","data","typeCheckConfig","querySelector","_getPlacement","$parentDropdown","parentNode","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","each","which","type","toggles","slice","call","querySelectorAll","i","len","context","clickEvent","dropdownMenu","test","target","tagName","contains","removeClass","selector","getSelectorFromElement","items","filter","item","is","index","indexOf","_dataApiKeydownHandler","_jQueryInterface","e","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dropdown.min.js","sources":["../../src/bootstrap/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'core/popper'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar && usePopper) {\n // Check for Popper dependency\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element)\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","REGEXP_KEYDOWN","RegExp","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","Default","offset","flip","boundary","reference","display","popperConfig","DefaultType","Dropdown","constructor","element","config","_element","_popper","_config","this","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","VERSION","toggle","disabled","hasClass","isActive","_clearMenus","show","usePopper","relatedTarget","showEvent","Event","parent","_getParentFromElement","trigger","isDefaultPrevented","Popper","TypeError","referenceElement","Util","isElement","jquery","addClass","_getPopperConfig","document","documentElement","closest","length","body","children","on","noop","focus","setAttribute","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","data","typeCheckConfig","querySelector","_getPlacement","$parentDropdown","parentNode","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","each","which","type","toggles","slice","call","querySelectorAll","i","len","context","clickEvent","dropdownMenu","test","target","tagName","contains","removeClass","selector","getSelectorFromElement","items","filter","item","is","index","indexOf","_dataApiKeydownHandler","_jQueryInterface","e","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/modal.min.js b/theme/boost/amd/build/bootstrap/modal.min.js index 0fcd6756c4c37..f4f0d32b636ab 100644 --- a/theme/boost/amd/build/bootstrap/modal.min.js +++ b/theme/boost/amd/build/bootstrap/modal.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/modal",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="modal",EVENT_KEY=".".concat("bs.modal"),JQUERY_NO_CONFLICT=_jquery.default.fn.modal,Default={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},EVENT_HIDE="hide".concat(EVENT_KEY),EVENT_HIDE_PREVENTED="hidePrevented".concat(EVENT_KEY),EVENT_HIDDEN="hidden".concat(EVENT_KEY),EVENT_SHOW="show".concat(EVENT_KEY),EVENT_SHOWN="shown".concat(EVENT_KEY),EVENT_FOCUSIN="focusin".concat(EVENT_KEY),EVENT_RESIZE="resize".concat(EVENT_KEY),EVENT_CLICK_DISMISS="click.dismiss".concat(EVENT_KEY),EVENT_KEYDOWN_DISMISS="keydown.dismiss".concat(EVENT_KEY),EVENT_MOUSEUP_DISMISS="mouseup.dismiss".concat(EVENT_KEY),EVENT_MOUSEDOWN_DISMISS="mousedown.dismiss".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api");class Modal{constructor(element,config){this._config=this._getConfig(config),this._element=element,this._dialog=element.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get VERSION(){return"4.6.0"}static get Default(){return Default}toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)}show(relatedTarget){if(this._isShown||this._isTransitioning)return;(0,_jquery.default)(this._element).hasClass("fade")&&(this._isTransitioning=!0);const showEvent=_jquery.default.Event(EVENT_SHOW,{relatedTarget:relatedTarget});(0,_jquery.default)(this._element).trigger(showEvent),this._isShown||showEvent.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),(0,_jquery.default)(this._element).on(EVENT_CLICK_DISMISS,'[data-dismiss="modal"]',(event=>this.hide(event))),(0,_jquery.default)(this._dialog).on(EVENT_MOUSEDOWN_DISMISS,(()=>{(0,_jquery.default)(this._element).one(EVENT_MOUSEUP_DISMISS,(event=>{(0,_jquery.default)(event.target).is(this._element)&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(relatedTarget))))}hide(event){if(event&&event.preventDefault(),!this._isShown||this._isTransitioning)return;const hideEvent=_jquery.default.Event(EVENT_HIDE);if((0,_jquery.default)(this._element).trigger(hideEvent),!this._isShown||hideEvent.isDefaultPrevented())return;this._isShown=!1;const transition=(0,_jquery.default)(this._element).hasClass("fade");if(transition&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),(0,_jquery.default)(document).off(EVENT_FOCUSIN),(0,_jquery.default)(this._element).removeClass("show"),(0,_jquery.default)(this._element).off(EVENT_CLICK_DISMISS),(0,_jquery.default)(this._dialog).off(EVENT_MOUSEDOWN_DISMISS),transition){const transitionDuration=_util.default.getTransitionDurationFromElement(this._element);(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(event=>this._hideModal(event))).emulateTransitionEnd(transitionDuration)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach((htmlElement=>(0,_jquery.default)(htmlElement).off(EVENT_KEY))),(0,_jquery.default)(document).off(EVENT_FOCUSIN),_jquery.default.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(config){return config={...Default,...config},_util.default.typeCheckConfig(NAME,config,DefaultType),config}_triggerBackdropTransition(){const hideEventPrevented=_jquery.default.Event(EVENT_HIDE_PREVENTED);if((0,_jquery.default)(this._element).trigger(hideEventPrevented),hideEventPrevented.isDefaultPrevented())return;const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight;isModalOverflowing||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");const modalTransitionDuration=_util.default.getTransitionDurationFromElement(this._dialog);(0,_jquery.default)(this._element).off(_util.default.TRANSITION_END),(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(()=>{this._element.classList.remove("modal-static"),isModalOverflowing||(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(()=>{this._element.style.overflowY=""})).emulateTransitionEnd(this._element,modalTransitionDuration)})).emulateTransitionEnd(modalTransitionDuration),this._element.focus()}_showElement(relatedTarget){const transition=(0,_jquery.default)(this._element).hasClass("fade"),modalBody=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),(0,_jquery.default)(this._dialog).hasClass("modal-dialog-scrollable")&&modalBody?modalBody.scrollTop=0:this._element.scrollTop=0,transition&&_util.default.reflow(this._element),(0,_jquery.default)(this._element).addClass("show"),this._config.focus&&this._enforceFocus();const shownEvent=_jquery.default.Event(EVENT_SHOWN,{relatedTarget:relatedTarget}),transitionComplete=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,(0,_jquery.default)(this._element).trigger(shownEvent)};if(transition){const transitionDuration=_util.default.getTransitionDurationFromElement(this._dialog);(0,_jquery.default)(this._dialog).one(_util.default.TRANSITION_END,transitionComplete).emulateTransitionEnd(transitionDuration)}else transitionComplete()}_enforceFocus(){(0,_jquery.default)(document).off(EVENT_FOCUSIN).on(EVENT_FOCUSIN,(event=>{document!==event.target&&this._element!==event.target&&0===(0,_jquery.default)(this._element).has(event.target).length&&this._element.focus()}))}_setEscapeEvent(){this._isShown?(0,_jquery.default)(this._element).on(EVENT_KEYDOWN_DISMISS,(event=>{this._config.keyboard&&27===event.which?(event.preventDefault(),this.hide()):this._config.keyboard||27!==event.which||this._triggerBackdropTransition()})):this._isShown||(0,_jquery.default)(this._element).off(EVENT_KEYDOWN_DISMISS)}_setResizeEvent(){this._isShown?(0,_jquery.default)(window).on(EVENT_RESIZE,(event=>this.handleUpdate(event))):(0,_jquery.default)(window).off(EVENT_RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((()=>{(0,_jquery.default)(document.body).removeClass("modal-open"),this._resetAdjustments(),this._resetScrollbar(),(0,_jquery.default)(this._element).trigger(EVENT_HIDDEN)}))}_removeBackdrop(){this._backdrop&&((0,_jquery.default)(this._backdrop).remove(),this._backdrop=null)}_showBackdrop(callback){const animate=(0,_jquery.default)(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",animate&&this._backdrop.classList.add(animate),(0,_jquery.default)(this._backdrop).appendTo(document.body),(0,_jquery.default)(this._element).on(EVENT_CLICK_DISMISS,(event=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:event.target===event.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())})),animate&&_util.default.reflow(this._backdrop),(0,_jquery.default)(this._backdrop).addClass("show"),!callback)return;if(!animate)return void callback();const backdropTransitionDuration=_util.default.getTransitionDurationFromElement(this._backdrop);(0,_jquery.default)(this._backdrop).one(_util.default.TRANSITION_END,callback).emulateTransitionEnd(backdropTransitionDuration)}else if(!this._isShown&&this._backdrop){(0,_jquery.default)(this._backdrop).removeClass("show");const callbackRemove=()=>{this._removeBackdrop(),callback&&callback()};if((0,_jquery.default)(this._element).hasClass("fade")){const backdropTransitionDuration=_util.default.getTransitionDurationFromElement(this._backdrop);(0,_jquery.default)(this._backdrop).one(_util.default.TRANSITION_END,callbackRemove).emulateTransitionEnd(backdropTransitionDuration)}else callbackRemove()}else callback&&callback()}_adjustDialog(){const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&isModalOverflowing&&(this._element.style.paddingLeft="".concat(this._scrollbarWidth,"px")),this._isBodyOverflowing&&!isModalOverflowing&&(this._element.style.paddingRight="".concat(this._scrollbarWidth,"px"))}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const rect=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(rect.left+rect.right){const actualPadding=element.style.paddingRight,calculatedPadding=(0,_jquery.default)(element).css("padding-right");(0,_jquery.default)(element).data("padding-right",actualPadding).css("padding-right","".concat(parseFloat(calculatedPadding)+this._scrollbarWidth,"px"))})),(0,_jquery.default)(stickyContent).each(((index,element)=>{const actualMargin=element.style.marginRight,calculatedMargin=(0,_jquery.default)(element).css("margin-right");(0,_jquery.default)(element).data("margin-right",actualMargin).css("margin-right","".concat(parseFloat(calculatedMargin)-this._scrollbarWidth,"px"))}));const actualPadding=document.body.style.paddingRight,calculatedPadding=(0,_jquery.default)(document.body).css("padding-right");(0,_jquery.default)(document.body).data("padding-right",actualPadding).css("padding-right","".concat(parseFloat(calculatedPadding)+this._scrollbarWidth,"px"))}(0,_jquery.default)(document.body).addClass("modal-open")}_resetScrollbar(){const fixedContent=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));(0,_jquery.default)(fixedContent).each(((index,element)=>{const padding=(0,_jquery.default)(element).data("padding-right");(0,_jquery.default)(element).removeData("padding-right"),element.style.paddingRight=padding||""}));const elements=[].slice.call(document.querySelectorAll("".concat(".sticky-top")));(0,_jquery.default)(elements).each(((index,element)=>{const margin=(0,_jquery.default)(element).data("margin-right");void 0!==margin&&(0,_jquery.default)(element).css("margin-right",margin).removeData("margin-right")}));const padding=(0,_jquery.default)(document.body).data("padding-right");(0,_jquery.default)(document.body).removeData("padding-right"),document.body.style.paddingRight=padding||""}_getScrollbarWidth(){const scrollDiv=document.createElement("div");scrollDiv.className="modal-scrollbar-measure",document.body.appendChild(scrollDiv);const scrollbarWidth=scrollDiv.getBoundingClientRect().width-scrollDiv.clientWidth;return document.body.removeChild(scrollDiv),scrollbarWidth}static _jQueryInterface(config,relatedTarget){return this.each((function(){let data=(0,_jquery.default)(this).data("bs.modal");const _config={...Default,...(0,_jquery.default)(this).data(),..."object"==typeof config&&config?config:{}};if(data||(data=new Modal(this,_config),(0,_jquery.default)(this).data("bs.modal",data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config](relatedTarget)}else _config.show&&data.show(relatedTarget)}))}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-toggle="modal"]',(function(event){let target;const selector=_util.default.getSelectorFromElement(this);selector&&(target=document.querySelector(selector));const config=(0,_jquery.default)(target).data("bs.modal")?"toggle":{...(0,_jquery.default)(target).data(),...(0,_jquery.default)(this).data()};"A"!==this.tagName&&"AREA"!==this.tagName||event.preventDefault();const $target=(0,_jquery.default)(target).one(EVENT_SHOW,(showEvent=>{showEvent.isDefaultPrevented()||$target.one(EVENT_HIDDEN,(()=>{(0,_jquery.default)(this).is(":visible")&&this.focus()}))}));Modal._jQueryInterface.call((0,_jquery.default)(target),config,this)})),_jquery.default.fn.modal=Modal._jQueryInterface,_jquery.default.fn.modal.Constructor=Modal,_jquery.default.fn.modal.noConflict=()=>(_jquery.default.fn.modal=JQUERY_NO_CONFLICT,Modal._jQueryInterface);var _default=Modal;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/modal",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="modal",EVENT_KEY=".".concat("bs.modal"),JQUERY_NO_CONFLICT=_jquery.default.fn.modal,EVENT_HIDE="hide".concat(EVENT_KEY),EVENT_HIDE_PREVENTED="hidePrevented".concat(EVENT_KEY),EVENT_HIDDEN="hidden".concat(EVENT_KEY),EVENT_SHOW="show".concat(EVENT_KEY),EVENT_SHOWN="shown".concat(EVENT_KEY),EVENT_FOCUSIN="focusin".concat(EVENT_KEY),EVENT_RESIZE="resize".concat(EVENT_KEY),EVENT_CLICK_DISMISS="click.dismiss".concat(EVENT_KEY),EVENT_KEYDOWN_DISMISS="keydown.dismiss".concat(EVENT_KEY),EVENT_MOUSEUP_DISMISS="mouseup.dismiss".concat(EVENT_KEY),EVENT_MOUSEDOWN_DISMISS="mousedown.dismiss".concat(EVENT_KEY),EVENT_CLICK_DATA_API="click".concat(EVENT_KEY).concat(".data-api"),Default={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"};class Modal{constructor(element,config){this._config=this._getConfig(config),this._element=element,this._dialog=element.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get VERSION(){return"4.6.2"}static get Default(){return Default}toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)}show(relatedTarget){if(this._isShown||this._isTransitioning)return;const showEvent=_jquery.default.Event(EVENT_SHOW,{relatedTarget:relatedTarget});(0,_jquery.default)(this._element).trigger(showEvent),showEvent.isDefaultPrevented()||(this._isShown=!0,(0,_jquery.default)(this._element).hasClass("fade")&&(this._isTransitioning=!0),this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),(0,_jquery.default)(this._element).on(EVENT_CLICK_DISMISS,'[data-dismiss="modal"]',(event=>this.hide(event))),(0,_jquery.default)(this._dialog).on(EVENT_MOUSEDOWN_DISMISS,(()=>{(0,_jquery.default)(this._element).one(EVENT_MOUSEUP_DISMISS,(event=>{(0,_jquery.default)(event.target).is(this._element)&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(relatedTarget))))}hide(event){if(event&&event.preventDefault(),!this._isShown||this._isTransitioning)return;const hideEvent=_jquery.default.Event(EVENT_HIDE);if((0,_jquery.default)(this._element).trigger(hideEvent),!this._isShown||hideEvent.isDefaultPrevented())return;this._isShown=!1;const transition=(0,_jquery.default)(this._element).hasClass("fade");if(transition&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),(0,_jquery.default)(document).off(EVENT_FOCUSIN),(0,_jquery.default)(this._element).removeClass("show"),(0,_jquery.default)(this._element).off(EVENT_CLICK_DISMISS),(0,_jquery.default)(this._dialog).off(EVENT_MOUSEDOWN_DISMISS),transition){const transitionDuration=_util.default.getTransitionDurationFromElement(this._element);(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(event=>this._hideModal(event))).emulateTransitionEnd(transitionDuration)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach((htmlElement=>(0,_jquery.default)(htmlElement).off(EVENT_KEY))),(0,_jquery.default)(document).off(EVENT_FOCUSIN),_jquery.default.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(config){return config={...Default,...config},_util.default.typeCheckConfig(NAME,config,DefaultType),config}_triggerBackdropTransition(){const hideEventPrevented=_jquery.default.Event(EVENT_HIDE_PREVENTED);if((0,_jquery.default)(this._element).trigger(hideEventPrevented),hideEventPrevented.isDefaultPrevented())return;const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight;isModalOverflowing||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");const modalTransitionDuration=_util.default.getTransitionDurationFromElement(this._dialog);(0,_jquery.default)(this._element).off(_util.default.TRANSITION_END),(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(()=>{this._element.classList.remove("modal-static"),isModalOverflowing||(0,_jquery.default)(this._element).one(_util.default.TRANSITION_END,(()=>{this._element.style.overflowY=""})).emulateTransitionEnd(this._element,modalTransitionDuration)})).emulateTransitionEnd(modalTransitionDuration),this._element.focus()}_showElement(relatedTarget){const transition=(0,_jquery.default)(this._element).hasClass("fade"),modalBody=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),(0,_jquery.default)(this._dialog).hasClass("modal-dialog-scrollable")&&modalBody?modalBody.scrollTop=0:this._element.scrollTop=0,transition&&_util.default.reflow(this._element),(0,_jquery.default)(this._element).addClass("show"),this._config.focus&&this._enforceFocus();const shownEvent=_jquery.default.Event(EVENT_SHOWN,{relatedTarget:relatedTarget}),transitionComplete=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,(0,_jquery.default)(this._element).trigger(shownEvent)};if(transition){const transitionDuration=_util.default.getTransitionDurationFromElement(this._dialog);(0,_jquery.default)(this._dialog).one(_util.default.TRANSITION_END,transitionComplete).emulateTransitionEnd(transitionDuration)}else transitionComplete()}_enforceFocus(){(0,_jquery.default)(document).off(EVENT_FOCUSIN).on(EVENT_FOCUSIN,(event=>{document!==event.target&&this._element!==event.target&&0===(0,_jquery.default)(this._element).has(event.target).length&&this._element.focus()}))}_setEscapeEvent(){this._isShown?(0,_jquery.default)(this._element).on(EVENT_KEYDOWN_DISMISS,(event=>{this._config.keyboard&&27===event.which?(event.preventDefault(),this.hide()):this._config.keyboard||27!==event.which||this._triggerBackdropTransition()})):this._isShown||(0,_jquery.default)(this._element).off(EVENT_KEYDOWN_DISMISS)}_setResizeEvent(){this._isShown?(0,_jquery.default)(window).on(EVENT_RESIZE,(event=>this.handleUpdate(event))):(0,_jquery.default)(window).off(EVENT_RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((()=>{(0,_jquery.default)(document.body).removeClass("modal-open"),this._resetAdjustments(),this._resetScrollbar(),(0,_jquery.default)(this._element).trigger(EVENT_HIDDEN)}))}_removeBackdrop(){this._backdrop&&((0,_jquery.default)(this._backdrop).remove(),this._backdrop=null)}_showBackdrop(callback){const animate=(0,_jquery.default)(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",animate&&this._backdrop.classList.add(animate),(0,_jquery.default)(this._backdrop).appendTo(document.body),(0,_jquery.default)(this._element).on(EVENT_CLICK_DISMISS,(event=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:event.target===event.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())})),animate&&_util.default.reflow(this._backdrop),(0,_jquery.default)(this._backdrop).addClass("show"),!callback)return;if(!animate)return void callback();const backdropTransitionDuration=_util.default.getTransitionDurationFromElement(this._backdrop);(0,_jquery.default)(this._backdrop).one(_util.default.TRANSITION_END,callback).emulateTransitionEnd(backdropTransitionDuration)}else if(!this._isShown&&this._backdrop){(0,_jquery.default)(this._backdrop).removeClass("show");const callbackRemove=()=>{this._removeBackdrop(),callback&&callback()};if((0,_jquery.default)(this._element).hasClass("fade")){const backdropTransitionDuration=_util.default.getTransitionDurationFromElement(this._backdrop);(0,_jquery.default)(this._backdrop).one(_util.default.TRANSITION_END,callbackRemove).emulateTransitionEnd(backdropTransitionDuration)}else callbackRemove()}else callback&&callback()}_adjustDialog(){const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&isModalOverflowing&&(this._element.style.paddingLeft="".concat(this._scrollbarWidth,"px")),this._isBodyOverflowing&&!isModalOverflowing&&(this._element.style.paddingRight="".concat(this._scrollbarWidth,"px"))}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const rect=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(rect.left+rect.right){const actualPadding=element.style.paddingRight,calculatedPadding=(0,_jquery.default)(element).css("padding-right");(0,_jquery.default)(element).data("padding-right",actualPadding).css("padding-right","".concat(parseFloat(calculatedPadding)+this._scrollbarWidth,"px"))})),(0,_jquery.default)(stickyContent).each(((index,element)=>{const actualMargin=element.style.marginRight,calculatedMargin=(0,_jquery.default)(element).css("margin-right");(0,_jquery.default)(element).data("margin-right",actualMargin).css("margin-right","".concat(parseFloat(calculatedMargin)-this._scrollbarWidth,"px"))}));const actualPadding=document.body.style.paddingRight,calculatedPadding=(0,_jquery.default)(document.body).css("padding-right");(0,_jquery.default)(document.body).data("padding-right",actualPadding).css("padding-right","".concat(parseFloat(calculatedPadding)+this._scrollbarWidth,"px"))}(0,_jquery.default)(document.body).addClass("modal-open")}_resetScrollbar(){const fixedContent=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));(0,_jquery.default)(fixedContent).each(((index,element)=>{const padding=(0,_jquery.default)(element).data("padding-right");(0,_jquery.default)(element).removeData("padding-right"),element.style.paddingRight=padding||""}));const elements=[].slice.call(document.querySelectorAll("".concat(".sticky-top")));(0,_jquery.default)(elements).each(((index,element)=>{const margin=(0,_jquery.default)(element).data("margin-right");void 0!==margin&&(0,_jquery.default)(element).css("margin-right",margin).removeData("margin-right")}));const padding=(0,_jquery.default)(document.body).data("padding-right");(0,_jquery.default)(document.body).removeData("padding-right"),document.body.style.paddingRight=padding||""}_getScrollbarWidth(){const scrollDiv=document.createElement("div");scrollDiv.className="modal-scrollbar-measure",document.body.appendChild(scrollDiv);const scrollbarWidth=scrollDiv.getBoundingClientRect().width-scrollDiv.clientWidth;return document.body.removeChild(scrollDiv),scrollbarWidth}static _jQueryInterface(config,relatedTarget){return this.each((function(){let data=(0,_jquery.default)(this).data("bs.modal");const _config={...Default,...(0,_jquery.default)(this).data(),..."object"==typeof config&&config?config:{}};if(data||(data=new Modal(this,_config),(0,_jquery.default)(this).data("bs.modal",data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config](relatedTarget)}else _config.show&&data.show(relatedTarget)}))}}(0,_jquery.default)(document).on(EVENT_CLICK_DATA_API,'[data-toggle="modal"]',(function(event){let target;const selector=_util.default.getSelectorFromElement(this);selector&&(target=document.querySelector(selector));const config=(0,_jquery.default)(target).data("bs.modal")?"toggle":{...(0,_jquery.default)(target).data(),...(0,_jquery.default)(this).data()};"A"!==this.tagName&&"AREA"!==this.tagName||event.preventDefault();const $target=(0,_jquery.default)(target).one(EVENT_SHOW,(showEvent=>{showEvent.isDefaultPrevented()||$target.one(EVENT_HIDDEN,(()=>{(0,_jquery.default)(this).is(":visible")&&this.focus()}))}));Modal._jQueryInterface.call((0,_jquery.default)(target),config,this)})),_jquery.default.fn.modal=Modal._jQueryInterface,_jquery.default.fn.modal.Constructor=Modal,_jquery.default.fn.modal.noConflict=()=>(_jquery.default.fn.modal=JQUERY_NO_CONFLICT,Modal._jQueryInterface);var _default=Modal;return _exports.default=_default,_exports.default})); //# sourceMappingURL=modal.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/modal.min.js.map b/theme/boost/amd/build/bootstrap/modal.min.js.map index 6d544b1029829..69f5918551b71 100644 --- a/theme/boost/amd/build/bootstrap/modal.min.js.map +++ b/theme/boost/amd/build/bootstrap/modal.min.js.map @@ -1 +1 @@ -{"version":3,"file":"modal.min.js","sources":["../../src/bootstrap/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","Default","backdrop","keyboard","focus","show","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","Modal","constructor","element","config","_config","this","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","VERSION","toggle","relatedTarget","hide","hasClass","showEvent","Event","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","document","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","window","forEach","htmlElement","removeData","handleUpdate","typeCheckConfig","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","documentElement","clientHeight","style","overflowY","classList","add","modalTransitionDuration","remove","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","body","appendChild","display","removeAttribute","setAttribute","scrollTop","reflow","addClass","_enforceFocus","shownEvent","transitionComplete","has","length","which","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","slice","call","querySelectorAll","stickyContent","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","TypeError","selector","getSelectorFromElement","tagName","$target","_jQueryInterface","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"modal.min.js","sources":["../../src/bootstrap/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","Default","backdrop","keyboard","focus","show","DefaultType","Modal","constructor","element","config","_config","this","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","VERSION","toggle","relatedTarget","hide","showEvent","Event","trigger","isDefaultPrevented","hasClass","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","document","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","window","forEach","htmlElement","removeData","handleUpdate","typeCheckConfig","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","documentElement","clientHeight","style","overflowY","classList","add","modalTransitionDuration","remove","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","body","appendChild","display","removeAttribute","setAttribute","scrollTop","reflow","addClass","_enforceFocus","shownEvent","transitionComplete","has","length","which","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","slice","call","querySelectorAll","stickyContent","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","TypeError","selector","getSelectorFromElement","tagName","$target","_jQueryInterface","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/popover.min.js b/theme/boost/amd/build/bootstrap/popover.min.js index 904019a0d0fdf..1a40c133429d3 100644 --- a/theme/boost/amd/build/bootstrap/popover.min.js +++ b/theme/boost/amd/build/bootstrap/popover.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/popover",["exports","jquery","./tooltip"],(function(_exports,_jquery,_tooltip){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_tooltip=_interopRequireDefault(_tooltip);const NAME="popover",EVENT_KEY=".".concat("bs.popover"),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)".concat("bs-popover","\\S+"),"g"),Default={..._tooltip.default.Default,placement:"right",trigger:"click",content:"",template:''},DefaultType={..._tooltip.default.DefaultType,content:"(string|element|function)"},Event={HIDE:"hide".concat(EVENT_KEY),HIDDEN:"hidden".concat(EVENT_KEY),SHOW:"show".concat(EVENT_KEY),SHOWN:"shown".concat(EVENT_KEY),INSERTED:"inserted".concat(EVENT_KEY),CLICK:"click".concat(EVENT_KEY),FOCUSIN:"focusin".concat(EVENT_KEY),FOCUSOUT:"focusout".concat(EVENT_KEY),MOUSEENTER:"mouseenter".concat(EVENT_KEY),MOUSELEAVE:"mouseleave".concat(EVENT_KEY)};class Popover extends _tooltip.default{static get VERSION(){return"4.6.0"}static get Default(){return Default}static get NAME(){return NAME}static get DATA_KEY(){return"bs.popover"}static get Event(){return Event}static get EVENT_KEY(){return EVENT_KEY}static get DefaultType(){return DefaultType}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(attachment){(0,_jquery.default)(this.getTipElement()).addClass("".concat("bs-popover","-").concat(attachment))}getTipElement(){return this.tip=this.tip||(0,_jquery.default)(this.config.template)[0],this.tip}setContent(){const $tip=(0,_jquery.default)(this.getTipElement());this.setElementContent($tip.find(".popover-header"),this.getTitle());let content=this._getContent();"function"==typeof content&&(content=content.call(this.element)),this.setElementContent($tip.find(".popover-body"),content),$tip.removeClass("".concat("fade"," ").concat("show"))}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const $tip=(0,_jquery.default)(this.getTipElement()),tabClass=$tip.attr("class").match(BSCLS_PREFIX_REGEX);null!==tabClass&&tabClass.length>0&&$tip.removeClass(tabClass.join(""))}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data("bs.popover");const _config="object"==typeof config?config:null;if((data||!/dispose|hide/.test(config))&&(data||(data=new Popover(this,_config),(0,_jquery.default)(this).data("bs.popover",data)),"string"==typeof config)){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}}_jquery.default.fn[NAME]=Popover._jQueryInterface,_jquery.default.fn[NAME].Constructor=Popover,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Popover._jQueryInterface);var _default=Popover;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/popover",["exports","jquery","./tooltip"],(function(_exports,_jquery,_tooltip){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_tooltip=_interopRequireDefault(_tooltip);const NAME="popover",EVENT_KEY=".".concat("bs.popover"),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)".concat("bs-popover","\\S+"),"g"),Default={..._tooltip.default.Default,placement:"right",trigger:"click",content:"",template:''},DefaultType={..._tooltip.default.DefaultType,content:"(string|element|function)"},Event={HIDE:"hide".concat(EVENT_KEY),HIDDEN:"hidden".concat(EVENT_KEY),SHOW:"show".concat(EVENT_KEY),SHOWN:"shown".concat(EVENT_KEY),INSERTED:"inserted".concat(EVENT_KEY),CLICK:"click".concat(EVENT_KEY),FOCUSIN:"focusin".concat(EVENT_KEY),FOCUSOUT:"focusout".concat(EVENT_KEY),MOUSEENTER:"mouseenter".concat(EVENT_KEY),MOUSELEAVE:"mouseleave".concat(EVENT_KEY)};class Popover extends _tooltip.default{static get VERSION(){return"4.6.2"}static get Default(){return Default}static get NAME(){return NAME}static get DATA_KEY(){return"bs.popover"}static get Event(){return Event}static get EVENT_KEY(){return EVENT_KEY}static get DefaultType(){return DefaultType}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(attachment){(0,_jquery.default)(this.getTipElement()).addClass("".concat("bs-popover","-").concat(attachment))}getTipElement(){return this.tip=this.tip||(0,_jquery.default)(this.config.template)[0],this.tip}setContent(){const $tip=(0,_jquery.default)(this.getTipElement());this.setElementContent($tip.find(".popover-header"),this.getTitle());let content=this._getContent();"function"==typeof content&&(content=content.call(this.element)),this.setElementContent($tip.find(".popover-body"),content),$tip.removeClass("".concat("fade"," ").concat("show"))}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const $tip=(0,_jquery.default)(this.getTipElement()),tabClass=$tip.attr("class").match(BSCLS_PREFIX_REGEX);null!==tabClass&&tabClass.length>0&&$tip.removeClass(tabClass.join(""))}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data("bs.popover");const _config="object"==typeof config?config:null;if((data||!/dispose|hide/.test(config))&&(data||(data=new Popover(this,_config),(0,_jquery.default)(this).data("bs.popover",data)),"string"==typeof config)){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}}_jquery.default.fn[NAME]=Popover._jQueryInterface,_jquery.default.fn[NAME].Constructor=Popover,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,Popover._jQueryInterface);var _default=Popover;return _exports.default=_default,_exports.default})); //# sourceMappingURL=popover.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/popover.min.js.map b/theme/boost/amd/build/bootstrap/popover.min.js.map index c4b4ca93201be..24e189d6671f6 100644 --- a/theme/boost/amd/build/bootstrap/popover.min.js.map +++ b/theme/boost/amd/build/bootstrap/popover.min.js.map @@ -1 +1 @@ -{"version":3,"file":"popover.min.js","sources":["../../src/bootstrap/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Popover","VERSION","DATA_KEY","isWithContent","this","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","call","element","removeClass","getAttribute","_cleanTipClass","tabClass","attr","match","length","join","each","data","_config","test","TypeError","_jQueryInterface","Constructor","noConflict"],"mappings":"uWAgBMA,KAAO,UAGPC,qBADW,cAEXC,mBAAqBC,gBAAEC,GAAGJ,MAE1BK,mBAAqB,IAAIC,wBADV,qBAC+C,KAE9DC,QAAU,IACXC,iBAAQD,QACXE,UAAW,QACXC,QAAS,QACTC,QAAS,GACTC,SAAU,uIAMNC,YAAc,IACfL,iBAAQK,YACXF,QAAS,6BASLG,MAAQ,CACZC,mBAAad,WACbe,uBAAiBf,WACjBgB,mBAAahB,WACbiB,qBAAejB,WACfkB,2BAAqBlB,WACrBmB,qBAAenB,WACfoB,yBAAmBpB,WACnBqB,2BAAqBrB,WACrBsB,+BAAyBtB,WACzBuB,+BAAyBvB,kBASrBwB,gBAAgBjB,iBAGTkB,2BAnDG,QAuDHnB,4BACFA,QAGEP,yBACFA,KAGE2B,4BA9DI,aAkEJb,0BACFA,MAGEb,8BACFA,UAGEY,gCACFA,YAKTe,uBACSC,KAAKC,YAAcD,KAAKE,cAGjCC,mBAAmBC,gCACfJ,KAAKK,iBAAiBC,mBAlFP,yBAkFmCF,aAGtDC,4BACOE,IAAMP,KAAKO,MAAO,mBAAEP,KAAKQ,OAAOzB,UAAU,GACxCiB,KAAKO,IAGdE,mBACQC,MAAO,mBAAEV,KAAKK,sBAGfM,kBAAkBD,KAAKE,KAxET,mBAwE+BZ,KAAKC,gBACnDnB,QAAUkB,KAAKE,cACI,mBAAZpB,UACTA,QAAUA,QAAQ+B,KAAKb,KAAKc,eAGzBH,kBAAkBD,KAAKE,KA7EP,iBA6E+B9B,SAEpD4B,KAAKK,sBAnFe,mBACA,SAuFtBb,qBACSF,KAAKc,QAAQE,aAAa,iBAC/BhB,KAAKQ,OAAO1B,QAGhBmC,uBACQP,MAAO,mBAAEV,KAAKK,iBACda,SAAWR,KAAKS,KAAK,SAASC,MAAM5C,oBACzB,OAAb0C,UAAqBA,SAASG,OAAS,GACzCX,KAAKK,YAAYG,SAASI,KAAK,6BAMXd,eACfR,KAAKuB,MAAK,eACXC,MAAO,mBAAExB,MAAMwB,KA/HR,oBAgILC,QAA4B,iBAAXjB,OAAsBA,OAAS,SAEjDgB,OAAQ,eAAeE,KAAKlB,WAI5BgB,OACHA,KAAO,IAAI5B,QAAQI,KAAMyB,6BACvBzB,MAAMwB,KAxIC,aAwIcA,OAGH,iBAAXhB,QAAqB,SACF,IAAjBgB,KAAKhB,cACR,IAAImB,qCAA8BnB,aAG1CgB,KAAKhB,+BAYXjC,GAAGJ,MAAQyB,QAAQgC,iCACnBrD,GAAGJ,MAAM0D,YAAcjC,wBACvBrB,GAAGJ,MAAM2D,WAAa,qBACpBvD,GAAGJ,MAAQE,mBACNuB,QAAQgC,+BAGFhC"} \ No newline at end of file +{"version":3,"file":"popover.min.js","sources":["../../src/bootstrap/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Popover","VERSION","DATA_KEY","isWithContent","this","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","call","element","removeClass","getAttribute","_cleanTipClass","tabClass","attr","match","length","join","each","data","_config","test","TypeError","_jQueryInterface","Constructor","noConflict"],"mappings":"uWAcMA,KAAO,UAGPC,qBADW,cAEXC,mBAAqBC,gBAAEC,GAAGJ,MAE1BK,mBAAqB,IAAIC,wBADV,qBAC+C,KAQ9DC,QAAU,IACXC,iBAAQD,QACXE,UAAW,QACXC,QAAS,QACTC,QAAS,GACTC,SAAU,uIAMNC,YAAc,IACfL,iBAAQK,YACXF,QAAS,6BAGLG,MAAQ,CACZC,mBAAad,WACbe,uBAAiBf,WACjBgB,mBAAahB,WACbiB,qBAAejB,WACfkB,2BAAqBlB,WACrBmB,qBAAenB,WACfoB,yBAAmBpB,WACnBqB,2BAAqBrB,WACrBsB,+BAAyBtB,WACzBuB,+BAAyBvB,kBAOrBwB,gBAAgBjB,iBAETkB,2BAhDG,QAoDHnB,4BACFA,QAGEP,yBACFA,KAGE2B,4BA3DI,aA+DJb,0BACFA,MAGEb,8BACFA,UAGEY,gCACFA,YAITe,uBACSC,KAAKC,YAAcD,KAAKE,cAGjCC,mBAAmBC,gCACfJ,KAAKK,iBAAiBC,mBA9EP,yBA8EmCF,aAGtDC,4BACOE,IAAMP,KAAKO,MAAO,mBAAEP,KAAKQ,OAAOzB,UAAU,GACxCiB,KAAKO,IAGdE,mBACQC,MAAO,mBAAEV,KAAKK,sBAGfM,kBAAkBD,KAAKE,KApFT,mBAoF+BZ,KAAKC,gBACnDnB,QAAUkB,KAAKE,cACI,mBAAZpB,UACTA,QAAUA,QAAQ+B,KAAKb,KAAKc,eAGzBH,kBAAkBD,KAAKE,KAzFP,iBAyF+B9B,SAEpD4B,KAAKK,sBA/Fe,mBACA,SAkGtBb,qBACSF,KAAKc,QAAQE,aAAa,iBAC/BhB,KAAKQ,OAAO1B,QAGhBmC,uBACQP,MAAO,mBAAEV,KAAKK,iBACda,SAAWR,KAAKS,KAAK,SAASC,MAAM5C,oBACzB,OAAb0C,UAAqBA,SAASG,OAAS,GACzCX,KAAKK,YAAYG,SAASI,KAAK,6BAKXd,eACfR,KAAKuB,MAAK,eACXC,MAAO,mBAAExB,MAAMwB,KAzHR,oBA0HLC,QAA4B,iBAAXjB,OAAsBA,OAAS,SAEjDgB,OAAQ,eAAeE,KAAKlB,WAI5BgB,OACHA,KAAO,IAAI5B,QAAQI,KAAMyB,6BACvBzB,MAAMwB,KAlIC,aAkIcA,OAGH,iBAAXhB,QAAqB,SACF,IAAjBgB,KAAKhB,cACR,IAAImB,qCAA8BnB,aAG1CgB,KAAKhB,+BAUXjC,GAAGJ,MAAQyB,QAAQgC,iCACnBrD,GAAGJ,MAAM0D,YAAcjC,wBACvBrB,GAAGJ,MAAM2D,WAAa,qBACpBvD,GAAGJ,MAAQE,mBACNuB,QAAQgC,+BAGFhC"} \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/scrollspy.min.js b/theme/boost/amd/build/bootstrap/scrollspy.min.js index 31b014ac2f99f..128b6f21e3ac5 100644 --- a/theme/boost/amd/build/bootstrap/scrollspy.min.js +++ b/theme/boost/amd/build/bootstrap/scrollspy.min.js @@ -1,3 +1,3 @@ -define("theme_boost/bootstrap/scrollspy",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="scrollspy",EVENT_KEY=".".concat("bs.scrollspy"),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],Default={offset:10,method:"auto",target:""},DefaultType={offset:"number",method:"string",target:"(string|element)"},EVENT_ACTIVATE="activate".concat(EVENT_KEY),EVENT_SCROLL="scroll".concat(EVENT_KEY),EVENT_LOAD_DATA_API="load".concat(EVENT_KEY).concat(".data-api");class ScrollSpy{constructor(element,config){this._element=element,this._scrollElement="BODY"===element.tagName?window:element,this._config=this._getConfig(config),this._selector="".concat(this._config.target," ").concat(".nav-link",",")+"".concat(this._config.target," ").concat(".list-group-item",",")+"".concat(this._config.target," ").concat(".dropdown-item"),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,(0,_jquery.default)(this._scrollElement).on(EVENT_SCROLL,(event=>this._process(event))),this.refresh(),this._process()}static get VERSION(){return"4.6.0"}static get Default(){return Default}refresh(){const autoMethod=this._scrollElement===this._scrollElement.window?"offset":"position",offsetMethod="auto"===this._config.method?autoMethod:this._config.method,offsetBase="position"===offsetMethod?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();[].slice.call(document.querySelectorAll(this._selector)).map((element=>{let target;const targetSelector=_util.default.getSelectorFromElement(element);if(targetSelector&&(target=document.querySelector(targetSelector)),target){const targetBCR=target.getBoundingClientRect();if(targetBCR.width||targetBCR.height)return[(0,_jquery.default)(target)[offsetMethod]().top+offsetBase,targetSelector]}return null})).filter((item=>item)).sort(((a,b)=>a[0]-b[0])).forEach((item=>{this._offsets.push(item[0]),this._targets.push(item[1])}))}dispose(){_jquery.default.removeData(this._element,"bs.scrollspy"),(0,_jquery.default)(this._scrollElement).off(EVENT_KEY),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(config){if("string"!=typeof(config={...Default,..."object"==typeof config&&config?config:{}}).target&&_util.default.isElement(config.target)){let id=(0,_jquery.default)(config.target).attr("id");id||(id=_util.default.getUID(NAME),(0,_jquery.default)(config.target).attr("id",id)),config.target="#".concat(id)}return _util.default.typeCheckConfig(NAME,config,DefaultType),config}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const scrollTop=this._getScrollTop()+this._config.offset,scrollHeight=this._getScrollHeight(),maxScroll=this._config.offset+scrollHeight-this._getOffsetHeight();if(this._scrollHeight!==scrollHeight&&this.refresh(),scrollTop>=maxScroll){const target=this._targets[this._targets.length-1];this._activeTarget!==target&&this._activate(target)}else{if(this._activeTarget&&scrollTop0)return this._activeTarget=null,void this._clear();for(let i=this._offsets.length;i--;){this._activeTarget!==this._targets[i]&&scrollTop>=this._offsets[i]&&(void 0===this._offsets[i+1]||scrollTop"".concat(selector,'[data-target="').concat(target,'"],').concat(selector,'[href="').concat(target,'"]'))),$link=(0,_jquery.default)([].slice.call(document.querySelectorAll(queries.join(","))));$link.hasClass("dropdown-item")?($link.closest(".dropdown").find(".dropdown-toggle").addClass("active"),$link.addClass("active")):($link.addClass("active"),$link.parents(".nav, .list-group").prev("".concat(".nav-link",", ").concat(".list-group-item")).addClass("active"),$link.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),(0,_jquery.default)(this._scrollElement).trigger(EVENT_ACTIVATE,{relatedTarget:target})}_clear(){[].slice.call(document.querySelectorAll(this._selector)).filter((node=>node.classList.contains("active"))).forEach((node=>node.classList.remove("active")))}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data("bs.scrollspy");if(data||(data=new ScrollSpy(this,"object"==typeof config&&config),(0,_jquery.default)(this).data("bs.scrollspy",data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}}(0,_jquery.default)(window).on(EVENT_LOAD_DATA_API,(()=>{const scrollSpys=[].slice.call(document.querySelectorAll('[data-spy="scroll"]'));for(let i=scrollSpys.length;i--;){const $spy=(0,_jquery.default)(scrollSpys[i]);ScrollSpy._jQueryInterface.call($spy,$spy.data())}})),_jquery.default.fn[NAME]=ScrollSpy._jQueryInterface,_jquery.default.fn[NAME].Constructor=ScrollSpy,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,ScrollSpy._jQueryInterface);var _default=ScrollSpy;return _exports.default=_default,_exports.default})); +define("theme_boost/bootstrap/scrollspy",["exports","jquery","./util"],(function(_exports,_jquery,_util){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_jquery=_interopRequireDefault(_jquery),_util=_interopRequireDefault(_util);const NAME="scrollspy",EVENT_KEY=".".concat("bs.scrollspy"),JQUERY_NO_CONFLICT=_jquery.default.fn[NAME],EVENT_ACTIVATE="activate".concat(EVENT_KEY),EVENT_SCROLL="scroll".concat(EVENT_KEY),EVENT_LOAD_DATA_API="load".concat(EVENT_KEY).concat(".data-api"),Default={offset:10,method:"auto",target:""},DefaultType={offset:"number",method:"string",target:"(string|element)"};class ScrollSpy{constructor(element,config){this._element=element,this._scrollElement="BODY"===element.tagName?window:element,this._config=this._getConfig(config),this._selector="".concat(this._config.target," ").concat(".nav-link",",")+"".concat(this._config.target," ").concat(".list-group-item",",")+"".concat(this._config.target," ").concat(".dropdown-item"),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,(0,_jquery.default)(this._scrollElement).on(EVENT_SCROLL,(event=>this._process(event))),this.refresh(),this._process()}static get VERSION(){return"4.6.2"}static get Default(){return Default}refresh(){const autoMethod=this._scrollElement===this._scrollElement.window?"offset":"position",offsetMethod="auto"===this._config.method?autoMethod:this._config.method,offsetBase="position"===offsetMethod?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();[].slice.call(document.querySelectorAll(this._selector)).map((element=>{let target;const targetSelector=_util.default.getSelectorFromElement(element);if(targetSelector&&(target=document.querySelector(targetSelector)),target){const targetBCR=target.getBoundingClientRect();if(targetBCR.width||targetBCR.height)return[(0,_jquery.default)(target)[offsetMethod]().top+offsetBase,targetSelector]}return null})).filter(Boolean).sort(((a,b)=>a[0]-b[0])).forEach((item=>{this._offsets.push(item[0]),this._targets.push(item[1])}))}dispose(){_jquery.default.removeData(this._element,"bs.scrollspy"),(0,_jquery.default)(this._scrollElement).off(EVENT_KEY),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(config){if("string"!=typeof(config={...Default,..."object"==typeof config&&config?config:{}}).target&&_util.default.isElement(config.target)){let id=(0,_jquery.default)(config.target).attr("id");id||(id=_util.default.getUID(NAME),(0,_jquery.default)(config.target).attr("id",id)),config.target="#".concat(id)}return _util.default.typeCheckConfig(NAME,config,DefaultType),config}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const scrollTop=this._getScrollTop()+this._config.offset,scrollHeight=this._getScrollHeight(),maxScroll=this._config.offset+scrollHeight-this._getOffsetHeight();if(this._scrollHeight!==scrollHeight&&this.refresh(),scrollTop>=maxScroll){const target=this._targets[this._targets.length-1];this._activeTarget!==target&&this._activate(target)}else{if(this._activeTarget&&scrollTop0)return this._activeTarget=null,void this._clear();for(let i=this._offsets.length;i--;){this._activeTarget!==this._targets[i]&&scrollTop>=this._offsets[i]&&(void 0===this._offsets[i+1]||scrollTop"".concat(selector,'[data-target="').concat(target,'"],').concat(selector,'[href="').concat(target,'"]'))),$link=(0,_jquery.default)([].slice.call(document.querySelectorAll(queries.join(","))));$link.hasClass("dropdown-item")?($link.closest(".dropdown").find(".dropdown-toggle").addClass("active"),$link.addClass("active")):($link.addClass("active"),$link.parents(".nav, .list-group").prev("".concat(".nav-link",", ").concat(".list-group-item")).addClass("active"),$link.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),(0,_jquery.default)(this._scrollElement).trigger(EVENT_ACTIVATE,{relatedTarget:target})}_clear(){[].slice.call(document.querySelectorAll(this._selector)).filter((node=>node.classList.contains("active"))).forEach((node=>node.classList.remove("active")))}static _jQueryInterface(config){return this.each((function(){let data=(0,_jquery.default)(this).data("bs.scrollspy");if(data||(data=new ScrollSpy(this,"object"==typeof config&&config),(0,_jquery.default)(this).data("bs.scrollspy",data)),"string"==typeof config){if(void 0===data[config])throw new TypeError('No method named "'.concat(config,'"'));data[config]()}}))}}(0,_jquery.default)(window).on(EVENT_LOAD_DATA_API,(()=>{const scrollSpys=[].slice.call(document.querySelectorAll('[data-spy="scroll"]'));for(let i=scrollSpys.length;i--;){const $spy=(0,_jquery.default)(scrollSpys[i]);ScrollSpy._jQueryInterface.call($spy,$spy.data())}})),_jquery.default.fn[NAME]=ScrollSpy._jQueryInterface,_jquery.default.fn[NAME].Constructor=ScrollSpy,_jquery.default.fn[NAME].noConflict=()=>(_jquery.default.fn[NAME]=JQUERY_NO_CONFLICT,ScrollSpy._jQueryInterface);var _default=ScrollSpy;return _exports.default=_default,_exports.default})); //# sourceMappingURL=scrollspy.min.js.map \ No newline at end of file diff --git a/theme/boost/amd/build/bootstrap/scrollspy.min.js.map b/theme/boost/amd/build/bootstrap/scrollspy.min.js.map index 4f254dad12d83..e49799d606591 100644 --- a/theme/boost/amd/build/bootstrap/scrollspy.min.js.map +++ b/theme/boost/amd/build/bootstrap/scrollspy.min.js.map @@ -1 +1 @@ -{"version":3,"file":"scrollspy.min.js","sources":["../../src/bootstrap/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both
    and