jekyll-theme-chirpy 7.4.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6b905b9c638cf4b4c55390ba48ac2add1acd9b815f43e556e2f9a825c97275c
4
- data.tar.gz: 670c5ea01f11dbb468fc18a10496bbfefa1e4d0c405c9b2705376f5c59897842
3
+ metadata.gz: 6d70b1cbccbb53456827223fc13f2ac676311f820fc6e9f584ae15cc22426806
4
+ data.tar.gz: 82dedea345a0576482bf89bacfeb0707de8bb4154df054abdd0af065ec4fcaf3
5
5
  SHA512:
6
- metadata.gz: b1ddf7f1eb881061e4601f16f726b622a1382fe4c6ca3881a7c1a27c7a5d1c8a2f1d6cf43f8c8fbf03f3150bf5ee02ef390604368b25875f9ad8e2df66d10a25
7
- data.tar.gz: 80ef341c90cb695601f59b24623b0a9286853547237c9213069587760bacc239d5d86d983c094878d49a96a47d06e98aa1766ec7f86291467c828ff5fcbb93af
6
+ metadata.gz: cccff7b79daa0925f7595174b6c51eab6e8a7047f7b9c0f31a90b11f9d5e258b5ce070a303a0b8c06e2dc6179375b6cd657410e4f1417fe3eb52dab4a299eb6d
7
+ data.tar.gz: 22996ba0ab06261cd2141abe10c6c789ca06c7c276edc3d558d176603a4a7898f84134f6f0eba1a4a474cda0177314ef2f2707838cff7759d2cd931810662a1c
@@ -24,20 +24,20 @@ toc:
24
24
  js: https://cdn.jsdelivr.net/npm/tocbot@4.36.4/dist/tocbot.min.js
25
25
 
26
26
  fontawesome:
27
- css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.1.0/css/all.min.css
27
+ css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.2.0/css/all.min.css
28
28
 
29
29
  search:
30
30
  js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
31
31
 
32
32
  mermaid:
33
- js: https://cdn.jsdelivr.net/npm/mermaid@11.12.0/dist/mermaid.min.js
33
+ js: https://cdn.jsdelivr.net/npm/mermaid@11.13.0/dist/mermaid.min.js
34
34
 
35
35
  dayjs:
36
36
  js:
37
- common: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/dayjs.min.js
38
- locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/locale/:LOCALE.js
39
- relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/plugin/relativeTime.js
40
- localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/plugin/localizedFormat.js
37
+ common: https://cdn.jsdelivr.net/npm/dayjs@1.11.20/dayjs.min.js
38
+ locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.20/locale/:LOCALE.js
39
+ relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.20/plugin/relativeTime.js
40
+ localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.20/plugin/localizedFormat.js
41
41
 
42
42
  glightbox:
43
43
  css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css
@@ -1,6 +1,6 @@
1
1
  <!--
2
2
  Date format snippet
3
- See: ${JS_ROOT}/utils/locale-dateime.js
3
+ See: ${JS_ROOT}/modules/components/locale-datetime.js
4
4
  -->
5
5
 
6
6
  {% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %}
data/_includes/head.html CHANGED
@@ -50,11 +50,24 @@
50
50
 
51
51
  {{ seo_tags }}
52
52
 
53
+ {%- if site.social.fediverse_handle %}
54
+ <!-- Fediverse handle/creator -->
55
+ <meta name="fediverse:creator" content="{{ site.social.fediverse_handle }}">
56
+ {% endif %}
57
+
53
58
  <title>
54
59
  {%- unless page.layout == 'home' -%}
55
- {{ page.title | append: ' | ' }}
60
+ {%- capture title -%}
61
+ {%- if page.collection == 'tabs' -%}
62
+ {%- assign tab_key = page.title | downcase -%}
63
+ {{- site.data.locales[include.lang].tabs[tab_key] -}}
64
+ {%- else -%}
65
+ {{- page.title -}}
66
+ {%- endif -%}
67
+ {%- endcapture -%}
68
+ {{- title | append: ' | ' -}}
56
69
  {%- endunless -%}
57
- {{ site.title }}
70
+ {{- site.title -}}
58
71
  </title>
59
72
 
60
73
  {% include_cached favicons.html %}
@@ -1,9 +1,7 @@
1
1
  {% comment %}
2
-
3
2
  Convert the alias of the syntax language to the official name
4
3
 
5
4
  See: <https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers>
6
-
7
5
  {% endcomment %}
8
6
 
9
7
  {% assign _lang = include.language | default: '' %}
@@ -20,13 +18,13 @@
20
18
  {% when 'coffeescript', 'coffee', 'coffee-script' %}
21
19
  {{ 'CoffeeScript' }}
22
20
  {% when 'cs', 'csharp' %}
23
- {{ 'C#' }}
21
+ {{ 'C#' }}
24
22
  {% when 'erl' %}
25
23
  {{ 'Erlang' }}
26
24
  {% when 'graphql' %}
27
- {{ 'GraphQL' }}
25
+ {{ 'GraphQL' }}
28
26
  {% when 'haskell', 'hs' %}
29
- {{ 'Haskell' }}
27
+ {{ 'Haskell' }}
30
28
  {% when 'javascript', 'js' %}
31
29
  {{ 'JavaScript' }}
32
30
  {% when 'make', 'mf', 'gnumake', 'bsdmake' %}
@@ -39,22 +37,22 @@
39
37
  {{ 'Objective-C' }}
40
38
  {% when 'perl', 'pl' %}
41
39
  {{ 'Perl' }}
42
- {% when 'php','php3','php4','php5' %}
40
+ {% when 'php', 'php3', 'php4', 'php5' %}
43
41
  {{ 'PHP' }}
44
42
  {% when 'py' %}
45
43
  {{ 'Python' }}
46
44
  {% when 'rb' %}
47
45
  {{ 'Ruby' }}
48
- {% when 'rs','no_run','ignore','should_panic' %}
46
+ {% when 'rs', 'no_run', 'ignore', 'should_panic' %}
49
47
  {{ 'Rust' }}
50
48
  {% when 'bash', 'zsh', 'ksh', 'sh' %}
51
49
  {{ 'Shell' }}
52
50
  {% when 'st', 'squeak' %}
53
51
  {{ 'Smalltalk' }}
54
- {% when 'tex'%}
52
+ {% when 'tex' %}
55
53
  {{ 'TeX' }}
56
54
  {% when 'latex' %}
57
- {{ 'LaTex' }}
55
+ {{ 'LaTeX' }}
58
56
  {% when 'ts', 'typescript' %}
59
57
  {{ 'TypeScript' }}
60
58
  {% when 'vb', 'visualbasic' %}
@@ -15,11 +15,9 @@
15
15
  {%- if url -%}
16
16
  {% unless url contains ':' %}
17
17
  {%- comment -%} Add media resources subpath prefix {%- endcomment -%}
18
- {% if include.subpath %}
19
- {% assign url = include.subpath | append: '/' | append: url %}
20
- {% endif %}
18
+ {% assign url = include.subpath | default: '' | append: '/' | append: url %}
21
19
 
22
- {%- comment -%} Prepend CND URL {%- endcomment -%}
20
+ {%- comment -%} Prepend CDN URL {%- endcomment -%}
23
21
  {% if site.cdn %}
24
22
  {% assign url = site.cdn | append: '/' | append: url %}
25
23
  {% endif %}
@@ -1,4 +1,4 @@
1
- <!-- The paginator for post list on HomgPage. -->
1
+ <!-- The paginator for post list on HomePage. -->
2
2
 
3
3
  <nav aria-label="Page Navigation">
4
4
  <ul class="pagination align-items-center mt-4 mb-0">
@@ -173,7 +173,7 @@
173
173
  {% assign _parent = _right | slice: 1, 4 %}
174
174
 
175
175
  {% if _parent == '</a>' %}
176
- <!-- add class to exist <a> tag -->
176
+ <!-- add class to existing <a> tag -->
177
177
  {% assign _size = _img_content | size | minus: 1 %}
178
178
  {% capture _class %}
179
179
  class="img-link{% unless _lqip %} shimmer{% endunless %}"
@@ -14,7 +14,7 @@ layout: compress
14
14
 
15
15
  <!-- `site.alt_lang` can specify a language different from the UI -->
16
16
  <html lang="{{ page.lang | default: site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
17
- {% include head.html %}
17
+ {% include head.html lang=lang %}
18
18
 
19
19
  <body>
20
20
  {% include sidebar.html lang=lang %}
@@ -25,7 +25,7 @@ layout: compress
25
25
 
26
26
  <div class="row flex-grow-1">
27
27
  <main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4">
28
- {% if layout.refactor or layout.layout == 'default' %}
28
+ {% if layout.layout == 'default' %}
29
29
  {% include refactor-content.html content=content lang=lang %}
30
30
  {% else %}
31
31
  {{ content }}
data/_layouts/home.html CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  layout: default
3
- refactor: true
4
3
  ---
5
4
 
6
5
  {% include lang.html %}
@@ -55,19 +54,39 @@ refactor: true
55
54
 
56
55
  {% if post.image %}
57
56
  {% assign src = post.image.path | default: post.image %}
58
- {% capture src %}{% include media-url.html src=src subpath=post.media_subpath %}{% endcapture %}
59
57
 
60
- {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
61
-
62
- {% assign lqip = null %}
58
+ {% if post.media_subpath %}
59
+ {% unless src contains '://' %}
60
+ {% assign src = post.media_subpath
61
+ | append: '/'
62
+ | append: src
63
+ | replace: '///', '/'
64
+ | replace: '//', '/'
65
+ %}
66
+ {% endunless %}
67
+ {% endif %}
63
68
 
64
69
  {% if post.image.lqip %}
65
- {% capture lqip_url %}{% include media-url.html src=post.image.lqip subpath=post.media_subpath %}{% endcapture %}
66
- {% assign lqip = 'lqip="' | append: lqip_url | append: '"' %}
70
+ {% assign lqip = post.image.lqip %}
71
+
72
+ {% if post.media_subpath %}
73
+ {% unless lqip contains 'data:' %}
74
+ {% assign lqip = post.media_subpath
75
+ | append: '/'
76
+ | append: lqip
77
+ | replace: '///', '/'
78
+ | replace: '//', '/'
79
+ %}
80
+ {% endunless %}
81
+ {% endif %}
82
+
83
+ {% assign lqip_attr = 'lqip="' | append: lqip | append: '"' %}
67
84
  {% endif %}
68
85
 
86
+ {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
87
+
69
88
  <div class="col-md-5">
70
- <img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
89
+ <img src="{{ src }}" alt="{{ alt }}" {{ lqip_attr }}>
71
90
  </div>
72
91
 
73
92
  {% assign card_body_col = '7' %}
data/_layouts/post.html CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  layout: default
3
- refactor: true
4
3
  panel_includes:
5
4
  - toc
6
5
  tail_includes:
@@ -78,7 +78,7 @@ code {
78
78
  }
79
79
 
80
80
  a > &.highlighter-rouge {
81
- padding-bottom: 0; /* show link's underlinke */
81
+ padding-bottom: 0; /* show link's underline */
82
82
  color: inherit;
83
83
  }
84
84
 
@@ -137,7 +137,8 @@ div[class^='language-'] {
137
137
  height: v.$code-dot-size;
138
138
  border-radius: 50%;
139
139
  background-color: var(--code-header-muted-color);
140
- box-shadow: (v.$code-dot-size + v.$code-dot-gap) 0 0
140
+ box-shadow:
141
+ (v.$code-dot-size + v.$code-dot-gap) 0 0
141
142
  var(--code-header-muted-color),
142
143
  (v.$code-dot-size + v.$code-dot-gap) * 2 0 0
143
144
  var(--code-header-muted-color);
@@ -112,7 +112,7 @@
112
112
  }
113
113
 
114
114
  a {
115
- /* post title in Archvies */
115
+ /* post title in Archives */
116
116
  margin-left: 2.5rem;
117
117
  position: relative;
118
118
  top: 0.1rem;
@@ -127,7 +127,7 @@ header {
127
127
 
128
128
  .share-mastodon {
129
129
  /* See: https://github.com/justinribeiro/share-to-mastodon#properties */
130
- --wc-stm-font-family: v.$font-family-base;
130
+ --wc-stm-font-family: #{v.$font-family-base};
131
131
  --wc-stm-dialog-background-color: var(--card-bg);
132
132
  --wc-stm-form-button-border: 1px solid var(--btn-border-color);
133
133
  --wc-stm-form-submit-background-color: var(--sidebar-btn-bg);
@@ -2,6 +2,6 @@
2
2
  permalink: /:basename
3
3
  ---
4
4
  /*!
5
- * jekyll-theme-chirpy v7.4.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
5
+ * jekyll-theme-chirpy v7.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
6
6
  */
7
- !function(){"use strict";const e=new Map;var t={set(t,n,r){e.has(t)||e.set(t,new Map);const o=e.get(t);o.has(n)||0===o.size?o.set(n,r):console.error("Bootstrap doesn't allow more than one instance per element. Bound instance: ".concat(Array.from(o.keys())[0],"."))},get:(t,n)=>e.has(t)&&e.get(t).get(n)||null,remove(t,n){if(!e.has(t))return;const r=e.get(t);r.delete(n),0===r.size&&e.delete(t)}};const n="transitionend",r=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>"#".concat(CSS.escape(t)))),e),o=e=>null==e?"".concat(e):Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),i=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),s=e=>i(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(r(e)):null,c=e=>!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled"))),a=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,l=[],u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e.call(...t):n},f=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void u(e);const r=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const r=Number.parseFloat(t),o=Number.parseFloat(n);return r||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let o=!1;const i=r=>{let{target:s}=r;s===t&&(o=!0,t.removeEventListener(n,i),u(e))};t.addEventListener(n,i),setTimeout(()=>{o||t.dispatchEvent(new Event(n))},r)},d=/[^.]*(?=\..*)\.|.*/,h=/\..*/,g=/::\d+$/,m={};let p=1;const b={mouseenter:"mouseover",mouseleave:"mouseout"},v=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function y(e,t){return t&&"".concat(t,"::").concat(p++)||e.uidEvent||p++}function _(e){const t=y(e);return e.uidEvent=t,m[t]=m[t]||{},m[t]}function E(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function w(e,t,n){const r="string"==typeof t,o=r?n:t||n;let i=A(e);return v.has(i)||(i=e),[r,o,i]}function O(e,t,n,r,o){if("string"!=typeof t||!e)return;let[i,s,c]=w(t,n,r);if(t in b){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const a=_(e),l=a[c]||(a[c]={}),u=E(l,s,i?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=y(s,t.replace(d,"")),h=i?function(e,t,n){return function r(o){const i=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const c of i)if(c===s)return T(o,{delegateTarget:s}),r.oneOff&&C.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(r){return T(r,{delegateTarget:e}),n.oneOff&&C.off(e,r.type,t),t.apply(e,[r])}}(e,s);h.delegationSelector=i?n:null,h.callable=s,h.oneOff=o,h.uidEvent=f,l[f]=h,e.addEventListener(c,h,i)}function S(e,t,n,r,o){const i=E(t[n],r,o);i&&(e.removeEventListener(n,i,Boolean(o)),delete t[n][i.uidEvent])}function j(e,t,n,r){const o=t[n]||{};for(const[i,s]of Object.entries(o))i.includes(r)&&S(e,t,n,s.callable,s.delegationSelector)}function A(e){return e=e.replace(h,""),b[e]||e}const C={on(e,t,n,r){O(e,t,n,r,!1)},one(e,t,n,r){O(e,t,n,r,!0)},off(e,t,n,r){if("string"!=typeof t||!e)return;const[o,i,s]=w(t,n,r),c=s!==t,a=_(e),l=a[s]||{},u=t.startsWith(".");if(void 0===i){if(u)for(const n of Object.keys(a))j(e,a,n,t.slice(1));for(const[n,r]of Object.entries(l)){const o=n.replace(g,"");c&&!t.includes(o)||S(e,a,s,r.callable,r.delegationSelector)}}else{if(!Object.keys(l).length)return;S(e,a,s,i,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const r=a();let o=null,i=!0,s=!0,c=!1;t!==A(t)&&r&&(o=r.Event(t,n),r(e).trigger(o),i=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),c=o.isDefaultPrevented());const l=T(new Event(t,{bubbles:i,cancelable:!0}),n);return c&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,r]of Object.entries(t))try{e[n]=r}catch(t){Object.defineProperty(e,n,{configurable:!0,get:()=>r})}return e}function N(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach(function(t){N(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function I(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch(t){return e}}function k(e){return e.replace(/[A-Z]/g,e=>"-".concat(e.toLowerCase()))}const P={setDataAttribute(e,t,n){e.setAttribute("data-bs-".concat(k(t)),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-".concat(k(t)))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const r of n){let n=r.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=I(e.dataset[r])}return t},getDataAttribute:(e,t)=>I(e.getAttribute("data-bs-".concat(k(t))))};class M{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=i(t)?P.getDataAttribute(t,"config"):{};return L(L(L(L({},this.constructor.Default),"object"==typeof n?n:{}),i(t)?P.getDataAttributes(t):{}),"object"==typeof e?e:{})}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[n,r]of Object.entries(t)){const t=e[n],s=i(t)?"element":o(t);if(!new RegExp(r).test(s))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(n,'" provided type "').concat(s,'" but expected type "').concat(r,'".'))}}}class K extends M{constructor(e,n){super(),(e=s(e))&&(this._element=e,this._config=this._getConfig(n),t.set(this._element,this.constructor.DATA_KEY,this))}dispose(){t.remove(this._element,this.constructor.DATA_KEY),C.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){f(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return t.get(s(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.8"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(e){return"".concat(e).concat(this.EVENT_KEY)}}const q=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>r(e)).join(","):null},x={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let r=e.parentNode.closest(t);for(;r;)n.push(r),r=r.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>"".concat(e,':not([tabindex^="-"])')).join(",");return this.find(t,e).filter(e=>!c(e)&&(e=>{if(!i(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e))},getSelectorFromElement(e){const t=q(e);return t&&x.findOne(t)?t:null},getElementFromSelector(e){const t=q(e);return t?x.findOne(t):null},getMultipleElementsFromSelector(e){const t=q(e);return t?x.find(t):[]}},W=".".concat("bs.toast"),Y="mouseover".concat(W),F="mouseout".concat(W),R="focusin".concat(W),V="focusout".concat(W),Q="hide".concat(W),z="hidden".concat(W),B="show".concat(W),H="shown".concat(W),U="hide",G="show",J="showing",Z={animation:"boolean",autohide:"boolean",delay:"number"},$={animation:!0,autohide:!0,delay:5e3};class X extends K{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return $}static get DefaultType(){return Z}static get NAME(){return"toast"}show(){if(C.trigger(this._element,B).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove(U),this._element.offsetHeight,this._element.classList.add(G,J),this._queueCallback(()=>{this._element.classList.remove(J),C.trigger(this._element,H),this._maybeScheduleHide()},this._element,this._config.animation)}hide(){if(!this.isShown())return;if(C.trigger(this._element,Q).defaultPrevented)return;this._element.classList.add(J),this._queueCallback(()=>{this._element.classList.add(U),this._element.classList.remove(J,G),C.trigger(this._element,z)},this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(G),super.dispose()}isShown(){return this._element.classList.contains(G)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){C.on(this._element,Y,e=>this._onInteraction(e,!0)),C.on(this._element,F,e=>this._onInteraction(e,!1)),C.on(this._element,R,e=>this._onInteraction(e,!0)),C.on(this._element,V,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=X.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e](this)}})}}var ee,te;if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"hide";const n="click.dismiss".concat(e.EVENT_KEY),r=e.NAME;C.on(document,n,'[data-bs-dismiss="'.concat(r,'"]'),function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),c(this))return;const o=x.getElementFromSelector(this)||this.closest(".".concat(r));e.getOrCreateInstance(o)[t]()})}(X),ee=X,te=()=>{const e=a();if(e){const t=ee.NAME,n=e.fn[t];e.fn[t]=ee.jQueryInterface,e.fn[t].Constructor=ee,e.fn[t].noConflict=()=>(e.fn[t]=n,ee.jQueryInterface)}},"loading"===document.readyState?(l.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of l)e()}),l.push(te)):te(),"serviceWorker"in navigator){const e=new URL(document.currentScript.src),t=e.searchParams.get("register"),n=e.searchParams.get("baseurl");if(t){const e="".concat(n,"/sw.min.js"),t=document.getElementById("notification"),r=t.querySelector(".toast-body>button"),o=X.getOrCreateInstance(t);navigator.serviceWorker.register(e).then(e=>{e.waiting&&o.show(),e.addEventListener("updatefound",()=>{e.installing.addEventListener("statechange",()=>{e.waiting&&navigator.serviceWorker.controller&&o.show()})}),r.addEventListener("click",()=>{e.waiting&&e.waiting.postMessage("SKIP_WAITING"),o.hide()})});let i=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{i||(window.location.reload(),i=!0)})}else navigator.serviceWorker.getRegistrations().then(function(e){for(let t of e)t.unregister()})}}();
7
+ !function(){"use strict";const e=new Map;var t={set(t,n,r){e.has(t)||e.set(t,new Map);const o=e.get(t);o.has(n)||0===o.size?o.set(n,r):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(o.keys())[0]}.`)},get:(t,n)=>e.has(t)&&e.get(t).get(n)||null,remove(t,n){if(!e.has(t))return;const r=e.get(t);r.delete(n),0===r.size&&e.delete(t)}};const n="transitionend",r=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),o=e=>null==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),i=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),s=e=>i(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(r(e)):null,a=e=>!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled"))),l=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,c=[],u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e.call(...t):n},d=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void u(e);const r=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const r=Number.parseFloat(t),o=Number.parseFloat(n);return r||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let o=!1;const i=r=>{let{target:s}=r;s===t&&(o=!0,t.removeEventListener(n,i),u(e))};t.addEventListener(n,i),setTimeout(()=>{o||t.dispatchEvent(new Event(n))},r)},f=/[^.]*(?=\..*)\.|.*/,h=/\..*/,g=/::\d+$/,m={};let p=1;const b={mouseenter:"mouseover",mouseleave:"mouseout"},v=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function _(e,t){return t&&`${t}::${p++}`||e.uidEvent||p++}function y(e){const t=_(e);return e.uidEvent=t,m[t]=m[t]||{},m[t]}function E(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function w(e,t,n){const r="string"==typeof t,o=r?n:t||n;let i=O(e);return v.has(i)||(i=e),[r,o,i]}function A(e,t,n,r,o){if("string"!=typeof t||!e)return;let[i,s,a]=w(t,n,r);if(t in b){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const l=y(e),c=l[a]||(l[a]={}),u=E(c,s,i?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const d=_(s,t.replace(f,"")),h=i?function(e,t,n){return function r(o){const i=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of i)if(a===s)return $(o,{delegateTarget:s}),r.oneOff&&T.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(r){return $(r,{delegateTarget:e}),n.oneOff&&T.off(e,r.type,t),t.apply(e,[r])}}(e,s);h.delegationSelector=i?n:null,h.callable=s,h.oneOff=o,h.uidEvent=d,c[d]=h,e.addEventListener(a,h,i)}function S(e,t,n,r,o){const i=E(t[n],r,o);i&&(e.removeEventListener(n,i,Boolean(o)),delete t[n][i.uidEvent])}function C(e,t,n,r){const o=t[n]||{};for(const[i,s]of Object.entries(o))i.includes(r)&&S(e,t,n,s.callable,s.delegationSelector)}function O(e){return e=e.replace(h,""),b[e]||e}const T={on(e,t,n,r){A(e,t,n,r,!1)},one(e,t,n,r){A(e,t,n,r,!0)},off(e,t,n,r){if("string"!=typeof t||!e)return;const[o,i,s]=w(t,n,r),a=s!==t,l=y(e),c=l[s]||{},u=t.startsWith(".");if(void 0===i){if(u)for(const n of Object.keys(l))C(e,l,n,t.slice(1));for(const[n,r]of Object.entries(c)){const o=n.replace(g,"");a&&!t.includes(o)||S(e,l,s,r.callable,r.delegationSelector)}}else{if(!Object.keys(c).length)return;S(e,l,s,i,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const r=l();let o=null,i=!0,s=!0,a=!1;t!==O(t)&&r&&(o=r.Event(t,n),r(e).trigger(o),i=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=$(new Event(t,{bubbles:i,cancelable:!0}),n);return a&&c.preventDefault(),s&&e.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function $(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,r]of Object.entries(t))try{e[n]=r}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>r})}return e}function N(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function j(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const L={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${j(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${j(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const r of n){let n=r.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=N(e.dataset[r])}return t},getDataAttribute:(e,t)=>N(e.getAttribute(`data-bs-${j(t)}`))};class D{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=i(t)?L.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...i(t)?L.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[n,r]of Object.entries(t)){const t=e[n],s=i(t)?"element":o(t);if(!new RegExp(r).test(s))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${s}" but expected type "${r}".`)}}}class I extends D{constructor(e,n){super(),(e=s(e))&&(this._element=e,this._config=this._getConfig(n),t.set(this._element,this.constructor.DATA_KEY,this))}dispose(){t.remove(this._element,this.constructor.DATA_KEY),T.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){d(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return t.get(s(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.8"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const k=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>r(e)).join(","):null},M={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let r=e.parentNode.closest(t);for(;r;)n.push(r),r=r.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!a(e)&&(e=>{if(!i(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e))},getSelectorFromElement(e){const t=k(e);return t&&M.findOne(t)?t:null},getElementFromSelector(e){const t=k(e);return t?M.findOne(t):null},getMultipleElementsFromSelector(e){const t=k(e);return t?M.find(t):[]}},K=".bs.toast",P=`mouseover${K}`,q=`mouseout${K}`,x=`focusin${K}`,W=`focusout${K}`,Y=`hide${K}`,F=`hidden${K}`,R=`show${K}`,V=`shown${K}`,Q="hide",z="show",B="showing",H={animation:"boolean",autohide:"boolean",delay:"number"},U={animation:!0,autohide:!0,delay:5e3};class G extends I{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return U}static get DefaultType(){return H}static get NAME(){return"toast"}show(){if(T.trigger(this._element,R).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove(Q),this._element.offsetHeight,this._element.classList.add(z,B),this._queueCallback(()=>{this._element.classList.remove(B),T.trigger(this._element,V),this._maybeScheduleHide()},this._element,this._config.animation)}hide(){if(!this.isShown())return;if(T.trigger(this._element,Y).defaultPrevented)return;this._element.classList.add(B),this._queueCallback(()=>{this._element.classList.add(Q),this._element.classList.remove(B,z),T.trigger(this._element,F)},this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(z),super.dispose()}isShown(){return this._element.classList.contains(z)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){T.on(this._element,P,e=>this._onInteraction(e,!0)),T.on(this._element,q,e=>this._onInteraction(e,!1)),T.on(this._element,x,e=>this._onInteraction(e,!0)),T.on(this._element,W,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=G.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}var J,Z;if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"hide";const n=`click.dismiss${e.EVENT_KEY}`,r=e.NAME;T.on(document,n,`[data-bs-dismiss="${r}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),a(this))return;const o=M.getElementFromSelector(this)||this.closest(`.${r}`);e.getOrCreateInstance(o)[t]()})}(G),J=G,Z=()=>{const e=l();if(e){const t=J.NAME,n=e.fn[t];e.fn[t]=J.jQueryInterface,e.fn[t].Constructor=J,e.fn[t].noConflict=()=>(e.fn[t]=n,J.jQueryInterface)}},"loading"===document.readyState?(c.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of c)e()}),c.push(Z)):Z(),"serviceWorker"in navigator){const e=new URL(document.currentScript.src),t=e.searchParams.get("register"),n=e.searchParams.get("baseurl");if(t){const e=`${n}/sw.min.js`,t=document.getElementById("notification"),r=t.querySelector(".toast-body>button"),o=G.getOrCreateInstance(t);navigator.serviceWorker.register(e).then(e=>{e.waiting&&o.show(),e.addEventListener("updatefound",()=>{e.installing.addEventListener("statechange",()=>{e.waiting&&navigator.serviceWorker.controller&&o.show()})}),r.addEventListener("click",()=>{e.waiting&&e.waiting.postMessage("SKIP_WAITING"),o.hide()})});let i=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{i||(window.location.reload(),i=!0)})}else navigator.serviceWorker.getRegistrations().then(function(e){for(let t of e)t.unregister()})}}();