You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5102 lines
275 KiB

3 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. !(function () {
  2. var e = {
  3. 807: function (e) {
  4. var t = !("undefined" == typeof window || !window.document || !window.document.createElement);
  5. e.exports = t;
  6. },
  7. },
  8. t = {};
  9. function i(s) {
  10. var n = t[s];
  11. if (void 0 !== n) return n.exports;
  12. var o = (t[s] = { exports: {} });
  13. return e[s](o, o.exports, i), o.exports;
  14. }
  15. (i.d = function (e, t) {
  16. for (var s in t) i.o(t, s) && !i.o(e, s) && Object.defineProperty(e, s, { enumerable: !0, get: t[s] });
  17. }),
  18. (i.o = function (e, t) {
  19. return Object.prototype.hasOwnProperty.call(e, t);
  20. }),
  21. (i.r = function (e) {
  22. "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
  23. }),
  24. (function () {
  25. "use strict";
  26. var e = {};
  27. i.r(e),
  28. i.d(e, {
  29. afterMain: function () {
  30. return x;
  31. },
  32. afterRead: function () {
  33. return v;
  34. },
  35. afterWrite: function () {
  36. return A;
  37. },
  38. applyStyles: function () {
  39. return D;
  40. },
  41. arrow: function () {
  42. return G;
  43. },
  44. auto: function () {
  45. return a;
  46. },
  47. basePlacements: function () {
  48. return l;
  49. },
  50. beforeMain: function () {
  51. return y;
  52. },
  53. beforeRead: function () {
  54. return _;
  55. },
  56. beforeWrite: function () {
  57. return E;
  58. },
  59. bottom: function () {
  60. return n;
  61. },
  62. clippingParents: function () {
  63. return h;
  64. },
  65. computeStyles: function () {
  66. return ie;
  67. },
  68. createPopper: function () {
  69. return Te;
  70. },
  71. createPopperBase: function () {
  72. return je;
  73. },
  74. createPopperLite: function () {
  75. return De;
  76. },
  77. detectOverflow: function () {
  78. return _e;
  79. },
  80. end: function () {
  81. return d;
  82. },
  83. eventListeners: function () {
  84. return ne;
  85. },
  86. flip: function () {
  87. return be;
  88. },
  89. hide: function () {
  90. return we;
  91. },
  92. left: function () {
  93. return r;
  94. },
  95. main: function () {
  96. return w;
  97. },
  98. modifierPhases: function () {
  99. return L;
  100. },
  101. offset: function () {
  102. return xe;
  103. },
  104. placements: function () {
  105. return m;
  106. },
  107. popper: function () {
  108. return p;
  109. },
  110. popperGenerator: function () {
  111. return Oe;
  112. },
  113. popperOffsets: function () {
  114. return Ee;
  115. },
  116. preventOverflow: function () {
  117. return ke;
  118. },
  119. read: function () {
  120. return b;
  121. },
  122. reference: function () {
  123. return f;
  124. },
  125. right: function () {
  126. return o;
  127. },
  128. start: function () {
  129. return c;
  130. },
  131. top: function () {
  132. return s;
  133. },
  134. variationPlacements: function () {
  135. return g;
  136. },
  137. viewport: function () {
  138. return u;
  139. },
  140. write: function () {
  141. return k;
  142. },
  143. });
  144. var t = {};
  145. i.r(t),
  146. i.d(t, {
  147. Alert: function () {
  148. return Lt;
  149. },
  150. Button: function () {
  151. return Ct;
  152. },
  153. Carousel: function () {
  154. return ai;
  155. },
  156. Collapse: function () {
  157. return wi;
  158. },
  159. Dropdown: function () {
  160. return Vi;
  161. },
  162. Modal: function () {
  163. return Ss;
  164. },
  165. Offcanvas: function () {
  166. return Qs;
  167. },
  168. Popover: function () {
  169. return gn;
  170. },
  171. ScrollSpy: function () {
  172. return Ln;
  173. },
  174. Tab: function () {
  175. return Vn;
  176. },
  177. Toast: function () {
  178. return ao;
  179. },
  180. Tooltip: function () {
  181. return un;
  182. },
  183. });
  184. var s = "top",
  185. n = "bottom",
  186. o = "right",
  187. r = "left",
  188. a = "auto",
  189. l = [s, n, o, r],
  190. c = "start",
  191. d = "end",
  192. h = "clippingParents",
  193. u = "viewport",
  194. p = "popper",
  195. f = "reference",
  196. g = l.reduce(function (e, t) {
  197. return e.concat([t + "-" + c, t + "-" + d]);
  198. }, []),
  199. m = [].concat(l, [a]).reduce(function (e, t) {
  200. return e.concat([t, t + "-" + c, t + "-" + d]);
  201. }, []),
  202. _ = "beforeRead",
  203. b = "read",
  204. v = "afterRead",
  205. y = "beforeMain",
  206. w = "main",
  207. x = "afterMain",
  208. E = "beforeWrite",
  209. k = "write",
  210. A = "afterWrite",
  211. L = [_, b, v, y, w, x, E, k, A];
  212. function S(e) {
  213. return e ? (e.nodeName || "").toLowerCase() : null;
  214. }
  215. function C(e) {
  216. if (null == e) return window;
  217. if ("[object Window]" !== e.toString()) {
  218. var t = e.ownerDocument;
  219. return (t && t.defaultView) || window;
  220. }
  221. return e;
  222. }
  223. function O(e) {
  224. return e instanceof C(e).Element || e instanceof Element;
  225. }
  226. function j(e) {
  227. return e instanceof C(e).HTMLElement || e instanceof HTMLElement;
  228. }
  229. function T(e) {
  230. return "undefined" != typeof ShadowRoot && (e instanceof C(e).ShadowRoot || e instanceof ShadowRoot);
  231. }
  232. var D = {
  233. name: "applyStyles",
  234. enabled: !0,
  235. phase: "write",
  236. fn: function (e) {
  237. var t = e.state;
  238. Object.keys(t.elements).forEach(function (e) {
  239. var i = t.styles[e] || {},
  240. s = t.attributes[e] || {},
  241. n = t.elements[e];
  242. j(n) &&
  243. S(n) &&
  244. (Object.assign(n.style, i),
  245. Object.keys(s).forEach(function (e) {
  246. var t = s[e];
  247. !1 === t ? n.removeAttribute(e) : n.setAttribute(e, !0 === t ? "" : t);
  248. }));
  249. });
  250. },
  251. effect: function (e) {
  252. var t = e.state,
  253. i = { popper: { position: t.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} };
  254. return (
  255. Object.assign(t.elements.popper.style, i.popper),
  256. (t.styles = i),
  257. t.elements.arrow && Object.assign(t.elements.arrow.style, i.arrow),
  258. function () {
  259. Object.keys(t.elements).forEach(function (e) {
  260. var s = t.elements[e],
  261. n = t.attributes[e] || {},
  262. o = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : i[e]).reduce(function (e, t) {
  263. return (e[t] = ""), e;
  264. }, {});
  265. j(s) &&
  266. S(s) &&
  267. (Object.assign(s.style, o),
  268. Object.keys(n).forEach(function (e) {
  269. s.removeAttribute(e);
  270. }));
  271. });
  272. }
  273. );
  274. },
  275. requires: ["computeStyles"],
  276. };
  277. function P(e) {
  278. return e.split("-")[0];
  279. }
  280. var N = Math.max,
  281. M = Math.min,
  282. F = Math.round;
  283. function I() {
  284. var e = navigator.userAgentData;
  285. return null != e && e.brands
  286. ? e.brands
  287. .map(function (e) {
  288. return e.brand + "/" + e.version;
  289. })
  290. .join(" ")
  291. : navigator.userAgent;
  292. }
  293. function q() {
  294. return !/^((?!chrome|android).)*safari/i.test(I());
  295. }
  296. function W(e, t, i) {
  297. void 0 === t && (t = !1), void 0 === i && (i = !1);
  298. var s = e.getBoundingClientRect(),
  299. n = 1,
  300. o = 1;
  301. t && j(e) && ((n = (e.offsetWidth > 0 && F(s.width) / e.offsetWidth) || 1), (o = (e.offsetHeight > 0 && F(s.height) / e.offsetHeight) || 1));
  302. var r = (O(e) ? C(e) : window).visualViewport,
  303. a = !q() && i,
  304. l = (s.left + (a && r ? r.offsetLeft : 0)) / n,
  305. c = (s.top + (a && r ? r.offsetTop : 0)) / o,
  306. d = s.width / n,
  307. h = s.height / o;
  308. return { width: d, height: h, top: c, right: l + d, bottom: c + h, left: l, x: l, y: c };
  309. }
  310. function $(e) {
  311. var t = W(e),
  312. i = e.offsetWidth,
  313. s = e.offsetHeight;
  314. return Math.abs(t.width - i) <= 1 && (i = t.width), Math.abs(t.height - s) <= 1 && (s = t.height), { x: e.offsetLeft, y: e.offsetTop, width: i, height: s };
  315. }
  316. function H(e, t) {
  317. var i = t.getRootNode && t.getRootNode();
  318. if (e.contains(t)) return !0;
  319. if (i && T(i)) {
  320. var s = t;
  321. do {
  322. if (s && e.isSameNode(s)) return !0;
  323. s = s.parentNode || s.host;
  324. } while (s);
  325. }
  326. return !1;
  327. }
  328. function z(e) {
  329. return C(e).getComputedStyle(e);
  330. }
  331. function B(e) {
  332. return ["table", "td", "th"].indexOf(S(e)) >= 0;
  333. }
  334. function R(e) {
  335. return ((O(e) ? e.ownerDocument : e.document) || window.document).documentElement;
  336. }
  337. function Q(e) {
  338. return "html" === S(e) ? e : e.assignedSlot || e.parentNode || (T(e) ? e.host : null) || R(e);
  339. }
  340. function V(e) {
  341. return j(e) && "fixed" !== z(e).position ? e.offsetParent : null;
  342. }
  343. function Y(e) {
  344. for (var t = C(e), i = V(e); i && B(i) && "static" === z(i).position; ) i = V(i);
  345. return i && ("html" === S(i) || ("body" === S(i) && "static" === z(i).position))
  346. ? t
  347. : i ||
  348. (function (e) {
  349. var t = /firefox/i.test(I());
  350. if (/Trident/i.test(I()) && j(e) && "fixed" === z(e).position) return null;
  351. var i = Q(e);
  352. for (T(i) && (i = i.host); j(i) && ["html", "body"].indexOf(S(i)) < 0; ) {
  353. var s = z(i);
  354. if (
  355. "none" !== s.transform ||
  356. "none" !== s.perspective ||
  357. "paint" === s.contain ||
  358. -1 !== ["transform", "perspective"].indexOf(s.willChange) ||
  359. (t && "filter" === s.willChange) ||
  360. (t && s.filter && "none" !== s.filter)
  361. )
  362. return i;
  363. i = i.parentNode;
  364. }
  365. return null;
  366. })(e) ||
  367. t;
  368. }
  369. function X(e) {
  370. return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y";
  371. }
  372. function K(e, t, i) {
  373. return N(e, M(t, i));
  374. }
  375. function U(e) {
  376. return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e);
  377. }
  378. function Z(e, t) {
  379. return t.reduce(function (t, i) {
  380. return (t[i] = e), t;
  381. }, {});
  382. }
  383. var G = {
  384. name: "arrow",
  385. enabled: !0,
  386. phase: "main",
  387. fn: function (e) {
  388. var t,
  389. i = e.state,
  390. a = e.name,
  391. c = e.options,
  392. d = i.elements.arrow,
  393. h = i.modifiersData.popperOffsets,
  394. u = P(i.placement),
  395. p = X(u),
  396. f = [r, o].indexOf(u) >= 0 ? "height" : "width";
  397. if (d && h) {
  398. var g = (function (e, t) {
  399. return U("number" != typeof (e = "function" == typeof e ? e(Object.assign({}, t.rects, { placement: t.placement })) : e) ? e : Z(e, l));
  400. })(c.padding, i),
  401. m = $(d),
  402. _ = "y" === p ? s : r,
  403. b = "y" === p ? n : o,
  404. v = i.rects.reference[f] + i.rects.reference[p] - h[p] - i.rects.popper[f],
  405. y = h[p] - i.rects.reference[p],
  406. w = Y(d),
  407. x = w ? ("y" === p ? w.clientHeight || 0 : w.clientWidth || 0) : 0,
  408. E = v / 2 - y / 2,
  409. k = g[_],
  410. A = x - m[f] - g[b],
  411. L = x / 2 - m[f] / 2 + E,
  412. S = K(k, L, A),
  413. C = p;
  414. i.modifiersData[a] = (((t = {})[C] = S), (t.centerOffset = S - L), t);
  415. }
  416. },
  417. effect: function (e) {
  418. var t = e.state,
  419. i = e.options.element,
  420. s = void 0 === i ? "[data-popper-arrow]" : i;
  421. null != s && ("string" != typeof s || (s = t.elements.popper.querySelector(s))) && H(t.elements.popper, s) && (t.elements.arrow = s);
  422. },
  423. requires: ["popperOffsets"],
  424. requiresIfExists: ["preventOverflow"],
  425. };
  426. function J(e) {
  427. return e.split("-")[1];
  428. }
  429. var ee = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
  430. function te(e) {
  431. var t,
  432. i = e.popper,
  433. a = e.popperRect,
  434. l = e.placement,
  435. c = e.variation,
  436. h = e.offsets,
  437. u = e.position,
  438. p = e.gpuAcceleration,
  439. f = e.adaptive,
  440. g = e.roundOffsets,
  441. m = e.isFixed,
  442. _ = h.x,
  443. b = void 0 === _ ? 0 : _,
  444. v = h.y,
  445. y = void 0 === v ? 0 : v,
  446. w = "function" == typeof g ? g({ x: b, y: y }) : { x: b, y: y };
  447. (b = w.x), (y = w.y);
  448. var x = h.hasOwnProperty("x"),
  449. E = h.hasOwnProperty("y"),
  450. k = r,
  451. A = s,
  452. L = window;
  453. if (f) {
  454. var S = Y(i),
  455. O = "clientHeight",
  456. j = "clientWidth";
  457. S === C(i) && "static" !== z((S = R(i))).position && "absolute" === u && ((O = "scrollHeight"), (j = "scrollWidth")),
  458. (l === s || ((l === r || l === o) && c === d)) && ((A = n), (y -= (m && S === L && L.visualViewport ? L.visualViewport.height : S[O]) - a.height), (y *= p ? 1 : -1)),
  459. (l !== r && ((l !== s && l !== n) || c !== d)) || ((k = o), (b -= (m && S === L && L.visualViewport ? L.visualViewport.width : S[j]) - a.width), (b *= p ? 1 : -1));
  460. }
  461. var T,
  462. D = Object.assign({ position: u }, f && ee),
  463. P =
  464. !0 === g
  465. ? (function (e) {
  466. var t = e.x,
  467. i = e.y,
  468. s = window.devicePixelRatio || 1;
  469. return { x: F(t * s) / s || 0, y: F(i * s) / s || 0 };
  470. })({ x: b, y: y })
  471. : { x: b, y: y };
  472. return (
  473. (b = P.x),
  474. (y = P.y),
  475. p
  476. ? Object.assign({}, D, (((T = {})[A] = E ? "0" : ""), (T[k] = x ? "0" : ""), (T.transform = (L.devicePixelRatio || 1) <= 1 ? "translate(" + b + "px, " + y + "px)" : "translate3d(" + b + "px, " + y + "px, 0)"), T))
  477. : Object.assign({}, D, (((t = {})[A] = E ? y + "px" : ""), (t[k] = x ? b + "px" : ""), (t.transform = ""), t))
  478. );
  479. }
  480. var ie = {
  481. name: "computeStyles",
  482. enabled: !0,
  483. phase: "beforeWrite",
  484. fn: function (e) {
  485. var t = e.state,
  486. i = e.options,
  487. s = i.gpuAcceleration,
  488. n = void 0 === s || s,
  489. o = i.adaptive,
  490. r = void 0 === o || o,
  491. a = i.roundOffsets,
  492. l = void 0 === a || a,
  493. c = { placement: P(t.placement), variation: J(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: n, isFixed: "fixed" === t.options.strategy };
  494. null != t.modifiersData.popperOffsets &&
  495. (t.styles.popper = Object.assign({}, t.styles.popper, te(Object.assign({}, c, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: r, roundOffsets: l })))),
  496. null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, te(Object.assign({}, c, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1, roundOffsets: l })))),
  497. (t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement }));
  498. },
  499. data: {},
  500. },
  501. se = { passive: !0 },
  502. ne = {
  503. name: "eventListeners",
  504. enabled: !0,
  505. phase: "write",
  506. fn: function () {},
  507. effect: function (e) {
  508. var t = e.state,
  509. i = e.instance,
  510. s = e.options,
  511. n = s.scroll,
  512. o = void 0 === n || n,
  513. r = s.resize,
  514. a = void 0 === r || r,
  515. l = C(t.elements.popper),
  516. c = [].concat(t.scrollParents.reference, t.scrollParents.popper);
  517. return (
  518. o &&
  519. c.forEach(function (e) {
  520. e.addEventListener("scroll", i.update, se);
  521. }),
  522. a && l.addEventListener("resize", i.update, se),
  523. function () {
  524. o &&
  525. c.forEach(function (e) {
  526. e.removeEventListener("scroll", i.update, se);
  527. }),
  528. a && l.removeEventListener("resize", i.update, se);
  529. }
  530. );
  531. },
  532. data: {},
  533. },
  534. oe = { left: "right", right: "left", bottom: "top", top: "bottom" };
  535. function re(e) {
  536. return e.replace(/left|right|bottom|top/g, function (e) {
  537. return oe[e];
  538. });
  539. }
  540. var ae = { start: "end", end: "start" };
  541. function le(e) {
  542. return e.replace(/start|end/g, function (e) {
  543. return ae[e];
  544. });
  545. }
  546. function ce(e) {
  547. var t = C(e);
  548. return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset };
  549. }
  550. function de(e) {
  551. return W(R(e)).left + ce(e).scrollLeft;
  552. }
  553. function he(e) {
  554. var t = z(e),
  555. i = t.overflow,
  556. s = t.overflowX,
  557. n = t.overflowY;
  558. return /auto|scroll|overlay|hidden/.test(i + n + s);
  559. }
  560. function ue(e) {
  561. return ["html", "body", "#document"].indexOf(S(e)) >= 0 ? e.ownerDocument.body : j(e) && he(e) ? e : ue(Q(e));
  562. }
  563. function pe(e, t) {
  564. var i;
  565. void 0 === t && (t = []);
  566. var s = ue(e),
  567. n = s === (null == (i = e.ownerDocument) ? void 0 : i.body),
  568. o = C(s),
  569. r = n ? [o].concat(o.visualViewport || [], he(s) ? s : []) : s,
  570. a = t.concat(r);
  571. return n ? a : a.concat(pe(Q(r)));
  572. }
  573. function fe(e) {
  574. return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height });
  575. }
  576. function ge(e, t, i) {
  577. return t === u
  578. ? fe(
  579. (function (e, t) {
  580. var i = C(e),
  581. s = R(e),
  582. n = i.visualViewport,
  583. o = s.clientWidth,
  584. r = s.clientHeight,
  585. a = 0,
  586. l = 0;
  587. if (n) {
  588. (o = n.width), (r = n.height);
  589. var c = q();
  590. (c || (!c && "fixed" === t)) && ((a = n.offsetLeft), (l = n.offsetTop));
  591. }
  592. return { width: o, height: r, x: a + de(e), y: l };
  593. })(e, i)
  594. )
  595. : O(t)
  596. ? (function (e, t) {
  597. var i = W(e, !1, "fixed" === t);
  598. return (
  599. (i.top = i.top + e.clientTop),
  600. (i.left = i.left + e.clientLeft),
  601. (i.bottom = i.top + e.clientHeight),
  602. (i.right = i.left + e.clientWidth),
  603. (i.width = e.clientWidth),
  604. (i.height = e.clientHeight),
  605. (i.x = i.left),
  606. (i.y = i.top),
  607. i
  608. );
  609. })(t, i)
  610. : fe(
  611. (function (e) {
  612. var t,
  613. i = R(e),
  614. s = ce(e),
  615. n = null == (t = e.ownerDocument) ? void 0 : t.body,
  616. o = N(i.scrollWidth, i.clientWidth, n ? n.scrollWidth : 0, n ? n.clientWidth : 0),
  617. r = N(i.scrollHeight, i.clientHeight, n ? n.scrollHeight : 0, n ? n.clientHeight : 0),
  618. a = -s.scrollLeft + de(e),
  619. l = -s.scrollTop;
  620. return "rtl" === z(n || i).direction && (a += N(i.clientWidth, n ? n.clientWidth : 0) - o), { width: o, height: r, x: a, y: l };
  621. })(R(e))
  622. );
  623. }
  624. function me(e) {
  625. var t,
  626. i = e.reference,
  627. a = e.element,
  628. l = e.placement,
  629. h = l ? P(l) : null,
  630. u = l ? J(l) : null,
  631. p = i.x + i.width / 2 - a.width / 2,
  632. f = i.y + i.height / 2 - a.height / 2;
  633. switch (h) {
  634. case s:
  635. t = { x: p, y: i.y - a.height };
  636. break;
  637. case n:
  638. t = { x: p, y: i.y + i.height };
  639. break;
  640. case o:
  641. t = { x: i.x + i.width, y: f };
  642. break;
  643. case r:
  644. t = { x: i.x - a.width, y: f };
  645. break;
  646. default:
  647. t = { x: i.x, y: i.y };
  648. }
  649. var g = h ? X(h) : null;
  650. if (null != g) {
  651. var m = "y" === g ? "height" : "width";
  652. switch (u) {
  653. case c:
  654. t[g] = t[g] - (i[m] / 2 - a[m] / 2);
  655. break;
  656. case d:
  657. t[g] = t[g] + (i[m] / 2 - a[m] / 2);
  658. }
  659. }
  660. return t;
  661. }
  662. function _e(e, t) {
  663. void 0 === t && (t = {});
  664. var i = t,
  665. r = i.placement,
  666. a = void 0 === r ? e.placement : r,
  667. c = i.strategy,
  668. d = void 0 === c ? e.strategy : c,
  669. g = i.boundary,
  670. m = void 0 === g ? h : g,
  671. _ = i.rootBoundary,
  672. b = void 0 === _ ? u : _,
  673. v = i.elementContext,
  674. y = void 0 === v ? p : v,
  675. w = i.altBoundary,
  676. x = void 0 !== w && w,
  677. E = i.padding,
  678. k = void 0 === E ? 0 : E,
  679. A = U("number" != typeof k ? k : Z(k, l)),
  680. L = y === p ? f : p,
  681. C = e.rects.popper,
  682. T = e.elements[x ? L : y],
  683. D = (function (e, t, i, s) {
  684. var n =
  685. "clippingParents" === t
  686. ? (function (e) {
  687. var t = pe(Q(e)),
  688. i = ["absolute", "fixed"].indexOf(z(e).position) >= 0 && j(e) ? Y(e) : e;
  689. return O(i)
  690. ? t.filter(function (e) {
  691. return O(e) && H(e, i) && "body" !== S(e);
  692. })
  693. : [];
  694. })(e)
  695. : [].concat(t),
  696. o = [].concat(n, [i]),
  697. r = o[0],
  698. a = o.reduce(function (t, i) {
  699. var n = ge(e, i, s);
  700. return (t.top = N(n.top, t.top)), (t.right = M(n.right, t.right)), (t.bottom = M(n.bottom, t.bottom)), (t.left = N(n.left, t.left)), t;
  701. }, ge(e, r, s));
  702. return (a.width = a.right - a.left), (a.height = a.bottom - a.top), (a.x = a.left), (a.y = a.top), a;
  703. })(O(T) ? T : T.contextElement || R(e.elements.popper), m, b, d),
  704. P = W(e.elements.reference),
  705. F = me({ reference: P, element: C, strategy: "absolute", placement: a }),
  706. I = fe(Object.assign({}, C, F)),
  707. q = y === p ? I : P,
  708. $ = { top: D.top - q.top + A.top, bottom: q.bottom - D.bottom + A.bottom, left: D.left - q.left + A.left, right: q.right - D.right + A.right },
  709. B = e.modifiersData.offset;
  710. if (y === p && B) {
  711. var V = B[a];
  712. Object.keys($).forEach(function (e) {
  713. var t = [o, n].indexOf(e) >= 0 ? 1 : -1,
  714. i = [s, n].indexOf(e) >= 0 ? "y" : "x";
  715. $[e] += V[i] * t;
  716. });
  717. }
  718. return $;
  719. }
  720. var be = {
  721. name: "flip",
  722. enabled: !0,
  723. phase: "main",
  724. fn: function (e) {
  725. var t = e.state,
  726. i = e.options,
  727. d = e.name;
  728. if (!t.modifiersData[d]._skip) {
  729. for (
  730. var h = i.mainAxis,
  731. u = void 0 === h || h,
  732. p = i.altAxis,
  733. f = void 0 === p || p,
  734. _ = i.fallbackPlacements,
  735. b = i.padding,
  736. v = i.boundary,
  737. y = i.rootBoundary,
  738. w = i.altBoundary,
  739. x = i.flipVariations,
  740. E = void 0 === x || x,
  741. k = i.allowedAutoPlacements,
  742. A = t.options.placement,
  743. L = P(A),
  744. S =
  745. _ ||
  746. (L !== A && E
  747. ? (function (e) {
  748. if (P(e) === a) return [];
  749. var t = re(e);
  750. return [le(e), t, le(t)];
  751. })(A)
  752. : [re(A)]),
  753. C = [A].concat(S).reduce(function (e, i) {
  754. return e.concat(
  755. P(i) === a
  756. ? (function (e, t) {
  757. void 0 === t && (t = {});
  758. var i = t,
  759. s = i.placement,
  760. n = i.boundary,
  761. o = i.rootBoundary,
  762. r = i.padding,
  763. a = i.flipVariations,
  764. c = i.allowedAutoPlacements,
  765. d = void 0 === c ? m : c,
  766. h = J(s),
  767. u = h
  768. ? a
  769. ? g
  770. : g.filter(function (e) {
  771. return J(e) === h;
  772. })
  773. : l,
  774. p = u.filter(function (e) {
  775. return d.indexOf(e) >= 0;
  776. });
  777. 0 === p.length && (p = u);
  778. var f = p.reduce(function (t, i) {
  779. return (t[i] = _e(e, { placement: i, boundary: n, rootBoundary: o, padding: r })[P(i)]), t;
  780. }, {});
  781. return Object.keys(f).sort(function (e, t) {
  782. return f[e] - f[t];
  783. });
  784. })(t, { placement: i, boundary: v, rootBoundary: y, padding: b, flipVariations: E, allowedAutoPlacements: k })
  785. : i
  786. );
  787. }, []),
  788. O = t.rects.reference,
  789. j = t.rects.popper,
  790. T = new Map(),
  791. D = !0,
  792. N = C[0],
  793. M = 0;
  794. M < C.length;
  795. M++
  796. ) {
  797. var F = C[M],
  798. I = P(F),
  799. q = J(F) === c,
  800. W = [s, n].indexOf(I) >= 0,
  801. $ = W ? "width" : "height",
  802. H = _e(t, { placement: F, boundary: v, rootBoundary: y, altBoundary: w, padding: b }),
  803. z = W ? (q ? o : r) : q ? n : s;
  804. O[$] > j[$] && (z = re(z));
  805. var B = re(z),
  806. R = [];
  807. if (
  808. (u && R.push(H[I] <= 0),
  809. f && R.push(H[z] <= 0, H[B] <= 0),
  810. R.every(function (e) {
  811. return e;
  812. }))
  813. ) {
  814. (N = F), (D = !1);
  815. break;
  816. }
  817. T.set(F, R);
  818. }
  819. if (D)
  820. for (
  821. var Q = function (e) {
  822. var t = C.find(function (t) {
  823. var i = T.get(t);
  824. if (i)
  825. return i.slice(0, e).every(function (e) {
  826. return e;
  827. });
  828. });
  829. if (t) return (N = t), "break";
  830. },
  831. V = E ? 3 : 1;
  832. V > 0 && "break" !== Q(V);
  833. V--
  834. );
  835. t.placement !== N && ((t.modifiersData[d]._skip = !0), (t.placement = N), (t.reset = !0));
  836. }
  837. },
  838. requiresIfExists: ["offset"],
  839. data: { _skip: !1 },
  840. };
  841. function ve(e, t, i) {
  842. return void 0 === i && (i = { x: 0, y: 0 }), { top: e.top - t.height - i.y, right: e.right - t.width + i.x, bottom: e.bottom - t.height + i.y, left: e.left - t.width - i.x };
  843. }
  844. function ye(e) {
  845. return [s, o, n, r].some(function (t) {
  846. return e[t] >= 0;
  847. });
  848. }
  849. var we = {
  850. name: "hide",
  851. enabled: !0,
  852. phase: "main",
  853. requiresIfExists: ["preventOverflow"],
  854. fn: function (e) {
  855. var t = e.state,
  856. i = e.name,
  857. s = t.rects.reference,
  858. n = t.rects.popper,
  859. o = t.modifiersData.preventOverflow,
  860. r = _e(t, { elementContext: "reference" }),
  861. a = _e(t, { altBoundary: !0 }),
  862. l = ve(r, s),
  863. c = ve(a, n, o),
  864. d = ye(l),
  865. h = ye(c);
  866. (t.modifiersData[i] = { referenceClippingOffsets: l, popperEscapeOffsets: c, isReferenceHidden: d, hasPopperEscaped: h }),
  867. (t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-reference-hidden": d, "data-popper-escaped": h }));
  868. },
  869. },
  870. xe = {
  871. name: "offset",
  872. enabled: !0,
  873. phase: "main",
  874. requires: ["popperOffsets"],
  875. fn: function (e) {
  876. var t = e.state,
  877. i = e.options,
  878. n = e.name,
  879. a = i.offset,
  880. l = void 0 === a ? [0, 0] : a,
  881. c = m.reduce(function (e, i) {
  882. return (
  883. (e[i] = (function (e, t, i) {
  884. var n = P(e),
  885. a = [r, s].indexOf(n) >= 0 ? -1 : 1,
  886. l = "function" == typeof i ? i(Object.assign({}, t, { placement: e })) : i,
  887. c = l[0],
  888. d = l[1];
  889. return (c = c || 0), (d = (d || 0) * a), [r, o].indexOf(n) >= 0 ? { x: d, y: c } : { x: c, y: d };
  890. })(i, t.rects, l)),
  891. e
  892. );
  893. }, {}),
  894. d = c[t.placement],
  895. h = d.x,
  896. u = d.y;
  897. null != t.modifiersData.popperOffsets && ((t.modifiersData.popperOffsets.x += h), (t.modifiersData.popperOffsets.y += u)), (t.modifiersData[n] = c);
  898. },
  899. },
  900. Ee = {
  901. name: "popperOffsets",
  902. enabled: !0,
  903. phase: "read",
  904. fn: function (e) {
  905. var t = e.state,
  906. i = e.name;
  907. t.modifiersData[i] = me({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", placement: t.placement });
  908. },
  909. data: {},
  910. },
  911. ke = {
  912. name: "preventOverflow",
  913. enabled: !0,
  914. phase: "main",
  915. fn: function (e) {
  916. var t = e.state,
  917. i = e.options,
  918. a = e.name,
  919. l = i.mainAxis,
  920. d = void 0 === l || l,
  921. h = i.altAxis,
  922. u = void 0 !== h && h,
  923. p = i.boundary,
  924. f = i.rootBoundary,
  925. g = i.altBoundary,
  926. m = i.padding,
  927. _ = i.tether,
  928. b = void 0 === _ || _,
  929. v = i.tetherOffset,
  930. y = void 0 === v ? 0 : v,
  931. w = _e(t, { boundary: p, rootBoundary: f, padding: m, altBoundary: g }),
  932. x = P(t.placement),
  933. E = J(t.placement),
  934. k = !E,
  935. A = X(x),
  936. L = "x" === A ? "y" : "x",
  937. S = t.modifiersData.popperOffsets,
  938. C = t.rects.reference,
  939. O = t.rects.popper,
  940. j = "function" == typeof y ? y(Object.assign({}, t.rects, { placement: t.placement })) : y,
  941. T = "number" == typeof j ? { mainAxis: j, altAxis: j } : Object.assign({ mainAxis: 0, altAxis: 0 }, j),
  942. D = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null,
  943. F = { x: 0, y: 0 };
  944. if (S) {
  945. if (d) {
  946. var I,
  947. q = "y" === A ? s : r,
  948. W = "y" === A ? n : o,
  949. H = "y" === A ? "height" : "width",
  950. z = S[A],
  951. B = z + w[q],
  952. R = z - w[W],
  953. Q = b ? -O[H] / 2 : 0,
  954. V = E === c ? C[H] : O[H],
  955. U = E === c ? -O[H] : -C[H],
  956. Z = t.elements.arrow,
  957. G = b && Z ? $(Z) : { width: 0, height: 0 },
  958. ee = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 },
  959. te = ee[q],
  960. ie = ee[W],
  961. se = K(0, C[H], G[H]),
  962. ne = k ? C[H] / 2 - Q - se - te - T.mainAxis : V - se - te - T.mainAxis,
  963. oe = k ? -C[H] / 2 + Q + se + ie + T.mainAxis : U + se + ie + T.mainAxis,
  964. re = t.elements.arrow && Y(t.elements.arrow),
  965. ae = re ? ("y" === A ? re.clientTop || 0 : re.clientLeft || 0) : 0,
  966. le = null != (I = null == D ? void 0 : D[A]) ? I : 0,
  967. ce = z + oe - le,
  968. de = K(b ? M(B, z + ne - le - ae) : B, z, b ? N(R, ce) : R);
  969. (S[A] = de), (F[A] = de - z);
  970. }
  971. if (u) {
  972. var he,
  973. ue = "x" === A ? s : r,
  974. pe = "x" === A ? n : o,
  975. fe = S[L],
  976. ge = "y" === L ? "height" : "width",
  977. me = fe + w[ue],
  978. be = fe - w[pe],
  979. ve = -1 !== [s, r].indexOf(x),
  980. ye = null != (he = null == D ? void 0 : D[L]) ? he : 0,
  981. we = ve ? me : fe - C[ge] - O[ge] - ye + T.altAxis,
  982. xe = ve ? fe + C[ge] + O[ge] - ye - T.altAxis : be,
  983. Ee =
  984. b && ve
  985. ? (function (e, t, i) {
  986. var s = K(e, t, i);
  987. return s > i ? i : s;
  988. })(we, fe, xe)
  989. : K(b ? we : me, fe, b ? xe : be);
  990. (S[L] = Ee), (F[L] = Ee - fe);
  991. }
  992. t.modifiersData[a] = F;
  993. }
  994. },
  995. requiresIfExists: ["offset"],
  996. };
  997. function Ae(e, t, i) {
  998. void 0 === i && (i = !1);
  999. var s,
  1000. n,
  1001. o = j(t),
  1002. r =
  1003. j(t) &&
  1004. (function (e) {
  1005. var t = e.getBoundingClientRect(),
  1006. i = F(t.width) / e.offsetWidth || 1,
  1007. s = F(t.height) / e.offsetHeight || 1;
  1008. return 1 !== i || 1 !== s;
  1009. })(t),
  1010. a = R(t),
  1011. l = W(e, r, i),
  1012. c = { scrollLeft: 0, scrollTop: 0 },
  1013. d = { x: 0, y: 0 };
  1014. return (
  1015. (o || (!o && !i)) &&
  1016. (("body" !== S(t) || he(a)) && (c = (s = t) !== C(s) && j(s) ? { scrollLeft: (n = s).scrollLeft, scrollTop: n.scrollTop } : ce(s)),
  1017. j(t) ? (((d = W(t, !0)).x += t.clientLeft), (d.y += t.clientTop)) : a && (d.x = de(a))),
  1018. { x: l.left + c.scrollLeft - d.x, y: l.top + c.scrollTop - d.y, width: l.width, height: l.height }
  1019. );
  1020. }
  1021. function Le(e) {
  1022. var t = new Map(),
  1023. i = new Set(),
  1024. s = [];
  1025. function n(e) {
  1026. i.add(e.name),
  1027. [].concat(e.requires || [], e.requiresIfExists || []).forEach(function (e) {
  1028. if (!i.has(e)) {
  1029. var s = t.get(e);
  1030. s && n(s);
  1031. }
  1032. }),
  1033. s.push(e);
  1034. }
  1035. return (
  1036. e.forEach(function (e) {
  1037. t.set(e.name, e);
  1038. }),
  1039. e.forEach(function (e) {
  1040. i.has(e.name) || n(e);
  1041. }),
  1042. s
  1043. );
  1044. }
  1045. var Se = { placement: "bottom", modifiers: [], strategy: "absolute" };
  1046. function Ce() {
  1047. for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) t[i] = arguments[i];
  1048. return !t.some(function (e) {
  1049. return !(e && "function" == typeof e.getBoundingClientRect);
  1050. });
  1051. }
  1052. function Oe(e) {
  1053. void 0 === e && (e = {});
  1054. var t = e,
  1055. i = t.defaultModifiers,
  1056. s = void 0 === i ? [] : i,
  1057. n = t.defaultOptions,
  1058. o = void 0 === n ? Se : n;
  1059. return function (e, t, i) {
  1060. void 0 === i && (i = o);
  1061. var n,
  1062. r,
  1063. a = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, Se, o), modifiersData: {}, elements: { reference: e, popper: t }, attributes: {}, styles: {} },
  1064. l = [],
  1065. c = !1,
  1066. d = {
  1067. state: a,
  1068. setOptions: function (i) {
  1069. var n = "function" == typeof i ? i(a.options) : i;
  1070. h(), (a.options = Object.assign({}, o, a.options, n)), (a.scrollParents = { reference: O(e) ? pe(e) : e.contextElement ? pe(e.contextElement) : [], popper: pe(t) });
  1071. var r,
  1072. c,
  1073. u = (function (e) {
  1074. var t = Le(e);
  1075. return L.reduce(function (e, i) {
  1076. return e.concat(
  1077. t.filter(function (e) {
  1078. return e.phase === i;
  1079. })
  1080. );
  1081. }, []);
  1082. })(
  1083. ((r = [].concat(s, a.options.modifiers)),
  1084. (c = r.reduce(function (e, t) {
  1085. var i = e[t.name];
  1086. return (e[t.name] = i ? Object.assign({}, i, t, { options: Object.assign({}, i.options, t.options), data: Object.assign({}, i.data, t.data) }) : t), e;
  1087. }, {})),
  1088. Object.keys(c).map(function (e) {
  1089. return c[e];
  1090. }))
  1091. );
  1092. return (
  1093. (a.orderedModifiers = u.filter(function (e) {
  1094. return e.enabled;
  1095. })),
  1096. a.orderedModifiers.forEach(function (e) {
  1097. var t = e.name,
  1098. i = e.options,
  1099. s = void 0 === i ? {} : i,
  1100. n = e.effect;
  1101. if ("function" == typeof n) {
  1102. var o = n({ state: a, name: t, instance: d, options: s });
  1103. l.push(o || function () {});
  1104. }
  1105. }),
  1106. d.update()
  1107. );
  1108. },
  1109. forceUpdate: function () {
  1110. if (!c) {
  1111. var e = a.elements,
  1112. t = e.reference,
  1113. i = e.popper;
  1114. if (Ce(t, i)) {
  1115. (a.rects = { reference: Ae(t, Y(i), "fixed" === a.options.strategy), popper: $(i) }),
  1116. (a.reset = !1),
  1117. (a.placement = a.options.placement),
  1118. a.orderedModifiers.forEach(function (e) {
  1119. return (a.modifiersData[e.name] = Object.assign({}, e.data));
  1120. });
  1121. for (var s = 0; s < a.orderedModifiers.length; s++)
  1122. if (!0 !== a.reset) {
  1123. var n = a.orderedModifiers[s],
  1124. o = n.fn,
  1125. r = n.options,
  1126. l = void 0 === r ? {} : r,
  1127. h = n.name;
  1128. "function" == typeof o && (a = o({ state: a, options: l, name: h, instance: d }) || a);
  1129. } else (a.reset = !1), (s = -1);
  1130. }
  1131. }
  1132. },
  1133. update:
  1134. ((n = function () {
  1135. return new Promise(function (e) {
  1136. d.forceUpdate(), e(a);
  1137. });
  1138. }),
  1139. function () {
  1140. return (
  1141. r ||
  1142. (r = new Promise(function (e) {
  1143. Promise.resolve().then(function () {
  1144. (r = void 0), e(n());
  1145. });
  1146. })),
  1147. r
  1148. );
  1149. }),
  1150. destroy: function () {
  1151. h(), (c = !0);
  1152. },
  1153. };
  1154. if (!Ce(e, t)) return d;
  1155. function h() {
  1156. l.forEach(function (e) {
  1157. return e();
  1158. }),
  1159. (l = []);
  1160. }
  1161. return (
  1162. d.setOptions(i).then(function (e) {
  1163. !c && i.onFirstUpdate && i.onFirstUpdate(e);
  1164. }),
  1165. d
  1166. );
  1167. };
  1168. }
  1169. var je = Oe(),
  1170. Te = Oe({ defaultModifiers: [ne, Ee, ie, D, xe, be, ke, G, we] }),
  1171. De = Oe({ defaultModifiers: [ne, Ee, ie, D] });
  1172. const Pe = "transitionend",
  1173. Ne = (e) => {
  1174. let t = e.getAttribute("data-bs-target");
  1175. if (!t || "#" === t) {
  1176. let i = e.getAttribute("href");
  1177. if (!i || (!i.includes("#") && !i.startsWith("."))) return null;
  1178. i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`), (t = i && "#" !== i ? i.trim() : null);
  1179. }
  1180. return t;
  1181. },
  1182. Me = (e) => {
  1183. const t = Ne(e);
  1184. return t && document.querySelector(t) ? t : null;
  1185. },
  1186. Fe = (e) => {
  1187. const t = Ne(e);
  1188. return t ? document.querySelector(t) : null;
  1189. },
  1190. Ie = (e) => {
  1191. e.dispatchEvent(new Event(Pe));
  1192. },
  1193. qe = (e) => !(!e || "object" != typeof e) && (void 0 !== e.jquery && (e = e[0]), void 0 !== e.nodeType),
  1194. We = (e) => (qe(e) ? (e.jquery ? e[0] : e) : "string" == typeof e && e.length > 0 ? document.querySelector(e) : null),
  1195. $e = (e) => {
  1196. if (!qe(e) || 0 === e.getClientRects().length) return !1;
  1197. const t = "visible" === getComputedStyle(e).getPropertyValue("visibility"),
  1198. i = e.closest("details:not([open])");
  1199. if (!i) return t;
  1200. if (i !== e) {
  1201. const t = e.closest("summary");
  1202. if (t && t.parentNode !== i) return !1;
  1203. if (null === t) return !1;
  1204. }
  1205. return t;
  1206. },
  1207. He = (e) => !e || e.nodeType !== Node.ELEMENT_NODE || !!e.classList.contains("disabled") || (void 0 !== e.disabled ? e.disabled : e.hasAttribute("disabled") && "false" !== e.getAttribute("disabled")),
  1208. ze = (e) => {
  1209. if (!document.documentElement.attachShadow) return null;
  1210. if ("function" == typeof e.getRootNode) {
  1211. const t = e.getRootNode();
  1212. return t instanceof ShadowRoot ? t : null;
  1213. }
  1214. return e instanceof ShadowRoot ? e : e.parentNode ? ze(e.parentNode) : null;
  1215. },
  1216. Be = () => {},
  1217. Re = (e) => {
  1218. e.offsetHeight;
  1219. },
  1220. Qe = () => (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery") ? window.jQuery : null),
  1221. Ve = [],
  1222. Ye = () => "rtl" === document.documentElement.dir,
  1223. Xe = (e) => {
  1224. var t;
  1225. (t = () => {
  1226. const t = Qe();
  1227. if (t) {
  1228. const i = e.NAME,
  1229. s = t.fn[i];
  1230. (t.fn[i] = e.jQueryInterface), (t.fn[i].Constructor = e), (t.fn[i].noConflict = () => ((t.fn[i] = s), e.jQueryInterface));
  1231. }
  1232. }),
  1233. "loading" === document.readyState
  1234. ? (Ve.length ||
  1235. document.addEventListener("DOMContentLoaded", () => {
  1236. for (const e of Ve) e();
  1237. }),
  1238. Ve.push(t))
  1239. : t();
  1240. },
  1241. Ke = (e) => {
  1242. "function" == typeof e && e();
  1243. },
  1244. Ue = (e, t, i = !0) => {
  1245. if (!i) return void Ke(e);
  1246. const s =
  1247. ((e) => {
  1248. if (!e) return 0;
  1249. let { transitionDuration: t, transitionDelay: i } = window.getComputedStyle(e);
  1250. const s = Number.parseFloat(t),
  1251. n = Number.parseFloat(i);
  1252. return s || n ? ((t = t.split(",")[0]), (i = i.split(",")[0]), 1e3 * (Number.parseFloat(t) + Number.parseFloat(i))) : 0;
  1253. })(t) + 5;
  1254. let n = !1;
  1255. const o = ({ target: i }) => {
  1256. i === t && ((n = !0), t.removeEventListener(Pe, o), Ke(e));
  1257. };
  1258. t.addEventListener(Pe, o),
  1259. setTimeout(() => {
  1260. n || Ie(t);
  1261. }, s);
  1262. },
  1263. Ze = (e, t, i, s) => {
  1264. const n = e.length;
  1265. let o = e.indexOf(t);
  1266. return -1 === o ? (!i && s ? e[n - 1] : e[0]) : ((o += i ? 1 : -1), s && (o = (o + n) % n), e[Math.max(0, Math.min(o, n - 1))]);
  1267. },
  1268. Ge = /[^.]*(?=\..*)\.|.*/,
  1269. Je = /\..*/,
  1270. et = /::\d+$/,
  1271. tt = {};
  1272. let it = 1;
  1273. const st = { mouseenter: "mouseover", mouseleave: "mouseout" },
  1274. nt = new Set([
  1275. "click",
  1276. "dblclick",
  1277. "mouseup",
  1278. "mousedown",
  1279. "contextmenu",
  1280. "mousewheel",
  1281. "DOMMouseScroll",
  1282. "mouseover",
  1283. "mouseout",
  1284. "mousemove",
  1285. "selectstart",
  1286. "selectend",
  1287. "keydown",
  1288. "keypress",
  1289. "keyup",
  1290. "orientationchange",
  1291. "touchstart",
  1292. "touchmove",
  1293. "touchend",
  1294. "touchcancel",
  1295. "pointerdown",
  1296. "pointermove",
  1297. "pointerup",
  1298. "pointerleave",
  1299. "pointercancel",
  1300. "gesturestart",
  1301. "gesturechange",
  1302. "gestureend",
  1303. "focus",
  1304. "blur",
  1305. "change",
  1306. "reset",
  1307. "select",
  1308. "submit",
  1309. "focusin",
  1310. "focusout",
  1311. "load",
  1312. "unload",
  1313. "beforeunload",
  1314. "resize",
  1315. "move",
  1316. "DOMContentLoaded",
  1317. "readystatechange",
  1318. "error",
  1319. "abort",
  1320. "scroll",
  1321. ]);
  1322. function ot(e, t) {
  1323. return (t && `${t}::${it++}`) || e.uidEvent || it++;
  1324. }
  1325. function rt(e) {
  1326. const t = ot(e);
  1327. return (e.uidEvent = t), (tt[t] = tt[t] || {}), tt[t];
  1328. }
  1329. function at(e, t, i = null) {
  1330. return Object.values(e).find((e) => e.callable === t && e.delegationSelector === i);
  1331. }
  1332. function lt(e, t, i) {
  1333. const s = "string" == typeof t,
  1334. n = s ? i : t || i;
  1335. let o = ut(e);
  1336. return nt.has(o) || (o = e), [s, n, o];
  1337. }
  1338. function ct(e, t, i, s, n) {
  1339. if ("string" != typeof t || !e) return;
  1340. let [o, r, a] = lt(t, i, s);
  1341. if (t in st) {
  1342. const e = (e) =>
  1343. function (t) {
  1344. if (!t.relatedTarget || (t.relatedTarget !== t.delegateTarget && !t.delegateTarget.contains(t.relatedTarget))) return e.call(this, t);
  1345. };
  1346. r = e(r);
  1347. }
  1348. const l = rt(e),
  1349. c = l[a] || (l[a] = {}),
  1350. d = at(c, r, o ? i : null);
  1351. if (d) return void (d.oneOff = d.oneOff && n);
  1352. const h = ot(r, t.replace(Ge, "")),
  1353. u = o
  1354. ? (function (e, t, i) {
  1355. return function s(n) {
  1356. const o = e.querySelectorAll(t);
  1357. for (let { target: r } = n; r && r !== this; r = r.parentNode) for (const a of o) if (a === r) return ft(n, { delegateTarget: r }), s.oneOff && pt.off(e, n.type, t, i), i.apply(r, [n]);
  1358. };
  1359. })(e, i, r)
  1360. : (function (e, t) {
  1361. return function i(s) {
  1362. return ft(s, { delegateTarget: e }), i.oneOff && pt.off(e, s.type, t), t.apply(e, [s]);
  1363. };
  1364. })(e, r);
  1365. (u.delegationSelector = o ? i : null), (u.callable = r), (u.oneOff = n), (u.uidEvent = h), (c[h] = u), e.addEventListener(a, u, o);
  1366. }
  1367. function dt(e, t, i, s, n) {
  1368. const o = at(t[i], s, n);
  1369. o && (e.removeEventListener(i, o, Boolean(n)), delete t[i][o.uidEvent]);
  1370. }
  1371. function ht(e, t, i, s) {
  1372. const n = t[i] || {};
  1373. for (const o of Object.keys(n))
  1374. if (o.includes(s)) {
  1375. const s = n[o];
  1376. dt(e, t, i, s.callable, s.delegationSelector);
  1377. }
  1378. }
  1379. function ut(e) {
  1380. return (e = e.replace(Je, "")), st[e] || e;
  1381. }
  1382. const pt = {
  1383. on(e, t, i, s) {
  1384. ct(e, t, i, s, !1);
  1385. },
  1386. one(e, t, i, s) {
  1387. ct(e, t, i, s, !0);
  1388. },
  1389. off(e, t, i, s) {
  1390. if ("string" != typeof t || !e) return;
  1391. const [n, o, r] = lt(t, i, s),
  1392. a = r !== t,
  1393. l = rt(e),
  1394. c = l[r] || {},
  1395. d = t.startsWith(".");
  1396. if (void 0 === o) {
  1397. if (d) for (const i of Object.keys(l)) ht(e, l, i, t.slice(1));
  1398. for (const i of Object.keys(c)) {
  1399. const s = i.replace(et, "");
  1400. if (!a || t.includes(s)) {
  1401. const t = c[i];
  1402. dt(e, l, r, t.callable, t.delegationSelector);
  1403. }
  1404. }
  1405. } else {
  1406. if (!Object.keys(c).length) return;
  1407. dt(e, l, r, o, n ? i : null);
  1408. }
  1409. },
  1410. trigger(e, t, i) {
  1411. if ("string" != typeof t || !e) return null;
  1412. const s = Qe();
  1413. let n = null,
  1414. o = !0,
  1415. r = !0,
  1416. a = !1;
  1417. t !== ut(t) && s && ((n = s.Event(t, i)), s(e).trigger(n), (o = !n.isPropagationStopped()), (r = !n.isImmediatePropagationStopped()), (a = n.isDefaultPrevented()));
  1418. let l = new Event(t, { bubbles: o, cancelable: !0 });
  1419. return (l = ft(l, i)), a && l.preventDefault(), r && e.dispatchEvent(l), l.defaultPrevented && n && n.preventDefault(), l;
  1420. },
  1421. };
  1422. function ft(e, t) {
  1423. for (const [i, s] of Object.entries(t || {}))
  1424. try {
  1425. e[i] = s;
  1426. } catch (t) {
  1427. Object.defineProperty(e, i, {
  1428. configurable: !0,
  1429. get() {
  1430. return s;
  1431. },
  1432. });
  1433. }
  1434. return e;
  1435. }
  1436. const gt = new Map(),
  1437. mt = {
  1438. set(e, t, i) {
  1439. gt.has(e) || gt.set(e, new Map());
  1440. const s = gt.get(e);
  1441. s.has(t) || 0 === s.size ? s.set(t, i) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`);
  1442. },
  1443. get(e, t) {
  1444. return (gt.has(e) && gt.get(e).get(t)) || null;
  1445. },
  1446. remove(e, t) {
  1447. if (!gt.has(e)) return;
  1448. const i = gt.get(e);
  1449. i.delete(t), 0 === i.size && gt.delete(e);
  1450. },
  1451. };
  1452. function _t(e) {
  1453. if ("true" === e) return !0;
  1454. if ("false" === e) return !1;
  1455. if (e === Number(e).toString()) return Number(e);
  1456. if ("" === e || "null" === e) return null;
  1457. if ("string" != typeof e) return e;
  1458. try {
  1459. return JSON.parse(decodeURIComponent(e));
  1460. } catch (t) {
  1461. return e;
  1462. }
  1463. }
  1464. function bt(e) {
  1465. return e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`);
  1466. }
  1467. const vt = {
  1468. setDataAttribute(e, t, i) {
  1469. e.setAttribute(`data-bs-${bt(t)}`, i);
  1470. },
  1471. removeDataAttribute(e, t) {
  1472. e.removeAttribute(`data-bs-${bt(t)}`);
  1473. },
  1474. getDataAttributes(e) {
  1475. if (!e) return {};
  1476. const t = {},
  1477. i = Object.keys(e.dataset).filter((e) => e.startsWith("bs") && !e.startsWith("bsConfig"));
  1478. for (const s of i) {
  1479. let i = s.replace(/^bs/, "");
  1480. (i = i.charAt(0).toLowerCase() + i.slice(1, i.length)), (t[i] = _t(e.dataset[s]));
  1481. }
  1482. return t;
  1483. },
  1484. getDataAttribute(e, t) {
  1485. return _t(e.getAttribute(`data-bs-${bt(t)}`));
  1486. },
  1487. };
  1488. class yt {
  1489. static get Default() {
  1490. return {};
  1491. }
  1492. static get DefaultType() {
  1493. return {};
  1494. }
  1495. static get NAME() {
  1496. throw new Error('You have to implement the static method "NAME", for each component!');
  1497. }
  1498. _getConfig(e) {
  1499. return (e = this._mergeConfigObj(e)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e;
  1500. }
  1501. _configAfterMerge(e) {
  1502. return e;
  1503. }
  1504. _mergeConfigObj(e, t) {
  1505. const i = qe(t) ? vt.getDataAttribute(t, "config") : {};
  1506. return { ...this.constructor.Default, ...("object" == typeof i ? i : {}), ...(qe(t) ? vt.getDataAttributes(t) : {}), ...("object" == typeof e ? e : {}) };
  1507. }
  1508. _typeCheckConfig(e, t = this.constructor.DefaultType) {
  1509. for (const s of Object.keys(t)) {
  1510. const n = t[s],
  1511. o = e[s],
  1512. r = qe(o)
  1513. ? "element"
  1514. : null == (i = o)
  1515. ? `${i}`
  1516. : Object.prototype.toString
  1517. .call(i)
  1518. .match(/\s([a-z]+)/i)[1]
  1519. .toLowerCase();
  1520. if (!new RegExp(n).test(r)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${n}".`);
  1521. }
  1522. var i;
  1523. }
  1524. }
  1525. class wt extends yt {
  1526. constructor(e, t) {
  1527. super(), (e = We(e)) && ((this._element = e), (this._config = this._getConfig(t)), mt.set(this._element, this.constructor.DATA_KEY, this));
  1528. }
  1529. dispose() {
  1530. mt.remove(this._element, this.constructor.DATA_KEY), pt.off(this._element, this.constructor.EVENT_KEY);
  1531. for (const e of Object.getOwnPropertyNames(this)) this[e] = null;
  1532. }
  1533. _queueCallback(e, t, i = !0) {
  1534. Ue(e, t, i);
  1535. }
  1536. _getConfig(e) {
  1537. return (e = this._mergeConfigObj(e, this._element)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e;
  1538. }
  1539. static getInstance(e) {
  1540. return mt.get(We(e), this.DATA_KEY);
  1541. }
  1542. static getOrCreateInstance(e, t = {}) {
  1543. return this.getInstance(e) || new this(e, "object" == typeof t ? t : null);
  1544. }
  1545. static get VERSION() {
  1546. return "5.2.3";
  1547. }
  1548. static get DATA_KEY() {
  1549. return `bs.${this.NAME}`;
  1550. }
  1551. static get EVENT_KEY() {
  1552. return `.${this.DATA_KEY}`;
  1553. }
  1554. static eventName(e) {
  1555. return `${e}${this.EVENT_KEY}`;
  1556. }
  1557. }
  1558. const xt = (e, t = "hide") => {
  1559. const i = `click.dismiss${e.EVENT_KEY}`,
  1560. s = e.NAME;
  1561. pt.on(document, i, `[data-bs-dismiss="${s}"]`, function (i) {
  1562. if ((["A", "AREA"].includes(this.tagName) && i.preventDefault(), He(this))) return;
  1563. const n = Fe(this) || this.closest(`.${s}`);
  1564. e.getOrCreateInstance(n)[t]();
  1565. });
  1566. },
  1567. Et = ".bs.alert",
  1568. kt = `close${Et}`,
  1569. At = `closed${Et}`;
  1570. class Lt extends wt {
  1571. static get NAME() {
  1572. return "alert";
  1573. }
  1574. close() {
  1575. if (pt.trigger(this._element, kt).defaultPrevented) return;
  1576. this._element.classList.remove("show");
  1577. const e = this._element.classList.contains("fade");
  1578. this._queueCallback(() => this._destroyElement(), this._element, e);
  1579. }
  1580. _destroyElement() {
  1581. this._element.remove(), pt.trigger(this._element, At), this.dispose();
  1582. }
  1583. static jQueryInterface(e) {
  1584. return this.each(function () {
  1585. const t = Lt.getOrCreateInstance(this);
  1586. if ("string" == typeof e) {
  1587. if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
  1588. t[e](this);
  1589. }
  1590. });
  1591. }
  1592. }
  1593. xt(Lt, "close"), Xe(Lt);
  1594. const St = '[data-bs-toggle="button"]';
  1595. class Ct extends wt {
  1596. static get NAME() {
  1597. return "button";
  1598. }
  1599. toggle() {
  1600. this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"));
  1601. }
  1602. static jQueryInterface(e) {
  1603. return this.each(function () {
  1604. const t = Ct.getOrCreateInstance(this);
  1605. "toggle" === e && t[e]();
  1606. });
  1607. }
  1608. }
  1609. pt.on(document, "click.bs.button.data-api", St, (e) => {
  1610. e.preventDefault();
  1611. const t = e.target.closest(St);
  1612. Ct.getOrCreateInstance(t).toggle();
  1613. }),
  1614. Xe(Ct);
  1615. const Ot = {
  1616. find(e, t = document.documentElement) {
  1617. return [].concat(...Element.prototype.querySelectorAll.call(t, e));
  1618. },
  1619. findOne(e, t = document.documentElement) {
  1620. return Element.prototype.querySelector.call(t, e);
  1621. },
  1622. children(e, t) {
  1623. return [].concat(...e.children).filter((e) => e.matches(t));
  1624. },
  1625. parents(e, t) {
  1626. const i = [];
  1627. let s = e.parentNode.closest(t);
  1628. for (; s; ) i.push(s), (s = s.parentNode.closest(t));
  1629. return i;
  1630. },
  1631. prev(e, t) {
  1632. let i = e.previousElementSibling;
  1633. for (; i; ) {
  1634. if (i.matches(t)) return [i];
  1635. i = i.previousElementSibling;
  1636. }
  1637. return [];
  1638. },
  1639. next(e, t) {
  1640. let i = e.nextElementSibling;
  1641. for (; i; ) {
  1642. if (i.matches(t)) return [i];
  1643. i = i.nextElementSibling;
  1644. }
  1645. return [];
  1646. },
  1647. focusableChildren(e) {
  1648. const t = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((e) => `${e}:not([tabindex^="-"])`).join(",");
  1649. return this.find(t, e).filter((e) => !He(e) && $e(e));
  1650. },
  1651. },
  1652. jt = ".bs.swipe",
  1653. Tt = `touchstart${jt}`,
  1654. Dt = `touchmove${jt}`,
  1655. Pt = `touchend${jt}`,
  1656. Nt = `pointerdown${jt}`,
  1657. Mt = `pointerup${jt}`,
  1658. Ft = { endCallback: null, leftCallback: null, rightCallback: null },
  1659. It = { endCallback: "(function|null)", leftCallback: "(function|null)", rightCallback: "(function|null)" };
  1660. class qt extends yt {
  1661. constructor(e, t) {
  1662. super(), (this._element = e), e && qt.isSupported() && ((this._config = this._getConfig(t)), (this._deltaX = 0), (this._supportPointerEvents = Boolean(window.PointerEvent)), this._initEvents());
  1663. }
  1664. static get Default() {
  1665. return Ft;
  1666. }
  1667. static get DefaultType() {
  1668. return It;
  1669. }
  1670. static get NAME() {
  1671. return "swipe";
  1672. }
  1673. dispose() {
  1674. pt.off(this._element, jt);
  1675. }
  1676. _start(e) {
  1677. this._supportPointerEvents ? this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX) : (this._deltaX = e.touches[0].clientX);
  1678. }
  1679. _end(e) {
  1680. this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX - this._deltaX), this._handleSwipe(), Ke(this._config.endCallback);
  1681. }
  1682. _move(e) {
  1683. this._deltaX = e.touches && e.touches.length > 1 ? 0 : e.touches[0].clientX - this._deltaX;
  1684. }
  1685. _handleSwipe() {
  1686. const e = Math.abs(this._deltaX);
  1687. if (e <= 40) return;
  1688. const t = e / this._deltaX;
  1689. (this._deltaX = 0), t && Ke(t > 0 ? this._config.rightCallback : this._config.leftCallback);
  1690. }
  1691. _initEvents() {
  1692. this._supportPointerEvents
  1693. ? (pt.on(this._element, Nt, (e) => this._start(e)), pt.on(this._element, Mt, (e) => this._end(e)), this._element.classList.add("pointer-event"))
  1694. : (pt.on(this._element, Tt, (e) => this._start(e)), pt.on(this._element, Dt, (e) => this._move(e)), pt.on(this._element, Pt, (e) => this._end(e)));
  1695. }
  1696. _eventIsPointerPenTouch(e) {
  1697. return this._supportPointerEvents && ("pen" === e.pointerType || "touch" === e.pointerType);
  1698. }
  1699. static isSupported() {
  1700. return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
  1701. }
  1702. }
  1703. const Wt = ".bs.carousel",
  1704. $t = ".data-api",
  1705. Ht = "next",
  1706. zt = "prev",
  1707. Bt = "left",
  1708. Rt = "right",
  1709. Qt = `slide${Wt}`,
  1710. Vt = `slid${Wt}`,
  1711. Yt = `keydown${Wt}`,
  1712. Xt = `mouseenter${Wt}`,
  1713. Kt = `mouseleave${Wt}`,
  1714. Ut = `dragstart${Wt}`,
  1715. Zt = `load${Wt}${$t}`,
  1716. Gt = `click${Wt}${$t}`,
  1717. Jt = "carousel",
  1718. ei = "active",
  1719. ti = ".active",
  1720. ii = ".carousel-item",
  1721. si = ti + ii,
  1722. ni = { ArrowLeft: Rt, ArrowRight: Bt },
  1723. oi = { interval: 5e3, keyboard: !0, pause: "hover", ride: !1, touch: !0, wrap: !0 },
  1724. ri = { interval: "(number|boolean)", keyboard: "boolean", pause: "(string|boolean)", ride: "(boolean|string)", touch: "boolean", wrap: "boolean" };
  1725. class ai extends wt {
  1726. constructor(e, t) {
  1727. super(e, t),
  1728. (this._interval = null),
  1729. (this._activeElement = null),
  1730. (this._isSliding = !1),
  1731. (this.touchTimeout = null),
  1732. (this._swipeHelper = null),
  1733. (this._indicatorsElement = Ot.findOne(".carousel-indicators", this._element)),
  1734. this._addEventListeners(),
  1735. this._config.ride === Jt && this.cycle();
  1736. }
  1737. static get Default() {
  1738. return oi;
  1739. }
  1740. static get DefaultType() {
  1741. return ri;
  1742. }
  1743. static get NAME() {
  1744. return "carousel";
  1745. }
  1746. next() {
  1747. this._slide(Ht);
  1748. }
  1749. nextWhenVisible() {
  1750. !document.hidden && $e(this._element) && this.next();
  1751. }
  1752. prev() {
  1753. this._slide(zt);
  1754. }
  1755. pause() {
  1756. this._isSliding && Ie(this._element), this._clearInterval();
  1757. }
  1758. cycle() {
  1759. this._clearInterval(), this._updateInterval(), (this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval));
  1760. }
  1761. _maybeEnableCycle() {
  1762. this._config.ride && (this._isSliding ? pt.one(this._element, Vt, () => this.cycle()) : this.cycle());
  1763. }
  1764. to(e) {
  1765. const t = this._getItems();
  1766. if (e > t.length - 1 || e < 0) return;
  1767. if (this._isSliding) return void pt.one(this._element, Vt, () => this.to(e));
  1768. const i = this._getItemIndex(this._getActive());
  1769. if (i === e) return;
  1770. const s = e > i ? Ht : zt;
  1771. this._slide(s, t[e]);
  1772. }
  1773. dispose() {
  1774. this._swipeHelper && this._swipeHelper.dispose(), super.dispose();
  1775. }
  1776. _configAfterMerge(e) {
  1777. return (e.defaultInterval = e.interval), e;
  1778. }
  1779. _addEventListeners() {
  1780. this._config.keyboard && pt.on(this._element, Yt, (e) => this._keydown(e)),
  1781. "hover" === this._config.pause && (pt.on(this._element, Xt, () => this.pause()), pt.on(this._element, Kt, () => this._maybeEnableCycle())),
  1782. this._config.touch && qt.isSupported() && this._addTouchEventListeners();
  1783. }
  1784. _addTouchEventListeners() {
  1785. for (const e of Ot.find(".carousel-item img", this._element)) pt.on(e, Ut, (e) => e.preventDefault());
  1786. const e = {
  1787. leftCallback: () => this._slide(this._directionToOrder(Bt)),
  1788. rightCallback: () => this._slide(this._directionToOrder(Rt)),
  1789. endCallback: () => {
  1790. "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), (this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), 500 + this._config.interval)));
  1791. },
  1792. };
  1793. this._swipeHelper = new qt(this._element, e);
  1794. }
  1795. _keydown(e) {
  1796. if (/input|textarea/i.test(e.target.tagName)) return;
  1797. const t = ni[e.key];
  1798. t && (e.preventDefault(), this._slide(this._directionToOrder(t)));
  1799. }
  1800. _getItemIndex(e) {
  1801. return this._getItems().indexOf(e);
  1802. }
  1803. _setActiveIndicatorElement(e) {
  1804. if (!this._indicatorsElement) return;
  1805. const t = Ot.findOne(ti, this._indicatorsElement);
  1806. t.classList.remove(ei), t.removeAttribute("aria-current");
  1807. const i = Ot.findOne(`[data-bs-slide-to="${e}"]`, this._indicatorsElement);
  1808. i && (i.classList.add(ei), i.setAttribute("aria-current", "true"));
  1809. }
  1810. _updateInterval() {
  1811. const e = this._activeElement || this._getActive();
  1812. if (!e) return;
  1813. const t = Number.parseInt(e.getAttribute("data-bs-interval"), 10);
  1814. this._config.interval = t || this._config.defaultInterval;
  1815. }
  1816. _slide(e, t = null) {
  1817. if (this._isSliding) return;
  1818. const i = this._getActive(),
  1819. s = e === Ht,
  1820. n = t || Ze(this._getItems(), i, s, this._config.wrap);
  1821. if (n === i) return;
  1822. const o = this._getItemIndex(n),
  1823. r = (t) => pt.trigger(this._element, t, { relatedTarget: n, direction: this._orderToDirection(e), from: this._getItemIndex(i), to: o });
  1824. if (r(Qt).defaultPrevented) return;
  1825. if (!i || !n) return;
  1826. const a = Boolean(this._interval);
  1827. this.pause(), (this._isSliding = !0), this._setActiveIndicatorElement(o), (this._activeElement = n);
  1828. const l = s ? "carousel-item-start" : "carousel-item-end",
  1829. c = s ? "carousel-item-next" : "carousel-item-prev";
  1830. n.classList.add(c),
  1831. Re(n),
  1832. i.classList.add(l),
  1833. n.classList.add(l),
  1834. this._queueCallback(
  1835. () => {
  1836. n.classList.remove(l, c), n.classList.add(ei), i.classList.remove(ei, c, l), (this._isSliding = !1), r(Vt);
  1837. },
  1838. i,
  1839. this._isAnimated()
  1840. ),
  1841. a && this.cycle();
  1842. }
  1843. _isAnimated() {
  1844. return this._element.classList.contains("slide");
  1845. }
  1846. _getActive() {
  1847. return Ot.findOne(si, this._element);
  1848. }
  1849. _getItems() {
  1850. return Ot.find(ii, this._element);
  1851. }
  1852. _clearInterval() {
  1853. this._interval && (clearInterval(this._interval), (this._interval = null));
  1854. }
  1855. _directionToOrder(e) {
  1856. return Ye() ? (e === Bt ? zt : Ht) : e === Bt ? Ht : zt;
  1857. }
  1858. _orderToDirection(e) {
  1859. return Ye() ? (e === zt ? Bt : Rt) : e === zt ? Rt : Bt;
  1860. }
  1861. static jQueryInterface(e) {
  1862. return this.each(function () {
  1863. const t = ai.getOrCreateInstance(this, e);
  1864. if ("number" != typeof e) {
  1865. if ("string" == typeof e) {
  1866. if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
  1867. t[e]();
  1868. }
  1869. } else t.to(e);
  1870. });
  1871. }
  1872. }
  1873. pt.on(document, Gt, "[data-bs-slide], [data-bs-slide-to]", function (e) {
  1874. const t = Fe(this);
  1875. if (!t || !t.classList.contains(Jt)) return;
  1876. e.preventDefault();
  1877. const i = ai.getOrCreateInstance(t),
  1878. s = this.getAttribute("data-bs-slide-to");
  1879. return s ? (i.to(s), void i._maybeEnableCycle()) : "next" === vt.getDataAttribute(this, "slide") ? (i.next(), void i._maybeEnableCycle()) : (i.prev(), void i._maybeEnableCycle());
  1880. }),
  1881. pt.on(window, Zt, () => {
  1882. const e = Ot.find('[data-bs-ride="carousel"]');
  1883. for (const t of e) ai.getOrCreateInstance(t);
  1884. }),
  1885. Xe(ai);
  1886. const li = ".bs.collapse",
  1887. ci = `show${li}`,
  1888. di = `shown${li}`,
  1889. hi = `hide${li}`,
  1890. ui = `hidden${li}`,
  1891. pi = `click${li}.data-api`,
  1892. fi = "show",
  1893. gi = "collapse",
  1894. mi = "collapsing",
  1895. _i = `:scope .${gi} .${gi}`,
  1896. bi = '[data-bs-toggle="collapse"]',
  1897. vi = { parent: null, toggle: !0 },
  1898. yi = { parent: "(null|element)", toggle: "boolean" };
  1899. class wi extends wt {
  1900. constructor(e, t) {
  1901. super(e, t), (this._isTransitioning = !1), (this._triggerArray = []);
  1902. const i = Ot.find(bi);
  1903. for (const e of i) {
  1904. const t = Me(e),
  1905. i = Ot.find(t).filter((e) => e === this._element);
  1906. null !== t && i.length && this._triggerArray.push(e);
  1907. }
  1908. this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle();
  1909. }
  1910. static get Default() {
  1911. return vi;
  1912. }
  1913. static get DefaultType() {
  1914. return yi;
  1915. }
  1916. static get NAME() {
  1917. return "collapse";
  1918. }
  1919. toggle() {
  1920. this._isShown() ? this.hide() : this.show();
  1921. }
  1922. show() {
  1923. if (this._isTransitioning || this._isShown()) return;
  1924. let e = [];
  1925. if (
  1926. (this._config.parent &&
  1927. (e = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing")
  1928. .filter((e) => e !== this._element)
  1929. .map((e) => wi.getOrCreateInstance(e, { toggle: !1 }))),
  1930. e.length && e[0]._isTransitioning)
  1931. )
  1932. return;
  1933. if (pt.trigger(this._element, ci).defaultPrevented) return;
  1934. for (const t of e) t.hide();
  1935. const t = this._getDimension();
  1936. this._element.classList.remove(gi), this._element.classList.add(mi), (this._element.style[t] = 0), this._addAriaAndCollapsedClass(this._triggerArray, !0), (this._isTransitioning = !0);
  1937. const i = `scroll${t[0].toUpperCase() + t.slice(1)}`;
  1938. this._queueCallback(
  1939. () => {
  1940. (this._isTransitioning = !1), this._element.classList.remove(mi), this._element.classList.add(gi, fi), (this._element.style[t] = ""), pt.trigger(this._element, di);
  1941. },
  1942. this._element,
  1943. !0
  1944. ),
  1945. (this._element.style[t] = `${this._element[i]}px`);
  1946. }
  1947. hide() {
  1948. if (this._isTransitioning || !this._isShown()) return;
  1949. if (pt.trigger(this._element, hi).defaultPrevented) return;
  1950. const e = this._getDimension();
  1951. (this._element.style[e] = `${this._element.getBoundingClientRect()[e]}px`), Re(this._element), this._element.classList.add(mi), this._element.classList.remove(gi, fi);
  1952. for (const e of this._triggerArray) {
  1953. const t = Fe(e);
  1954. t && !this._isShown(t) && this._addAriaAndCollapsedClass([e], !1);
  1955. }
  1956. (this._isTransitioning = !0),
  1957. (this._element.style[e] = ""),
  1958. this._queueCallback(
  1959. () => {
  1960. (this._isTransitioning = !1), this._element.classList.remove(mi), this._element.classList.add(gi), pt.trigger(this._element, ui);
  1961. },
  1962. this._element,
  1963. !0
  1964. );
  1965. }
  1966. _isShown(e = this._element) {
  1967. return e.classList.contains(fi);
  1968. }
  1969. _configAfterMerge(e) {
  1970. return (e.toggle = Boolean(e.toggle)), (e.parent = We(e.parent)), e;
  1971. }
  1972. _getDimension() {
  1973. return this._element.classList.contains("collapse-horizontal") ? "width" : "height";
  1974. }
  1975. _initializeChildren() {
  1976. if (!this._config.parent) return;
  1977. const e = this._getFirstLevelChildren(bi);
  1978. for (const t of e) {
  1979. const e = Fe(t);
  1980. e && this._addAriaAndCollapsedClass([t], this._isShown(e));
  1981. }
  1982. }
  1983. _getFirstLevelChildren(e) {
  1984. const t = Ot.find(_i, this._config.parent);
  1985. return Ot.find(e, this._config.parent).filter((e) => !t.includes(e));
  1986. }
  1987. _addAriaAndCollapsedClass(e, t) {
  1988. if (e.length) for (const i of e) i.classList.toggle("collapsed", !t), i.setAttribute("aria-expanded", t);
  1989. }
  1990. static jQueryInterface(e) {
  1991. const t = {};
  1992. return (
  1993. "string" == typeof e && /show|hide/.test(e) && (t.toggle = !1),
  1994. this.each(function () {
  1995. const i = wi.getOrCreateInstance(this, t);
  1996. if ("string" == typeof e) {
  1997. if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`);
  1998. i[e]();
  1999. }
  2000. })
  2001. );
  2002. }
  2003. }
  2004. pt.on(document, pi, bi, function (e) {
  2005. ("A" === e.target.tagName || (e.delegateTarget && "A" === e.delegateTarget.tagName)) && e.preventDefault();
  2006. const t = Me(this),
  2007. i = Ot.find(t);
  2008. for (const e of i) wi.getOrCreateInstance(e, { toggle: !1 }).toggle();
  2009. }),
  2010. Xe(wi);
  2011. const xi = "dropdown",
  2012. Ei = ".bs.dropdown",
  2013. ki = ".data-api",
  2014. Ai = "ArrowUp",
  2015. Li = "ArrowDown",
  2016. Si = `hide${Ei}`,
  2017. Ci = `hidden${Ei}`,
  2018. Oi = `show${Ei}`,
  2019. ji = `shown${Ei}`,
  2020. Ti = `click${Ei}${ki}`,
  2021. Di = `keydown${Ei}${ki}`,
  2022. Pi = `keyup${Ei}${ki}`,
  2023. Ni = "show",
  2024. Mi = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
  2025. Fi = `${Mi}.${Ni}`,
  2026. Ii = ".dropdown-menu",
  2027. qi = Ye() ? "top-end" : "top-start",
  2028. Wi = Ye() ? "top-start" : "top-end",
  2029. $i = Ye() ? "bottom-end" : "bottom-start",
  2030. Hi = Ye() ? "bottom-start" : "bottom-end",
  2031. zi = Ye() ? "left-start" : "right-start",
  2032. Bi = Ye() ? "right-start" : "left-start",
  2033. Ri = { autoClose: !0, boundary: "clippingParents", display: "dynamic", offset: [0, 2], popperConfig: null, reference: "toggle" },
  2034. Qi = { autoClose: "(boolean|string)", boundary: "(string|element)", display: "string", offset: "(array|string|function)", popperConfig: "(null|object|function)", reference: "(string|element|object)" };
  2035. class Vi extends wt {
  2036. constructor(e, t) {
  2037. super(e, t),
  2038. (this._popper = null),
  2039. (this._parent = this._element.parentNode),
  2040. (this._menu = Ot.next(this._element, Ii)[0] || Ot.prev(this._element, Ii)[0] || Ot.findOne(Ii, this._parent)),
  2041. (this._inNavbar = this._detectNavbar());
  2042. }
  2043. static get Default() {
  2044. return Ri;
  2045. }
  2046. static get DefaultType() {
  2047. return Qi;
  2048. }
  2049. static get NAME() {
  2050. return xi;
  2051. }
  2052. toggle() {
  2053. return this._isShown() ? this.hide() : this.show();
  2054. }
  2055. show() {
  2056. if (He(this._element) || this._isShown()) return;
  2057. const e = { relatedTarget: this._element };
  2058. if (!pt.trigger(this._element, Oi, e).defaultPrevented) {
  2059. if ((this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".navbar-nav"))) for (const e of [].concat(...document.body.children)) pt.on(e, "mouseover", Be);
  2060. this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(Ni), this._element.classList.add(Ni), pt.trigger(this._element, ji, e);
  2061. }
  2062. }
  2063. hide() {
  2064. if (He(this._element) || !this._isShown()) return;
  2065. const e = { relatedTarget: this._element };
  2066. this._completeHide(e);
  2067. }
  2068. dispose() {
  2069. this._popper && this._popper.destroy(), super.dispose();
  2070. }
  2071. update() {
  2072. (this._inNavbar = this._detectNavbar()), this._popper && this._popper.update();
  2073. }
  2074. _completeHide(e) {
  2075. if (!pt.trigger(this._element, Si, e).defaultPrevented) {
  2076. if ("ontouchstart" in document.documentElement) for (const e of [].concat(...document.body.children)) pt.off(e, "mouseover", Be);
  2077. this._popper && this._popper.destroy(),
  2078. this._menu.classList.remove(Ni),
  2079. this._element.classList.remove(Ni),
  2080. this._element.setAttribute("aria-expanded", "false"),
  2081. vt.removeDataAttribute(this._menu, "popper"),
  2082. pt.trigger(this._element, Ci, e);
  2083. }
  2084. }
  2085. _getConfig(e) {
  2086. if ("object" == typeof (e = super._getConfig(e)).reference && !qe(e.reference) && "function" != typeof e.reference.getBoundingClientRect)
  2087. throw new TypeError(`${xi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
  2088. return e;
  2089. }
  2090. _createPopper() {
  2091. if (void 0 === e) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
  2092. let t = this._element;
  2093. "parent" === this._config.reference ? (t = this._parent) : qe(this._config.reference) ? (t = We(this._config.reference)) : "object" == typeof this._config.reference && (t = this._config.reference);
  2094. const i = this._getPopperConfig();
  2095. this._popper = Te(t, this._menu, i);
  2096. }
  2097. _isShown() {
  2098. return this._menu.classList.contains(Ni);
  2099. }
  2100. _getPlacement() {
  2101. const e = this._parent;
  2102. if (e.classList.contains("dropend")) return zi;
  2103. if (e.classList.contains("dropstart")) return Bi;
  2104. if (e.classList.contains("dropup-center")) return "top";
  2105. if (e.classList.contains("dropdown-center")) return "bottom";
  2106. const t = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
  2107. return e.classList.contains("dropup") ? (t ? Wi : qi) : t ? Hi : $i;
  2108. }
  2109. _detectNavbar() {
  2110. return null !== this._element.closest(".navbar");
  2111. }
  2112. _getOffset() {
  2113. const { offset: e } = this._config;
  2114. return "string" == typeof e ? e.split(",").map((e) => Number.parseInt(e, 10)) : "function" == typeof e ? (t) => e(t, this._element) : e;
  2115. }
  2116. _getPopperConfig() {
  2117. const e = {
  2118. placement: this._getPlacement(),
  2119. modifiers: [
  2120. { name: "preventOverflow", options: { boundary: this._config.boundary } },
  2121. { name: "offset", options: { offset: this._getOffset() } },
  2122. ],
  2123. };
  2124. return (
  2125. (this._inNavbar || "static" === this._config.display) && (vt.setDataAttribute(this._menu, "popper", "static"), (e.modifiers = [{ name: "applyStyles", enabled: !1 }])),
  2126. { ...e, ...("function" == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig) }
  2127. );
  2128. }
  2129. _selectMenuItem({ key: e, target: t }) {
  2130. const i = Ot.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter((e) => $e(e));
  2131. i.length && Ze(i, t, e === Li, !i.includes(t)).focus();
  2132. }
  2133. static jQueryInterface(e) {
  2134. return this.each(function () {
  2135. const t = Vi.getOrCreateInstance(this, e);
  2136. if ("string" == typeof e) {
  2137. if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
  2138. t[e]();
  2139. }
  2140. });
  2141. }
  2142. static clearMenus(e) {
  2143. if (2 === e.button || ("keyup" === e.type && "Tab" !== e.key)) return;
  2144. const t = Ot.find(Fi);
  2145. for (const i of t) {
  2146. const t = Vi.getInstance(i);
  2147. if (!t || !1 === t._config.autoClose) continue;
  2148. const s = e.composedPath(),
  2149. n = s.includes(t._menu);
  2150. if (s.includes(t._element) || ("inside" === t._config.autoClose && !n) || ("outside" === t._config.autoClose && n)) continue;
  2151. if (t._menu.contains(e.target) && (("keyup" === e.type && "Tab" === e.key) || /input|select|option|textarea|form/i.test(e.target.tagName))) continue;
  2152. const o = { relatedTarget: t._element };
  2153. "click" === e.type && (o.clickEvent = e), t._completeHide(o);
  2154. }
  2155. }
  2156. static dataApiKeydownHandler(e) {
  2157. const t = /input|textarea/i.test(e.target.tagName),
  2158. i = "Escape" === e.key,
  2159. s = [Ai, Li].includes(e.key);
  2160. if (!s && !i) return;
  2161. if (t && !i) return;
  2162. e.preventDefault();
  2163. const n = this.matches(Mi) ? this : Ot.prev(this, Mi)[0] || Ot.next(this, Mi)[0] || Ot.findOne(Mi, e.delegateTarget.parentNode),
  2164. o = Vi.getOrCreateInstance(n);
  2165. if (s) return e.stopPropagation(), o.show(), void o._selectMenuItem(e);
  2166. o._isShown() && (e.stopPropagation(), o.hide(), n.focus());
  2167. }
  2168. }
  2169. pt.on(document, Di, Mi, Vi.dataApiKeydownHandler),
  2170. pt.on(document, Di, Ii, Vi.dataApiKeydownHandler),
  2171. pt.on(document, Ti, Vi.clearMenus),
  2172. pt.on(document, Pi, Vi.clearMenus),
  2173. pt.on(document, Ti, Mi, function (e) {
  2174. e.preventDefault(), Vi.getOrCreateInstance(this).toggle();
  2175. }),
  2176. Xe(Vi);
  2177. const Yi = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
  2178. Xi = ".sticky-top",
  2179. Ki = "padding-right",
  2180. Ui = "margin-right";
  2181. class Zi {
  2182. constructor() {
  2183. this._element = document.body;
  2184. }
  2185. getWidth() {
  2186. const e = document.documentElement.clientWidth;
  2187. return Math.abs(window.innerWidth - e);
  2188. }
  2189. hide() {
  2190. const e = this.getWidth();
  2191. this._disableOverFlow(), this._setElementAttributes(this._element, Ki, (t) => t + e), this._setElementAttributes(Yi, Ki, (t) => t + e), this._setElementAttributes(Xi, Ui, (t) => t - e);
  2192. }
  2193. reset() {
  2194. this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, Ki), this._resetElementAttributes(Yi, Ki), this._resetElementAttributes(Xi, Ui);
  2195. }
  2196. isOverflowing() {
  2197. return this.getWidth() > 0;
  2198. }
  2199. _disableOverFlow() {
  2200. this._saveInitialAttribute(this._element, "overflow"), (this._element.style.overflow = "hidden");
  2201. }
  2202. _setElementAttributes(e, t, i) {
  2203. const s = this.getWidth();
  2204. this._applyManipulationCallback(e, (e) => {
  2205. if (e !== this._element && window.innerWidth > e.clientWidth + s) return;
  2206. this._saveInitialAttribute(e, t);
  2207. const n = window.getComputedStyle(e).getPropertyValue(t);
  2208. e.style.setProperty(t, `${i(Number.parseFloat(n))}px`);
  2209. });
  2210. }
  2211. _saveInitialAttribute(e, t) {
  2212. const i = e.style.getPropertyValue(t);
  2213. i && vt.setDataAttribute(e, t, i);
  2214. }
  2215. _resetElementAttributes(e, t) {
  2216. this._applyManipulationCallback(e, (e) => {
  2217. const i = vt.getDataAttribute(e, t);
  2218. null !== i ? (vt.removeDataAttribute(e, t), e.style.setProperty(t, i)) : e.style.removeProperty(t);
  2219. });
  2220. }
  2221. _applyManipulationCallback(e, t) {
  2222. if (qe(e)) t(e);
  2223. else for (const i of Ot.find(e, this._element)) t(i);
  2224. }
  2225. }
  2226. const Gi = "backdrop",
  2227. Ji = "show",
  2228. es = `mousedown.bs.${Gi}`,
  2229. ts = { className: "modal-backdrop", clickCallback: null, isAnimated: !1, isVisible: !0, rootElement: "body" },
  2230. is = { className: "string", clickCallback: "(function|null)", isAnimated: "boolean", isVisible: "boolean", rootElement: "(element|string)" };
  2231. class ss extends yt {
  2232. constructor(e) {
  2233. super(), (this._config = this._getConfig(e)), (this._isAppended = !1), (this._element = null);
  2234. }
  2235. static get Default() {
  2236. return ts;
  2237. }
  2238. static get DefaultType() {
  2239. return is;
  2240. }
  2241. static get NAME() {
  2242. return Gi;
  2243. }
  2244. show(e) {
  2245. if (!this._config.isVisible) return void Ke(e);
  2246. this._append();
  2247. const t = this._getElement();
  2248. this._config.isAnimated && Re(t),
  2249. t.classList.add(Ji),
  2250. this._emulateAnimation(() => {
  2251. Ke(e);
  2252. });
  2253. }
  2254. hide(e) {
  2255. this._config.isVisible
  2256. ? (this._getElement().classList.remove(Ji),
  2257. this._emulateAnimation(() => {
  2258. this.dispose(), Ke(e);
  2259. }))
  2260. : Ke(e);
  2261. }
  2262. dispose() {
  2263. this._isAppended && (pt.off(this._element, es), this._element.remove(), (this._isAppended = !1));
  2264. }
  2265. _getElement() {
  2266. if (!this._element) {
  2267. const e = document.createElement("div");
  2268. (e.className = this._config.className), this._config.isAnimated && e.classList.add("fade"), (this._element = e);
  2269. }
  2270. return this._element;
  2271. }
  2272. _configAfterMerge(e) {
  2273. return (e.rootElement = We(e.rootElement)), e;
  2274. }
  2275. _append() {
  2276. if (this._isAppended) return;
  2277. const e = this._getElement();
  2278. this._config.rootElement.append(e),
  2279. pt.on(e, es, () => {
  2280. Ke(this._config.clickCallback);
  2281. }),
  2282. (this._isAppended = !0);
  2283. }
  2284. _emulateAnimation(e) {
  2285. Ue(e, this._getElement(), this._config.isAnimated);
  2286. }
  2287. }
  2288. const ns = ".bs.focustrap",
  2289. os = `focusin${ns}`,
  2290. rs = `keydown.tab${ns}`,
  2291. as = "backward",
  2292. ls = { autofocus: !0, trapElement: null },
  2293. cs = { autofocus: "boolean", trapElement: "element" };
  2294. class ds extends yt {
  2295. constructor(e) {
  2296. super(), (this._config = this._getConfig(e)), (this._isActive = !1), (this._lastTabNavDirection = null);
  2297. }
  2298. static get Default() {
  2299. return ls;
  2300. }
  2301. static get DefaultType() {
  2302. return cs;
  2303. }
  2304. static get NAME() {
  2305. return "focustrap";
  2306. }
  2307. activate() {
  2308. this._isActive ||
  2309. (this._config.autofocus && this._config.trapElement.focus(), pt.off(document, ns), pt.on(document, os, (e) => this._handleFocusin(e)), pt.on(document, rs, (e) => this._handleKeydown(e)), (this._isActive = !0));
  2310. }
  2311. deactivate() {
  2312. this._isActive && ((this._isActive = !1), pt.off(document, ns));
  2313. }
  2314. _handleFocusin(e) {
  2315. const { trapElement: t } = this._config;
  2316. if (e.target === document || e.target === t || t.contains(e.target)) return;
  2317. const i = Ot.focusableChildren(t);
  2318. 0 === i.length ? t.focus() : this._lastTabNavDirection === as ? i[i.length - 1].focus() : i[0].focus();
  2319. }
  2320. _handleKeydown(e) {
  2321. "Tab" === e.key && (this._lastTabNavDirection = e.shiftKey ? as : "forward");
  2322. }
  2323. }
  2324. const hs = ".bs.modal",
  2325. us = `hide${hs}`,
  2326. ps = `hidePrevented${hs}`,
  2327. fs = `hidden${hs}`,
  2328. gs = `show${hs}`,
  2329. ms = `shown${hs}`,
  2330. _s = `resize${hs}`,
  2331. bs = `click.dismiss${hs}`,
  2332. vs = `mousedown.dismiss${hs}`,
  2333. ys = `keydown.dismiss${hs}`,
  2334. ws = `click${hs}.data-api`,
  2335. xs = "modal-open",
  2336. Es = "show",
  2337. ks = "modal-static",
  2338. As = { backdrop: !0, focus: !0, keyboard: !0 },
  2339. Ls = { backdrop: "(boolean|string)", focus: "boolean", keyboard: "boolean" };
  2340. class Ss extends wt {
  2341. constructor(e, t) {
  2342. super(e, t),
  2343. (this._dialog = Ot.findOne(".modal-dialog", this._element)),
  2344. (this._backdrop = this._initializeBackDrop()),
  2345. (this._focustrap = this._initializeFocusTrap()),
  2346. (this._isShown = !1),
  2347. (this._isTransitioning = !1),
  2348. (this._scrollBar = new Zi()),
  2349. this._addEventListeners();
  2350. }
  2351. static get Default() {
  2352. return As;
  2353. }
  2354. static get DefaultType() {
  2355. return Ls;
  2356. }
  2357. static get NAME() {
  2358. return "modal";
  2359. }
  2360. toggle(e) {
  2361. return this._isShown ? this.hide() : this.show(e);
  2362. }
  2363. show(e) {
  2364. this._isShown ||
  2365. this._isTransitioning ||
  2366. pt.trigger(this._element, gs, { relatedTarget: e }).defaultPrevented ||
  2367. ((this._isShown = !0), (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add(xs), this._adjustDialog(), this._backdrop.show(() => this._showElement(e)));
  2368. }
  2369. hide() {
  2370. this._isShown &&
  2371. !this._isTransitioning &&
  2372. (pt.trigger(this._element, us).defaultPrevented ||
  2373. ((this._isShown = !1), (this._isTransitioning = !0), this._focustrap.deactivate(), this._element.classList.remove(Es), this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())));
  2374. }
  2375. dispose() {
  2376. for (const e of [window, this._dialog]) pt.off(e, hs);
  2377. this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
  2378. }
  2379. handleUpdate() {
  2380. this._adjustDialog();
  2381. }
  2382. _initializeBackDrop() {
  2383. return new ss({ isVisible: Boolean(this._config.backdrop), isAnimated: this._isAnimated() });
  2384. }
  2385. _initializeFocusTrap() {
  2386. return new ds({ trapElement: this._element });
  2387. }
  2388. _showElement(e) {
  2389. document.body.contains(this._element) || document.body.append(this._element),
  2390. (this._element.style.display = "block"),
  2391. this._element.removeAttribute("aria-hidden"),
  2392. this._element.setAttribute("aria-modal", !0),
  2393. this._element.setAttribute("role", "dialog"),
  2394. (this._element.scrollTop = 0);
  2395. const t = Ot.findOne(".modal-body", this._dialog);
  2396. t && (t.scrollTop = 0),
  2397. Re(this._element),
  2398. this._element.classList.add(Es),
  2399. this._queueCallback(
  2400. () => {
  2401. this._config.focus && this._focustrap.activate(), (this._isTransitioning = !1), pt.trigger(this._element, ms, { relatedTarget: e });
  2402. },
  2403. this._dialog,
  2404. this._isAnimated()
  2405. );
  2406. }
  2407. _addEventListeners() {
  2408. pt.on(this._element, ys, (e) => {
  2409. if ("Escape" === e.key) return this._config.keyboard ? (e.preventDefault(), void this.hide()) : void this._triggerBackdropTransition();
  2410. }),
  2411. pt.on(window, _s, () => {
  2412. this._isShown && !this._isTransitioning && this._adjustDialog();
  2413. }),
  2414. pt.on(this._element, vs, (e) => {
  2415. pt.one(this._element, bs, (t) => {
  2416. this._element === e.target && this._element === t.target && ("static" !== this._config.backdrop ? this._config.backdrop && this.hide() : this._triggerBackdropTransition());
  2417. });
  2418. });
  2419. }
  2420. _hideModal() {
  2421. (this._element.style.display = "none"),
  2422. this._element.setAttribute("aria-hidden", !0),
  2423. this._element.removeAttribute("aria-modal"),
  2424. this._element.removeAttribute("role"),
  2425. (this._isTransitioning = !1),
  2426. this._backdrop.hide(() => {
  2427. document.body.classList.remove(xs), this._resetAdjustments(), this._scrollBar.reset(), pt.trigger(this._element, fs);
  2428. });
  2429. }
  2430. _isAnimated() {
  2431. return this._element.classList.contains("fade");
  2432. }
  2433. _triggerBackdropTransition() {
  2434. if (pt.trigger(this._element, ps).defaultPrevented) return;
  2435. const e = this._element.scrollHeight > document.documentElement.clientHeight,
  2436. t = this._element.style.overflowY;
  2437. "hidden" === t ||
  2438. this._element.classList.contains(ks) ||
  2439. (e || (this._element.style.overflowY = "hidden"),
  2440. this._element.classList.add(ks),
  2441. this._queueCallback(() => {
  2442. this._element.classList.remove(ks),
  2443. this._queueCallback(() => {
  2444. this._element.style.overflowY = t;
  2445. }, this._dialog);
  2446. }, this._dialog),
  2447. this._element.focus());
  2448. }
  2449. _adjustDialog() {
  2450. const e = this._element.scrollHeight > document.documentElement.clientHeight,
  2451. t = this._scrollBar.getWidth(),
  2452. i = t > 0;
  2453. if (i && !e) {
  2454. const e = Ye() ? "paddingLeft" : "paddingRight";
  2455. this._element.style[e] = `${t}px`;
  2456. }
  2457. if (!i && e) {
  2458. const e = Ye() ? "paddingRight" : "paddingLeft";
  2459. this._element.style[e] = `${t}px`;
  2460. }
  2461. }
  2462. _resetAdjustments() {
  2463. (this._element.style.paddingLeft = ""), (this._element.style.paddingRight = "");
  2464. }
  2465. static jQueryInterface(e, t) {
  2466. return this.each(function () {
  2467. const i = Ss.getOrCreateInstance(this, e);
  2468. if ("string" == typeof e) {
  2469. if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`);
  2470. i[e](t);
  2471. }
  2472. });
  2473. }
  2474. }
  2475. pt.on(document, ws, '[data-bs-toggle="modal"]', function (e) {
  2476. const t = Fe(this);
  2477. ["A", "AREA"].includes(this.tagName) && e.preventDefault(),
  2478. pt.one(t, gs, (e) => {
  2479. e.defaultPrevented ||
  2480. pt.one(t, fs, () => {
  2481. $e(this) && this.focus();
  2482. });
  2483. });
  2484. const i = Ot.findOne(".modal.show");
  2485. i && Ss.getInstance(i).hide(), Ss.getOrCreateInstance(t).toggle(this);
  2486. }),
  2487. xt(Ss),
  2488. Xe(Ss);
  2489. const Cs = ".bs.offcanvas",
  2490. Os = ".data-api",
  2491. js = `load${Cs}${Os}`,
  2492. Ts = "show",
  2493. Ds = "showing",
  2494. Ps = "hiding",
  2495. Ns = ".offcanvas.show",
  2496. Ms = `show${Cs}`,
  2497. Fs = `shown${Cs}`,
  2498. Is = `hide${Cs}`,
  2499. qs = `hidePrevented${Cs}`,
  2500. Ws = `hidden${Cs}`,
  2501. $s = `resize${Cs}`,
  2502. Hs = `click${Cs}${Os}`,
  2503. zs = `keydown.dismiss${Cs}`,
  2504. Bs = { backdrop: !0, keyboard: !0, scroll: !1 },
  2505. Rs = { backdrop: "(boolean|string)", keyboard: "boolean", scroll: "boolean" };
  2506. class Qs extends wt {
  2507. constructor(e, t) {
  2508. super(e, t), (this._isShown = !1), (this._backdrop = this._initializeBackDrop()), (this._focustrap = this._initializeFocusTrap()), this._addEventListeners();
  2509. }
  2510. static get Default() {
  2511. return Bs;
  2512. }
  2513. static get DefaultType() {
  2514. return Rs;
  2515. }
  2516. static get NAME() {
  2517. return "offcanvas";
  2518. }
  2519. toggle(e) {
  2520. return this._isShown ? this.hide() : this.show(e);
  2521. }
  2522. show(e) {
  2523. this._isShown ||
  2524. pt.trigger(this._element, Ms, { relatedTarget: e }).defaultPrevented ||
  2525. ((this._isShown = !0),
  2526. this._backdrop.show(),
  2527. this._config.scroll || new Zi().hide(),
  2528. this._element.setAttribute("aria-modal", !0),
  2529. this._element.setAttribute("role", "dialog"),
  2530. this._element.classList.add(Ds),
  2531. this._queueCallback(
  2532. () => {
  2533. (this._config.scroll && !this._config.backdrop) || this._focustrap.activate(), this._element.classList.add(Ts), this._element.classList.remove(Ds), pt.trigger(this._element, Fs, { relatedTarget: e });
  2534. },
  2535. this._element,
  2536. !0
  2537. ));
  2538. }
  2539. hide() {
  2540. this._isShown &&
  2541. (pt.trigger(this._element, Is).defaultPrevented ||
  2542. (this._focustrap.deactivate(),
  2543. this._element.blur(),
  2544. (this._isShown = !1),
  2545. this._element.classList.add(Ps),
  2546. this._backdrop.hide(),
  2547. this._queueCallback(
  2548. () => {
  2549. this._element.classList.remove(Ts, Ps), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || new Zi().reset(), pt.trigger(this._element, Ws);
  2550. },
  2551. this._element,
  2552. !0
  2553. )));
  2554. }
  2555. dispose() {
  2556. this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
  2557. }
  2558. _initializeBackDrop() {
  2559. const e = Boolean(this._config.backdrop);
  2560. return new ss({
  2561. className: "offcanvas-backdrop",
  2562. isVisible: e,
  2563. isAnimated: !0,
  2564. rootElement: this._element.parentNode,
  2565. clickCallback: e
  2566. ? () => {
  2567. "static" !== this._config.backdrop ? this.hide() : pt.trigger(this._element, qs);
  2568. }
  2569. : null,
  2570. });
  2571. }
  2572. _initializeFocusTrap() {
  2573. return new ds({ trapElement: this._element });
  2574. }
  2575. _addEventListeners() {
  2576. pt.on(this._element, zs, (e) => {
  2577. "Escape" === e.key && (this._config.keyboard ? this.hide() : pt.trigger(this._element, qs));
  2578. });
  2579. }
  2580. static jQueryInterface(e) {
  2581. return this.each(function () {
  2582. const t = Qs.getOrCreateInstance(this, e);
  2583. if ("string" == typeof e) {
  2584. if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
  2585. t[e](this);
  2586. }
  2587. });
  2588. }
  2589. }
  2590. pt.on(document, Hs, '[data-bs-toggle="offcanvas"]', function (e) {
  2591. const t = Fe(this);
  2592. if ((["A", "AREA"].includes(this.tagName) && e.preventDefault(), He(this))) return;
  2593. pt.one(t, Ws, () => {
  2594. $e(this) && this.focus();
  2595. });
  2596. const i = Ot.findOne(Ns);
  2597. i && i !== t && Qs.getInstance(i).hide(), Qs.getOrCreateInstance(t).toggle(this);
  2598. }),
  2599. pt.on(window, js, () => {
  2600. for (const e of Ot.find(Ns)) Qs.getOrCreateInstance(e).show();
  2601. }),
  2602. pt.on(window, $s, () => {
  2603. for (const e of Ot.find("[aria-modal][class*=show][class*=offcanvas-]")) "fixed" !== getComputedStyle(e).position && Qs.getOrCreateInstance(e).hide();
  2604. }),
  2605. xt(Qs),
  2606. Xe(Qs);
  2607. const Vs = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
  2608. Ys = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,
  2609. Xs = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
  2610. Ks = (e, t) => {
  2611. const i = e.nodeName.toLowerCase();
  2612. return t.includes(i) ? !Vs.has(i) || Boolean(Ys.test(e.nodeValue) || Xs.test(e.nodeValue)) : t.filter((e) => e instanceof RegExp).some((e) => e.test(i));
  2613. },
  2614. Us = {
  2615. "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
  2616. a: ["target", "href", "title", "rel"],
  2617. area: [],
  2618. b: [],
  2619. br: [],
  2620. col: [],
  2621. code: [],
  2622. div: [],
  2623. em: [],
  2624. hr: [],
  2625. h1: [],
  2626. h2: [],
  2627. h3: [],
  2628. h4: [],
  2629. h5: [],
  2630. h6: [],
  2631. i: [],
  2632. img: ["src", "srcset", "alt", "title", "width", "height"],
  2633. li: [],
  2634. ol: [],
  2635. p: [],
  2636. pre: [],
  2637. s: [],
  2638. small: [],
  2639. span: [],
  2640. sub: [],
  2641. sup: [],
  2642. strong: [],
  2643. u: [],
  2644. ul: [],
  2645. },
  2646. Zs = { allowList: Us, content: {}, extraClass: "", html: !1, sanitize: !0, sanitizeFn: null, template: "<div></div>" },
  2647. Gs = { allowList: "object", content: "object", extraClass: "(string|function)", html: "boolean", sanitize: "boolean", sanitizeFn: "(null|function)", template: "string" },
  2648. Js = { entry: "(string|element|function|null)", selector: "(string|element)" };
  2649. class en extends yt {
  2650. constructor(e) {
  2651. super(), (this._config = this._getConfig(e));
  2652. }
  2653. static get Default() {
  2654. return Zs;
  2655. }
  2656. static get DefaultType() {
  2657. return Gs;
  2658. }
  2659. static get NAME() {
  2660. return "TemplateFactory";
  2661. }
  2662. getContent() {
  2663. return Object.values(this._config.content)
  2664. .map((e) => this._resolvePossibleFunction(e))
  2665. .filter(Boolean);
  2666. }
  2667. hasContent() {
  2668. return this.getContent().length > 0;
  2669. }
  2670. changeContent(e) {
  2671. return this._checkContent(e), (this._config.content = { ...this._config.content, ...e }), this;
  2672. }
  2673. toHtml() {
  2674. const e = document.createElement("div");
  2675. e.innerHTML = this._maybeSanitize(this._config.template);
  2676. for (const [t, i] of Object.entries(this._config.content)) this._setContent(e, i, t);
  2677. const t = e.children[0],
  2678. i = this._resolvePossibleFunction(this._config.extraClass);
  2679. return i && t.classList.add(...i.split(" ")), t;
  2680. }
  2681. _typeCheckConfig(e) {
  2682. super._typeCheckConfig(e), this._checkContent(e.content);
  2683. }
  2684. _checkContent(e) {
  2685. for (const [t, i] of Object.entries(e)) super._typeCheckConfig({ selector: t, entry: i }, Js);
  2686. }
  2687. _setContent(e, t, i) {
  2688. const s = Ot.findOne(i, e);
  2689. s && ((t = this._resolvePossibleFunction(t)) ? (qe(t) ? this._putElementInTemplate(We(t), s) : this._config.html ? (s.innerHTML = this._maybeSanitize(t)) : (s.textContent = t)) : s.remove());
  2690. }
  2691. _maybeSanitize(e) {
  2692. return this._config.sanitize
  2693. ? (function (e, t, i) {
  2694. if (!e.length) return e;
  2695. if (i && "function" == typeof i) return i(e);
  2696. const s = new window.DOMParser().parseFromString(e, "text/html"),
  2697. n = [].concat(...s.body.querySelectorAll("*"));
  2698. for (const e of n) {
  2699. const i = e.nodeName.toLowerCase();
  2700. if (!Object.keys(t).includes(i)) {
  2701. e.remove();
  2702. continue;
  2703. }
  2704. const s = [].concat(...e.attributes),
  2705. n = [].concat(t["*"] || [], t[i] || []);
  2706. for (const t of s) Ks(t, n) || e.removeAttribute(t.nodeName);
  2707. }
  2708. return s.body.innerHTML;
  2709. })(e, this._config.allowList, this._config.sanitizeFn)
  2710. : e;
  2711. }
  2712. _resolvePossibleFunction(e) {
  2713. return "function" == typeof e ? e(this) : e;
  2714. }
  2715. _putElementInTemplate(e, t) {
  2716. if (this._config.html) return (t.innerHTML = ""), void t.append(e);
  2717. t.textContent = e.textContent;
  2718. }
  2719. }
  2720. const tn = new Set(["sanitize", "allowList", "sanitizeFn"]),
  2721. sn = "fade",
  2722. nn = "show",
  2723. on = ".modal",
  2724. rn = "hide.bs.modal",
  2725. an = "hover",
  2726. ln = "focus",
  2727. cn = { AUTO: "auto", TOP: "top", RIGHT: Ye() ? "left" : "right", BOTTOM: "bottom", LEFT: Ye() ? "right" : "left" },
  2728. dn = {
  2729. allowList: Us,
  2730. animation: !0,
  2731. boundary: "clippingParents",
  2732. container: !1,
  2733. customClass: "",
  2734. delay: 0,
  2735. fallbackPlacements: ["top", "right", "bottom", "left"],
  2736. html: !1,
  2737. offset: [0, 0],
  2738. placement: "top",
  2739. popperConfig: null,
  2740. sanitize: !0,
  2741. sanitizeFn: null,
  2742. selector: !1,
  2743. template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
  2744. title: "",
  2745. trigger: "hover focus",
  2746. },
  2747. hn = {
  2748. allowList: "object",
  2749. animation: "boolean",
  2750. boundary: "(string|element)",
  2751. container: "(string|element|boolean)",
  2752. customClass: "(string|function)",
  2753. delay: "(number|object)",
  2754. fallbackPlacements: "array",
  2755. html: "boolean",
  2756. offset: "(array|string|function)",
  2757. placement: "(string|function)",
  2758. popperConfig: "(null|object|function)",
  2759. sanitize: "boolean",
  2760. sanitizeFn: "(null|function)",
  2761. selector: "(string|boolean)",
  2762. template: "string",
  2763. title: "(string|element|function)",
  2764. trigger: "string",
  2765. };
  2766. class un extends wt {
  2767. constructor(t, i) {
  2768. if (void 0 === e) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
  2769. super(t, i),
  2770. (this._isEnabled = !0),
  2771. (this._timeout = 0),
  2772. (this._isHovered = null),
  2773. (this._activeTrigger = {}),
  2774. (this._popper = null),
  2775. (this._templateFactory = null),
  2776. (this._newContent = null),
  2777. (this.tip = null),
  2778. this._setListeners(),
  2779. this._config.selector || this._fixTitle();
  2780. }
  2781. static get Default() {
  2782. return dn;
  2783. }
  2784. static get DefaultType() {
  2785. return hn;
  2786. }
  2787. static get NAME() {
  2788. return "tooltip";
  2789. }
  2790. enable() {
  2791. this._isEnabled = !0;
  2792. }
  2793. disable() {
  2794. this._isEnabled = !1;
  2795. }
  2796. toggleEnabled() {
  2797. this._isEnabled = !this._isEnabled;
  2798. }
  2799. toggle() {
  2800. this._isEnabled && ((this._activeTrigger.click = !this._activeTrigger.click), this._isShown() ? this._leave() : this._enter());
  2801. }
  2802. dispose() {
  2803. clearTimeout(this._timeout),
  2804. pt.off(this._element.closest(on), rn, this._hideModalHandler),
  2805. this._element.getAttribute("data-bs-original-title") && this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")),
  2806. this._disposePopper(),
  2807. super.dispose();
  2808. }
  2809. show() {
  2810. if ("none" === this._element.style.display) throw new Error("Please use show on visible elements");
  2811. if (!this._isWithContent() || !this._isEnabled) return;
  2812. const e = pt.trigger(this._element, this.constructor.eventName("show")),
  2813. t = (ze(this._element) || this._element.ownerDocument.documentElement).contains(this._element);
  2814. if (e.defaultPrevented || !t) return;
  2815. this._disposePopper();
  2816. const i = this._getTipElement();
  2817. this._element.setAttribute("aria-describedby", i.getAttribute("id"));
  2818. const { container: s } = this._config;
  2819. if (
  2820. (this._element.ownerDocument.documentElement.contains(this.tip) || (s.append(i), pt.trigger(this._element, this.constructor.eventName("inserted"))),
  2821. (this._popper = this._createPopper(i)),
  2822. i.classList.add(nn),
  2823. "ontouchstart" in document.documentElement)
  2824. )
  2825. for (const e of [].concat(...document.body.children)) pt.on(e, "mouseover", Be);
  2826. this._queueCallback(
  2827. () => {
  2828. pt.trigger(this._element, this.constructor.eventName("shown")), !1 === this._isHovered && this._leave(), (this._isHovered = !1);
  2829. },
  2830. this.tip,
  2831. this._isAnimated()
  2832. );
  2833. }
  2834. hide() {
  2835. if (this._isShown() && !pt.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) {
  2836. if ((this._getTipElement().classList.remove(nn), "ontouchstart" in document.documentElement)) for (const e of [].concat(...document.body.children)) pt.off(e, "mouseover", Be);
  2837. (this._activeTrigger.click = !1),
  2838. (this._activeTrigger[ln] = !1),
  2839. (this._activeTrigger[an] = !1),
  2840. (this._isHovered = null),
  2841. this._queueCallback(
  2842. () => {
  2843. this._isWithActiveTrigger() || (this._isHovered || this._disposePopper(), this._element.removeAttribute("aria-describedby"), pt.trigger(this._element, this.constructor.eventName("hidden")));
  2844. },
  2845. this.tip,
  2846. this._isAnimated()
  2847. );
  2848. }
  2849. }
  2850. update() {
  2851. this._popper && this._popper.update();
  2852. }
  2853. _isWithContent() {
  2854. return Boolean(this._getTitle());
  2855. }
  2856. _getTipElement() {
  2857. return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip;
  2858. }
  2859. _createTipElement(e) {
  2860. const t = this._getTemplateFactory(e).toHtml();
  2861. if (!t) return null;
  2862. t.classList.remove(sn, nn), t.classList.add(`bs-${this.constructor.NAME}-auto`);
  2863. const i = ((e) => {
  2864. do {
  2865. e += Math.floor(1e6 * Math.random());
  2866. } while (document.getElementById(e));
  2867. return e;
  2868. })(this.constructor.NAME).toString();
  2869. return t.setAttribute("id", i), this._isAnimated() && t.classList.add(sn), t;
  2870. }
  2871. setContent(e) {
  2872. (this._newContent = e), this._isShown() && (this._disposePopper(), this.show());
  2873. }
  2874. _getTemplateFactory(e) {
  2875. return (
  2876. this._templateFactory ? this._templateFactory.changeContent(e) : (this._templateFactory = new en({ ...this._config, content: e, extraClass: this._resolvePossibleFunction(this._config.customClass) })),
  2877. this._templateFactory
  2878. );
  2879. }
  2880. _getContentForTemplate() {
  2881. return { ".tooltip-inner": this._getTitle() };
  2882. }
  2883. _getTitle() {
  2884. return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title");
  2885. }
  2886. _initializeOnDelegatedTarget(e) {
  2887. return this.constructor.getOrCreateInstance(e.delegateTarget, this._getDelegateConfig());
  2888. }
  2889. _isAnimated() {
  2890. return this._config.animation || (this.tip && this.tip.classList.contains(sn));
  2891. }
  2892. _isShown() {
  2893. return this.tip && this.tip.classList.contains(nn);
  2894. }
  2895. _createPopper(e) {
  2896. const t = "function" == typeof this._config.placement ? this._config.placement.call(this, e, this._element) : this._config.placement,
  2897. i = cn[t.toUpperCase()];
  2898. return Te(this._element, e, this._getPopperConfig(i));
  2899. }
  2900. _getOffset() {
  2901. const { offset: e } = this._config;
  2902. return "string" == typeof e ? e.split(",").map((e) => Number.parseInt(e, 10)) : "function" == typeof e ? (t) => e(t, this._element) : e;
  2903. }
  2904. _resolvePossibleFunction(e) {
  2905. return "function" == typeof e ? e.call(this._element) : e;
  2906. }
  2907. _getPopperConfig(e) {
  2908. const t = {
  2909. placement: e,
  2910. modifiers: [
  2911. { name: "flip", options: { fallbackPlacements: this._config.fallbackPlacements } },
  2912. { name: "offset", options: { offset: this._getOffset() } },
  2913. { name: "preventOverflow", options: { boundary: this._config.boundary } },
  2914. { name: "arrow", options: { element: `.${this.constructor.NAME}-arrow` } },
  2915. {
  2916. name: "preSetPlacement",
  2917. enabled: !0,
  2918. phase: "beforeMain",
  2919. fn: (e) => {
  2920. this._getTipElement().setAttribute("data-popper-placement", e.state.placement);
  2921. },
  2922. },
  2923. ],
  2924. };
  2925. return { ...t, ...("function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig) };
  2926. }
  2927. _setListeners() {
  2928. const e = this._config.trigger.split(" ");
  2929. for (const t of e)
  2930. if ("click" === t)
  2931. pt.on(this._element, this.constructor.eventName("click"), this._config.selector, (e) => {
  2932. this._initializeOnDelegatedTarget(e).toggle();
  2933. });
  2934. else if ("manual" !== t) {
  2935. const e = t === an ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"),
  2936. i = t === an ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout");
  2937. pt.on(this._element, e, this._config.selector, (e) => {
  2938. const t = this._initializeOnDelegatedTarget(e);
  2939. (t._activeTrigger["focusin" === e.type ? ln : an] = !0), t._enter();
  2940. }),
  2941. pt.on(this._element, i, this._config.selector, (e) => {
  2942. const t = this._initializeOnDelegatedTarget(e);
  2943. (t._activeTrigger["focusout" === e.type ? ln : an] = t._element.contains(e.relatedTarget)), t._leave();
  2944. });
  2945. }
  2946. (this._hideModalHandler = () => {
  2947. this._element && this.hide();
  2948. }),
  2949. pt.on(this._element.closest(on), rn, this._hideModalHandler);
  2950. }
  2951. _fixTitle() {
  2952. const e = this._element.getAttribute("title");
  2953. e &&
  2954. (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", e),
  2955. this._element.setAttribute("data-bs-original-title", e),
  2956. this._element.removeAttribute("title"));
  2957. }
  2958. _enter() {
  2959. this._isShown() || this._isHovered
  2960. ? (this._isHovered = !0)
  2961. : ((this._isHovered = !0),
  2962. this._setTimeout(() => {
  2963. this._isHovered && this.show();
  2964. }, this._config.delay.show));
  2965. }
  2966. _leave() {
  2967. this._isWithActiveTrigger() ||
  2968. ((this._isHovered = !1),
  2969. this._setTimeout(() => {
  2970. this._isHovered || this.hide();
  2971. }, this._config.delay.hide));
  2972. }
  2973. _setTimeout(e, t) {
  2974. clearTimeout(this._timeout), (this._timeout = setTimeout(e, t));
  2975. }
  2976. _isWithActiveTrigger() {
  2977. return Object.values(this._activeTrigger).includes(!0);
  2978. }
  2979. _getConfig(e) {
  2980. const t = vt.getDataAttributes(this._element);
  2981. for (const e of Object.keys(t)) tn.has(e) && delete t[e];
  2982. return (e = { ...t, ...("object" == typeof e && e ? e : {}) }), (e = this._mergeConfigObj(e)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e;
  2983. }
  2984. _configAfterMerge(e) {
  2985. return (
  2986. (e.container = !1 === e.container ? document.body : We(e.container)),
  2987. "number" == typeof e.delay && (e.delay = { show: e.delay, hide: e.delay }),
  2988. "number" == typeof e.title && (e.title = e.title.toString()),
  2989. "number" == typeof e.content && (e.content = e.content.toString()),
  2990. e
  2991. );
  2992. }
  2993. _getDelegateConfig() {
  2994. const e = {};
  2995. for (const t in this._config) this.constructor.Default[t] !== this._config[t] && (e[t] = this._config[t]);
  2996. return (e.selector = !1), (e.trigger = "manual"), e;
  2997. }
  2998. _disposePopper() {
  2999. this._popper && (this._popper.destroy(), (this._popper = null)), this.tip && (this.tip.remove(), (this.tip = null));
  3000. }
  3001. static jQueryInterface(e) {
  3002. return this.each(function () {
  3003. const t = un.getOrCreateInstance(this, e);
  3004. if ("string" == typeof e) {
  3005. if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
  3006. t[e]();
  3007. }
  3008. });
  3009. }
  3010. }
  3011. Xe(un);
  3012. const pn = {
  3013. ...un.Default,
  3014. content: "",
  3015. offset: [0, 8],
  3016. placement: "right",
  3017. template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
  3018. trigger: "click",
  3019. },
  3020. fn = { ...un.DefaultType, content: "(null|string|element|function)" };
  3021. class gn extends un {
  3022. static get Default() {
  3023. return pn;
  3024. }
  3025. static get DefaultType() {
  3026. return fn;
  3027. }
  3028. static get NAME() {
  3029. return "popover";
  3030. }
  3031. _isWithContent() {
  3032. return this._getTitle() || this._getContent();
  3033. }
  3034. _getContentForTemplate() {
  3035. return { ".popover-header": this._getTitle(), ".popover-body": this._getContent() };
  3036. }
  3037. _getContent() {
  3038. return this._resolvePossibleFunction(this._config.content);
  3039. }
  3040. static jQueryInterface(e) {
  3041. return this.each(function () {
  3042. const t = gn.getOrCreateInstance(this, e);
  3043. if ("string" == typeof e) {
  3044. if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
  3045. t[e]();
  3046. }
  3047. });
  3048. }
  3049. }
  3050. Xe(gn);
  3051. const mn = ".bs.scrollspy",
  3052. _n = `activate${mn}`,
  3053. bn = `click${mn}`,
  3054. vn = `load${mn}.data-api`,
  3055. yn = "active",
  3056. wn = "[href]",
  3057. xn = ".nav-link",
  3058. En = `${xn}, .nav-item > ${xn}, .list-group-item`,
  3059. kn = { offset: null, rootMargin: "0px 0px -25%", smoothScroll: !1, target: null, threshold: [0.1, 0.5, 1] },
  3060. An = { offset: "(number|null)", rootMargin: "string", smoothScroll: "boolean", target: "element", threshold: "array" };
  3061. class Ln extends wt {
  3062. constructor(e, t) {
  3063. super(e, t),
  3064. (this._targetLinks = new Map()),
  3065. (this._observableSections = new Map()),
  3066. (this._rootElement = "visible" === getComputedStyle(this._element).overflowY ? null : this._element),
  3067. (this._activeTarget = null),
  3068. (this._observer = null),
  3069. (this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }),
  3070. this.refresh();
  3071. }
  3072. static get Default() {
  3073. return kn;
  3074. }
  3075. static get DefaultType() {
  3076. return An;
  3077. }
  3078. static get NAME() {
  3079. return "scrollspy";
  3080. }
  3081. refresh() {
  3082. this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : (this._observer = this._getNewObserver());
  3083. for (const e of this._observableSections.values()) this._observer.observe(e);
  3084. }
  3085. dispose() {
  3086. this._observer.disconnect(), super.dispose();
  3087. }
  3088. _configAfterMerge(e) {
  3089. return (
  3090. (e.target = We(e.target) || document.body),
  3091. (e.rootMargin = e.offset ? `${e.offset}px 0px -30%` : e.rootMargin),
  3092. "string" == typeof e.threshold && (e.threshold = e.threshold.split(",").map((e) => Number.parseFloat(e))),
  3093. e
  3094. );
  3095. }
  3096. _maybeEnableSmoothScroll() {
  3097. this._config.smoothScroll &&
  3098. (pt.off(this._config.target, bn),
  3099. pt.on(this._config.target, bn, wn, (e) => {
  3100. const t = this._observableSections.get(e.target.hash);
  3101. if (t) {
  3102. e.preventDefault();
  3103. const i = this._rootElement || window,
  3104. s = t.offsetTop - this._element.offsetTop;
  3105. if (i.scrollTo) return void i.scrollTo({ top: s, behavior: "smooth" });
  3106. i.scrollTop = s;
  3107. }
  3108. }));
  3109. }
  3110. _getNewObserver() {
  3111. const e = { root: this._rootElement, threshold: this._config.threshold, rootMargin: this._config.rootMargin };
  3112. return new IntersectionObserver((e) => this._observerCallback(e), e);
  3113. }
  3114. _observerCallback(e) {
  3115. const t = (e) => this._targetLinks.get(`#${e.target.id}`),
  3116. i = (e) => {
  3117. (this._previousScrollData.visibleEntryTop = e.target.offsetTop), this._process(t(e));
  3118. },
  3119. s = (this._rootElement || document.documentElement).scrollTop,
  3120. n = s >= this._previousScrollData.parentScrollTop;
  3121. this._previousScrollData.parentScrollTop = s;
  3122. for (const o of e) {
  3123. if (!o.isIntersecting) {
  3124. (this._activeTarget = null), this._clearActiveClass(t(o));
  3125. continue;
  3126. }
  3127. const e = o.target.offsetTop >= this._previousScrollData.visibleEntryTop;
  3128. if (n && e) {
  3129. if ((i(o), !s)) return;
  3130. } else n || e || i(o);
  3131. }
  3132. }
  3133. _initializeTargetsAndObservables() {
  3134. (this._targetLinks = new Map()), (this._observableSections = new Map());
  3135. const e = Ot.find(wn, this._config.target);
  3136. for (const t of e) {
  3137. if (!t.hash || He(t)) continue;
  3138. const e = Ot.findOne(t.hash, this._element);
  3139. $e(e) && (this._targetLinks.set(t.hash, t), this._observableSections.set(t.hash, e));
  3140. }
  3141. }
  3142. _process(e) {
  3143. this._activeTarget !== e && (this._clearActiveClass(this._config.target), (this._activeTarget = e), e.classList.add(yn), this._activateParents(e), pt.trigger(this._element, _n, { relatedTarget: e }));
  3144. }
  3145. _activateParents(e) {
  3146. if (e.classList.contains("dropdown-item")) Ot.findOne(".dropdown-toggle", e.closest(".dropdown")).classList.add(yn);
  3147. else for (const t of Ot.parents(e, ".nav, .list-group")) for (const e of Ot.prev(t, En)) e.classList.add(yn);
  3148. }
  3149. _clearActiveClass(e) {
  3150. e.classList.remove(yn);
  3151. const t = Ot.find(`${wn}.${yn}`, e);
  3152. for (const e of t) e.classList.remove(yn);
  3153. }
  3154. static jQueryInterface(e) {
  3155. return this.each(function () {
  3156. const t = Ln.getOrCreateInstance(this, e);
  3157. if ("string" == typeof e) {
  3158. if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
  3159. t[e]();
  3160. }
  3161. });
  3162. }
  3163. }
  3164. pt.on(window, vn, () => {
  3165. for (const e of Ot.find('[data-bs-spy="scroll"]')) Ln.getOrCreateInstance(e);
  3166. }),
  3167. Xe(Ln);
  3168. const Sn = ".bs.tab",
  3169. Cn = `hide${Sn}`,
  3170. On = `hidden${Sn}`,
  3171. jn = `show${Sn}`,
  3172. Tn = `shown${Sn}`,
  3173. Dn = `click${Sn}`,
  3174. Pn = `keydown${Sn}`,
  3175. Nn = `load${Sn}`,
  3176. Mn = "ArrowLeft",
  3177. Fn = "ArrowRight",
  3178. In = "ArrowUp",
  3179. qn = "ArrowDown",
  3180. Wn = "active",
  3181. $n = "fade",
  3182. Hn = "show",
  3183. zn = ":not(.dropdown-toggle)",
  3184. Bn = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
  3185. Rn = `.nav-link${zn}, .list-group-item${zn}, [role="tab"]${zn}, ${Bn}`,
  3186. Qn = `.${Wn}[data-bs-toggle="tab"], .${Wn}[data-bs-toggle="pill"], .${Wn}[data-bs-toggle="list"]`;
  3187. class Vn extends wt {
  3188. constructor(e) {
  3189. super(e), (this._parent = this._element.closest('.list-group, .nav, [role="tablist"]')), this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), pt.on(this._element, Pn, (e) => this._keydown(e)));
  3190. }
  3191. static get NAME() {
  3192. return "tab";
  3193. }
  3194. show() {
  3195. const e = this._element;
  3196. if (this._elemIsActive(e)) return;
  3197. const t = this._getActiveElem(),
  3198. i = t ? pt.trigger(t, Cn, { relatedTarget: e }) : null;
  3199. pt.trigger(e, jn, { relatedTarget: t }).defaultPrevented || (i && i.defaultPrevented) || (this._deactivate(t, e), this._activate(e, t));
  3200. }
  3201. _activate(e, t) {
  3202. e &&
  3203. (e.classList.add(Wn),
  3204. this._activate(Fe(e)),
  3205. this._queueCallback(
  3206. () => {
  3207. "tab" === e.getAttribute("role") ? (e.removeAttribute("tabindex"), e.setAttribute("aria-selected", !0), this._toggleDropDown(e, !0), pt.trigger(e, Tn, { relatedTarget: t })) : e.classList.add(Hn);
  3208. },
  3209. e,
  3210. e.classList.contains($n)
  3211. ));
  3212. }
  3213. _deactivate(e, t) {
  3214. e &&
  3215. (e.classList.remove(Wn),
  3216. e.blur(),
  3217. this._deactivate(Fe(e)),
  3218. this._queueCallback(
  3219. () => {
  3220. "tab" === e.getAttribute("role") ? (e.setAttribute("aria-selected", !1), e.setAttribute("tabindex", "-1"), this._toggleDropDown(e, !1), pt.trigger(e, On, { relatedTarget: t })) : e.classList.remove(Hn);
  3221. },
  3222. e,
  3223. e.classList.contains($n)
  3224. ));
  3225. }
  3226. _keydown(e) {
  3227. if (![Mn, Fn, In, qn].includes(e.key)) return;
  3228. e.stopPropagation(), e.preventDefault();
  3229. const t = [Fn, qn].includes(e.key),
  3230. i = Ze(
  3231. this._getChildren().filter((e) => !He(e)),
  3232. e.target,
  3233. t,
  3234. !0
  3235. );
  3236. i && (i.focus({ preventScroll: !0 }), Vn.getOrCreateInstance(i).show());
  3237. }
  3238. _getChildren() {
  3239. return Ot.find(Rn, this._parent);
  3240. }
  3241. _getActiveElem() {
  3242. return this._getChildren().find((e) => this._elemIsActive(e)) || null;
  3243. }
  3244. _setInitialAttributes(e, t) {
  3245. this._setAttributeIfNotExists(e, "role", "tablist");
  3246. for (const e of t) this._setInitialAttributesOnChild(e);
  3247. }
  3248. _setInitialAttributesOnChild(e) {
  3249. e = this._getInnerElement(e);
  3250. const t = this._elemIsActive(e),
  3251. i = this._getOuterElement(e);
  3252. e.setAttribute("aria-selected", t),
  3253. i !== e && this._setAttributeIfNotExists(i, "role", "presentation"),
  3254. t || e.setAttribute("tabindex", "-1"),
  3255. this._setAttributeIfNotExists(e, "role", "tab"),
  3256. this._setInitialAttributesOnTargetPanel(e);
  3257. }
  3258. _setInitialAttributesOnTargetPanel(e) {
  3259. const t = Fe(e);
  3260. t && (this._setAttributeIfNotExists(t, "role", "tabpanel"), e.id && this._setAttributeIfNotExists(t, "aria-labelledby", `#${e.id}`));
  3261. }
  3262. _toggleDropDown(e, t) {
  3263. const i = this._getOuterElement(e);
  3264. if (!i.classList.contains("dropdown")) return;
  3265. const s = (e, s) => {
  3266. const n = Ot.findOne(e, i);
  3267. n && n.classList.toggle(s, t);
  3268. };
  3269. s(".dropdown-toggle", Wn), s(".dropdown-menu", Hn), i.setAttribute("aria-expanded", t);
  3270. }
  3271. _setAttributeIfNotExists(e, t, i) {
  3272. e.hasAttribute(t) || e.setAttribute(t, i);
  3273. }
  3274. _elemIsActive(e) {
  3275. return e.classList.contains(Wn);
  3276. }
  3277. _getInnerElement(e) {
  3278. return e.matches(Rn) ? e : Ot.findOne(Rn, e);
  3279. }
  3280. _getOuterElement(e) {
  3281. return e.closest(".nav-item, .list-group-item") || e;
  3282. }
  3283. static jQueryInterface(e) {
  3284. return this.each(function () {
  3285. const t = Vn.getOrCreateInstance(this);
  3286. if ("string" == typeof e) {
  3287. if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
  3288. t[e]();
  3289. }
  3290. });
  3291. }
  3292. }
  3293. pt.on(document, Dn, Bn, function (e) {
  3294. ["A", "AREA"].includes(this.tagName) && e.preventDefault(), He(this) || Vn.getOrCreateInstance(this).show();
  3295. }),
  3296. pt.on(window, Nn, () => {
  3297. for (const e of Ot.find(Qn)) Vn.getOrCreateInstance(e);
  3298. }),
  3299. Xe(Vn);
  3300. const Yn = ".bs.toast",
  3301. Xn = `mouseover${Yn}`,
  3302. Kn = `mouseout${Yn}`,
  3303. Un = `focusin${Yn}`,
  3304. Zn = `focusout${Yn}`,
  3305. Gn = `hide${Yn}`,
  3306. Jn = `hidden${Yn}`,
  3307. eo = `show${Yn}`,
  3308. to = `shown${Yn}`,
  3309. io = "hide",
  3310. so = "show",
  3311. no = "showing",
  3312. oo = { animation: "boolean", autohide: "boolean", delay: "number" },
  3313. ro = { animation: !0, autohide: !0, delay: 5e3 };
  3314. class ao extends wt {
  3315. constructor(e, t) {
  3316. super(e, t), (this._timeout = null), (this._hasMouseInteraction = !1), (this._hasKeyboardInteraction = !1), this._setListeners();
  3317. }
  3318. static get Default() {
  3319. return ro;
  3320. }
  3321. static get DefaultType() {
  3322. return oo;
  3323. }
  3324. static get NAME() {
  3325. return "toast";
  3326. }
  3327. show() {
  3328. pt.trigger(this._element, eo).defaultPrevented ||
  3329. (this._clearTimeout(),
  3330. this._config.animation && this._element.classList.add("fade"),
  3331. this._element.classList.remove(io),
  3332. Re(this._element),
  3333. this._element.classList.add(so, no),
  3334. this._queueCallback(
  3335. () => {
  3336. this._element.classList.remove(no), pt.trigger(this._element, to), this._maybeScheduleHide();
  3337. },
  3338. this._element,
  3339. this._config.animation
  3340. ));
  3341. }
  3342. hide() {
  3343. this.isShown() &&
  3344. (pt.trigger(this._element, Gn).defaultPrevented ||
  3345. (this._element.classList.add(no),
  3346. this._queueCallback(
  3347. () => {
  3348. this._element.classList.add(io), this._element.classList.remove(no, so), pt.trigger(this._element, Jn);
  3349. },
  3350. this._element,
  3351. this._config.animation
  3352. )));
  3353. }
  3354. dispose() {
  3355. this._clearTimeout(), this.isShown() && this._element.classList.remove(so), super.dispose();
  3356. }
  3357. isShown() {
  3358. return this._element.classList.contains(so);
  3359. }
  3360. _maybeScheduleHide() {
  3361. this._config.autohide &&
  3362. (this._hasMouseInteraction ||
  3363. this._hasKeyboardInteraction ||
  3364. (this._timeout = setTimeout(() => {
  3365. this.hide();
  3366. }, this._config.delay)));
  3367. }
  3368. _onInteraction(e, t) {
  3369. switch (e.type) {
  3370. case "mouseover":
  3371. case "mouseout":
  3372. this._hasMouseInteraction = t;
  3373. break;
  3374. case "focusin":
  3375. case "focusout":
  3376. this._hasKeyboardInteraction = t;
  3377. }
  3378. if (t) return void this._clearTimeout();
  3379. const i = e.relatedTarget;
  3380. this._element === i || this._element.contains(i) || this._maybeScheduleHide();
  3381. }
  3382. _setListeners() {
  3383. pt.on(this._element, Xn, (e) => this._onInteraction(e, !0)),
  3384. pt.on(this._element, Kn, (e) => this._onInteraction(e, !1)),
  3385. pt.on(this._element, Un, (e) => this._onInteraction(e, !0)),
  3386. pt.on(this._element, Zn, (e) => this._onInteraction(e, !1));
  3387. }
  3388. _clearTimeout() {
  3389. clearTimeout(this._timeout), (this._timeout = null);
  3390. }
  3391. static jQueryInterface(e) {
  3392. return this.each(function () {
  3393. const t = ao.getOrCreateInstance(this, e);
  3394. if ("string" == typeof e) {
  3395. if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
  3396. t[e](this);
  3397. }
  3398. });
  3399. }
  3400. }
  3401. xt(ao), Xe(ao);
  3402. var lo = i(807),
  3403. co = function (e) {
  3404. var t = typeof e;
  3405. return null != e && ("object" == t || "function" == t);
  3406. },
  3407. ho = "object" == typeof global && global && global.Object === Object && global,
  3408. uo = "object" == typeof self && self && self.Object === Object && self,
  3409. po = ho || uo || Function("return this")(),
  3410. fo = function () {
  3411. return po.Date.now();
  3412. },
  3413. go = /\s/,
  3414. mo = /^\s+/,
  3415. _o = function (e) {
  3416. return e
  3417. ? e
  3418. .slice(
  3419. 0,
  3420. (function (e) {
  3421. for (var t = e.length; t-- && go.test(e.charAt(t)); );
  3422. return t;
  3423. })(e) + 1
  3424. )
  3425. .replace(mo, "")
  3426. : e;
  3427. },
  3428. bo = po.Symbol,
  3429. vo = Object.prototype,
  3430. yo = vo.hasOwnProperty,
  3431. wo = vo.toString,
  3432. xo = bo ? bo.toStringTag : void 0,
  3433. Eo = Object.prototype.toString,
  3434. ko = bo ? bo.toStringTag : void 0,
  3435. Ao = function (e) {
  3436. return null == e
  3437. ? void 0 === e
  3438. ? "[object Undefined]"
  3439. : "[object Null]"
  3440. : ko && ko in Object(e)
  3441. ? (function (e) {
  3442. var t = yo.call(e, xo),
  3443. i = e[xo];
  3444. try {
  3445. e[xo] = void 0;
  3446. var s = !0;
  3447. } catch (e) {}
  3448. var n = wo.call(e);
  3449. return s && (t ? (e[xo] = i) : delete e[xo]), n;
  3450. })(e)
  3451. : (function (e) {
  3452. return Eo.call(e);
  3453. })(e);
  3454. },
  3455. Lo = /^[-+]0x[0-9a-f]+$/i,
  3456. So = /^0b[01]+$/i,
  3457. Co = /^0o[0-7]+$/i,
  3458. Oo = parseInt,
  3459. jo = function (e) {
  3460. if ("number" == typeof e) return e;
  3461. if (
  3462. (function (e) {
  3463. return (
  3464. "symbol" == typeof e ||
  3465. ((function (e) {
  3466. return null != e && "object" == typeof e;
  3467. })(e) &&
  3468. "[object Symbol]" == Ao(e))
  3469. );
  3470. })(e)
  3471. )
  3472. return NaN;
  3473. if (co(e)) {
  3474. var t = "function" == typeof e.valueOf ? e.valueOf() : e;
  3475. e = co(t) ? t + "" : t;
  3476. }
  3477. if ("string" != typeof e) return 0 === e ? e : +e;
  3478. e = _o(e);
  3479. var i = So.test(e);
  3480. return i || Co.test(e) ? Oo(e.slice(2), i ? 2 : 8) : Lo.test(e) ? NaN : +e;
  3481. },
  3482. To = Math.max,
  3483. Do = Math.min,
  3484. Po = function (e, t, i) {
  3485. var s,
  3486. n,
  3487. o,
  3488. r,
  3489. a,
  3490. l,
  3491. c = 0,
  3492. d = !1,
  3493. h = !1,
  3494. u = !0;
  3495. if ("function" != typeof e) throw new TypeError("Expected a function");
  3496. function p(t) {
  3497. var i = s,
  3498. o = n;
  3499. return (s = n = void 0), (c = t), (r = e.apply(o, i));
  3500. }
  3501. function f(e) {
  3502. var i = e - l;
  3503. return void 0 === l || i >= t || i < 0 || (h && e - c >= o);
  3504. }
  3505. function g() {
  3506. var e = fo();
  3507. if (f(e)) return m(e);
  3508. a = setTimeout(
  3509. g,
  3510. (function (e) {
  3511. var i = t - (e - l);
  3512. return h ? Do(i, o - (e - c)) : i;
  3513. })(e)
  3514. );
  3515. }
  3516. function m(e) {
  3517. return (a = void 0), u && s ? p(e) : ((s = n = void 0), r);
  3518. }
  3519. function _() {
  3520. var e = fo(),
  3521. i = f(e);
  3522. if (((s = arguments), (n = this), (l = e), i)) {
  3523. if (void 0 === a)
  3524. return (function (e) {
  3525. return (c = e), (a = setTimeout(g, t)), d ? p(e) : r;
  3526. })(l);
  3527. if (h) return clearTimeout(a), (a = setTimeout(g, t)), p(l);
  3528. }
  3529. return void 0 === a && (a = setTimeout(g, t)), r;
  3530. }
  3531. return (
  3532. (t = jo(t) || 0),
  3533. co(i) && ((d = !!i.leading), (o = (h = "maxWait" in i) ? To(jo(i.maxWait) || 0, t) : o), (u = "trailing" in i ? !!i.trailing : u)),
  3534. (_.cancel = function () {
  3535. void 0 !== a && clearTimeout(a), (c = 0), (s = l = n = a = void 0);
  3536. }),
  3537. (_.flush = function () {
  3538. return void 0 === a ? r : m(fo());
  3539. }),
  3540. _
  3541. );
  3542. },
  3543. No = function (e, t, i) {
  3544. var s = !0,
  3545. n = !0;
  3546. if ("function" != typeof e) throw new TypeError("Expected a function");
  3547. return co(i) && ((s = "leading" in i ? !!i.leading : s), (n = "trailing" in i ? !!i.trailing : n)), Po(e, t, { leading: s, maxWait: t, trailing: n });
  3548. },
  3549. Mo = function () {
  3550. return (
  3551. (Mo =
  3552. Object.assign ||
  3553. function (e) {
  3554. for (var t, i = 1, s = arguments.length; i < s; i++) for (var n in (t = arguments[i])) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
  3555. return e;
  3556. }),
  3557. Mo.apply(this, arguments)
  3558. );
  3559. },
  3560. Fo = null,
  3561. Io = null;
  3562. function qo() {
  3563. if (null === Fo) {
  3564. if ("undefined" == typeof document) return (Fo = 0);
  3565. var e = document.body,
  3566. t = document.createElement("div");
  3567. t.classList.add("simplebar-hide-scrollbar"), e.appendChild(t);
  3568. var i = t.getBoundingClientRect().right;
  3569. e.removeChild(t), (Fo = i);
  3570. }
  3571. return Fo;
  3572. }
  3573. function Wo(e) {
  3574. return e && e.ownerDocument && e.ownerDocument.defaultView ? e.ownerDocument.defaultView : window;
  3575. }
  3576. function $o(e) {
  3577. return e && e.ownerDocument ? e.ownerDocument : document;
  3578. }
  3579. lo &&
  3580. window.addEventListener("resize", function () {
  3581. Io !== window.devicePixelRatio && ((Io = window.devicePixelRatio), (Fo = null));
  3582. });
  3583. var Ho = function (e) {
  3584. return Array.prototype.reduce.call(
  3585. e,
  3586. function (e, t) {
  3587. var i = t.name.match(/data-simplebar-(.+)/);
  3588. if (i) {
  3589. var s = i[1].replace(/\W+(.)/g, function (e, t) {
  3590. return t.toUpperCase();
  3591. });
  3592. switch (t.value) {
  3593. case "true":
  3594. e[s] = !0;
  3595. break;
  3596. case "false":
  3597. e[s] = !1;
  3598. break;
  3599. case void 0:
  3600. e[s] = !0;
  3601. break;
  3602. default:
  3603. e[s] = t.value;
  3604. }
  3605. }
  3606. return e;
  3607. },
  3608. {}
  3609. );
  3610. };
  3611. function zo(e, t) {
  3612. var i;
  3613. e && (i = e.classList).add.apply(i, t.split(" "));
  3614. }
  3615. function Bo(e, t) {
  3616. e &&
  3617. t.split(" ").forEach(function (t) {
  3618. e.classList.remove(t);
  3619. });
  3620. }
  3621. function Ro(e) {
  3622. return ".".concat(e.split(" ").join("."));
  3623. }
  3624. var Qo = Object.freeze({ __proto__: null, addClasses: zo, classNamesToQuery: Ro, getElementDocument: $o, getElementWindow: Wo, getOptions: Ho, removeClasses: Bo }),
  3625. Vo = Wo,
  3626. Yo = $o,
  3627. Xo = Ho,
  3628. Ko = zo,
  3629. Uo = Bo,
  3630. Zo = Ro,
  3631. Go = (function () {
  3632. function e(t, i) {
  3633. void 0 === i && (i = {});
  3634. var s = this;
  3635. if (
  3636. ((this.removePreventClickId = null),
  3637. (this.minScrollbarWidth = 20),
  3638. (this.stopScrollDelay = 175),
  3639. (this.isScrolling = !1),
  3640. (this.isMouseEntering = !1),
  3641. (this.scrollXTicking = !1),
  3642. (this.scrollYTicking = !1),
  3643. (this.wrapperEl = null),
  3644. (this.contentWrapperEl = null),
  3645. (this.contentEl = null),
  3646. (this.offsetEl = null),
  3647. (this.maskEl = null),
  3648. (this.placeholderEl = null),
  3649. (this.heightAutoObserverWrapperEl = null),
  3650. (this.heightAutoObserverEl = null),
  3651. (this.rtlHelpers = null),
  3652. (this.scrollbarWidth = 0),
  3653. (this.resizeObserver = null),
  3654. (this.mutationObserver = null),
  3655. (this.elStyles = null),
  3656. (this.isRtl = null),
  3657. (this.mouseX = 0),
  3658. (this.mouseY = 0),
  3659. (this.onMouseMove = function () {}),
  3660. (this.onWindowResize = function () {}),
  3661. (this.onStopScrolling = function () {}),
  3662. (this.onMouseEntered = function () {}),
  3663. (this.onScroll = function () {
  3664. var e = Vo(s.el);
  3665. s.scrollXTicking || (e.requestAnimationFrame(s.scrollX), (s.scrollXTicking = !0)),
  3666. s.scrollYTicking || (e.requestAnimationFrame(s.scrollY), (s.scrollYTicking = !0)),
  3667. s.isScrolling || ((s.isScrolling = !0), Ko(s.el, s.classNames.scrolling)),
  3668. s.showScrollbar("x"),
  3669. s.showScrollbar("y"),
  3670. s.onStopScrolling();
  3671. }),
  3672. (this.scrollX = function () {
  3673. s.axis.x.isOverflowing && s.positionScrollbar("x"), (s.scrollXTicking = !1);
  3674. }),
  3675. (this.scrollY = function () {
  3676. s.axis.y.isOverflowing && s.positionScrollbar("y"), (s.scrollYTicking = !1);
  3677. }),
  3678. (this._onStopScrolling = function () {
  3679. Uo(s.el, s.classNames.scrolling), s.options.autoHide && (s.hideScrollbar("x"), s.hideScrollbar("y")), (s.isScrolling = !1);
  3680. }),
  3681. (this.onMouseEnter = function () {
  3682. s.isMouseEntering || (Ko(s.el, s.classNames.mouseEntered), s.showScrollbar("x"), s.showScrollbar("y"), (s.isMouseEntering = !0)), s.onMouseEntered();
  3683. }),
  3684. (this._onMouseEntered = function () {
  3685. Uo(s.el, s.classNames.mouseEntered), s.options.autoHide && (s.hideScrollbar("x"), s.hideScrollbar("y")), (s.isMouseEntering = !1);
  3686. }),
  3687. (this._onMouseMove = function (e) {
  3688. (s.mouseX = e.clientX), (s.mouseY = e.clientY), (s.axis.x.isOverflowing || s.axis.x.forceVisible) && s.onMouseMoveForAxis("x"), (s.axis.y.isOverflowing || s.axis.y.forceVisible) && s.onMouseMoveForAxis("y");
  3689. }),
  3690. (this.onMouseLeave = function () {
  3691. s.onMouseMove.cancel(),
  3692. (s.axis.x.isOverflowing || s.axis.x.forceVisible) && s.onMouseLeaveForAxis("x"),
  3693. (s.axis.y.isOverflowing || s.axis.y.forceVisible) && s.onMouseLeaveForAxis("y"),
  3694. (s.mouseX = -1),
  3695. (s.mouseY = -1);
  3696. }),
  3697. (this._onWindowResize = function () {
  3698. (s.scrollbarWidth = s.getScrollbarWidth()), s.hideNativeScrollbar();
  3699. }),
  3700. (this.onPointerEvent = function (e) {
  3701. var t, i;
  3702. s.axis.x.track.el &&
  3703. s.axis.y.track.el &&
  3704. s.axis.x.scrollbar.el &&
  3705. s.axis.y.scrollbar.el &&
  3706. ((s.axis.x.track.rect = s.axis.x.track.el.getBoundingClientRect()),
  3707. (s.axis.y.track.rect = s.axis.y.track.el.getBoundingClientRect()),
  3708. (s.axis.x.isOverflowing || s.axis.x.forceVisible) && (t = s.isWithinBounds(s.axis.x.track.rect)),
  3709. (s.axis.y.isOverflowing || s.axis.y.forceVisible) && (i = s.isWithinBounds(s.axis.y.track.rect)),
  3710. (t || i) &&
  3711. (e.stopPropagation(),
  3712. "pointerdown" === e.type &&
  3713. "touch" !== e.pointerType &&
  3714. (t && ((s.axis.x.scrollbar.rect = s.axis.x.scrollbar.el.getBoundingClientRect()), s.isWithinBounds(s.axis.x.scrollbar.rect) ? s.onDragStart(e, "x") : s.onTrackClick(e, "x")),
  3715. i && ((s.axis.y.scrollbar.rect = s.axis.y.scrollbar.el.getBoundingClientRect()), s.isWithinBounds(s.axis.y.scrollbar.rect) ? s.onDragStart(e, "y") : s.onTrackClick(e, "y")))));
  3716. }),
  3717. (this.drag = function (t) {
  3718. var i, n, o, r, a, l, c, d, h, u, p;
  3719. if (s.draggedAxis && s.contentWrapperEl) {
  3720. var f = s.axis[s.draggedAxis].track,
  3721. g = null !== (n = null === (i = f.rect) || void 0 === i ? void 0 : i[s.axis[s.draggedAxis].sizeAttr]) && void 0 !== n ? n : 0,
  3722. m = s.axis[s.draggedAxis].scrollbar,
  3723. _ = null !== (r = null === (o = s.contentWrapperEl) || void 0 === o ? void 0 : o[s.axis[s.draggedAxis].scrollSizeAttr]) && void 0 !== r ? r : 0,
  3724. b = parseInt(null !== (l = null === (a = s.elStyles) || void 0 === a ? void 0 : a[s.axis[s.draggedAxis].sizeAttr]) && void 0 !== l ? l : "0px", 10);
  3725. t.preventDefault(), t.stopPropagation();
  3726. var v =
  3727. ("y" === s.draggedAxis ? t.pageY : t.pageX) -
  3728. (null !== (d = null === (c = f.rect) || void 0 === c ? void 0 : c[s.axis[s.draggedAxis].offsetAttr]) && void 0 !== d ? d : 0) -
  3729. s.axis[s.draggedAxis].dragOffset,
  3730. y = ((v = s.isRtl ? (null !== (u = null === (h = f.rect) || void 0 === h ? void 0 : h[s.axis[s.draggedAxis].sizeAttr]) && void 0 !== u ? u : 0) - m.size - v : v) / (g - m.size)) * (_ - b);
  3731. "x" === s.draggedAxis && s.isRtl && (y = (null === (p = e.getRtlHelpers()) || void 0 === p ? void 0 : p.isScrollingToNegative) ? -y : y), (s.contentWrapperEl[s.axis[s.draggedAxis].scrollOffsetAttr] = y);
  3732. }
  3733. }),
  3734. (this.onEndDrag = function (e) {
  3735. var t = Yo(s.el),
  3736. i = Vo(s.el);
  3737. e.preventDefault(),
  3738. e.stopPropagation(),
  3739. Uo(s.el, s.classNames.dragging),
  3740. t.removeEventListener("mousemove", s.drag, !0),
  3741. t.removeEventListener("mouseup", s.onEndDrag, !0),
  3742. (s.removePreventClickId = i.setTimeout(function () {
  3743. t.removeEventListener("click", s.preventClick, !0), t.removeEventListener("dblclick", s.preventClick, !0), (s.removePreventClickId = null);
  3744. }));
  3745. }),
  3746. (this.preventClick = function (e) {
  3747. e.preventDefault(), e.stopPropagation();
  3748. }),
  3749. (this.el = t),
  3750. (this.options = Mo(Mo({}, e.defaultOptions), i)),
  3751. (this.classNames = Mo(Mo({}, e.defaultOptions.classNames), i.classNames)),
  3752. (this.axis = {
  3753. x: {
  3754. scrollOffsetAttr: "scrollLeft",
  3755. sizeAttr: "width",
  3756. scrollSizeAttr: "scrollWidth",
  3757. offsetSizeAttr: "offsetWidth",
  3758. offsetAttr: "left",
  3759. overflowAttr: "overflowX",
  3760. dragOffset: 0,
  3761. isOverflowing: !0,
  3762. forceVisible: !1,
  3763. track: { size: null, el: null, rect: null, isVisible: !1 },
  3764. scrollbar: { size: null, el: null, rect: null, isVisible: !1 },
  3765. },
  3766. y: {
  3767. scrollOffsetAttr: "scrollTop",
  3768. sizeAttr: "height",
  3769. scrollSizeAttr: "scrollHeight",
  3770. offsetSizeAttr: "offsetHeight",
  3771. offsetAttr: "top",
  3772. overflowAttr: "overflowY",
  3773. dragOffset: 0,
  3774. isOverflowing: !0,
  3775. forceVisible: !1,
  3776. track: { size: null, el: null, rect: null, isVisible: !1 },
  3777. scrollbar: { size: null, el: null, rect: null, isVisible: !1 },
  3778. },
  3779. }),
  3780. "object" != typeof this.el || !this.el.nodeName)
  3781. )
  3782. throw new Error("Argument passed to SimpleBar must be an HTML element instead of ".concat(this.el));
  3783. (this.onMouseMove = No(this._onMouseMove, 64)),
  3784. (this.onWindowResize = Po(this._onWindowResize, 64, { leading: !0 })),
  3785. (this.onStopScrolling = Po(this._onStopScrolling, this.stopScrollDelay)),
  3786. (this.onMouseEntered = Po(this._onMouseEntered, this.stopScrollDelay)),
  3787. this.init();
  3788. }
  3789. return (
  3790. (e.getRtlHelpers = function () {
  3791. if (e.rtlHelpers) return e.rtlHelpers;
  3792. var t = document.createElement("div");
  3793. t.innerHTML = '<div class="simplebar-dummy-scrollbar-size"><div></div></div>';
  3794. var i = t.firstElementChild,
  3795. s = null == i ? void 0 : i.firstElementChild;
  3796. if (!s) return null;
  3797. document.body.appendChild(i), (i.scrollLeft = 0);
  3798. var n = e.getOffset(i),
  3799. o = e.getOffset(s);
  3800. i.scrollLeft = -999;
  3801. var r = e.getOffset(s);
  3802. return document.body.removeChild(i), (e.rtlHelpers = { isScrollOriginAtZero: n.left !== o.left, isScrollingToNegative: o.left !== r.left }), e.rtlHelpers;
  3803. }),
  3804. (e.prototype.getScrollbarWidth = function () {
  3805. try {
  3806. return (this.contentWrapperEl && "none" === getComputedStyle(this.contentWrapperEl, "::-webkit-scrollbar").display) ||
  3807. "scrollbarWidth" in document.documentElement.style ||
  3808. "-ms-overflow-style" in document.documentElement.style
  3809. ? 0
  3810. : qo();
  3811. } catch (e) {
  3812. return qo();
  3813. }
  3814. }),
  3815. (e.getOffset = function (e) {
  3816. var t = e.getBoundingClientRect(),
  3817. i = Yo(e),
  3818. s = Vo(e);
  3819. return { top: t.top + (s.pageYOffset || i.documentElement.scrollTop), left: t.left + (s.pageXOffset || i.documentElement.scrollLeft) };
  3820. }),
  3821. (e.prototype.init = function () {
  3822. lo && (this.initDOM(), (this.rtlHelpers = e.getRtlHelpers()), (this.scrollbarWidth = this.getScrollbarWidth()), this.recalculate(), this.initListeners());
  3823. }),
  3824. (e.prototype.initDOM = function () {
  3825. var e, t;
  3826. (this.wrapperEl = this.el.querySelector(Zo(this.classNames.wrapper))),
  3827. (this.contentWrapperEl = this.options.scrollableNode || this.el.querySelector(Zo(this.classNames.contentWrapper))),
  3828. (this.contentEl = this.options.contentNode || this.el.querySelector(Zo(this.classNames.contentEl))),
  3829. (this.offsetEl = this.el.querySelector(Zo(this.classNames.offset))),
  3830. (this.maskEl = this.el.querySelector(Zo(this.classNames.mask))),
  3831. (this.placeholderEl = this.findChild(this.wrapperEl, Zo(this.classNames.placeholder))),
  3832. (this.heightAutoObserverWrapperEl = this.el.querySelector(Zo(this.classNames.heightAutoObserverWrapperEl))),
  3833. (this.heightAutoObserverEl = this.el.querySelector(Zo(this.classNames.heightAutoObserverEl))),
  3834. (this.axis.x.track.el = this.findChild(this.el, "".concat(Zo(this.classNames.track)).concat(Zo(this.classNames.horizontal)))),
  3835. (this.axis.y.track.el = this.findChild(this.el, "".concat(Zo(this.classNames.track)).concat(Zo(this.classNames.vertical)))),
  3836. (this.axis.x.scrollbar.el = (null === (e = this.axis.x.track.el) || void 0 === e ? void 0 : e.querySelector(Zo(this.classNames.scrollbar))) || null),
  3837. (this.axis.y.scrollbar.el = (null === (t = this.axis.y.track.el) || void 0 === t ? void 0 : t.querySelector(Zo(this.classNames.scrollbar))) || null),
  3838. this.options.autoHide || (Ko(this.axis.x.scrollbar.el, this.classNames.visible), Ko(this.axis.y.scrollbar.el, this.classNames.visible));
  3839. }),
  3840. (e.prototype.initListeners = function () {
  3841. var e,
  3842. t = this,
  3843. i = Vo(this.el);
  3844. if (
  3845. (this.el.addEventListener("mouseenter", this.onMouseEnter),
  3846. this.el.addEventListener("pointerdown", this.onPointerEvent, !0),
  3847. this.el.addEventListener("mousemove", this.onMouseMove),
  3848. this.el.addEventListener("mouseleave", this.onMouseLeave),
  3849. null === (e = this.contentWrapperEl) || void 0 === e || e.addEventListener("scroll", this.onScroll),
  3850. i.addEventListener("resize", this.onWindowResize),
  3851. this.contentEl)
  3852. ) {
  3853. if (window.ResizeObserver) {
  3854. var s = !1,
  3855. n = i.ResizeObserver || ResizeObserver;
  3856. (this.resizeObserver = new n(function () {
  3857. s &&
  3858. i.requestAnimationFrame(function () {
  3859. t.recalculate();
  3860. });
  3861. })),
  3862. this.resizeObserver.observe(this.el),
  3863. this.resizeObserver.observe(this.contentEl),
  3864. i.requestAnimationFrame(function () {
  3865. s = !0;
  3866. });
  3867. }
  3868. (this.mutationObserver = new i.MutationObserver(function () {
  3869. i.requestAnimationFrame(function () {
  3870. t.recalculate();
  3871. });
  3872. })),
  3873. this.mutationObserver.observe(this.contentEl, { childList: !0, subtree: !0, characterData: !0 });
  3874. }
  3875. }),
  3876. (e.prototype.recalculate = function () {
  3877. if (this.heightAutoObserverEl && this.contentEl && this.contentWrapperEl && this.wrapperEl && this.placeholderEl) {
  3878. var e = Vo(this.el);
  3879. (this.elStyles = e.getComputedStyle(this.el)), (this.isRtl = "rtl" === this.elStyles.direction);
  3880. var t = this.contentEl.offsetWidth,
  3881. i = this.heightAutoObserverEl.offsetHeight <= 1,
  3882. s = this.heightAutoObserverEl.offsetWidth <= 1 || t > 0,
  3883. n = this.contentWrapperEl.offsetWidth,
  3884. o = this.elStyles.overflowX,
  3885. r = this.elStyles.overflowY;
  3886. (this.contentEl.style.padding = "".concat(this.elStyles.paddingTop, " ").concat(this.elStyles.paddingRight, " ").concat(this.elStyles.paddingBottom, " ").concat(this.elStyles.paddingLeft)),
  3887. (this.wrapperEl.style.margin = "-".concat(this.elStyles.paddingTop, " -").concat(this.elStyles.paddingRight, " -").concat(this.elStyles.paddingBottom, " -").concat(this.elStyles.paddingLeft));
  3888. var a = this.contentEl.scrollHeight,
  3889. l = this.contentEl.scrollWidth;
  3890. (this.contentWrapperEl.style.height = i ? "auto" : "100%"), (this.placeholderEl.style.width = s ? "".concat(t || l, "px") : "auto"), (this.placeholderEl.style.height = "".concat(a, "px"));
  3891. var c = this.contentWrapperEl.offsetHeight;
  3892. (this.axis.x.isOverflowing = 0 !== t && l > t),
  3893. (this.axis.y.isOverflowing = a > c),
  3894. (this.axis.x.isOverflowing = "hidden" !== o && this.axis.x.isOverflowing),
  3895. (this.axis.y.isOverflowing = "hidden" !== r && this.axis.y.isOverflowing),
  3896. (this.axis.x.forceVisible = "x" === this.options.forceVisible || !0 === this.options.forceVisible),
  3897. (this.axis.y.forceVisible = "y" === this.options.forceVisible || !0 === this.options.forceVisible),
  3898. this.hideNativeScrollbar();
  3899. var d = this.axis.x.isOverflowing ? this.scrollbarWidth : 0,
  3900. h = this.axis.y.isOverflowing ? this.scrollbarWidth : 0;
  3901. (this.axis.x.isOverflowing = this.axis.x.isOverflowing && l > n - h),
  3902. (this.axis.y.isOverflowing = this.axis.y.isOverflowing && a > c - d),
  3903. (this.axis.x.scrollbar.size = this.getScrollbarSize("x")),
  3904. (this.axis.y.scrollbar.size = this.getScrollbarSize("y")),
  3905. this.axis.x.scrollbar.el && (this.axis.x.scrollbar.el.style.width = "".concat(this.axis.x.scrollbar.size, "px")),
  3906. this.axis.y.scrollbar.el && (this.axis.y.scrollbar.el.style.height = "".concat(this.axis.y.scrollbar.size, "px")),
  3907. this.positionScrollbar("x"),
  3908. this.positionScrollbar("y"),
  3909. this.toggleTrackVisibility("x"),
  3910. this.toggleTrackVisibility("y");
  3911. }
  3912. }),
  3913. (e.prototype.getScrollbarSize = function (e) {
  3914. var t, i;
  3915. if ((void 0 === e && (e = "y"), !this.axis[e].isOverflowing || !this.contentEl)) return 0;
  3916. var s,
  3917. n = this.contentEl[this.axis[e].scrollSizeAttr],
  3918. o = null !== (i = null === (t = this.axis[e].track.el) || void 0 === t ? void 0 : t[this.axis[e].offsetSizeAttr]) && void 0 !== i ? i : 0,
  3919. r = o / n;
  3920. return (s = Math.max(~~(r * o), this.options.scrollbarMinSize)), this.options.scrollbarMaxSize && (s = Math.min(s, this.options.scrollbarMaxSize)), s;
  3921. }),
  3922. (e.prototype.positionScrollbar = function (t) {
  3923. var i, s, n;
  3924. void 0 === t && (t = "y");
  3925. var o = this.axis[t].scrollbar;
  3926. if (this.axis[t].isOverflowing && this.contentWrapperEl && o.el && this.elStyles) {
  3927. var r = this.contentWrapperEl[this.axis[t].scrollSizeAttr],
  3928. a = (null === (i = this.axis[t].track.el) || void 0 === i ? void 0 : i[this.axis[t].offsetSizeAttr]) || 0,
  3929. l = parseInt(this.elStyles[this.axis[t].sizeAttr], 10),
  3930. c = this.contentWrapperEl[this.axis[t].scrollOffsetAttr];
  3931. (c = "x" === t && this.isRtl && (null === (s = e.getRtlHelpers()) || void 0 === s ? void 0 : s.isScrollOriginAtZero) ? -c : c),
  3932. "x" === t && this.isRtl && (c = (null === (n = e.getRtlHelpers()) || void 0 === n ? void 0 : n.isScrollingToNegative) ? c : -c);
  3933. var d = c / (r - l),
  3934. h = ~~((a - o.size) * d);
  3935. (h = "x" === t && this.isRtl ? -h + (a - o.size) : h), (o.el.style.transform = "x" === t ? "translate3d(".concat(h, "px, 0, 0)") : "translate3d(0, ".concat(h, "px, 0)"));
  3936. }
  3937. }),
  3938. (e.prototype.toggleTrackVisibility = function (e) {
  3939. void 0 === e && (e = "y");
  3940. var t = this.axis[e].track.el,
  3941. i = this.axis[e].scrollbar.el;
  3942. t &&
  3943. i &&
  3944. this.contentWrapperEl &&
  3945. (this.axis[e].isOverflowing || this.axis[e].forceVisible
  3946. ? ((t.style.visibility = "visible"), (this.contentWrapperEl.style[this.axis[e].overflowAttr] = "scroll"), this.el.classList.add("".concat(this.classNames.scrollable, "-").concat(e)))
  3947. : ((t.style.visibility = "hidden"), (this.contentWrapperEl.style[this.axis[e].overflowAttr] = "hidden"), this.el.classList.remove("".concat(this.classNames.scrollable, "-").concat(e))),
  3948. this.axis[e].isOverflowing ? (i.style.display = "block") : (i.style.display = "none"));
  3949. }),
  3950. (e.prototype.showScrollbar = function (e) {
  3951. void 0 === e && (e = "y"), this.axis[e].isOverflowing && !this.axis[e].scrollbar.isVisible && (Ko(this.axis[e].scrollbar.el, this.classNames.visible), (this.axis[e].scrollbar.isVisible = !0));
  3952. }),
  3953. (e.prototype.hideScrollbar = function (e) {
  3954. void 0 === e && (e = "y"), this.axis[e].isOverflowing && this.axis[e].scrollbar.isVisible && (Uo(this.axis[e].scrollbar.el, this.classNames.visible), (this.axis[e].scrollbar.isVisible = !1));
  3955. }),
  3956. (e.prototype.hideNativeScrollbar = function () {
  3957. this.offsetEl &&
  3958. ((this.offsetEl.style[this.isRtl ? "left" : "right"] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? "-".concat(this.scrollbarWidth, "px") : "0px"),
  3959. (this.offsetEl.style.bottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? "-".concat(this.scrollbarWidth, "px") : "0px"));
  3960. }),
  3961. (e.prototype.onMouseMoveForAxis = function (e) {
  3962. void 0 === e && (e = "y");
  3963. var t = this.axis[e];
  3964. t.track.el &&
  3965. t.scrollbar.el &&
  3966. ((t.track.rect = t.track.el.getBoundingClientRect()),
  3967. (t.scrollbar.rect = t.scrollbar.el.getBoundingClientRect()),
  3968. this.isWithinBounds(t.track.rect)
  3969. ? (this.showScrollbar(e), Ko(t.track.el, this.classNames.hover), this.isWithinBounds(t.scrollbar.rect) ? Ko(t.scrollbar.el, this.classNames.hover) : Uo(t.scrollbar.el, this.classNames.hover))
  3970. : (Uo(t.track.el, this.classNames.hover), this.options.autoHide && this.hideScrollbar(e)));
  3971. }),
  3972. (e.prototype.onMouseLeaveForAxis = function (e) {
  3973. void 0 === e && (e = "y"), Uo(this.axis[e].track.el, this.classNames.hover), Uo(this.axis[e].scrollbar.el, this.classNames.hover), this.options.autoHide && this.hideScrollbar(e);
  3974. }),
  3975. (e.prototype.onDragStart = function (e, t) {
  3976. var i;
  3977. void 0 === t && (t = "y");
  3978. var s = Yo(this.el),
  3979. n = Vo(this.el),
  3980. o = this.axis[t].scrollbar,
  3981. r = "y" === t ? e.pageY : e.pageX;
  3982. (this.axis[t].dragOffset = r - ((null === (i = o.rect) || void 0 === i ? void 0 : i[this.axis[t].offsetAttr]) || 0)),
  3983. (this.draggedAxis = t),
  3984. Ko(this.el, this.classNames.dragging),
  3985. s.addEventListener("mousemove", this.drag, !0),
  3986. s.addEventListener("mouseup", this.onEndDrag, !0),
  3987. null === this.removePreventClickId
  3988. ? (s.addEventListener("click", this.preventClick, !0), s.addEventListener("dblclick", this.preventClick, !0))
  3989. : (n.clearTimeout(this.removePreventClickId), (this.removePreventClickId = null));
  3990. }),
  3991. (e.prototype.onTrackClick = function (e, t) {
  3992. var i,
  3993. s,
  3994. n,
  3995. o,
  3996. r = this;
  3997. void 0 === t && (t = "y");
  3998. var a = this.axis[t];
  3999. if (this.options.clickOnTrack && a.scrollbar.el && this.contentWrapperEl) {
  4000. e.preventDefault();
  4001. var l = Vo(this.el);
  4002. this.axis[t].scrollbar.rect = a.scrollbar.el.getBoundingClientRect();
  4003. var c = null !== (s = null === (i = this.axis[t].scrollbar.rect) || void 0 === i ? void 0 : i[this.axis[t].offsetAttr]) && void 0 !== s ? s : 0,
  4004. d = parseInt(null !== (o = null === (n = this.elStyles) || void 0 === n ? void 0 : n[this.axis[t].sizeAttr]) && void 0 !== o ? o : "0px", 10),
  4005. h = this.contentWrapperEl[this.axis[t].scrollOffsetAttr],
  4006. u = ("y" === t ? this.mouseY - c : this.mouseX - c) < 0 ? -1 : 1,
  4007. p = -1 === u ? h - d : h + d,
  4008. f = function () {
  4009. r.contentWrapperEl &&
  4010. (-1 === u
  4011. ? h > p && ((h -= 40), (r.contentWrapperEl[r.axis[t].scrollOffsetAttr] = h), l.requestAnimationFrame(f))
  4012. : h < p && ((h += 40), (r.contentWrapperEl[r.axis[t].scrollOffsetAttr] = h), l.requestAnimationFrame(f)));
  4013. };
  4014. f();
  4015. }
  4016. }),
  4017. (e.prototype.getContentElement = function () {
  4018. return this.contentEl;
  4019. }),
  4020. (e.prototype.getScrollElement = function () {
  4021. return this.contentWrapperEl;
  4022. }),
  4023. (e.prototype.removeListeners = function () {
  4024. var e = Vo(this.el);
  4025. this.el.removeEventListener("mouseenter", this.onMouseEnter),
  4026. this.el.removeEventListener("pointerdown", this.onPointerEvent, !0),
  4027. this.el.removeEventListener("mousemove", this.onMouseMove),
  4028. this.el.removeEventListener("mouseleave", this.onMouseLeave),
  4029. this.contentWrapperEl && this.contentWrapperEl.removeEventListener("scroll", this.onScroll),
  4030. e.removeEventListener("resize", this.onWindowResize),
  4031. this.mutationObserver && this.mutationObserver.disconnect(),
  4032. this.resizeObserver && this.resizeObserver.disconnect(),
  4033. this.onMouseMove.cancel(),
  4034. this.onWindowResize.cancel(),
  4035. this.onStopScrolling.cancel(),
  4036. this.onMouseEntered.cancel();
  4037. }),
  4038. (e.prototype.unMount = function () {
  4039. this.removeListeners();
  4040. }),
  4041. (e.prototype.isWithinBounds = function (e) {
  4042. return this.mouseX >= e.left && this.mouseX <= e.left + e.width && this.mouseY >= e.top && this.mouseY <= e.top + e.height;
  4043. }),
  4044. (e.prototype.findChild = function (e, t) {
  4045. var i = e.matches || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector;
  4046. return Array.prototype.filter.call(e.children, function (e) {
  4047. return i.call(e, t);
  4048. })[0];
  4049. }),
  4050. (e.rtlHelpers = null),
  4051. (e.defaultOptions = {
  4052. forceVisible: !1,
  4053. clickOnTrack: !0,
  4054. scrollbarMinSize: 25,
  4055. scrollbarMaxSize: 0,
  4056. ariaLabel: "scrollable content",
  4057. classNames: {
  4058. contentEl: "simplebar-content",
  4059. contentWrapper: "simplebar-content-wrapper",
  4060. offset: "simplebar-offset",
  4061. mask: "simplebar-mask",
  4062. wrapper: "simplebar-wrapper",
  4063. placeholder: "simplebar-placeholder",
  4064. scrollbar: "simplebar-scrollbar",
  4065. track: "simplebar-track",
  4066. heightAutoObserverWrapperEl: "simplebar-height-auto-observer-wrapper",
  4067. heightAutoObserverEl: "simplebar-height-auto-observer",
  4068. visible: "simplebar-visible",
  4069. horizontal: "simplebar-horizontal",
  4070. vertical: "simplebar-vertical",
  4071. hover: "simplebar-hover",
  4072. dragging: "simplebar-dragging",
  4073. scrolling: "simplebar-scrolling",
  4074. scrollable: "simplebar-scrollable",
  4075. mouseEntered: "simplebar-mouse-entered",
  4076. },
  4077. scrollableNode: null,
  4078. contentNode: null,
  4079. autoHide: !0,
  4080. }),
  4081. (e.getOptions = Xo),
  4082. (e.helpers = Qo),
  4083. e
  4084. );
  4085. })(),
  4086. Jo = function (e, t) {
  4087. return (
  4088. (Jo =
  4089. Object.setPrototypeOf ||
  4090. ({ __proto__: [] } instanceof Array &&
  4091. function (e, t) {
  4092. e.__proto__ = t;
  4093. }) ||
  4094. function (e, t) {
  4095. for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
  4096. }),
  4097. Jo(e, t)
  4098. );
  4099. },
  4100. er = Go.helpers,
  4101. tr = er.getOptions,
  4102. ir = er.addClasses,
  4103. sr = (function (e) {
  4104. function t() {
  4105. for (var i = [], s = 0; s < arguments.length; s++) i[s] = arguments[s];
  4106. var n = e.apply(this, i) || this;
  4107. return t.instances.set(i[0], n), n;
  4108. }
  4109. return (
  4110. (function (e, t) {
  4111. if ("function" != typeof t && null !== t) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
  4112. function i() {
  4113. this.constructor = e;
  4114. }
  4115. Jo(e, t), (e.prototype = null === t ? Object.create(t) : ((i.prototype = t.prototype), new i()));
  4116. })(t, e),
  4117. (t.initDOMLoadedElements = function () {
  4118. document.removeEventListener("DOMContentLoaded", this.initDOMLoadedElements),
  4119. window.removeEventListener("load", this.initDOMLoadedElements),
  4120. Array.prototype.forEach.call(document.querySelectorAll("[data-simplebar]"), function (e) {
  4121. "init" === e.getAttribute("data-simplebar") || t.instances.has(e) || new t(e, tr(e.attributes));
  4122. });
  4123. }),
  4124. (t.removeObserver = function () {
  4125. var e;
  4126. null === (e = t.globalObserver) || void 0 === e || e.disconnect();
  4127. }),
  4128. (t.prototype.initDOM = function () {
  4129. var e,
  4130. t,
  4131. i,
  4132. s = this;
  4133. if (
  4134. !Array.prototype.filter.call(this.el.children, function (e) {
  4135. return e.classList.contains(s.classNames.wrapper);
  4136. }).length
  4137. ) {
  4138. for (
  4139. this.wrapperEl = document.createElement("div"),
  4140. this.contentWrapperEl = document.createElement("div"),
  4141. this.offsetEl = document.createElement("div"),
  4142. this.maskEl = document.createElement("div"),
  4143. this.contentEl = document.createElement("div"),
  4144. this.placeholderEl = document.createElement("div"),
  4145. this.heightAutoObserverWrapperEl = document.createElement("div"),
  4146. this.heightAutoObserverEl = document.createElement("div"),
  4147. ir(this.wrapperEl, this.classNames.wrapper),
  4148. ir(this.contentWrapperEl, this.classNames.contentWrapper),
  4149. ir(this.offsetEl, this.classNames.offset),
  4150. ir(this.maskEl, this.classNames.mask),
  4151. ir(this.contentEl, this.classNames.contentEl),
  4152. ir(this.placeholderEl, this.classNames.placeholder),
  4153. ir(this.heightAutoObserverWrapperEl, this.classNames.heightAutoObserverWrapperEl),
  4154. ir(this.heightAutoObserverEl, this.classNames.heightAutoObserverEl);
  4155. this.el.firstChild;
  4156. )
  4157. this.contentEl.appendChild(this.el.firstChild);
  4158. this.contentWrapperEl.appendChild(this.contentEl),
  4159. this.offsetEl.appendChild(this.contentWrapperEl),
  4160. this.maskEl.appendChild(this.offsetEl),
  4161. this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl),
  4162. this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl),
  4163. this.wrapperEl.appendChild(this.maskEl),
  4164. this.wrapperEl.appendChild(this.placeholderEl),
  4165. this.el.appendChild(this.wrapperEl),
  4166. null === (e = this.contentWrapperEl) || void 0 === e || e.setAttribute("tabindex", "0"),
  4167. null === (t = this.contentWrapperEl) || void 0 === t || t.setAttribute("role", "region"),
  4168. null === (i = this.contentWrapperEl) || void 0 === i || i.setAttribute("aria-label", this.options.ariaLabel);
  4169. }
  4170. if (!this.axis.x.track.el || !this.axis.y.track.el) {
  4171. var n = document.createElement("div"),
  4172. o = document.createElement("div");
  4173. ir(n, this.classNames.track),
  4174. ir(o, this.classNames.scrollbar),
  4175. n.appendChild(o),
  4176. (this.axis.x.track.el = n.cloneNode(!0)),
  4177. ir(this.axis.x.track.el, this.classNames.horizontal),
  4178. (this.axis.y.track.el = n.cloneNode(!0)),
  4179. ir(this.axis.y.track.el, this.classNames.vertical),
  4180. this.el.appendChild(this.axis.x.track.el),
  4181. this.el.appendChild(this.axis.y.track.el);
  4182. }
  4183. Go.prototype.initDOM.call(this), this.el.setAttribute("data-simplebar", "init");
  4184. }),
  4185. (t.prototype.unMount = function () {
  4186. Go.prototype.unMount.call(this), t.instances.delete(this.el);
  4187. }),
  4188. (t.initHtmlApi = function () {
  4189. (this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this)),
  4190. "undefined" != typeof MutationObserver && ((this.globalObserver = new MutationObserver(t.handleMutations)), this.globalObserver.observe(document, { childList: !0, subtree: !0 })),
  4191. "complete" === document.readyState || ("loading" !== document.readyState && !document.documentElement.doScroll)
  4192. ? window.setTimeout(this.initDOMLoadedElements)
  4193. : (document.addEventListener("DOMContentLoaded", this.initDOMLoadedElements), window.addEventListener("load", this.initDOMLoadedElements));
  4194. }),
  4195. (t.handleMutations = function (e) {
  4196. e.forEach(function (e) {
  4197. e.addedNodes.forEach(function (e) {
  4198. 1 === e.nodeType &&
  4199. (e.hasAttribute("data-simplebar")
  4200. ? !t.instances.has(e) && document.documentElement.contains(e) && new t(e, tr(e.attributes))
  4201. : e.querySelectorAll("[data-simplebar]").forEach(function (e) {
  4202. "init" !== e.getAttribute("data-simplebar") && !t.instances.has(e) && document.documentElement.contains(e) && new t(e, tr(e.attributes));
  4203. }));
  4204. }),
  4205. e.removedNodes.forEach(function (e) {
  4206. 1 === e.nodeType &&
  4207. ("init" === e.getAttribute("data-simplebar")
  4208. ? t.instances.has(e) && !document.documentElement.contains(e) && t.instances.get(e).unMount()
  4209. : Array.prototype.forEach.call(e.querySelectorAll('[data-simplebar="init"]'), function (e) {
  4210. t.instances.has(e) && !document.documentElement.contains(e) && t.instances.get(e).unMount();
  4211. }));
  4212. });
  4213. });
  4214. }),
  4215. (t.instances = new WeakMap()),
  4216. t
  4217. );
  4218. })(Go);
  4219. lo && sr.initHtmlApi();
  4220. let nr,
  4221. or = !1;
  4222. class rr {
  4223. static run(e) {
  4224. let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
  4225. i = {
  4226. "bs-tooltip": () => this.bsTooltip(),
  4227. "bs-popover": () => this.bsPopover(),
  4228. "dm-toggle-class": () => this.dmToggleClass(),
  4229. "dm-year-copy": () => this.dmYearCopy(),
  4230. "dm-ripple": () => this.dmRipple(),
  4231. "dm-print": () => this.dmPrint(),
  4232. "dm-table-tools-sections": () => this.dmTableToolsSections(),
  4233. "dm-table-tools-checkable": () => this.dmTableToolsCheckable(),
  4234. "js-ckeditor": () => this.jsCkeditor(),
  4235. "js-ckeditor5": () => this.jsCkeditor5(),
  4236. "js-simplemde": () => this.jsSimpleMDE(),
  4237. "js-highlightjs": () => this.jsHighlightjs(),
  4238. "js-flatpickr": () => this.jsFlatpickr(),
  4239. "jq-appear": () => this.jqAppear(),
  4240. "jq-magnific-popup": () => this.jqMagnific(),
  4241. "jq-slick": () => this.jqSlick(),
  4242. "jq-datepicker": () => this.jqDatepicker(),
  4243. "jq-masked-inputs": () => this.jqMaskedInputs(),
  4244. "jq-select2": () => this.jqSelect2(),
  4245. "jq-notify": (e) => this.jqNotify(e),
  4246. "jq-easy-pie-chart": () => this.jqEasyPieChart(),
  4247. "jq-maxlength": () => this.jqMaxlength(),
  4248. "jq-rangeslider": () => this.jqRangeslider(),
  4249. "jq-pw-strength": () => this.jqPwStrength(),
  4250. "jq-sparkline": () => this.jqSparkline(),
  4251. "jq-validation": () => this.jqValidation(),
  4252. };
  4253. if (e instanceof Array) for (let s in e) i[e[s]] && i[e[s]](t);
  4254. else i[e] && i[e](t);
  4255. }
  4256. static bsTooltip() {
  4257. let e = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]:not(.js-bs-tooltip-enabled), .js-bs-tooltip:not(.js-bs-tooltip-enabled)'));
  4258. window.helperBsTooltips = e.map(
  4259. (e) => (
  4260. e.classList.add("js-bs-tooltip-enabled"), new bootstrap.Tooltip(e, { container: e.dataset.bsContainer || "#page-container", animation: !(!e.dataset.bsAnimation || "true" != e.dataset.bsAnimation.toLowerCase()) })
  4261. )
  4262. );
  4263. }
  4264. static bsPopover() {
  4265. let e = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]:not(.js-bs-popover-enabled), .js-bs-popover:not(.js-bs-popover-enabled)'));
  4266. window.helperBsPopovers = e.map(
  4267. (e) => (
  4268. e.classList.add("js-bs-popover-enabled"),
  4269. new bootstrap.Popover(e, {
  4270. container: e.dataset.bsContainer || "#page-container",
  4271. animation: !(!e.dataset.bsAnimation || "true" != e.dataset.bsAnimation.toLowerCase()),
  4272. trigger: e.dataset.bsTrigger || "hover focus",
  4273. })
  4274. )
  4275. );
  4276. }
  4277. static dmToggleClass() {
  4278. document.querySelectorAll('[data-toggle="class-toggle"]:not(.js-class-toggle-enabled), .js-class-toggle:not(.js-class-toggle-enabled)').forEach((e) => {
  4279. e.addEventListener("click", () => {
  4280. e.classList.add("js-class-toggle-enabled");
  4281. let t = !!e.dataset.class && e.dataset.class.split(" ");
  4282. document.querySelectorAll(e.dataset.target).forEach((e) => {
  4283. t &&
  4284. t.forEach((t) => {
  4285. e.classList.toggle(t);
  4286. });
  4287. });
  4288. });
  4289. });
  4290. }
  4291. static dmYearCopy() {
  4292. document.querySelectorAll('[data-toggle="year-copy"]:not(.js-year-copy-enabled)').forEach((e) => {
  4293. let t = new Date().getFullYear(),
  4294. i = e.textContent || t;
  4295. e.classList.add("js-year-copy-enabled"), (e.textContent = parseInt(i) >= t ? t : i + "-" + t.toString().substr(2, 2));
  4296. });
  4297. }
  4298. static dmRipple() {
  4299. document.querySelectorAll('[data-toggle="click-ripple"]:not(.js-click-ripple-enabled)').forEach((e) => {
  4300. e.classList.add("js-click-ripple-enabled"),
  4301. (e.style.overflow = "hidden"),
  4302. (e.style.position = "relative"),
  4303. (e.style.zIndex = 1),
  4304. e.addEventListener("click", (t) => {
  4305. let i,
  4306. s,
  4307. n,
  4308. o = "click-ripple",
  4309. r = e.querySelector("." + o);
  4310. if (r) r.classList.remove("animate");
  4311. else {
  4312. let t = document.createElement("span");
  4313. t.classList.add(o), e.insertBefore(t, e.firstChild);
  4314. }
  4315. (r = e.querySelector("." + o)),
  4316. ("0px" !== getComputedStyle(r).height && "0px" !== getComputedStyle(r).width) || ((i = Math.max(e.offsetWidth, e.offsetHeight)), (r.style.height = i + "px"), (r.style.width = i + "px")),
  4317. (s = t.pageX - (e.getBoundingClientRect().left + window.scrollX) - parseFloat(getComputedStyle(r).width.replace("px", "")) / 2),
  4318. (n = t.pageY - (e.getBoundingClientRect().top + window.scrollY) - parseFloat(getComputedStyle(r).height.replace("px", "")) / 2),
  4319. (r.style.top = n + "px"),
  4320. (r.style.left = s + "px"),
  4321. r.classList.add("animate");
  4322. });
  4323. });
  4324. }
  4325. static dmPrint() {
  4326. let e = document.getElementById("page-container"),
  4327. t = e.className;
  4328. console.log(t), (e.classList = ""), window.print(), (e.classList = t);
  4329. }
  4330. static dmTableToolsSections() {
  4331. document.querySelectorAll(".js-table-sections:not(.js-table-sections-enabled)").forEach((e) => {
  4332. e.classList.add("js-table-sections-enabled"),
  4333. e.querySelectorAll(".js-table-sections-header > tr").forEach((t) => {
  4334. t.addEventListener("click", (i) => {
  4335. if (
  4336. "checkbox" !== i.target.type &&
  4337. "button" !== i.target.type &&
  4338. "a" !== i.target.tagName.toLowerCase() &&
  4339. "a" !== i.target.parentNode.nodeName.toLowerCase() &&
  4340. "button" !== i.target.parentNode.nodeName.toLowerCase() &&
  4341. "label" !== i.target.parentNode.nodeName.toLowerCase() &&
  4342. !i.target.parentNode.classList.contains("custom-control")
  4343. ) {
  4344. let i = t.parentNode,
  4345. s = e.querySelectorAll("tbody");
  4346. i.classList.contains("show") ||
  4347. (s &&
  4348. s.forEach((e) => {
  4349. e.classList.remove("show"), e.classList.remove("table-active");
  4350. })),
  4351. i.classList.toggle("show"),
  4352. i.classList.toggle("table-active");
  4353. }
  4354. });
  4355. });
  4356. });
  4357. }
  4358. static dmTableToolsCheckable() {
  4359. document.querySelectorAll(".js-table-checkable:not(.js-table-checkable-enabled)").forEach((e) => {
  4360. e.classList.add("js-table-checkable-enabled"),
  4361. e.querySelector("thead input[type=checkbox]").addEventListener("click", (t) => {
  4362. e.querySelectorAll("tbody input[type=checkbox]").forEach((e) => {
  4363. (e.checked = t.currentTarget.checked), this.tableToolscheckRow(e, t.currentTarget.checked);
  4364. });
  4365. }),
  4366. e.querySelectorAll("tbody input[type=checkbox], tbody input + label").forEach((t) => {
  4367. t.addEventListener("click", (i) => {
  4368. let s = e.querySelector("thead input[type=checkbox]");
  4369. t.checked ? e.querySelectorAll("tbody input[type=checkbox]:checked").length === e.querySelectorAll("tbody input[type=checkbox]").length && (s.checked = !0) : (s.checked = !1),
  4370. this.tableToolscheckRow(t, t.checked);
  4371. });
  4372. }),
  4373. e.querySelectorAll("tbody > tr").forEach((t) => {
  4374. t.addEventListener("click", (t) => {
  4375. if (
  4376. "checkbox" !== t.target.type &&
  4377. "button" !== t.target.type &&
  4378. "a" !== t.target.tagName.toLowerCase() &&
  4379. "a" !== t.target.parentNode.nodeName.toLowerCase() &&
  4380. "button" !== t.target.parentNode.nodeName.toLowerCase() &&
  4381. "label" !== t.target.parentNode.nodeName.toLowerCase() &&
  4382. !t.target.parentNode.classList.contains("custom-control")
  4383. ) {
  4384. let i = e.querySelector("thead input[type=checkbox]"),
  4385. s = t.currentTarget.querySelector("input[type=checkbox]");
  4386. (s.checked = !s.checked),
  4387. this.tableToolscheckRow(s, s.checked),
  4388. s.checked ? e.querySelectorAll("tbody input[type=checkbox]:checked").length === e.querySelectorAll("tbody input[type=checkbox]").length && (i.checked = !0) : (i.checked = !1);
  4389. }
  4390. });
  4391. });
  4392. });
  4393. }
  4394. static tableToolscheckRow(e, t) {
  4395. t ? e.closest("tr").classList.add("table-active") : e.closest("tr").classList.remove("table-active");
  4396. }
  4397. static jsCkeditor() {
  4398. let e = document.querySelector("#js-ckeditor-inline:not(.js-ckeditor-inline-enabled)"),
  4399. t = document.querySelector("#js-ckeditor:not(.js-ckeditor-enabled)");
  4400. e && (e.setAttribute("contenteditable", "true"), CKEDITOR.inline("js-ckeditor-inline"), e.classList.add("js-ckeditor-inline-enabled")), t && (CKEDITOR.replace("js-ckeditor"), t.classList.add("js-ckeditor-enabled"));
  4401. }
  4402. static jsCkeditor5() {
  4403. let e = document.querySelector("#js-ckeditor5-inline"),
  4404. t = document.querySelector("#js-ckeditor5-classic");
  4405. e &&
  4406. InlineEditor.create(document.querySelector("#js-ckeditor5-inline"))
  4407. .then((e) => {
  4408. window.editor = e;
  4409. })
  4410. .catch((e) => {
  4411. console.error("There was a problem initializing the inline editor.", e);
  4412. }),
  4413. t &&
  4414. ClassicEditor.create(document.querySelector("#js-ckeditor5-classic"))
  4415. .then((e) => {
  4416. window.editor = e;
  4417. })
  4418. .catch((e) => {
  4419. console.error("There was a problem initializing the classic editor.", e);
  4420. });
  4421. }
  4422. static jsSimpleMDE() {
  4423. let e = document.querySelectorAll(".js-simplemde");
  4424. e.forEach((e) => {
  4425. new SimpleMDE({ element: e, autoDownloadFontAwesome: !1 });
  4426. }),
  4427. e && (document.querySelector(".editor-toolbar > a.fa-header").classList.replace("fa-header", "fa-heading"), document.querySelector(".editor-toolbar > a.fa-picture-o").classList.replace("fa-picture-o", "fa-image"));
  4428. }
  4429. static jsHighlightjs() {
  4430. hljs.isHighlighted || hljs.initHighlighting();
  4431. }
  4432. static jsFlatpickr() {
  4433. document.querySelectorAll(".js-flatpickr:not(.js-flatpickr-enabled)").forEach((e) => {
  4434. e.classList.add("js-flatpickr-enabled"), flatpickr(e);
  4435. });
  4436. }
  4437. static jqAppear() {
  4438. jQuery('[data-toggle="appear"]:not(.js-appear-enabled)').each((e, t) => {
  4439. let i = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
  4440. s = jQuery(t),
  4441. n = s.data("class") || "animated fadeIn",
  4442. o = s.data("offset") || 0,
  4443. r = i < 992 ? 0 : s.data("timeout") ? s.data("timeout") : 0;
  4444. s.addClass("js-appear-enabled").appear(
  4445. () => {
  4446. setTimeout(() => {
  4447. s.removeClass("invisible").addClass(n);
  4448. }, r);
  4449. },
  4450. { accY: o }
  4451. );
  4452. });
  4453. }
  4454. static jqMagnific() {
  4455. jQuery(".js-gallery:not(.js-gallery-enabled)").each((e, t) => {
  4456. jQuery(t)
  4457. .addClass("js-gallery-enabled")
  4458. .magnificPopup({ delegate: "a.img-lightbox", type: "image", gallery: { enabled: !0 } });
  4459. });
  4460. }
  4461. static jqSlick() {
  4462. jQuery(".js-slider:not(.js-slider-enabled)").each((e, t) => {
  4463. let i = jQuery(t);
  4464. i.addClass("js-slider-enabled").slick({
  4465. arrows: i.data("arrows") || !1,
  4466. dots: i.data("dots") || !1,
  4467. slidesToShow: i.data("slides-to-show") || 1,
  4468. centerMode: i.data("center-mode") || !1,
  4469. autoplay: i.data("autoplay") || !1,
  4470. autoplaySpeed: i.data("autoplay-speed") || 3e3,
  4471. infinite: void 0 === i.data("infinite") || i.data("infinite"),
  4472. });
  4473. });
  4474. }
  4475. static jqDatepicker() {
  4476. jQuery(".js-datepicker:not(.js-datepicker-enabled)")
  4477. .add(".input-daterange:not(.js-datepicker-enabled)")
  4478. .each((e, t) => {
  4479. let i = jQuery(t);
  4480. i.addClass("js-datepicker-enabled").datepicker({
  4481. weekStart: i.data("week-start") || 0,
  4482. autoclose: i.data("autoclose") || !1,
  4483. todayHighlight: i.data("today-highlight") || !1,
  4484. startDate: i.data("start-date") || !1,
  4485. container: i.data("container") || "#page-container",
  4486. orientation: "bottom",
  4487. });
  4488. });
  4489. }
  4490. static jqMaskedInputs() {
  4491. jQuery(".js-masked-date:not(.js-masked-enabled)").mask("99/99/9999"),
  4492. jQuery(".js-masked-date-dash:not(.js-masked-enabled)").mask("99-99-9999"),
  4493. jQuery(".js-masked-phone:not(.js-masked-enabled)").mask("(999) 999-9999"),
  4494. jQuery(".js-masked-phone-ext:not(.js-masked-enabled)").mask("(999) 999-9999? x99999"),
  4495. jQuery(".js-masked-taxid:not(.js-masked-enabled)").mask("99-9999999"),
  4496. jQuery(".js-masked-ssn:not(.js-masked-enabled)").mask("999-99-9999"),
  4497. jQuery(".js-masked-pkey:not(.js-masked-enabled)").mask("a*-999-a999"),
  4498. jQuery(".js-masked-time:not(.js-masked-enabled)").mask("99:99"),
  4499. jQuery(".js-masked-date")
  4500. .add(".js-masked-date-dash")
  4501. .add(".js-masked-phone")
  4502. .add(".js-masked-phone-ext")
  4503. .add(".js-masked-taxid")
  4504. .add(".js-masked-ssn")
  4505. .add(".js-masked-pkey")
  4506. .add(".js-masked-time")
  4507. .addClass("js-masked-enabled");
  4508. }
  4509. static jqSelect2() {
  4510. jQuery(".js-select2:not(.js-select2-enabled)").each((e, t) => {
  4511. let i = jQuery(t);
  4512. i.addClass("js-select2-enabled").select2({ placeholder: i.data("placeholder") || !1, dropdownParent: document.querySelector(i.data("container") || "#page-container") });
  4513. });
  4514. }
  4515. static jqNotify() {
  4516. let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  4517. jQuery.isEmptyObject(e)
  4518. ? jQuery(".js-notify:not(.js-notify-enabled)").each((e, t) => {
  4519. jQuery(t)
  4520. .addClass("js-notify-enabled")
  4521. .on("click.pixelcave.helpers", (e) => {
  4522. let t = jQuery(e.currentTarget);
  4523. jQuery.notify(
  4524. { icon: t.data("icon") || "", message: t.data("message"), url: t.data("url") || "" },
  4525. {
  4526. element: "body",
  4527. type: t.data("type") || "info",
  4528. placement: { from: t.data("from") || "top", align: t.data("align") || "right" },
  4529. allow_dismiss: !0,
  4530. newest_on_top: !0,
  4531. showProgressbar: !1,
  4532. offset: 20,
  4533. spacing: 10,
  4534. z_index: 1033,
  4535. delay: 5e3,
  4536. timer: 1e3,
  4537. animate: { enter: "animated fadeIn", exit: "animated fadeOutDown" },
  4538. template:
  4539. '<div data-notify="container" class="col-11 col-sm-4 alert alert-{0} alert-dismissible" role="alert">\n <p class="mb-0">\n <span data-notify="icon"></span>\n <span data-notify="title">{1}</span>\n <span data-notify="message">{2}</span>\n </p>\n <div class="progress" data-notify="progressbar">\n <div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>\n </div>\n <a href="{3}" target="{4}" data-notify="url"></a>\n <a class="p-2 m-1 text-dark" href="javascript:void(0)" aria-label="Close" data-notify="dismiss">\n <i class="fa fa-times"></i>\n </a>\n</div>',
  4540. }
  4541. );
  4542. });
  4543. })
  4544. : jQuery.notify(
  4545. { icon: e.icon || "", message: e.message, url: e.url || "" },
  4546. {
  4547. element: e.element || "body",
  4548. type: e.type || "info",
  4549. placement: { from: e.from || "top", align: e.align || "right" },
  4550. allow_dismiss: !1 !== e.allow_dismiss,
  4551. newest_on_top: !1 !== e.newest_on_top,
  4552. showProgressbar: !!e.show_progress_bar,
  4553. offset: e.offset || 20,
  4554. spacing: e.spacing || 10,
  4555. z_index: e.z_index || 1033,
  4556. delay: e.delay || 5e3,
  4557. timer: e.timer || 1e3,
  4558. animate: { enter: e.animate_enter || "animated fadeIn", exit: e.animate_exit || "animated fadeOutDown" },
  4559. template:
  4560. '<div data-notify="container" class="col-11 col-sm-4 alert alert-{0} alert-dismissible" role="alert">\n <p class="mb-0">\n <span data-notify="icon"></span>\n <span data-notify="title">{1}</span>\n <span data-notify="message">{2}</span>\n </p>\n <div class="progress" data-notify="progressbar">\n <div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>\n </div>\n <a href="{3}" target="{4}" data-notify="url"></a>\n <a class="p-2 m-1 text-dark" href="javascript:void(0)" aria-label="Close" data-notify="dismiss">\n <i class="fa fa-times"></i>\n </a>\n</div>',
  4561. }
  4562. );
  4563. }
  4564. static jqEasyPieChart() {
  4565. jQuery(".js-pie-chart:not(.js-pie-chart-enabled)").each((e, t) => {
  4566. let i = jQuery(t);
  4567. i.addClass("js-pie-chart-enabled").easyPieChart({
  4568. barColor: i.data("bar-color") || "#777777",
  4569. trackColor: i.data("track-color") || "#eeeeee",
  4570. lineWidth: i.data("line-width") || 3,
  4571. size: i.data("size") || "80",
  4572. animate: i.data("animate") || 750,
  4573. scaleColor: i.data("scale-color") || !1,
  4574. });
  4575. });
  4576. }
  4577. static jqMaxlength() {
  4578. jQuery(".js-maxlength:not(.js-maxlength-enabled)").each((e, t) => {
  4579. let i = jQuery(t);
  4580. i.addClass("js-maxlength-enabled").maxlength({
  4581. alwaysShow: !!i.data("always-show"),
  4582. threshold: i.data("threshold") || 10,
  4583. warningClass: i.data("warning-class") || "badge bg-warning",
  4584. limitReachedClass: i.data("limit-reached-class") || "badge bg-danger",
  4585. placement: i.data("placement") || "bottom",
  4586. preText: i.data("pre-text") || "",
  4587. separator: i.data("separator") || "/",
  4588. postText: i.data("post-text") || "",
  4589. });
  4590. });
  4591. }
  4592. static jqRangeslider() {
  4593. jQuery(".js-rangeslider:not(.js-rangeslider-enabled)").each((e, t) => {
  4594. let i = jQuery(t);
  4595. jQuery(t)
  4596. .addClass("js-rangeslider-enabled")
  4597. .ionRangeSlider({ input_values_separator: ";", skin: i.data("skin") || "round" });
  4598. });
  4599. }
  4600. static jqPwStrength() {
  4601. jQuery(".js-pw-strength:not(.js-pw-strength-enabled)").each((e, t) => {
  4602. let i = jQuery(t),
  4603. s = i.parents(".js-pw-strength-container"),
  4604. n = jQuery(".js-pw-strength-progress", s),
  4605. o = jQuery(".js-pw-strength-feedback", s);
  4606. i.addClass("js-pw-strength-enabled").pwstrength({ ui: { container: s, viewports: { progress: n, verdict: o } } });
  4607. });
  4608. }
  4609. static jqSparkline() {
  4610. let e = this;
  4611. jQuery(".js-sparkline:not(.js-sparkline-enabled)").each((t, i) => {
  4612. let s = jQuery(i),
  4613. n = s.data("type"),
  4614. o = {},
  4615. r = {
  4616. line: () => {
  4617. (o.type = n),
  4618. (o.lineWidth = s.data("line-width") || 2),
  4619. (o.lineColor = s.data("line-color") || "#0665d0"),
  4620. (o.fillColor = s.data("fill-color") || "#0665d0"),
  4621. (o.spotColor = s.data("spot-color") || "#495057"),
  4622. (o.minSpotColor = s.data("min-spot-color") || "#495057"),
  4623. (o.maxSpotColor = s.data("max-spot-color") || "#495057"),
  4624. (o.highlightSpotColor = s.data("highlight-spot-color") || "#495057"),
  4625. (o.highlightLineColor = s.data("highlight-line-color") || "#495057"),
  4626. (o.spotRadius = s.data("spot-radius") || 2),
  4627. (o.tooltipFormat = "{{prefix}}{{y}}{{suffix}}");
  4628. },
  4629. bar: () => {
  4630. (o.type = n), (o.barWidth = s.data("bar-width") || 8), (o.barSpacing = s.data("bar-spacing") || 6), (o.barColor = s.data("bar-color") || "#0665d0"), (o.tooltipFormat = "{{prefix}}{{value}}{{suffix}}");
  4631. },
  4632. pie: () => {
  4633. (o.type = n), (o.sliceColors = ["#fadb7d", "#faad7d", "#75b0eb", "#abe37d"]), (o.highlightLighten = s.data("highlight-lighten") || 1.1), (o.tooltipFormat = "{{prefix}}{{value}}{{suffix}}");
  4634. },
  4635. tristate: () => {
  4636. (o.type = n),
  4637. (o.barWidth = s.data("bar-width") || 8),
  4638. (o.barSpacing = s.data("bar-spacing") || 6),
  4639. (o.posBarColor = s.data("pos-bar-color") || "#82b54b"),
  4640. (o.negBarColor = s.data("neg-bar-color") || "#e04f1a");
  4641. },
  4642. };
  4643. r[n]
  4644. ? (r[n](),
  4645. "line" === n &&
  4646. ((s.data("chart-range-min") >= 0 || s.data("chart-range-min")) && (o.chartRangeMin = s.data("chart-range-min")),
  4647. (s.data("chart-range-max") >= 0 || s.data("chart-range-max")) && (o.chartRangeMax = s.data("chart-range-max"))),
  4648. (o.width = s.data("width") || "120px"),
  4649. (o.height = s.data("height") || "80px"),
  4650. (o.tooltipPrefix = s.data("tooltip-prefix") ? s.data("tooltip-prefix") + " " : ""),
  4651. (o.tooltipSuffix = s.data("tooltip-suffix") ? " " + s.data("tooltip-suffix") : ""),
  4652. "100%" === o.width
  4653. ? or ||
  4654. ((or = !0),
  4655. jQuery(window).on("resize.pixelcave.helpers.sparkline", function (t) {
  4656. clearTimeout(nr),
  4657. (nr = setTimeout(() => {
  4658. e.sparkline();
  4659. }, 500));
  4660. }))
  4661. : jQuery(i).addClass("js-sparkline-enabled"),
  4662. jQuery(i).sparkline(s.data("points") || [0], o))
  4663. : console.log("[jQuery Sparkline JS Helper] Please add a correct type (line, bar, pie or tristate) in all your elements with 'js-sparkline' class.");
  4664. });
  4665. }
  4666. static jqValidation() {
  4667. jQuery.validator.setDefaults({
  4668. errorClass: "invalid-feedback animated fadeIn",
  4669. errorElement: "div",
  4670. errorPlacement: (e, t) => {
  4671. jQuery(t).addClass("is-invalid"), jQuery(t).parents("div:not(.input-group)").first().append(e);
  4672. },
  4673. highlight: (e) => {
  4674. jQuery(e).parents("div:not(.input-group)").first().find(".is-invalid").removeClass("is-invalid").addClass("is-invalid");
  4675. },
  4676. success: (e) => {
  4677. jQuery(e).parents("div:not(.input-group)").first().find(".is-invalid").removeClass("is-invalid"), jQuery(e).remove();
  4678. },
  4679. }),
  4680. jQuery.validator.addMethod(
  4681. "emailWithDot",
  4682. function (e, t) {
  4683. return (
  4684. this.optional(t) ||
  4685. /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i.test(
  4686. e
  4687. )
  4688. );
  4689. },
  4690. "Please enter a valid email address"
  4691. );
  4692. }
  4693. }
  4694. (window.bootstrap = t), (window.SimpleBar = sr);
  4695. class ar {
  4696. constructor() {
  4697. this.onLoad(() => this._uiInit());
  4698. }
  4699. _uiInit() {
  4700. (this._lHtml = document.documentElement),
  4701. (this._lBody = document.body),
  4702. (this._lpageLoader = document.getElementById("page-loader")),
  4703. (this._lPage = document.getElementById("page-container")),
  4704. (this._lSidebar = document.getElementById("sidebar")),
  4705. (this._lSidebarScrollCon = this._lSidebar && this._lSidebar.querySelector(".js-sidebar-scroll")),
  4706. (this._lSideOverlay = document.getElementById("side-overlay")),
  4707. (this._lResize = !1),
  4708. (this._lHeader = document.getElementById("page-header")),
  4709. (this._lHeaderSearch = document.getElementById("page-header-search")),
  4710. (this._lHeaderSearchInput = document.getElementById("page-header-search-input")),
  4711. (this._lHeaderLoader = document.getElementById("page-header-loader")),
  4712. (this._lMain = document.getElementById("main-container")),
  4713. (this._lFooter = document.getElementById("page-footer")),
  4714. (this._lSidebarScroll = !1),
  4715. (this._lSideOverlayScroll = !1),
  4716. this._uiHandleTheme(),
  4717. this._uiHandleDarkMode(),
  4718. this._uiHandleSidebars(),
  4719. this._uiHandleHeader(),
  4720. this._uiHandleNav(),
  4721. this._uiApiLayout(),
  4722. this._uiApiBlocks(),
  4723. this.helpers(["bs-tooltip", "bs-popover", "dm-toggle-class", "dm-year-copy", "dm-ripple"]),
  4724. this._uiHandlePageLoader();
  4725. }
  4726. _uiHandleSidebars() {
  4727. let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "init",
  4728. t = this;
  4729. (t._lSidebar || t._lSideOverlay) &&
  4730. ("init" === e
  4731. ? (t._lPage.classList.add("side-trans-enabled"),
  4732. window.addEventListener("resize", () => {
  4733. clearTimeout(t._lResize),
  4734. t._lPage.classList.remove("side-trans-enabled"),
  4735. (t._lResize = setTimeout(() => {
  4736. t._lPage.classList.add("side-trans-enabled");
  4737. }, 500));
  4738. }),
  4739. this._uiHandleSidebars("custom-scroll"))
  4740. : (e = "custom-scroll") &&
  4741. t._lPage.classList.contains("side-scroll") &&
  4742. (t._lSidebar && !t._lSidebarScroll && (t._lSidebarScroll = new sr(t._lSidebarScrollCon)), t._lSideOverlay && !t._lSideOverlayScroll && (t._lSideOverlayScroll = new sr(t._lSideOverlay))));
  4743. }
  4744. _uiHandleHeader() {
  4745. let e = this;
  4746. e._lPage.classList.contains("page-header-glass") &&
  4747. e._lPage.classList.contains("page-header-fixed") &&
  4748. (window.addEventListener("scroll", (t) => {
  4749. window.scrollY > 60 ? e._lPage.classList.add("page-header-scroll") : e._lPage.classList.remove("page-header-scroll");
  4750. }),
  4751. window.dispatchEvent(new CustomEvent("scroll")));
  4752. }
  4753. _uiHandleNav() {
  4754. let e = document.querySelectorAll('[data-toggle="submenu"]');
  4755. e &&
  4756. e.forEach((e) => {
  4757. e.addEventListener("click", (t) => {
  4758. t.preventDefault();
  4759. let i = e.closest(".nav-main");
  4760. if (!((window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 991 && i.classList.contains("nav-main-horizontal") && i.classList.contains("nav-main-hover"))) {
  4761. let t = e.closest("li");
  4762. t.classList.contains("open")
  4763. ? (t.classList.remove("open"), e.setAttribute("aria-expanded", "false"))
  4764. : (Array.from(e.closest("ul").children).forEach((e) => {
  4765. e.classList.remove("open");
  4766. }),
  4767. t.classList.add("open"),
  4768. e.setAttribute("aria-expanded", "true"));
  4769. }
  4770. return !1;
  4771. });
  4772. });
  4773. }
  4774. _uiHandlePageLoader() {
  4775. let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "hide",
  4776. t = arguments.length > 1 ? arguments[1] : void 0;
  4777. if ("show" === e)
  4778. if (this._lpageLoader) t && ((this._lpageLoader.className = ""), this._lpageLoader.classList.add(t)), this._lpageLoader.classList.add("show");
  4779. else {
  4780. let e = document.createElement("div");
  4781. (e.id = "page-loader"), t && e.classList.add(t), e.classList.add("show"), this._lPage.insertBefore(e, this._lPage.firstChild), (this._lpageLoader = document.getElementById("page-loader"));
  4782. }
  4783. else "hide" === e && this._lpageLoader && this._lpageLoader.classList.remove("show");
  4784. }
  4785. _uiHandleDarkMode() {
  4786. let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "init",
  4787. t = this;
  4788. if (
  4789. ("init" !== e ||
  4790. t._lPage.classList.contains("dark-mode") ||
  4791. (t._lPage.classList.contains("sidebar-dark") ? localStorage.setItem("dashmixDefaultsSidebarDark", !0) : localStorage.removeItem("dashmixDefaultsSidebarDark"),
  4792. t._lPage.classList.contains("page-header-dark") ? localStorage.setItem("dashmixDefaultsPageHeaderDark", !0) : localStorage.removeItem("dashmixDefaultsPageHeaderDark")),
  4793. t._lPage.classList.contains("remember-theme"))
  4794. ) {
  4795. let i = localStorage.getItem("dashmixDarkMode") || !1;
  4796. "init" === e
  4797. ? i
  4798. ? (t._lPage.classList.add("sidebar-dark"), t._lPage.classList.add("page-header-dark"), t._lPage.classList.add("dark-mode"))
  4799. : "init" === e && t._lPage.classList.remove("dark-mode")
  4800. : "on" === e
  4801. ? localStorage.setItem("dashmixDarkMode", !0)
  4802. : "off" === e && localStorage.removeItem("dashmixDarkMode");
  4803. } else "init" === e && localStorage.removeItem("dashmixDarkMode");
  4804. }
  4805. _uiHandleTheme() {
  4806. let e = this,
  4807. t = document.getElementById("css-theme"),
  4808. i = !!this._lPage.classList.contains("remember-theme");
  4809. if (i) {
  4810. let i = localStorage.getItem("dashmixThemeName") || !1;
  4811. i && e._uiUpdateTheme(t, i), (t = document.getElementById("css-theme"));
  4812. } else localStorage.removeItem("dashmixThemeName");
  4813. document.querySelectorAll('[data-toggle="theme"][data-theme="' + (t ? t.getAttribute("href") : "default") + '"]').forEach((e) => {
  4814. e.classList.add("active");
  4815. }),
  4816. document.querySelectorAll('[data-toggle="theme"]').forEach((s) => {
  4817. s.addEventListener("click", (n) => {
  4818. n.preventDefault();
  4819. let o = s.dataset.theme;
  4820. document.querySelectorAll('[data-toggle="theme"]').forEach((e) => {
  4821. e.classList.remove("active");
  4822. }),
  4823. document.querySelector('[data-toggle="theme"][data-theme="' + o + '"]').classList.add("active"),
  4824. e._uiUpdateTheme(t, o),
  4825. (t = document.getElementById("css-theme")),
  4826. i && localStorage.setItem("dashmixThemeName", o);
  4827. });
  4828. });
  4829. }
  4830. _uiUpdateTheme(e, t) {
  4831. if ("default" === t) e && e.parentNode.removeChild(e);
  4832. else if (e) e.setAttribute("href", t);
  4833. else {
  4834. let e = document.createElement("link");
  4835. (e.id = "css-theme"), e.setAttribute("rel", "stylesheet"), e.setAttribute("href", t), document.getElementById("css-main").insertAdjacentElement("afterend", e);
  4836. }
  4837. }
  4838. _uiApiLayout() {
  4839. let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "init",
  4840. t = this,
  4841. i = {
  4842. init: () => {
  4843. let e = document.querySelectorAll('[data-toggle="layout"]');
  4844. if (
  4845. (e &&
  4846. e.forEach((e) => {
  4847. e.addEventListener("click", (i) => {
  4848. t._uiApiLayout(e.dataset.action);
  4849. });
  4850. }),
  4851. t._lPage.classList.contains("enable-page-overlay"))
  4852. ) {
  4853. let e = document.createElement("div");
  4854. (e.id = "page-overlay"),
  4855. t._lPage.insertBefore(e, t._lPage.firstChild),
  4856. document.getElementById("page-overlay").addEventListener("click", (e) => {
  4857. t._uiApiLayout("side_overlay_close");
  4858. });
  4859. }
  4860. },
  4861. sidebar_pos_toggle: () => {
  4862. t._lPage.classList.toggle("sidebar-r");
  4863. },
  4864. sidebar_pos_left: () => {
  4865. t._lPage.classList.remove("sidebar-r");
  4866. },
  4867. sidebar_pos_right: () => {
  4868. t._lPage.classList.add("sidebar-r");
  4869. },
  4870. sidebar_toggle: () => {
  4871. window.innerWidth > 991 ? t._lPage.classList.toggle("sidebar-o") : t._lPage.classList.toggle("sidebar-o-xs");
  4872. },
  4873. sidebar_open: () => {
  4874. window.innerWidth > 991 ? t._lPage.classList.add("sidebar-o") : t._lPage.classList.add("sidebar-o-xs");
  4875. },
  4876. sidebar_close: () => {
  4877. window.innerWidth > 991 ? t._lPage.classList.remove("sidebar-o") : t._lPage.classList.remove("sidebar-o-xs");
  4878. },
  4879. sidebar_mini_toggle: () => {
  4880. window.innerWidth > 991 && t._lPage.classList.toggle("sidebar-mini");
  4881. },
  4882. sidebar_mini_on: () => {
  4883. window.innerWidth > 991 && t._lPage.classList.add("sidebar-mini");
  4884. },
  4885. sidebar_mini_off: () => {
  4886. window.innerWidth > 991 && t._lPage.classList.remove("sidebar-mini");
  4887. },
  4888. sidebar_style_toggle: () => {
  4889. t._lPage.classList.contains("sidebar-dark") ? t._uiApiLayout("sidebar_style_light") : t._uiApiLayout("sidebar_style_dark");
  4890. },
  4891. sidebar_style_dark: () => {
  4892. t._lPage.classList.add("sidebar-dark"), localStorage.setItem("dashmixDefaultsSidebarDark", !0);
  4893. },
  4894. sidebar_style_light: () => {
  4895. t._lPage.classList.remove("sidebar-dark"), t._lPage.classList.remove("dark-mode"), localStorage.removeItem("dashmixDefaultsSidebarDark");
  4896. },
  4897. side_overlay_toggle: () => {
  4898. t._lPage.classList.contains("side-overlay-o") ? t._uiApiLayout("side_overlay_close") : t._uiApiLayout("side_overlay_open");
  4899. },
  4900. side_overlay_open: () => {
  4901. document.addEventListener("keydown", (e) => {
  4902. ("Esc" !== e.key && "Escape" !== e.key) || t._uiApiLayout("side_overlay_close");
  4903. }),
  4904. t._lPage.classList.add("side-overlay-o");
  4905. },
  4906. side_overlay_close: () => {
  4907. t._lPage.classList.remove("side-overlay-o");
  4908. },
  4909. side_overlay_mode_hover_toggle: () => {
  4910. t._lPage.classList.toggle("side-overlay-hover");
  4911. },
  4912. side_overlay_mode_hover_on: () => {
  4913. t._lPage.classList.add("side-overlay-hover");
  4914. },
  4915. side_overlay_mode_hover_off: () => {
  4916. t._lPage.classList.remove("side-overlay-hover");
  4917. },
  4918. header_glass_toggle: () => {
  4919. t._lPage.classList.toggle("page-header-glass"), t._uiHandleHeader();
  4920. },
  4921. header_glass_on: () => {
  4922. t._lPage.classList.add("page-header-glass"), t._uiHandleHeader();
  4923. },
  4924. header_glass_off: () => {
  4925. t._lPage.classList.remove("page-header-glass"), t._uiHandleHeader();
  4926. },
  4927. header_mode_toggle: () => {
  4928. t._lPage.classList.toggle("page-header-fixed");
  4929. },
  4930. header_mode_static: () => {
  4931. t._lPage.classList.remove("page-header-fixed");
  4932. },
  4933. header_mode_fixed: () => {
  4934. t._lPage.classList.add("page-header-fixed");
  4935. },
  4936. header_style_toggle: () => {
  4937. t._lPage.classList.contains("page-header-dark") ? t._uiApiLayout("header_style_light") : t._uiApiLayout("header_style_dark");
  4938. },
  4939. header_style_dark: () => {
  4940. t._lPage.classList.add("page-header-dark"), localStorage.setItem("dashmixDefaultsPageHeaderDark", !0);
  4941. },
  4942. header_style_light: () => {
  4943. t._lPage.classList.remove("page-header-dark"), t._lPage.classList.remove("dark-mode"), localStorage.removeItem("dashmixDefaultsPageHeaderDark");
  4944. },
  4945. header_search_on: () => {
  4946. t._lHeaderSearch.classList.add("show"),
  4947. t._lHeaderSearchInput.focus(),
  4948. document.addEventListener("keydown", (e) => {
  4949. ("Esc" !== e.key && "Escape" !== e.key) || t._uiApiLayout("header_search_off");
  4950. });
  4951. },
  4952. header_search_off: () => {
  4953. t._lHeaderSearch.classList.remove("show"), t._lHeaderSearchInput.blur();
  4954. },
  4955. header_loader_on: () => {
  4956. t._lHeaderLoader.classList.add("show");
  4957. },
  4958. header_loader_off: () => {
  4959. t._lHeaderLoader.classList.remove("show");
  4960. },
  4961. dark_mode_toggle: () => {
  4962. t._lPage.classList.contains("dark-mode") ? t._uiApiLayout("dark_mode_off") : t._uiApiLayout("dark_mode_on");
  4963. },
  4964. dark_mode_on: () => {
  4965. t._lPage.classList.add("sidebar-dark"), t._lPage.classList.add("page-header-dark"), t._lPage.classList.add("dark-mode"), this._uiHandleDarkMode("on");
  4966. },
  4967. dark_mode_off: () => {
  4968. localStorage.getItem("dashmixDefaultsSidebarDark") || t._lPage.classList.remove("sidebar-dark"),
  4969. localStorage.getItem("dashmixDefaultsPageHeaderDark") || t._lPage.classList.remove("page-header-dark"),
  4970. t._lPage.classList.remove("dark-mode"),
  4971. this._uiHandleDarkMode("off");
  4972. },
  4973. content_layout_toggle: () => {
  4974. t._lPage.classList.contains("main-content-boxed")
  4975. ? t._uiApiLayout("content_layout_narrow")
  4976. : t._lPage.classList.contains("main-content-narrow")
  4977. ? t._uiApiLayout("content_layout_full_width")
  4978. : t._uiApiLayout("content_layout_boxed");
  4979. },
  4980. content_layout_boxed: () => {
  4981. t._lPage.classList.remove("main-content-narrow"), t._lPage.classList.add("main-content-boxed");
  4982. },
  4983. content_layout_narrow: () => {
  4984. t._lPage.classList.remove("main-content-boxed"), t._lPage.classList.add("main-content-narrow");
  4985. },
  4986. content_layout_full_width: () => {
  4987. t._lPage.classList.remove("main-content-boxed"), t._lPage.classList.remove("main-content-narrow");
  4988. },
  4989. };
  4990. i[e] && i[e]();
  4991. }
  4992. _uiApiBlocks() {
  4993. let e,
  4994. t,
  4995. i,
  4996. s = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "init",
  4997. n = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
  4998. o = "si-size-fullscreen",
  4999. r = "si-size-actual",
  5000. a = "si-arrow-up",
  5001. l = "si-arrow-down",
  5002. c = {
  5003. init: () => {
  5004. document.querySelectorAll('[data-toggle="block-option"][data-action="fullscreen_toggle"]').forEach((e) => {
  5005. e.innerHTML = '<i class="si ' + (e.closest(".block").classList.contains("block-mode-fullscreen") ? r : o) + '"></i>';
  5006. }),
  5007. document.querySelectorAll('[data-toggle="block-option"][data-action="content_toggle"]').forEach((e) => {
  5008. e.innerHTML = '<i class="si ' + (e.closest(".block").classList.contains("block-mode-hidden") ? l : a) + '"></i>';
  5009. }),
  5010. document.querySelectorAll('[data-toggle="block-option"]').forEach((e) => {
  5011. e.addEventListener("click", (t) => {
  5012. this._uiApiBlocks(e.dataset.action, e.closest(".block"));
  5013. });
  5014. });
  5015. },
  5016. fullscreen_toggle: () => {
  5017. e.classList.remove("block-mode-pinned"),
  5018. e.classList.toggle("block-mode-fullscreen"),
  5019. t && (e.classList.contains("block-mode-fullscreen") ? t && t.querySelector("i").classList.replace(o, r) : t && t.querySelector("i").classList.replace(r, o));
  5020. },
  5021. fullscreen_on: () => {
  5022. e.classList.remove("block-mode-pinned"), e.classList.add("block-mode-fullscreen"), t && t.querySelector("i").classList.replace(o, r);
  5023. },
  5024. fullscreen_off: () => {
  5025. e.classList.remove("block-mode-fullscreen"), t && t.querySelector("i").classList.replace(r, o);
  5026. },
  5027. content_toggle: () => {
  5028. e.classList.toggle("block-mode-hidden"), i && (e.classList.contains("block-mode-hidden") ? i.querySelector("i").classList.replace(a, l) : i.querySelector("i").classList.replace(l, a));
  5029. },
  5030. content_hide: () => {
  5031. e.classList.add("block-mode-hidden"), i && i.querySelector("i").classList.replace(a, l);
  5032. },
  5033. content_show: () => {
  5034. e.classList.remove("block-mode-hidden"), i && i.querySelector("i").classList.replace(l, a);
  5035. },
  5036. state_toggle: () => {
  5037. e.classList.toggle("block-mode-loading"),
  5038. e.querySelector('[data-toggle="block-option"][data-action="state_toggle"][data-action-mode="demo"]') &&
  5039. setTimeout(() => {
  5040. e.classList.remove("block-mode-loading");
  5041. }, 2e3);
  5042. },
  5043. state_loading: () => {
  5044. e.classList.add("block-mode-loading");
  5045. },
  5046. state_normal: () => {
  5047. e.classList.remove("block-mode-loading");
  5048. },
  5049. pinned_toggle: () => {
  5050. e.classList.remove("block-mode-fullscreen"), e.classList.toggle("block-mode-pinned");
  5051. },
  5052. pinned_on: () => {
  5053. e.classList.remove("block-mode-fullscreen"), e.classList.add("block-mode-pinned");
  5054. },
  5055. pinned_off: () => {
  5056. e.classList.remove("block-mode-pinned");
  5057. },
  5058. close: () => {
  5059. e.classList.add("d-none");
  5060. },
  5061. open: () => {
  5062. e.classList.remove("d-none");
  5063. },
  5064. };
  5065. "init" === s
  5066. ? c[s]()
  5067. : ((e = n instanceof Element ? n : document.querySelector("".concat(n))),
  5068. e && ((t = e.querySelector('[data-toggle="block-option"][data-action="fullscreen_toggle"]')), (i = e.querySelector('[data-toggle="block-option"][data-action="content_toggle"]')), c[s] && c[s]()));
  5069. }
  5070. onLoad(e) {
  5071. "loading" != document.readyState ? e() : document.addEventListener("DOMContentLoaded", e);
  5072. }
  5073. init() {
  5074. this._uiInit();
  5075. }
  5076. layout(e) {
  5077. this._uiApiLayout(e);
  5078. }
  5079. block(e, t) {
  5080. this._uiApiBlocks(e, t);
  5081. }
  5082. loader(e, t) {
  5083. this._uiHandlePageLoader(e, t);
  5084. }
  5085. helpers(e) {
  5086. let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
  5087. rr.run(e, t);
  5088. }
  5089. helpersOnLoad(e) {
  5090. let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
  5091. this.onLoad(() => rr.run(e, t));
  5092. }
  5093. }
  5094. window.Dashmix = new (class extends ar {
  5095. constructor() {
  5096. super();
  5097. }
  5098. })();
  5099. })();
  5100. })();