Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer - Version 2.5.0

Version Description

Release date: 20 September 2021

Changelog: - New Import and Export functions. You can now import whole groups and export buttons with group settings! - New Label Position option. You can now manually set your label to the left or right side of the button! - You can now choose to open Website URL on new tab, new window, popup or same tab! - Added an option to make the Timeout trigger every time. - Default values now change depending on your menu style. - Added more Buttonizer tips. - Updated our tooltips to make it less disruptive. - Fixed Text Only menu style alignment. - Removed Messenger mobile workaround. - Fixed Messenger widget going outside of mobile screen. - Added an option to re-generate a new popup ID for Elementor Popup and Popup Maker. - Fixed an issue where users can input symbols onto number only options. - Some additional fixes.

If you experience bugs, problems or you just have some feedback, let us know on our Buttonizer community!

Download this release

Release Info

Developer buttonizer
Plugin Icon wp plugin Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer
Version 2.5.0
Comparing to
See all releases

Code changes from version 2.4.3 to 2.5.0

app/Admin/Translations.php CHANGED
@@ -432,7 +432,7 @@ class Translations {
432
  'button_style' => __('Button style', 'buttonizer-multifunctional-button'),
433
  'button_icon' => __('Button icon', 'buttonizer-multifunctional-button'),
434
  'label_style' => __('Label style', 'buttonizer-multifunctional-button'),
435
- 'background' => __('background', 'buttonizer-multifunctional-button'),
436
  'icon_style' => __('Icon Style', 'buttonizer-multifunctional-button'),
437
  'image_style' => __('Image style', 'buttonizer-multifunctional-button'),
438
  'show_or_hide' => __('Show or hide', 'buttonizer-multifunctional-button'),
@@ -541,6 +541,17 @@ class Translations {
541
  'pulse' => __('Pulse', 'buttonizer-multifunctional-button'),
542
  ]
543
  ],
 
 
 
 
 
 
 
 
 
 
 
544
  'menu_position' => [
545
  'title' => __('Position', 'buttonizer-multifunctional-button'),
546
  'description' => __('Change the position of this button group.', 'buttonizer-multifunctional-button'),
@@ -671,6 +682,7 @@ class Translations {
671
  'timeout_scroll' => [
672
  'timeout' => [
673
  'title' => __('Timeout', 'buttonizer-multifunctional-button'),
 
674
  'milliseconds' => __('Milliseconds', 'buttonizer-multifunctional-button'),
675
  'info' => sprintf(
676
  // translators: %s will become the value of the setting
@@ -682,10 +694,9 @@ class Translations {
682
  'title' => __('Scroll', 'buttonizer-multifunctional-button'),
683
  'from_top' => __('From top', 'buttonizer-multifunctional-button'),
684
  'show_after' => __('Show Buttonizer after 0 seconds', 'buttonizer-multifunctional-button'),
685
- 'visibility' => __('Starting visibility', 'buttonizer-multifunctional-button'),
686
  'hide' => __('Hide', 'buttonizer-multifunctional-button'),
687
  'show' => __('Show', 'buttonizer-multifunctional-button'),
688
- 'info' => __('Scroll <b>0%</b> from top of page to <b>SHOW</b> group', 'buttonizer-multifunctional-button'),
689
  'info' => sprintf(
690
  // translators: %s will become the value of the setting
691
  __('Scroll <b>%1$s%2$s</b> from top of page to <b>%3$s</b> group', 'buttonizer-multifunctional-button'),
@@ -723,6 +734,12 @@ class Translations {
723
  ]
724
  ],
725
 
 
 
 
 
 
 
726
  'button_action' => [
727
  'title' => __('Button action', 'buttonizer-multifunctional-button'),
728
  'description' => __('Choose a click action for this button.', 'buttonizer-multifunctional-button'),
@@ -867,9 +884,8 @@ class Translations {
867
  'body' => __('Body', 'buttonizer-multifunctional-button'),
868
  ]
869
  ],
870
- 'open_new_tab' => [
871
- 'title' => __('Open new tab', 'buttonizer-multifunctional-button'),
872
- 'description' => __('When the button is clicked, open in new tab.', 'buttonizer-multifunctional-button'),
873
  ],
874
  'rel_attributes' => [
875
  'title' => __('Rel attributes', 'buttonizer-multifunctional-button'),
@@ -1346,10 +1362,41 @@ class Translations {
1346
  */
1347
  private function import_export() {
1348
  return [
1349
- 'export_button' => __('Export button', 'buttonizer-multifunctional-button'),
1350
- 'import_button' => __('Import button', 'buttonizer-multifunctional-button'),
1351
- 'export_group' => __('Export group', 'buttonizer-multifunctional-button'),
1352
- 'import_group' => __('Import group', 'buttonizer-multifunctional-button'),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1353
  ];
1354
  }
1355
 
@@ -1365,21 +1412,24 @@ class Translations {
1365
  'tip_3' => __('Give your buttons a color', 'buttonizer-multifunctional-button'),
1366
  'tip_4' => __('A button can only have one action, but you can choose out more than 25 actions!', 'buttonizer-multifunctional-button'),
1367
  'tip_5' => __('Turn off these tips in settings', 'buttonizer-multifunctional-button'),
1368
- 'tip_6' => __('Buttonizer will only show 7 buttons per page as that\'s the limit of Material Design', 'buttonizer-multifunctional-button'),
1369
  'tip_7' => __('Paste the HEX-code in the colorpicker if you want to use a specific color', 'buttonizer-multifunctional-button'),
1370
  'tip_8' => __('Playing smart with \'Show on desktop\' and \'Show on mobile\' will give you up to 14 buttons per page!', 'buttonizer-multifunctional-button'),
1371
- 'tip_9' => __('You can use page rules to show or hide buttons on certain pages', 'buttonizer-multifunctional-button'),
1372
  'tip_10' => __('You can use the social share button action to let a visitor share your webpage', 'buttonizer-multifunctional-button'),
1373
  'tip_11' => __('Do you need a tool-tip? ;)', 'buttonizer-multifunctional-button'),
1374
- 'tip_12' => __('Click on the buttons to manage their settings', 'buttonizer-multifunctional-button'),
1375
- 'tip_13' => __('You can style the main big button by editting the group', 'buttonizer-multifunctional-button'),
1376
- 'tip_14' => __('You can add a class or id HTML-attribute to a group and a button', 'buttonizer-multifunctional-button'),
1377
- 'tip_15' => __('Want to make a new similar button? Duplicate your button!', 'buttonizer-multifunctional-button'),
1378
- 'tip_16' => __('If you have a great tip, let us know! We\'ll add it :)', 'buttonizer-multifunctional-button'),
1379
- 'tip_17' => __('Pssst, click on the group/button name on top', 'buttonizer-multifunctional-button'),
1380
- 'tip_18' => __('Exit Intent... This is where the fun begins!', 'buttonizer-multifunctional-button'),
1381
- 'tip_19' => __('Double click on Buzzer! for a suprise ;)', 'buttonizer-multifunctional-button'),
1382
- 'tip_20' => __('Click on me for more tips!', 'buttonizer-multifunctional-button'),
 
 
 
1383
  ];
1384
  }
1385
 
432
  'button_style' => __('Button style', 'buttonizer-multifunctional-button'),
433
  'button_icon' => __('Button icon', 'buttonizer-multifunctional-button'),
434
  'label_style' => __('Label style', 'buttonizer-multifunctional-button'),
435
+ 'background' => __('Background', 'buttonizer-multifunctional-button'),
436
  'icon_style' => __('Icon Style', 'buttonizer-multifunctional-button'),
437
  'image_style' => __('Image style', 'buttonizer-multifunctional-button'),
438
  'show_or_hide' => __('Show or hide', 'buttonizer-multifunctional-button'),
541
  'pulse' => __('Pulse', 'buttonizer-multifunctional-button'),
542
  ]
543
  ],
544
+ 'label_position' => [
545
+ 'title' => __('Position', 'buttonizer-multifunctional-button'),
546
+ 'description' => __('Label position', 'buttonizer-multifunctional-button'),
547
+ 'warning' => __('Make sure to add a label', 'buttonizer-multifunctional-button'),
548
+ 'directions' => [
549
+ 'left' => __('Left', 'buttonizer-multifunctional-button'),
550
+ 'auto' => __('Auto', 'buttonizer-multifunctional-button'),
551
+ 'right' => __('Right', 'buttonizer-multifunctional-button'),
552
+
553
+ ]
554
+ ],
555
  'menu_position' => [
556
  'title' => __('Position', 'buttonizer-multifunctional-button'),
557
  'description' => __('Change the position of this button group.', 'buttonizer-multifunctional-button'),
682
  'timeout_scroll' => [
683
  'timeout' => [
684
  'title' => __('Timeout', 'buttonizer-multifunctional-button'),
685
+ 'trigger_once' => __('Trigger only once', 'buttonizer-multifunctional-button'),
686
  'milliseconds' => __('Milliseconds', 'buttonizer-multifunctional-button'),
687
  'info' => sprintf(
688
  // translators: %s will become the value of the setting
694
  'title' => __('Scroll', 'buttonizer-multifunctional-button'),
695
  'from_top' => __('From top', 'buttonizer-multifunctional-button'),
696
  'show_after' => __('Show Buttonizer after 0 seconds', 'buttonizer-multifunctional-button'),
697
+ 'visibility' => __('Hide group as starting visibility', 'buttonizer-multifunctional-button'),
698
  'hide' => __('Hide', 'buttonizer-multifunctional-button'),
699
  'show' => __('Show', 'buttonizer-multifunctional-button'),
 
700
  'info' => sprintf(
701
  // translators: %s will become the value of the setting
702
  __('Scroll <b>%1$s%2$s</b> from top of page to <b>%3$s</b> group', 'buttonizer-multifunctional-button'),
734
  ]
735
  ],
736
 
737
+ 'popups' => [
738
+ 'generate' => __('Generate new popup id', 'buttonizer-multifunctional-button'),
739
+ 'elementor_guide' => __('Copy and paste this into your Elementor Popup\'s <b>"Open By Selector"</b> option. <br />', 'buttonizer-multifunctional-button'),
740
+ 'popup_maker_guide' => __('In your <b>Popup Settings</b>, add a new <b>"Click to Open"</b> trigger and copy and paste this code in <b>"Extra CSS Selectors"</b> <br />', 'buttonizer-multifunctional-button'),
741
+ ],
742
+
743
  'button_action' => [
744
  'title' => __('Button action', 'buttonizer-multifunctional-button'),
745
  'description' => __('Choose a click action for this button.', 'buttonizer-multifunctional-button'),
884
  'body' => __('Body', 'buttonizer-multifunctional-button'),
885
  ]
886
  ],
887
+ 'open_url' => [
888
+ 'title' => __('Open URL in: ', 'buttonizer-multifunctional-button'),
 
889
  ],
890
  'rel_attributes' => [
891
  'title' => __('Rel attributes', 'buttonizer-multifunctional-button'),
1362
  */
1363
  private function import_export() {
1364
  return [
1365
+ 'import' => [
1366
+ 'title' => __('Import', 'buttonizer-multifunctional-button'),
1367
+ 'select_please' => __('Please select a Buttonizer export file.', 'buttonizer-multifunctional-button'),
1368
+ 'select_click' => __('Click here to select a file', 'buttonizer-multifunctional-button'),
1369
+ 'into_group' => [
1370
+ 'button' => __('Import into this group', 'buttonizer-multifunctional-button'),
1371
+ 'text' => __('Import buttons or replace this group.', 'buttonizer-multifunctional-button'),
1372
+ ],
1373
+ 'new_group' => [
1374
+ 'button' => __('Import group', 'buttonizer-multifunctional-button'),
1375
+ 'text' => __('Import a new group.', 'buttonizer-multifunctional-button'),
1376
+ ],
1377
+ 'reupload' => __('Re-upload file', 'buttonizer-multifunctional-button'),
1378
+ 'drag_drop' => __('Drop export file here', 'buttonizer-multifunctional-button'),
1379
+ 'warning' => [
1380
+ 'replace' => __('You are about to <b>replace</b> this group with:', 'buttonizer-multifunctional-button'),
1381
+ 'preview' => __('What you are about to import:', 'buttonizer-multifunctional-button'),
1382
+ 'invalid' => __('This file is not a Buttonizer file.', 'buttonizer-multifunctional-button'),
1383
+ 'malformed' => __('The file you have selected is malformed or the file is not a Buttonizer file.', 'buttonizer-multifunctional-button'),
1384
+ 'no_buttons' => __('This group does not have any buttons to import.', 'buttonizer-multifunctional-button'),
1385
+ ],
1386
+ ],
1387
+ "properties" => __('properties', 'buttonizer-multifunctional-button'),
1388
+ 'export' => [
1389
+ 'title' => __('Export', 'buttonizer-multifunctional-button'),
1390
+ 'export_button' => __('Export button', 'buttonizer-multifunctional-button'),
1391
+ 'export_group' => __('Export group', 'buttonizer-multifunctional-button'),
1392
+ 'merge' => __('Merge with group style', 'buttonizer-multifunctional-button'),
1393
+ 'warning' => [
1394
+ 'preview' => __('What you are about to export:', 'buttonizer-multifunctional-button'),
1395
+ 'no_buttons' => __('This group does not have any buttons to export.', 'buttonizer-multifunctional-button'),
1396
+ 'no_data' => __('This button does not have any data to export.', 'buttonizer-multifunctional-button'),
1397
+ ],
1398
+ ],
1399
+ 'import_export' => __('Import & Export', 'buttonizer-multifunctional-button'),
1400
  ];
1401
  }
1402
 
1412
  'tip_3' => __('Give your buttons a color', 'buttonizer-multifunctional-button'),
1413
  'tip_4' => __('A button can only have one action, but you can choose out more than 25 actions!', 'buttonizer-multifunctional-button'),
1414
  'tip_5' => __('Turn off these tips in settings', 'buttonizer-multifunctional-button'),
1415
+ 'tip_6' => __('You can show more than 7 buttons by enabling it in Preferences ;)', 'buttonizer-multifunctional-button'),
1416
  'tip_7' => __('Paste the HEX-code in the colorpicker if you want to use a specific color', 'buttonizer-multifunctional-button'),
1417
  'tip_8' => __('Playing smart with \'Show on desktop\' and \'Show on mobile\' will give you up to 14 buttons per page!', 'buttonizer-multifunctional-button'),
1418
+ 'tip_9' => __('You can use Page Rules to show or hide buttons on certain pages', 'buttonizer-multifunctional-button'),
1419
  'tip_10' => __('You can use the social share button action to let a visitor share your webpage', 'buttonizer-multifunctional-button'),
1420
  'tip_11' => __('Do you need a tool-tip? ;)', 'buttonizer-multifunctional-button'),
1421
+ 'tip_12' => __('You can style the main big button by editting the group', 'buttonizer-multifunctional-button'),
1422
+ 'tip_13' => __('You can add a class or id HTML-attribute to a group and a button', 'buttonizer-multifunctional-button'),
1423
+ 'tip_14' => __('Want to make a new similar button? Duplicate your button!', 'buttonizer-multifunctional-button'),
1424
+ 'tip_15' => __('If you have a great tip, let us know! We\'ll add it :)', 'buttonizer-multifunctional-button'),
1425
+ 'tip_16' => __('Pssst, click on the group/button name on top', 'buttonizer-multifunctional-button'),
1426
+ 'tip_17' => __('Exit Intent... This is where the fun begins!', 'buttonizer-multifunctional-button'),
1427
+ 'tip_18' => __('With our brand new color picker you can build a personalized palette, create a color scale and blend colors', 'buttonizer-multifunctional-button'),
1428
+ 'tip_19' => __('Premium users just need one license key for their production environment and development environment', 'buttonizer-multifunctional-button'),
1429
+ 'tip_20' => __('Give more roles permission to access Buttonizer\'s dashboard in Preferences!', 'buttonizer-multifunctional-button'),
1430
+ 'tip_21' => __('Easily edit a specific button by hovering on them on the preview', 'buttonizer-multifunctional-button'),
1431
+ 'tip_22' => __('Add a custom text when using Social Sharing actions!', 'buttonizer-multifunctional-button'),
1432
+ 'tip_23' => __('Buttonizer also supports languages that are written from right-to-left :)', 'buttonizer-multifunctional-button'),
1433
  ];
1434
  }
1435
 
app/Licensing/License.php CHANGED
@@ -27,14 +27,14 @@
27
 
28
  Questons? www.buttonizer.pro
29
 
30
- Need support? Contact us on support@buttonizer.pro
31
-
32
  Have you also checked our knowledge base or community?
33
 
34
  Buttonizer Community: https://community.buttonizer.pro
35
 
36
  Buttonizer Knowledge base: https://community.buttonizer.pro/knowledgebase
37
 
 
 
38
  ===========================================================================
39
 
40
  For more information about the licensing and terms of conditions:
27
 
28
  Questons? www.buttonizer.pro
29
 
 
 
30
  Have you also checked our knowledge base or community?
31
 
32
  Buttonizer Community: https://community.buttonizer.pro
33
 
34
  Buttonizer Knowledge base: https://community.buttonizer.pro/knowledgebase
35
 
36
+ Buttonizer support: https://community.buttonizer.pro/tickets
37
+
38
  ===========================================================================
39
 
40
  For more information about the licensing and terms of conditions:
app/_README.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /*
4
  * SOFTWARE LICENSE INFORMATION
5
  *
@@ -27,12 +26,20 @@
27
 
28
  Questons? www.buttonizer.pro
29
 
30
- Need support? Contact us on support@buttonizer.pro
31
-
32
  Have you also checked our knowledge base or community?
33
 
34
  Buttonizer Community: https://community.buttonizer.pro
35
 
36
  Buttonizer Knowledge base: https://community.buttonizer.pro/knowledgebase
37
 
 
 
 
 
 
 
 
 
 
 
38
  ===========================================================================*/
1
  <?php
 
2
  /*
3
  * SOFTWARE LICENSE INFORMATION
4
  *
26
 
27
  Questons? www.buttonizer.pro
28
 
 
 
29
  Have you also checked our knowledge base or community?
30
 
31
  Buttonizer Community: https://community.buttonizer.pro
32
 
33
  Buttonizer Knowledge base: https://community.buttonizer.pro/knowledgebase
34
 
35
+ Buttonizer support: https://community.buttonizer.pro/tickets
36
+
37
+ ===========================================================================
38
+
39
+ For more information about the licensing and terms of conditions:
40
+
41
+ Terms and conditions: https://buttonizer.pro/terms-conditions/
42
+
43
+ License: https://buttonizer.pro/license/
44
+
45
  ===========================================================================*/
assets/dashboard.css CHANGED
@@ -3,12 +3,13 @@
3
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
4
  * please do not redistribute this plugin or the files without any written permission of the author.
5
  *
6
- * If you need support, contact us at support@buttonizer.pro or visit our community website
7
- * https://community.buttonizer.pro/
 
8
  *
9
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
10
  *
11
- * (C) 2017-2021 Buttonizer v2.4.3
12
  *
13
  */
14
  /*!
@@ -16,25 +17,26 @@
16
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
17
  * please do not redistribute this plugin or the files without any written permission of the author.
18
  *
19
- * If you need support, contact us at support@buttonizer.pro or visit our community website
20
- * https://community.buttonizer.pro/
 
21
  *
22
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
23
  *
24
- * (C) 2017-2021 Buttonizer v2.4.3
25
  *
26
  */
27
  @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap);
28
- .tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:400px;-webkit-perspective:800px;perspective:800px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none}.tippy-popper.html-template{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] [x-arrow]{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 9px}.tippy-popper[x-placement^=top] [x-arrow].arrow-small{border-top:5px solid #333;border-right:5px solid transparent;border-left:5px solid transparent;bottom:-5px}.tippy-popper[x-placement^=top] [x-arrow].arrow-big{border-top:10px solid #333;border-right:10px solid transparent;border-left:10px solid transparent;bottom:-10px}.tippy-popper[x-placement^=top] [x-circle]{-webkit-transform-origin:0 33%;transform-origin:0 33%}.tippy-popper[x-placement^=top] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%);opacity:1}.tippy-popper[x-placement^=top] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow]{border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-top:5px solid #fff;border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-top:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow]{border-top:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-top:5px solid rgba(0,0,0,.7);border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-top:10px solid rgba(0,0,0,.7);border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade].enter{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade].leave{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift].enter{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift].leave{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale].enter{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale].leave{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] [x-arrow]{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 9px}.tippy-popper[x-placement^=bottom] [x-arrow].arrow-small{border-bottom:5px solid #333;border-right:5px solid transparent;border-left:5px solid transparent;top:-5px}.tippy-popper[x-placement^=bottom] [x-arrow].arrow-big{border-bottom:10px solid #333;border-right:10px solid transparent;border-left:10px solid transparent;top:-10px}.tippy-popper[x-placement^=bottom] [x-circle]{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%);opacity:1}.tippy-popper[x-placement^=bottom] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-5%);transform:scale(.15) translate(-50%,-5%);opacity:0}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow]{border-bottom:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-bottom:5px solid #fff;border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-bottom:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow]{border-bottom:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-bottom:5px solid rgba(0,0,0,.7);border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-bottom:10px solid rgba(0,0,0,.7);border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade].enter{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade].leave{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift].enter{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift].leave{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale].enter{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale].leave{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] [x-arrow]{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:6px 0}.tippy-popper[x-placement^=left] [x-arrow].arrow-small{border-left:5px solid #333;border-top:5px solid transparent;border-bottom:5px solid transparent;right:-5px}.tippy-popper[x-placement^=left] [x-arrow].arrow-big{border-left:10px solid #333;border-top:10px solid transparent;border-bottom:10px solid transparent;right:-10px}.tippy-popper[x-placement^=left] [x-circle]{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=left] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow]{border-left:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-left:5px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-left:10px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow]{border-left:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-left:5px solid rgba(0,0,0,.7);border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-left:10px solid rgba(0,0,0,.7);border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade].enter{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade].leave{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift].enter{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift].leave{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale].enter{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale].leave{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] [x-arrow]{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:6px 0}.tippy-popper[x-placement^=right] [x-arrow].arrow-small{border-right:5px solid #333;border-top:5px solid transparent;border-bottom:5px solid transparent;left:-5px}.tippy-popper[x-placement^=right] [x-arrow].arrow-big{border-right:10px solid #333;border-top:10px solid transparent;border-bottom:10px solid transparent;left:-10px}.tippy-popper[x-placement^=right] [x-circle]{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=right] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow]{border-right:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-right:5px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-right:10px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow]{border-right:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-right:5px solid rgba(0,0,0,.7);border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-right:10px solid rgba(0,0,0,.7);border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade].enter{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade].leave{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift].enter{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift].leave{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale].enter{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale].leave{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper .tippy-tooltip.transparent-theme{background-color:rgba(0,0,0,.7)}.tippy-popper .tippy-tooltip.transparent-theme[data-animatefill]{background-color:transparent}.tippy-popper .tippy-tooltip.light-theme{color:#26323d;box-shadow:0 4px 20px 4px rgba(0,20,60,.1),0 4px 80px -8px rgba(0,20,60,.2);background-color:#fff}.tippy-popper .tippy-tooltip.light-theme[data-animatefill]{background-color:transparent}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.95rem;padding:.4rem .8rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip--small{padding:.25rem .5rem;font-size:.8rem}.tippy-tooltip--big{padding:.6rem 1.2rem;font-size:1.2rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive]{pointer-events:auto}.tippy-tooltip[data-inertia]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip [x-arrow]{position:absolute;width:0;height:0}.tippy-tooltip [x-circle]{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:130%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;overflow:hidden;transition:all ease}.tippy-tooltip [x-circle]:before{content:"";padding-top:90%;float:left}@media (max-width:450px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}
29
-
30
  .device-preview{flex-grow:1}.device-preview button{width:40px;margin:0 2px}
31
  .revert-button{margin:0 5px !important}.revert-button .MuiButton-label{font-size:15px}.revert-button .spin{animation:spin-animation 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite}@keyframes spin-animation{0%{transform:rotate(0deg)}100%{transform:rotate(-360deg)}}
32
  .MuiDialog-root #alert-dialog-title i{margin-right:15px;vertical-align:middle}.MuiDialog-root.warning .MuiBackdrop-root{background-color:rgba(93,0,0,.6)}.MuiDialog-root.warning #alert-dialog-title{color:#710909}
33
  .random-tip{background:#fff;border-radius:50px;margin:15px 0;display:flex;flex-flow:row wrap;height:72px;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);color:#2e788a}.random-tip .buzz{background:#fdf2e8;position:relative;margin:8px;order:1;height:56px;width:56px;border-radius:60px;box-sizing:border-box}.random-tip .tip{margin:8px 20px 8px 8px;flex:1;order:2;display:flex;align-items:center;font-size:14px}
 
34
  .button-container{margin:0 0 13px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:10px;border:1px solid #e2e2e2;background-color:#fff}.button-container .button-name{max-width:100%}.button-container .button-name .button-name-span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.button-container .button-name.drag-icon{min-width:10px}.button-container .button-header{display:flex}.button-container .button-header .button-actions{margin-left:auto;flex-shrink:0}.button-container .button-settings{display:flex}.button-container .button-settings .button-title{display:inline-flex;height:30px;align-items:center;margin-right:10px;font-size:14px}.button-container .button-settings button{height:30px}.button-container .button-settings .button-visibility{flex-grow:1}.button-container .button-settings .button-visibility button{width:40px;min-width:40px;margin:0 2px}.button-container .button-settings .button-actions button{min-width:35px}.button-container .button-settings .clear{clear:both}
35
  #group-button-extra-buttons .MuiListItemIcon-root{min-width:45px}#group-button-extra-buttons .MuiListItemIcon-root .fas,#group-button-extra-buttons .MuiListItemIcon-root .far{overflow:unset;font-size:1rem;margin-left:5px;text-align:center}
36
  .button-group-container{padding:10px;margin-bottom:15px;border:2px #fff solid}.button-group-container.currentDrop{border:2px #f9bf87 solid}.button-group-container .group-info{display:flex}.button-group-container .group-info .group-arrow{display:inline-block;width:17px;text-align:left;font-size:12px}.button-group-container .group-info .group-arrow i{-webkit-transition:all 150ms ease;-moz-transition:all 150ms ease;-ms-transition:all 150ms ease;-o-transition:all 150ms ease;transition:all 150ms ease}.button-group-container .group-info .group-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.button-group-container .group-info .group-action-spacer{flex-grow:1}.button-group-container .group-info .group-actions{flex-grow:0;flex-shrink:0;margin-left:20px}.button-group-container .buttons{display:none}.button-group-container.opened .group-info .group-arrow i{transform:rotate(90deg)}.button-group-container.opened .buttons{display:block;border-radius:10px;padding:10px;border:2px #fff solid;transition:border .5s}.button-group-container.opened .buttons.currentDrop{border:2px #f9bf87 solid}.button-group-container.opened .buttons.currentDrop .button-container{opacity:.5}.button-group-container.opened .buttons.currentDrop .button-container.currentDrag{opacity:1}
37
- .knowledgebase-link{color:#2f7789;text-decoration:none}.knowledgebase-link.medium{font-size:14px !important}.knowledgebase-link.small{font-size:12px !important}.knowledgebase-link:hover{text-decoration:underline}.knowledgebase-icon{color:#2f7789}
38
  .buttonizer-premium{background:#2d7688;background:-moz-linear-gradient(-45deg, #2d7688 0%, #187287 50%, #187287 50%, #f0841a 51%, #e8832c 98%);background:-webkit-linear-gradient(-45deg, #2d7688 0%, #187287 50%, #187287 50%, #f0841a 51%, #e8832c 98%);background:linear-gradient(135deg, #2d7688 0%, #187287 50%, #187287 50%, #f0841a 51%, #e8832c 98%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr="#2d7688", endColorstr="#e8832c",GradientType=1 );color:#fff;font-weight:500;font-size:13px;line-height:17px;padding:4px 20px;display:inline-block;vertical-align:middle;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;margin-left:10px}.buttonizer-premium.premium-right{position:absolute;right:30px;top:19px;z-index:9}.buttonizer-premium::after{content:"PRO"}.MuiFormControl-root:not(.MuiTextField-root) .buttonizer-premium{margin-right:15px}
39
  .item-not-found{text-align:center;padding:40px 0}.item-not-found i{font-size:50px;display:block;margin:30px auto}.item-not-found h4{font-size:15px;margin:28px 0}
40
  .tab-bordered{position:relative;z-index:2}.use-main-button-style{padding:5px 15px;display:flex;position:relative}.use-main-button-style:before{height:2px;background:#dfdfdf;content:" ";position:absolute;top:-2px;left:0;right:0;z-index:1}.use-main-button-style .button-label{flex-grow:1;margin-left:-10px}.use-main-button-style>div{width:50px;flex-grow:0}.back-to-group{position:fixed;left:0;width:20px;z-index:1}.back-to-group::before{content:"";position:fixed;left:0;top:0;width:10px;height:100vh;background:#2f7789}.back-to-group a{position:absolute;transform-origin:top left;left:-1px;color:#f08419;text-transform:uppercase;text-decoration:none;padding:1px 8px 1px 8px;display:inline-block;transform:rotate(90deg) translateY(-100%);background-color:#fff;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16) !important;border-radius:4px 4px 0 0;height:20px;white-space:nowrap;font-weight:500;transition:padding .125s ease,box-shadow .25s ease}.back-to-group a i{margin-right:8px}.back-to-group a:hover{padding:1px 8px 5px 8px;box-shadow:0 1px 1px 0 rgba(60,64,67,.16),0 1px 3px 1px rgba(60,64,67,.32) !important}
@@ -53,7 +55,7 @@
53
  .textfield-corners-input{height:100%;max-width:80px;padding-right:5px !important;margin:0 !important}.textfield-corners-input.textfield-corners-select{max-width:35px}.textfield-corners-input .MuiSelect-root{font-size:12px;padding:5px 12px 5px 8px !important}.textfield-corners-input .MuiSvgIcon-root{font-size:1rem;right:0;top:50%;transform:translateY(-50%)}.textfield-corners-input input{font-size:14px;padding:5px 8px}.textfield-corners-input input::-webkit-outer-spin-button,.textfield-corners-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.textfield-corners-input input[type=number]{-moz-appearance:textfield}.textfield-corners-input .MuiInputAdornment-root{margin-left:5px}.textfield-corners-input .MuiInputAdornment-root>p{font-size:14px}.textfield-corners-menu li{padding-left:8px;padding-right:8px;font-size:14px}
54
  .position-buttons button svg{width:20px;fill:currentColor}.position-buttons.position-horizontal button:nth-child(1) svg,.position-buttons.position-horizontal button:nth-child(2) svg{transform:rotate(-90deg)}.position-buttons.position-horizontal button:nth-child(3) svg{transform:rotate(90deg)}.position-buttons.position-vertical button:nth-child(3) svg{transform:rotate(180deg)}.position-textfield{height:28px;-moz-appearance:textfield}.position-textfield ::-webkit-outer-spin-button,.position-textfield ::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
55
  .image-selector{display:inline-flex;width:100%;justify-content:flex-end;text-align:center}.image-selector .image{width:100%;height:101px;display:inline-flex;text-decoration:none;line-height:26px;cursor:pointer;border-radius:3px;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:center;background-color:#ededed}.image-selector .image i{font-size:40px;line-height:54px;color:#4795a9bd}.image-selector .image .image-text{background-color:#2f788a;color:#fff;border-radius:0 0 3px 3px}.image-selector .image .selected{opacity:0;transition:250ms}.image-selector .image:hover .selected{opacity:1}
56
- .advanced-scroll-timeout .advanced-timeout{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll .MuiTextField-root{min-width:calc(100% / 3);margin-top:auto;margin-bottom:auto}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent{display:flex;width:calc(100% / 3);flex-direction:column}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent button{padding:0;height:45%;min-width:30px;font-size:10px;margin:auto}.advanced-scroll-timeout .advanced-scroll-hide{display:flex;justify-content:flex-end}.advanced-scroll-timeout .advanced-scroll-hide .settings-container{height:35px;width:calc(900% / 10)}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .settings-title{font-size:11px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .MuiTabs-root.icon-or-image{min-height:30px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container.disabled .settings-content .MuiTabs-indicator{background-color:#747474}.advanced-scroll-timeout .advanced-scroll-description{display:flex;justify-content:center}.advanced-scroll-timeout .advanced-scroll-description p{margin:0}
57
  .buttonizer-bar{position:fixed;left:0;top:0;bottom:0;width:430px;background:#f0f0f0;border-right:1px solid #d2d2d2}@media screen and (max-width: 769px){.buttonizer-bar{width:100%}}.buttonizer-bar.is-loading .router{opacity:0}.buttonizer-bar.is-loading .buttonizer-logo{display:none}.buttonizer-bar .router-window{position:absolute;top:0;bottom:56px;left:0;width:100%}.buttonizer-bar .router-window .simplebar-content-wrapper{height:100% !important}.buttonizer-bar .router-window .simplebar-placeholder{min-height:100vh}.buttonizer-bar .router-window .router{padding:0 30px 50px}.buttonizer-bar .buttonizer-logo img{max-width:200px;display:block;margin:20px auto 30px}.buttonizer-bar .bar-header{margin:10px 0}.buttonizer-bar .bar-header .breadcrumb{margin:15px 0 15px;display:flex}.buttonizer-bar .bar-header .breadcrumb button{height:28px;line-height:28px;padding:0 10px}.buttonizer-bar .bar-header .breadcrumb button .breadcrumb-text{white-space:nowrap;letter-spacing:.07em;overflow:hidden;text-overflow:ellipsis;height:100%;display:inline-block;align-items:center}.buttonizer-bar .bar-header .breadcrumb button i{margin-left:10px;color:rgba(0,0,0,.3);vertical-align:middle}.buttonizer-bar .bar-header .breadcrumb button.home-button{flex-shrink:0}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary{color:#95bac3}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary:hover{color:#2f7789}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary.Mui-selected{color:#f08419}.buttonizer-bar .bar-header .MuiTabs-flexContainer a{min-width:unset}.buttonizer-bar .bar-header .MuiTabs-flexContainer a i{font-size:20px;margin-bottom:8px}.buttonizer-bar .bar-header .MuiTabs-flexContainer a .MuiTab-wrapper{font-weight:600;font-size:12px;letter-spacing:1.25006px}.buttonizer-bar .bar-footer{position:absolute;bottom:0;left:0;right:0;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);background:#fff}.buttonizer-bar .bar-footer .bar-footer-container{display:flex;align-content:space-between;padding:10px}.buttonizer-bar .bar-footer .bar-footer-container .settings-button{font-size:20px;position:relative;margin-right:8px}.buttonizer-bar .bar-footer .bar-footer-container button{min-width:36px;height:36px}.buttonizer-bar .bar-footer .bar-footer-container button.MuiIconButton-root{padding:0;font-size:16px}.buttonizer-bar .bar-footer .bar-footer-container .MuiButton-Publish{padding:6px 16px !important;font-size:.785rem !important}.buttonizer-bar .bar-footer .bar-footer-container .footer-button-group-start{position:relative;border-right:#ddd 1px solid;margin-right:5px}
58
  [data-simplebar] {
59
  position: relative;
@@ -277,26 +279,25 @@
277
  .buttonizer-drawer{padding:2em}.close-button{float:right;margin:-20px !important}
278
  .premium-dialog #premium-dialog-title h2{-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-image:linear-gradient(-45deg, #ef8419, #ff952a, #3ab0ca, #2a7688);background-size:400% 400%;animation:gradient 5s ease infinite}.premium-dialog .premium-dialog-content{display:flex;flex-flow:row}.premium-dialog .premium-dialog-content.MuiDialogContent-dividers{padding:10px 24px}.premium-dialog .premium-dialog-content p{font-size:14px}.premium-dialog .premium-dialog-content .premium-dialog-text.MuiDialogContent-root:first-child{padding-top:0}.premium-dialog .premium-dialog-content .premium-dialog-text #premium-dialog-description{color:rgba(0,0,0,.87)}.premium-dialog .premium-dialog-content .premium-dialog-text.with-video{border-right:#e0e0e0 1px solid;max-width:641px}.premium-dialog .premium-dialog-content .premium-dialog-text code{display:block;margin-bottom:5px;padding:10px;background:#e0e0e0}.premium-dialog .premium-dialog-content .premium-dialog-text ul{list-style:none;padding:0 13px}.premium-dialog .premium-dialog-content .premium-dialog-text ul li{font-size:16px;line-height:22px;font-weight:500}.premium-dialog .premium-dialog-content .premium-dialog-text ul li:nth-child(odd){color:#2a7688}.premium-dialog .premium-dialog-content .premium-dialog-text ul li:nth-child(even){color:#ef8419}.premium-dialog .premium-dialog-content .premium-dialog-text ul li i{margin-right:10px;font-size:17px}.premium-dialog .premium-dialog-content .premium-dialog-video{width:100%;margin:auto}.premium-dialog .premium-dialog-content .premium-dialog-video iframe{max-width:560px}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
279
  .broke-out-of-iframe{padding:10px 20px;color:#b32828;background:#ffdada;text-align:center;display:flex;align-items:center}.broke-out-of-iframe div{width:100%;line-height:24px;font-size:16px}.broke-out-of-iframe button{margin-left:20px;flex-shrink:0;color:#b32828;border-color:#da9595;background:#fff}
280
-
281
- .btnizr-wp-icon {
282
- background: url(./images/wp-icon.png);
283
- }
284
-
285
- .btnizr-logo {
286
- background: url(./images/logo.png);
287
- }
288
-
289
- .btnizr-buttonizer-loading {
290
- background: url(./images/buttonizer-loading.png);
291
- }
292
-
293
- .btnizr-buttonizer-plugin-icon {
294
- background: url(./images/plugin-icon.png);
295
- }
296
-
297
- .btnizr-buttonizer-buzzer {
298
- background: url(./images/ButtonizerBuzzer.svg);
299
  }
300
- .tippy-tooltip[data-animation=fade][data-state=hidden]{opacity:0}.tippy-iOS{cursor:pointer!important;-webkit-tap-highlight-color:transparent}.tippy-popper{pointer-events:none;max-width:calc(100vw - 10px);transition-timing-function:cubic-bezier(.165,.84,.44,1);transition-property:transform}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;background-color:#333;transition-property:visibility,opacity,transform;outline:0}.tippy-tooltip[data-placement^=top]>.tippy-arrow{border-width:8px 8px 0;border-top-color:#333;margin:0 3px;transform-origin:50% 0;bottom:-7px}.tippy-tooltip[data-placement^=bottom]>.tippy-arrow{border-width:0 8px 8px;border-bottom-color:#333;margin:0 3px;transform-origin:50% 7px;top:-7px}.tippy-tooltip[data-placement^=left]>.tippy-arrow{border-width:8px 0 8px 8px;border-left-color:#333;margin:3px 0;transform-origin:0 50%;right:-7px}.tippy-tooltip[data-placement^=right]>.tippy-arrow{border-width:8px 8px 8px 0;border-right-color:#333;margin:3px 0;transform-origin:7px 50%;left:-7px}.tippy-tooltip[data-interactive][data-state=visible]{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{position:absolute;border-color:transparent;border-style:solid}.tippy-content{padding:5px 9px}
301
  #wpadminbar,#adminmenumain{display:none}#wpcontent,#wpfooter{margin:0;padding:0}.buttonizer-admin-overlay{text-align:center;padding:40px 20px}html{padding:0 !important}.screen-reader-text{display:none}body.buttonizer-loaded{background:#191e23}.button.button-red{background:#ba0000;border-color:#a00 #900 #900;-webkit-box-shadow:0 1px 0 #900;box-shadow:0 1px 0 #900;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #900,1px 0 1px #900,0 1px 1px #900,-1px 0 1px #900}.button.button-red:hover{background:#c20000 !important;border-color:#900 !important;color:#fff}.button.button-red:active,.button.button-red:focus{background:#a00 !important;border-color:#900 !important;-webkit-box-shadow:inset 0 2px 0 #900;box-shadow:inset 0 2px 0 #900;vertical-align:top;color:#fff}.button.button-red.button-centered-reset{margin:0 auto;padding:4px 20px;height:auto;font-size:15px}.button.button-red.button-centered-reset i{margin-right:10px}.label-settings{display:flex}.label-settings .title{min-width:calc(100% / 3);width:calc(100% / 3)}.label-settings .mdc-slider{width:calc(100% /3)}.icon-settings{display:flex}.icon-settings .title{min-width:calc(100% / 3);width:calc(100% / 3)}.icon-settings .mdc-text-field.small{width:calc(100% / 3) !important;height:28px !important}.icon-settings .mdc-text-field.small .material-icons.mdc-text-field__icon.icon{bottom:9px !important;font-size:10px;margin-right:-8px}.icon-settings .mdc-text-field.small .material-icons.mdc-text-field__icon.text{bottom:6px !important;font-size:10px;margin-right:-9px}.icon-settings .mdc-text-field.small .mdc-text-field__input{padding:0;padding-left:16px !important;padding-right:24px !important;height:28px !important;font-size:14px !important}.buttonizer-preview{position:fixed;left:431px;right:0;top:0;bottom:0;transition:transform 250ms ease-in-out}@media screen and (max-width: 769px){.buttonizer-preview{left:0}}.buttonizer-preview.frame-size-tablet{width:720px;max-width:720px;left:50%;margin-left:-170px;right:unset;z-index:-1}.buttonizer-preview.frame-size-mobile{width:340px;height:650px;max-width:340px;top:50%;left:50%;margin-top:-300px;margin-left:15px;right:unset;z-index:-1}.hide-bar-button{display:block;position:fixed;left:429px;top:50%;cursor:pointer;margin-top:-30px;z-index:2;height:60px;line-height:60px;width:20px;border-radius:0 10px 10px 0;background:#f0f0f0;border:1px solid #d2d2d2;border-left:1px solid transparent !important;text-align:center;color:#5d5d5d !important;text-decoration:none;transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}.hide-bar-button .fas{margin-left:-4px;color:#2f7789}@media screen and (max-width: 769px){.hide-bar-button{left:unset !important;right:0;top:40px;width:auto;height:auto;line-height:20px;border:0;background:unset;padding:0 20px}.hide-bar-button:before,.hide-bar-button:after{content:none !important}.hide-bar-button:focus{border-left:none !important}}.hide-bar-button .fa-chevron-right{display:none}.hide-bar-button:before{content:"";position:absolute;background-color:transparent;top:-20px;height:20px;width:10px;left:0;box-sizing:inherit;border-bottom-left-radius:10px;box-shadow:0 10px 0 0 #f0f0f0;border-bottom:1px solid #d2d2d2;border-left:1px solid #d2d2d2;transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}.hide-bar-button:after{content:"";position:absolute;background-color:transparent;bottom:-20px;height:20px;width:10px;left:0;box-sizing:inherit;border-top-left-radius:10px;box-shadow:0 -10px 0 0 #f0f0f0;border-top:1px solid #d2d2d2;border-left:1px solid #d2d2d2;transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}.hide-bar-button:focus{outline:none;outline-style:none;box-shadow:none;box-sizing:border-box;border-left:1px solid #f0f0f0}.buttonizer-app .buttonizer-bar,.buttonizer-app .buttonizer-preview,.buttonizer-app .hide-bar-button{transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}@media screen and (max-width: 769px){body.buttonizer-mobile-hide .buttonizer-preview{transform:translateX(100%)}}body.hide-buttonizer-bar .buttonizer-app .buttonizer-bar{transform:translateX(-100%)}body.hide-buttonizer-bar .buttonizer-app .buttonizer-preview,body.hide-buttonizer-bar .buttonizer-app .hide-bar-button{left:-2px}body.hide-buttonizer-bar .buttonizer-app .fas{margin-left:-1px}body.hide-buttonizer-bar .buttonizer-app .hide-bar-button .fa-chevron-right{display:inline-block}body.hide-buttonizer-bar .buttonizer-app .hide-bar-button .fa-chevron-left{display:none}@media screen and (max-width: 769px){body.hide-buttonizer-bar .buttonizer-preview{transform:translateX(0)}}body{color:#717171}.mdc-card{border-radius:4px;background-color:#fff;display:flex;flex-direction:column;box-sizing:border-box;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16)}.collapsible-group{margin:15px 0 !important}.collapsible-group .collapsible-body{padding:15px}.collapsible-group .collapsible-body .setting-group-title{font-size:13px;color:#888;text-transform:uppercase;font-weight:500}.collapsible-group .collapsible-body .setting-group-title~.setting-group-title{padding-top:10px}.collapsible-group .mdc-button.mdc-button--bold{font-size:13px}.MuiSelect-small .MuiSelect-select{font-size:14px;padding:9px 12px}.Mui-buzz-disabled{color:rgba(0,0,0,.26) !important;cursor:default !important}.Mui-buzz-premium.MuiButton-textPrimary{color:rgba(0,0,0,.26)}.Mui-buzz-premium.MuiButton-containedPrimary{background:rgba(0,0,0,.26)}.Mui-buzz-premium.MuiTabs-root .MuiTab-root{color:rgba(0,0,0,.26)}.Mui-buzz-premium.MuiTabs-root .MuiTabs-indicator{background-color:rgba(0,0,0,.26)}.MuiInputBase-root input[type=number]{-moz-appearance:textfield}.MuiInputBase-root input[type=number]::-webkit-outer-spin-button,.MuiInputBase-root input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}body{font-family:"Roboto","Helvetica","Arial",sans-serif}.tippy-tooltip{background:#6d6d6d;color:#fff}.buttonizer-app{font-family:Roboto,sans-serif;position:fixed;top:0;bottom:0;left:0;right:0;background:#eee}.buttonizer-app a,.buttonizer-app input{box-shadow:none}.buttonizer-app hr{margin-bottom:14px}.dashboard-warning-msg{padding:12px;margin-bottom:15px;font-size:14px;line-height:20px;border:2px solid rgba(240,132,25,.5);color:#f08419;display:block}.dashboard-warning-msg b{display:block}.dashboard-warning-msg a{color:#f08419}iframe{border:0}.simplebar-scrollbar.simplebar-visible:before{opacity:.38 !important}p{font-size:14px;margin-top:5px}
302
  form{display:flex;flex-direction:column;align-items:stretch}form .MuiTextField-root{margin:1em}form .fullwidth-label{align-items:stretch !important}form .crash-report{margin-top:2em}
3
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
4
  * please do not redistribute this plugin or the files without any written permission of the author.
5
  *
6
+ * If you need support:
7
+ * - pleae create a ticket: https://community.buttonizer.pro/tickets
8
+ * - or visit our community website: https://community.buttonizer.pro/
9
  *
10
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
11
  *
12
+ * (C) 2017-2021 Buttonizer v2.5.0
13
  *
14
  */
15
  /*!
17
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
18
  * please do not redistribute this plugin or the files without any written permission of the author.
19
  *
20
+ * If you need support:
21
+ * - pleae create a ticket: https://community.buttonizer.pro/tickets
22
+ * - or visit our community website: https://community.buttonizer.pro/
23
  *
24
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
25
  *
26
+ * (C) 2017-2021 Buttonizer v2.5.0
27
  *
28
  */
29
  @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap);
30
+ .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
31
+ .tippy-box[data-theme~=material]{background-color:#505355;font-weight:600}.tippy-box[data-theme~=material][data-placement^=top]>.tippy-arrow:before{border-top-color:#505355}.tippy-box[data-theme~=material][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#505355}.tippy-box[data-theme~=material][data-placement^=left]>.tippy-arrow:before{border-left-color:#505355}.tippy-box[data-theme~=material][data-placement^=right]>.tippy-arrow:before{border-right-color:#505355}.tippy-box[data-theme~=material]>.tippy-backdrop{background-color:#505355}.tippy-box[data-theme~=material]>.tippy-svg-arrow{fill:#505355}
32
  .device-preview{flex-grow:1}.device-preview button{width:40px;margin:0 2px}
33
  .revert-button{margin:0 5px !important}.revert-button .MuiButton-label{font-size:15px}.revert-button .spin{animation:spin-animation 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite}@keyframes spin-animation{0%{transform:rotate(0deg)}100%{transform:rotate(-360deg)}}
34
  .MuiDialog-root #alert-dialog-title i{margin-right:15px;vertical-align:middle}.MuiDialog-root.warning .MuiBackdrop-root{background-color:rgba(93,0,0,.6)}.MuiDialog-root.warning #alert-dialog-title{color:#710909}
35
  .random-tip{background:#fff;border-radius:50px;margin:15px 0;display:flex;flex-flow:row wrap;height:72px;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);color:#2e788a}.random-tip .buzz{background:#fdf2e8;position:relative;margin:8px;order:1;height:56px;width:56px;border-radius:60px;box-sizing:border-box}.random-tip .tip{margin:8px 20px 8px 8px;flex:1;order:2;display:flex;align-items:center;font-size:14px}
36
+ .knowledgebase-link{color:#2f7789;text-decoration:none}.knowledgebase-link.medium{font-size:14px !important}.knowledgebase-link.small{font-size:12px !important}.knowledgebase-link:hover{text-decoration:underline}.knowledgebase-icon{color:#2f7789}
37
  .button-container{margin:0 0 13px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:10px;border:1px solid #e2e2e2;background-color:#fff}.button-container .button-name{max-width:100%}.button-container .button-name .button-name-span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.button-container .button-name.drag-icon{min-width:10px}.button-container .button-header{display:flex}.button-container .button-header .button-actions{margin-left:auto;flex-shrink:0}.button-container .button-settings{display:flex}.button-container .button-settings .button-title{display:inline-flex;height:30px;align-items:center;margin-right:10px;font-size:14px}.button-container .button-settings button{height:30px}.button-container .button-settings .button-visibility{flex-grow:1}.button-container .button-settings .button-visibility button{width:40px;min-width:40px;margin:0 2px}.button-container .button-settings .button-actions button{min-width:35px}.button-container .button-settings .clear{clear:both}
38
  #group-button-extra-buttons .MuiListItemIcon-root{min-width:45px}#group-button-extra-buttons .MuiListItemIcon-root .fas,#group-button-extra-buttons .MuiListItemIcon-root .far{overflow:unset;font-size:1rem;margin-left:5px;text-align:center}
39
  .button-group-container{padding:10px;margin-bottom:15px;border:2px #fff solid}.button-group-container.currentDrop{border:2px #f9bf87 solid}.button-group-container .group-info{display:flex}.button-group-container .group-info .group-arrow{display:inline-block;width:17px;text-align:left;font-size:12px}.button-group-container .group-info .group-arrow i{-webkit-transition:all 150ms ease;-moz-transition:all 150ms ease;-ms-transition:all 150ms ease;-o-transition:all 150ms ease;transition:all 150ms ease}.button-group-container .group-info .group-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.button-group-container .group-info .group-action-spacer{flex-grow:1}.button-group-container .group-info .group-actions{flex-grow:0;flex-shrink:0;margin-left:20px}.button-group-container .buttons{display:none}.button-group-container.opened .group-info .group-arrow i{transform:rotate(90deg)}.button-group-container.opened .buttons{display:block;border-radius:10px;padding:10px;border:2px #fff solid;transition:border .5s}.button-group-container.opened .buttons.currentDrop{border:2px #f9bf87 solid}.button-group-container.opened .buttons.currentDrop .button-container{opacity:.5}.button-group-container.opened .buttons.currentDrop .button-container.currentDrag{opacity:1}
 
40
  .buttonizer-premium{background:#2d7688;background:-moz-linear-gradient(-45deg, #2d7688 0%, #187287 50%, #187287 50%, #f0841a 51%, #e8832c 98%);background:-webkit-linear-gradient(-45deg, #2d7688 0%, #187287 50%, #187287 50%, #f0841a 51%, #e8832c 98%);background:linear-gradient(135deg, #2d7688 0%, #187287 50%, #187287 50%, #f0841a 51%, #e8832c 98%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr="#2d7688", endColorstr="#e8832c",GradientType=1 );color:#fff;font-weight:500;font-size:13px;line-height:17px;padding:4px 20px;display:inline-block;vertical-align:middle;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;margin-left:10px}.buttonizer-premium.premium-right{position:absolute;right:30px;top:19px;z-index:9}.buttonizer-premium::after{content:"PRO"}.MuiFormControl-root:not(.MuiTextField-root) .buttonizer-premium{margin-right:15px}
41
  .item-not-found{text-align:center;padding:40px 0}.item-not-found i{font-size:50px;display:block;margin:30px auto}.item-not-found h4{font-size:15px;margin:28px 0}
42
  .tab-bordered{position:relative;z-index:2}.use-main-button-style{padding:5px 15px;display:flex;position:relative}.use-main-button-style:before{height:2px;background:#dfdfdf;content:" ";position:absolute;top:-2px;left:0;right:0;z-index:1}.use-main-button-style .button-label{flex-grow:1;margin-left:-10px}.use-main-button-style>div{width:50px;flex-grow:0}.back-to-group{position:fixed;left:0;width:20px;z-index:1}.back-to-group::before{content:"";position:fixed;left:0;top:0;width:10px;height:100vh;background:#2f7789}.back-to-group a{position:absolute;transform-origin:top left;left:-1px;color:#f08419;text-transform:uppercase;text-decoration:none;padding:1px 8px 1px 8px;display:inline-block;transform:rotate(90deg) translateY(-100%);background-color:#fff;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16) !important;border-radius:4px 4px 0 0;height:20px;white-space:nowrap;font-weight:500;transition:padding .125s ease,box-shadow .25s ease}.back-to-group a i{margin-right:8px}.back-to-group a:hover{padding:1px 8px 5px 8px;box-shadow:0 1px 1px 0 rgba(60,64,67,.16),0 1px 3px 1px rgba(60,64,67,.32) !important}
55
  .textfield-corners-input{height:100%;max-width:80px;padding-right:5px !important;margin:0 !important}.textfield-corners-input.textfield-corners-select{max-width:35px}.textfield-corners-input .MuiSelect-root{font-size:12px;padding:5px 12px 5px 8px !important}.textfield-corners-input .MuiSvgIcon-root{font-size:1rem;right:0;top:50%;transform:translateY(-50%)}.textfield-corners-input input{font-size:14px;padding:5px 8px}.textfield-corners-input input::-webkit-outer-spin-button,.textfield-corners-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.textfield-corners-input input[type=number]{-moz-appearance:textfield}.textfield-corners-input .MuiInputAdornment-root{margin-left:5px}.textfield-corners-input .MuiInputAdornment-root>p{font-size:14px}.textfield-corners-menu li{padding-left:8px;padding-right:8px;font-size:14px}
56
  .position-buttons button svg{width:20px;fill:currentColor}.position-buttons.position-horizontal button:nth-child(1) svg,.position-buttons.position-horizontal button:nth-child(2) svg{transform:rotate(-90deg)}.position-buttons.position-horizontal button:nth-child(3) svg{transform:rotate(90deg)}.position-buttons.position-vertical button:nth-child(3) svg{transform:rotate(180deg)}.position-textfield{height:28px;-moz-appearance:textfield}.position-textfield ::-webkit-outer-spin-button,.position-textfield ::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
57
  .image-selector{display:inline-flex;width:100%;justify-content:flex-end;text-align:center}.image-selector .image{width:100%;height:101px;display:inline-flex;text-decoration:none;line-height:26px;cursor:pointer;border-radius:3px;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:center;background-color:#ededed}.image-selector .image i{font-size:40px;line-height:54px;color:#4795a9bd}.image-selector .image .image-text{background-color:#2f788a;color:#fff;border-radius:0 0 3px 3px}.image-selector .image .selected{opacity:0;transition:250ms}.image-selector .image:hover .selected{opacity:1}
58
+ .advanced-scroll-timeout .advanced-timeout{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll .MuiTextField-root{min-width:calc(100% / 3);margin-top:auto;margin-bottom:auto}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent{display:flex;width:calc(100% / 3);flex-direction:column}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent button{padding:0;height:45%;min-width:30px;font-size:10px;margin:auto}.advanced-scroll-timeout .advanced-scroll-hide{display:flex;justify-content:flex-end}.advanced-scroll-timeout .advanced-scroll-hide .settings-container{height:35px;width:calc(900% / 10)}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .settings-title{font-size:11px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .MuiTabs-root.icon-or-image{min-height:30px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container.disabled .settings-content .MuiTabs-indicator{background-color:#747474}.advanced-scroll-timeout .advanced-scroll-container{margin:15px 0 -15px}.advanced-scroll-timeout .advanced-scroll-description{display:flex;justify-content:center}.advanced-scroll-timeout .advanced-scroll-description p{margin:0}
59
  .buttonizer-bar{position:fixed;left:0;top:0;bottom:0;width:430px;background:#f0f0f0;border-right:1px solid #d2d2d2}@media screen and (max-width: 769px){.buttonizer-bar{width:100%}}.buttonizer-bar.is-loading .router{opacity:0}.buttonizer-bar.is-loading .buttonizer-logo{display:none}.buttonizer-bar .router-window{position:absolute;top:0;bottom:56px;left:0;width:100%}.buttonizer-bar .router-window .simplebar-content-wrapper{height:100% !important}.buttonizer-bar .router-window .simplebar-placeholder{min-height:100vh}.buttonizer-bar .router-window .router{padding:0 30px 50px}.buttonizer-bar .buttonizer-logo img{max-width:200px;display:block;margin:20px auto 30px}.buttonizer-bar .bar-header{margin:10px 0}.buttonizer-bar .bar-header .breadcrumb{margin:15px 0 15px;display:flex}.buttonizer-bar .bar-header .breadcrumb button{height:28px;line-height:28px;padding:0 10px}.buttonizer-bar .bar-header .breadcrumb button .breadcrumb-text{white-space:nowrap;letter-spacing:.07em;overflow:hidden;text-overflow:ellipsis;height:100%;display:inline-block;align-items:center}.buttonizer-bar .bar-header .breadcrumb button i{margin-left:10px;color:rgba(0,0,0,.3);vertical-align:middle}.buttonizer-bar .bar-header .breadcrumb button.home-button{flex-shrink:0}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary{color:#95bac3}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary:hover{color:#2f7789}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary.Mui-selected{color:#f08419}.buttonizer-bar .bar-header .MuiTabs-flexContainer a{min-width:unset}.buttonizer-bar .bar-header .MuiTabs-flexContainer a i{font-size:20px;margin-bottom:8px}.buttonizer-bar .bar-header .MuiTabs-flexContainer a .MuiTab-wrapper{font-weight:600;font-size:12px;letter-spacing:1.25006px}.buttonizer-bar .bar-footer{position:absolute;bottom:0;left:0;right:0;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);background:#fff}.buttonizer-bar .bar-footer .bar-footer-container{display:flex;align-content:space-between;padding:10px}.buttonizer-bar .bar-footer .bar-footer-container .settings-button{font-size:20px;position:relative;margin-right:8px}.buttonizer-bar .bar-footer .bar-footer-container button{min-width:36px;height:36px}.buttonizer-bar .bar-footer .bar-footer-container button.MuiIconButton-root{padding:0;font-size:16px}.buttonizer-bar .bar-footer .bar-footer-container .MuiButton-Publish{padding:6px 16px !important;font-size:.785rem !important}.buttonizer-bar .bar-footer .bar-footer-container .footer-button-group-start{position:relative;border-right:#ddd 1px solid;margin-right:5px}
60
  [data-simplebar] {
61
  position: relative;
279
  .buttonizer-drawer{padding:2em}.close-button{float:right;margin:-20px !important}
280
  .premium-dialog #premium-dialog-title h2{-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-image:linear-gradient(-45deg, #ef8419, #ff952a, #3ab0ca, #2a7688);background-size:400% 400%;animation:gradient 5s ease infinite}.premium-dialog .premium-dialog-content{display:flex;flex-flow:row}.premium-dialog .premium-dialog-content.MuiDialogContent-dividers{padding:10px 24px}.premium-dialog .premium-dialog-content p{font-size:14px}.premium-dialog .premium-dialog-content .premium-dialog-text.MuiDialogContent-root:first-child{padding-top:0}.premium-dialog .premium-dialog-content .premium-dialog-text #premium-dialog-description{color:rgba(0,0,0,.87)}.premium-dialog .premium-dialog-content .premium-dialog-text.with-video{border-right:#e0e0e0 1px solid;max-width:641px}.premium-dialog .premium-dialog-content .premium-dialog-text code{display:block;margin-bottom:5px;padding:10px;background:#e0e0e0}.premium-dialog .premium-dialog-content .premium-dialog-text ul{list-style:none;padding:0 13px}.premium-dialog .premium-dialog-content .premium-dialog-text ul li{font-size:16px;line-height:22px;font-weight:500}.premium-dialog .premium-dialog-content .premium-dialog-text ul li:nth-child(odd){color:#2a7688}.premium-dialog .premium-dialog-content .premium-dialog-text ul li:nth-child(even){color:#ef8419}.premium-dialog .premium-dialog-content .premium-dialog-text ul li i{margin-right:10px;font-size:17px}.premium-dialog .premium-dialog-content .premium-dialog-video{width:100%;margin:auto}.premium-dialog .premium-dialog-content .premium-dialog-video iframe{max-width:560px}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
281
  .broke-out-of-iframe{padding:10px 20px;color:#b32828;background:#ffdada;text-align:center;display:flex;align-items:center}.broke-out-of-iframe div{width:100%;line-height:24px;font-size:16px}.broke-out-of-iframe button{margin-left:20px;flex-shrink:0;color:#b32828;border-color:#da9595;background:#fff}
282
+
283
+ .btnizr-wp-icon {
284
+ background: url(./images/wp-icon.png);
285
+ }
286
+
287
+ .btnizr-logo {
288
+ background: url(./images/logo.png);
289
+ }
290
+
291
+ .btnizr-buttonizer-loading {
292
+ background: url(./images/buttonizer-loading.png);
293
+ }
294
+
295
+ .btnizr-buttonizer-plugin-icon {
296
+ background: url(./images/plugin-icon.png);
297
+ }
298
+
299
+ .btnizr-buttonizer-buzzer {
300
+ background: url(./images/ButtonizerBuzzer.svg);
301
  }
 
302
  #wpadminbar,#adminmenumain{display:none}#wpcontent,#wpfooter{margin:0;padding:0}.buttonizer-admin-overlay{text-align:center;padding:40px 20px}html{padding:0 !important}.screen-reader-text{display:none}body.buttonizer-loaded{background:#191e23}.button.button-red{background:#ba0000;border-color:#a00 #900 #900;-webkit-box-shadow:0 1px 0 #900;box-shadow:0 1px 0 #900;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #900,1px 0 1px #900,0 1px 1px #900,-1px 0 1px #900}.button.button-red:hover{background:#c20000 !important;border-color:#900 !important;color:#fff}.button.button-red:active,.button.button-red:focus{background:#a00 !important;border-color:#900 !important;-webkit-box-shadow:inset 0 2px 0 #900;box-shadow:inset 0 2px 0 #900;vertical-align:top;color:#fff}.button.button-red.button-centered-reset{margin:0 auto;padding:4px 20px;height:auto;font-size:15px}.button.button-red.button-centered-reset i{margin-right:10px}.label-settings{display:flex}.label-settings .title{min-width:calc(100% / 3);width:calc(100% / 3)}.label-settings .mdc-slider{width:calc(100% /3)}.icon-settings{display:flex}.icon-settings .title{min-width:calc(100% / 3);width:calc(100% / 3)}.icon-settings .mdc-text-field.small{width:calc(100% / 3) !important;height:28px !important}.icon-settings .mdc-text-field.small .material-icons.mdc-text-field__icon.icon{bottom:9px !important;font-size:10px;margin-right:-8px}.icon-settings .mdc-text-field.small .material-icons.mdc-text-field__icon.text{bottom:6px !important;font-size:10px;margin-right:-9px}.icon-settings .mdc-text-field.small .mdc-text-field__input{padding:0;padding-left:16px !important;padding-right:24px !important;height:28px !important;font-size:14px !important}.buttonizer-preview{position:fixed;left:431px;right:0;top:0;bottom:0;transition:transform 250ms ease-in-out}@media screen and (max-width: 769px){.buttonizer-preview{left:0}}.buttonizer-preview.frame-size-tablet{width:720px;max-width:720px;left:50%;margin-left:-170px;right:unset;z-index:-1}.buttonizer-preview.frame-size-mobile{width:340px;height:650px;max-width:340px;top:50%;left:50%;margin-top:-300px;margin-left:15px;right:unset;z-index:-1}.hide-bar-button{display:block;position:fixed;left:429px;top:50%;cursor:pointer;margin-top:-30px;z-index:2;height:60px;line-height:60px;width:20px;border-radius:0 10px 10px 0;background:#f0f0f0;border:1px solid #d2d2d2;border-left:1px solid transparent !important;text-align:center;color:#5d5d5d !important;text-decoration:none;transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}.hide-bar-button .fas{margin-left:-4px;color:#2f7789}@media screen and (max-width: 769px){.hide-bar-button{left:unset !important;right:0;top:40px;width:auto;height:auto;line-height:20px;border:0;background:unset;padding:0 20px}.hide-bar-button:before,.hide-bar-button:after{content:none !important}.hide-bar-button:focus{border-left:none !important}}.hide-bar-button .fa-chevron-right{display:none}.hide-bar-button:before{content:"";position:absolute;background-color:transparent;top:-20px;height:20px;width:10px;left:0;box-sizing:inherit;border-bottom-left-radius:10px;box-shadow:0 10px 0 0 #f0f0f0;border-bottom:1px solid #d2d2d2;border-left:1px solid #d2d2d2;transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}.hide-bar-button:after{content:"";position:absolute;background-color:transparent;bottom:-20px;height:20px;width:10px;left:0;box-sizing:inherit;border-top-left-radius:10px;box-shadow:0 -10px 0 0 #f0f0f0;border-top:1px solid #d2d2d2;border-left:1px solid #d2d2d2;transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}.hide-bar-button:focus{outline:none;outline-style:none;box-shadow:none;box-sizing:border-box;border-left:1px solid #f0f0f0}.buttonizer-app .buttonizer-bar,.buttonizer-app .buttonizer-preview,.buttonizer-app .hide-bar-button{transition:all 250ms ease-out;-moz-transition:all 250ms ease-out;-webkit-transition:all 250ms ease-out}@media screen and (max-width: 769px){body.buttonizer-mobile-hide .buttonizer-preview{transform:translateX(100%)}}body.hide-buttonizer-bar .buttonizer-app .buttonizer-bar{transform:translateX(-100%)}body.hide-buttonizer-bar .buttonizer-app .buttonizer-preview,body.hide-buttonizer-bar .buttonizer-app .hide-bar-button{left:-2px}body.hide-buttonizer-bar .buttonizer-app .fas{margin-left:-1px}body.hide-buttonizer-bar .buttonizer-app .hide-bar-button .fa-chevron-right{display:inline-block}body.hide-buttonizer-bar .buttonizer-app .hide-bar-button .fa-chevron-left{display:none}@media screen and (max-width: 769px){body.hide-buttonizer-bar .buttonizer-preview{transform:translateX(0)}}body{color:#717171}.mdc-card{border-radius:4px;background-color:#fff;display:flex;flex-direction:column;box-sizing:border-box;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16)}.collapsible-group{margin:15px 0 !important}.collapsible-group .collapsible-body{padding:15px}.collapsible-group .collapsible-body .setting-group-title{font-size:13px;color:#888;text-transform:uppercase;font-weight:500}.collapsible-group .collapsible-body .setting-group-title~.setting-group-title{padding-top:10px}.collapsible-group .mdc-button.mdc-button--bold{font-size:13px}.MuiSelect-small .MuiSelect-select{font-size:14px;padding:9px 12px}.Mui-buzz-disabled{color:rgba(0,0,0,.26) !important;cursor:default !important}.Mui-buzz-premium.MuiButton-textPrimary{color:rgba(0,0,0,.26)}.Mui-buzz-premium.MuiButton-containedPrimary{background:rgba(0,0,0,.26)}.Mui-buzz-premium.MuiTabs-root .MuiTab-root{color:rgba(0,0,0,.26)}.Mui-buzz-premium.MuiTabs-root .MuiTabs-indicator{background-color:rgba(0,0,0,.26)}.MuiInputBase-root input[type=number]{-moz-appearance:textfield}.MuiInputBase-root input[type=number]::-webkit-outer-spin-button,.MuiInputBase-root input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}body{font-family:"Roboto","Helvetica","Arial",sans-serif}.tippy-tooltip{background:#6d6d6d;color:#fff}.buttonizer-app{font-family:Roboto,sans-serif;position:fixed;top:0;bottom:0;left:0;right:0;background:#eee}.buttonizer-app a,.buttonizer-app input{box-shadow:none}.buttonizer-app hr{margin-bottom:14px}.dashboard-warning-msg{padding:12px;margin-bottom:15px;font-size:14px;line-height:20px;border:2px solid rgba(240,132,25,.5);color:#f08419;display:block}.dashboard-warning-msg b{display:block}.dashboard-warning-msg a{color:#f08419}iframe{border:0}.simplebar-scrollbar.simplebar-visible:before{opacity:.38 !important}p{font-size:14px;margin-top:5px}
303
  form{display:flex;flex-direction:column;align-items:stretch}form .MuiTextField-root{margin:1em}form .fullwidth-label{align-items:stretch !important}form .crash-report{margin-top:2em}
assets/dashboard.js CHANGED
@@ -3,12 +3,13 @@
3
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
4
  * please do not redistribute this plugin or the files without any written permission of the author.
5
  *
6
- * If you need support, contact us at support@buttonizer.pro or visit our community website
7
- * https://community.buttonizer.pro/
 
8
  *
9
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
10
  *
11
- * (C) 2017-2021 Buttonizer v2.4.3
12
  *
13
  */
14
  /*!
@@ -16,12 +17,13 @@
16
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
17
  * please do not redistribute this plugin or the files without any written permission of the author.
18
  *
19
- * If you need support, contact us at support@buttonizer.pro or visit our community website
20
- * https://community.buttonizer.pro/
 
21
  *
22
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
23
  *
24
- * (C) 2017-2021 Buttonizer v2.4.3
25
  *
26
  */
27
  /******/ (function() { // webpackBootstrap
@@ -7246,7 +7248,7 @@ module.exports = {
7246
 
7247
  /***/ }),
7248
 
7249
- /***/ 93264:
7250
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
7251
 
7252
  "use strict";
@@ -7911,8 +7913,8 @@ if (false) {}
7911
  ;// CONCATENATED MODULE: ./src/js/utils/buttonizer-constants.js
7912
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
7913
 
7914
- /**
7915
- * Constants
7916
  */
7917
  var buttonizer_constants_actionTypes = {
7918
  INIT: "INIT",
@@ -7981,8 +7983,8 @@ var buttonizer_constants_actionTypes = {
7981
  GET_DATA_FAILURE: "GET TEMPLATES DATA FAILURE",
7982
  GET_DATA_END: "GET TEMPLATES DATA END",
7983
 
7984
- /**
7985
- * Not used
7986
  */
7987
  ADD_RECORD: "ADDING TEMPLATE"
7988
  }
@@ -8025,8 +8027,8 @@ var drawers = {
8025
  PAGE_RULES: "pagerules"
8026
  };
8027
  var formats = {
8028
- /**
8029
- * Combine values with normal;hover.
8030
  */
8031
  normal_hover: {
8032
  format: function format(normal, hover) {
@@ -8062,8 +8064,8 @@ var formats = {
8062
  }
8063
  },
8064
 
8065
- /**
8066
- * Px for four sides, for example for margin or padding.
8067
  */
8068
  fourSidesPx: {
8069
  format: function format(val1, val2, val3, val4) {
@@ -8076,8 +8078,8 @@ var formats = {
8076
  }
8077
  },
8078
 
8079
- /**
8080
- * Position format, example: 'bottom: 5px', or 'left: 10%'
8081
  */
8082
  position: {
8083
  format: function format(type, mode, value) {
@@ -8086,6 +8088,10 @@ var formats = {
8086
  }
8087
  };
8088
  var excludedPropertyRequests = (/* unused pure expression or super */ null && (["selected_schedule", "show_on_schedule_trigger", "selected_page_rule", "show_on_rule_trigger", "show_mobile", "show_desktop", "is_menu"]));
 
 
 
 
8089
  // EXTERNAL MODULE: ./node_modules/axios/index.js
8090
  var axios = __webpack_require__(9669);
8091
  var axios_default = /*#__PURE__*/__webpack_require__.n(axios);
@@ -8219,11 +8225,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
8219
 
8220
 
8221
 
8222
- /**
8223
- * Create api request
8224
- *maar j
8225
- * @param {*} endpoint
8226
- * @param {*} data
8227
  */
8228
 
8229
  function apiRequest(endpoint, data) {
@@ -8233,8 +8239,8 @@ function apiRequest(endpoint, data) {
8233
  };
8234
  return axios_default()(data);
8235
  }
8236
- /**
8237
- * init store
8238
  */
8239
 
8240
  function init() {
@@ -8249,11 +8255,11 @@ function init() {
8249
  }
8250
  };
8251
  }
8252
- /**
8253
- * Convert data to models
8254
- *
8255
- * @param result
8256
- * @return {obj} converted data
8257
  */
8258
 
8259
  function convertData(result) {
@@ -8357,10 +8363,10 @@ function createRecord(data) {
8357
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/dataActions/index.js
8358
 
8359
 
8360
- /**
8361
- * Add model to store
8362
- * @param {object} data
8363
- * @param {string} model
8364
  */
8365
 
8366
  function addModel(data, model) {
@@ -8369,10 +8375,10 @@ function addModel(data, model) {
8369
  payload: data
8370
  };
8371
  }
8372
- /**
8373
- * Add relation between button and group
8374
- * @param {string} button_id
8375
- * @param {string} group_id
8376
  */
8377
 
8378
  function dataActions_addRelation(button_id, group_id) {
@@ -8386,10 +8392,10 @@ function dataActions_addRelation(button_id, group_id) {
8386
  }
8387
  };
8388
  }
8389
- /**
8390
- * Change relations (for drag n drop)
8391
- * @param {string} button_id button id to change relations
8392
- * @param {string} new_group_id new group id
8393
  */
8394
 
8395
  function dataActions_changeRelation(button_id, old_group_id, new_group_id, button_index) {
@@ -8403,10 +8409,10 @@ function dataActions_changeRelation(button_id, old_group_id, new_group_id, butto
8403
  }
8404
  };
8405
  }
8406
- /**
8407
- * Remove relation between button and group
8408
- * @param {string} button_id
8409
- * @param {string} group_id
8410
  */
8411
 
8412
  function removeRelation(button_id, group_id) {
@@ -8418,13 +8424,13 @@ function removeRelation(button_id, group_id) {
8418
  }
8419
  };
8420
  }
8421
- /**
8422
- * Set key of model id to value specified
8423
- *
8424
- * @param {string} model model of object to change value on
8425
- * @param {string} id button or group id
8426
- * @param {string} key key of value to change
8427
- * @param {any} value new value to set
8428
  */
8429
 
8430
  var dataActions_set = function set(model, id, key, value) {
@@ -8460,8 +8466,8 @@ var dataActions_setSetting = function setSetting(setting, value) {
8460
  }
8461
  };
8462
  };
8463
- /**
8464
- * Time Schedule Actions
8465
  */
8466
  //
8467
 
@@ -8504,10 +8510,10 @@ var removeExcludedDate = function removeExcludedDate(id, dateKey) {
8504
  }
8505
  };
8506
  };
8507
- /**
8508
- * Adds record to store
8509
- * @param {object} payload data for new record
8510
- * @param {String} model type of model
8511
  */
8512
 
8513
  function dataActions_addRecord(data, model) {
@@ -8520,10 +8526,10 @@ function dataActions_addRecord(data, model) {
8520
  }
8521
  };
8522
  }
8523
- /**
8524
- * Removes record to store
8525
- * @param {int} model_id id of model to remove
8526
- * @param {String} model type of model
8527
  */
8528
 
8529
  function removeRecord(model_id, model) {
@@ -8534,20 +8540,7 @@ function removeRecord(model_id, model) {
8534
  }
8535
  };
8536
  }
8537
- // EXTERNAL MODULE: ./src/js/utils/buttonizer-defaults/index.js
8538
- var buttonizer_defaults = __webpack_require__(59528);
8539
- // EXTERNAL MODULE: ./node_modules/lodash/defaults.js
8540
- var defaults = __webpack_require__(91747);
8541
- var defaults_default = /*#__PURE__*/__webpack_require__.n(defaults);
8542
- // EXTERNAL MODULE: ./node_modules/lodash/merge.js
8543
- var merge = __webpack_require__(82492);
8544
- var merge_default = /*#__PURE__*/__webpack_require__.n(merge);
8545
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/selectors.js
8546
- /* global process */
8547
-
8548
-
8549
-
8550
-
8551
 
8552
  function getButtons(group_id) {
8553
  var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
@@ -8584,120 +8577,17 @@ function selectors_getGroupCount() {
8584
  if (!state.groups) return 0;
8585
  return Object.keys(state.groups).length;
8586
  }
8587
- /**
8588
- * Get value with format. combine with connect function to remove record arg.
8589
- * @param {string} key to be getted key
8590
- * @param {obj} record object to get key out of
8591
- * @param {string} model (optional) when filled with (button|group), returns default if value not present. when defaults is left blank, returns "" when there is no value.
8592
- * @param {object} options options to apply
8593
- */
8594
-
8595
- function _get(key, record) {
8596
- var model = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
8597
- var parent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8598
- var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
8599
- excludeSelf: false
8600
- };
8601
-
8602
- if (typeof record === "undefined" || typeof key === "undefined") {
8603
- console.log("record: " + record);
8604
- console.log("key: " + key);
8605
- throw TypeError("'record' argument or 'key' argument of type undefined");
8606
- }
8607
-
8608
- var value = record[key]; // When not in formatted list, don't format.
8609
-
8610
- if (!buttonizer_defaults.dashboard.formatted.includes(key)) {
8611
- // value == null will be true also if value == undefined, because undefined == null
8612
- if (value == null) {
8613
- // Get default
8614
- return !model ? "" : _def(model, key, parent[key]);
8615
- }
8616
-
8617
- return value;
8618
- }
8619
-
8620
- var parentValue = parent ? formats.normal_hover.parse(parent[key]) : []; // def returns formatted value
8621
-
8622
- if (value == null) return !model ? ["", ""] : _defs(model, key, [], parentValue);
8623
- var result = formats.normal_hover.parse(value);
8624
- return model ? _defs(model, key, result, parentValue, options) : merge_default()(["", ""], result);
8625
- }
8626
- function _def(model, key) {
8627
- var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
8628
-
8629
- if (!Object.keys(buttonizer_defaults.dashboard).includes(model)) {
8630
- console.error("model ".concat(model, " not familiar"));
8631
- return;
8632
- }
8633
-
8634
- if (!Object.keys(buttonizer_defaults.dashboard[model]).includes(key)) {
8635
- if (false) {}
8636
- return "";
8637
- }
8638
-
8639
- return buttonizer_defaults.dashboard[model][key] == null ? fallback : buttonizer_defaults.dashboard[model][key];
8640
- }
8641
- function _defs(model, key) {
8642
- var self = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
8643
- var parent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
8644
- var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
8645
-
8646
- if (!Object.keys(buttonizer_defaults.dashboard).includes(model)) {
8647
- console.error("model ".concat(model, " not familiar"));
8648
- return;
8649
- }
8650
-
8651
- if (!Object.keys(buttonizer_defaults.dashboard[model]).includes(key)) {
8652
- if (false) {}
8653
- return ["", ""];
8654
- }
8655
-
8656
- var def = buttonizer_defaults.dashboard[model][key];
8657
- if (key === "background_is_image") console.log(buttonizer_defaults.dashboard);
8658
- if (model === "group") return mergeGroupDefaults(self, def, options);
8659
- if (model === "button") return mergeButtonDefaults(self, parent, def, options);
8660
- }
8661
-
8662
- function mergeGroupDefaults() {
8663
- var self = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
8664
- var def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
8665
-
8666
- var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
8667
- _ref$excludeSelf = _ref.excludeSelf,
8668
- excludeSelf = _ref$excludeSelf === void 0 ? false : _ref$excludeSelf;
8669
-
8670
- var arr = [self, def, [self[0], self[0]], [def[0], def[0]]];
8671
- if (excludeSelf) arr.shift(); // exclude 'self'
8672
-
8673
- return defaults_default().apply(void 0, arr);
8674
- }
8675
-
8676
- function mergeButtonDefaults() {
8677
- var self = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
8678
- var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
8679
- var def = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
8680
-
8681
- var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
8682
- _ref2$excludeSelf = _ref2.excludeSelf,
8683
- excludeSelf = _ref2$excludeSelf === void 0 ? false : _ref2$excludeSelf;
8684
-
8685
- var arr = [self, parent, [undefined, self[0]], def, [undefined, parent[0]], [undefined, def[0]]];
8686
- if (excludeSelf) arr.shift(); // remove 'self'
8687
-
8688
- return defaults_default().apply(void 0, arr);
8689
- }
8690
  ;// CONCATENATED MODULE: ./node_modules/immer/dist/immer.esm.js
8691
- function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(false){ var i, o; }throw Error("[Immer] minified error nr: "+n+(t.length?" "+t.map((function(n){return"'"+n+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function r(n){return!!n&&!!n[Q]}function t(n){return!!n&&(function(n){if(!n||"object"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return"function"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&"symbol"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return true||0,U}function j(n,r){r&&(b("Patches"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b("ES5").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b("Patches").M(i[Q],r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b("Patches").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if( false&&0,r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b("MapSet").N(r,t):v(r)?b("MapSet").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b("ES5").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b("ES5").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return false&&0,en.get(r,n)},set:function(r){var t=this[Q]; false&&0,en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);return!(!t||t.get)}function f(r){r.g&&n(3,JSON.stringify(p(r)))}var s={};m("ES5",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,""+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,g:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&"object"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return r}function f(n){return r(n)?e(n):n}var c="add";m("Patches",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=i[s];0!==v&&1!==v||"__proto__"!==p&&"constructor"!==p||n(24),"function"==typeof f&&"prototype"===p&&n(24),"object"!=typeof(f=a(f,p))&&n(15,i.join("/"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case"replace":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case"remove":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},R:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?"replace":c:"remove";if(v!==p||"replace"!==l){var d=r.concat(n);t.push("remove"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:"remove",path:d}:"remove"===l?{op:c,path:d,value:f(v)}:{op:"replace",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:"replace",path:p,value:f(u[v])}),e.push({op:"replace",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:"replace",path:r.concat(["length"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:"remove",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:"remove",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:"replace",path:[],value:r}),e.push({op:"replace",path:[],value:n.t})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=R(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.g&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,g:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,"size",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.D.set(n,!0),t.o.set(n,r),t.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.D.set(n,!1),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(r){n.D.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=R(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,g:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,"size",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m("MapSet",{N:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),X="undefined"!=typeof Map,q="undefined"!=typeof Set,B="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,H=W?Symbol.for("immer-nothing"):((G={})["immer-nothing"]=!0,G),L=W?Symbol.for("immer-draftable"):"__$immer_draftable",Q=W?Symbol.for("immer-state"):"__$immer_state",V="undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator",Y={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(n){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+n},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(n){return"Cannot apply patch, path doesn't resolve: "+n},16:'Sets cannot have "replace" patches.',17:function(n){return"Unsupported patch operation: "+n},18:function(n){return"The plugin for '"+n+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+n+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(n){return"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+n+"'"},22:function(n){return"'current' expects a draft, got: "+n},23:function(n){return"'original' expects a draft, got: "+n},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Z=""+Object.prototype.constructor,nn="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&"number"!=typeof t||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||"length"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return false&&0,en.deleteProperty.call(this,r[0],t)},on.set=function(r,t,e){return false&&0,en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.F=!0,this.produce=function(r,i,o){if("function"==typeof r&&"function"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if("function"!=typeof i&&n(6),void 0!==o&&"function"!=typeof o&&n(7),t(r)){var c=w(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?g(c):O(c)}return"undefined"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g(c),n})):(j(c,o),P(f,c))}if(!r||"object"!=typeof r){if((f=i(r))===H)return;return void 0===f&&(f=r),e.F&&d(f,!0),f}n(21,r)},this.produceWithPatches=function(n,r){return"function"==typeof n?function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))}:[e.produce(n,r,(function(n,r){t=n,i=r})),t,i];var t,i},"boolean"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),"boolean"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q]; false&&(0);var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(r){r&&!B&&n(20),this.O=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}var o=b("Patches").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t.slice(e+1))}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);/* harmony default export */ var immer_esm = (fn);
8692
  //# sourceMappingURL=immer.esm.js.map
8693
 
8694
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/savingHelpers.js
8695
 
8696
 
8697
 
8698
- /**
8699
- * Generate JSON object
8700
- * @returns {Array}
8701
  */
8702
 
8703
  function generateJSONObject(storeDataObject) {
@@ -8732,11 +8622,11 @@ function generateJSONObject(storeDataObject) {
8732
  });
8733
  return data;
8734
  }
8735
- /**
8736
- * Create api request
8737
- *
8738
- * @param {*} endpoint
8739
- * @param {*} data
8740
  */
8741
 
8742
  function savingHelpers_apiRequest(endpoint, data) {
@@ -8746,8 +8636,8 @@ function savingHelpers_apiRequest(endpoint, data) {
8746
  };
8747
  return axios_default()(data);
8748
  }
8749
- /**
8750
- * Reset Buttonizer
8751
  */
8752
 
8753
  function resetSettings() {
@@ -11217,8 +11107,8 @@ function startTransaction(context, customSamplingContext) {
11217
  //# sourceMappingURL=index.js.map
11218
  ;// CONCATENATED MODULE: ./src/js/utils/reloadPreview.js
11219
 
11220
- /**
11221
- * Reload preview
11222
  */
11223
 
11224
  function reloadPreview(forceReloadPreview) {
@@ -11239,8 +11129,8 @@ function reloadPreview(forceReloadPreview) {
11239
  }
11240
  }
11241
  ;// CONCATENATED MODULE: ./src/js/utils/reloadPreviewIframe.js
11242
- /**
11243
- * Force reload page
11244
  */
11245
  function reloadPreviewIframe() {
11246
  // Reload the iframe
@@ -11258,6 +11148,9 @@ function reloadPreviewIframe() {
11258
 
11259
  return null;
11260
  }
 
 
 
11261
  // EXTERNAL MODULE: ./node_modules/lodash/isEqual.js
11262
  var isEqual = __webpack_require__(18446);
11263
  var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);
@@ -11353,8 +11246,8 @@ Queue_defineProperty(SavingQueue, "workingOnPromise", false);
11353
 
11354
  var timer = setTimeout(function () {});
11355
  var currentState = {};
11356
- /**
11357
- * Save groups & buttons
11358
  */
11359
 
11360
  function save() {
@@ -11503,8 +11396,8 @@ var wpReducer_initialStore = {
11503
  break;
11504
  }
11505
 
11506
- /**
11507
- * Button actions
11508
  */
11509
 
11510
  case buttonizer_constants_actionTypes.timeSchedules.SET_KEY_VALUE:
@@ -11513,8 +11406,8 @@ var wpReducer_initialStore = {
11513
  break;
11514
  }
11515
 
11516
- /**
11517
- * Time Schedule reducers
11518
  */
11519
 
11520
  case buttonizer_constants_actionTypes.timeSchedules.SET_WEEKDAY:
@@ -11620,8 +11513,8 @@ var defaultStore = {
11620
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/reducers/pageRuleReducer.js
11621
 
11622
 
11623
- /**
11624
- * Page rule reducers
11625
  */
11626
 
11627
  /* harmony default export */ function pageRuleReducer() {
@@ -11955,8 +11848,8 @@ function templateReducer() {
11955
  store.settings.loading = false;
11956
  break;
11957
 
11958
- /**
11959
- * Not used
11960
  */
11961
 
11962
  case buttonizer_constants_actionTypes.templates.ADD_RECORD:
@@ -11970,8 +11863,8 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
11970
 
11971
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11972
 
11973
- /**
11974
- * Update preview data
11975
  */
11976
 
11977
  var listenTo = [buttonizer_constants_actionTypes.groups.SET_KEY_VALUE, buttonizer_constants_actionTypes.groups.SET_KEY_FORMAT, buttonizer_constants_actionTypes.buttons.SET_KEY_VALUE, buttonizer_constants_actionTypes.buttons.SET_KEY_FORMAT];
@@ -12058,8 +11951,8 @@ function sendPostMessage(type) {
12058
 
12059
 
12060
 
12061
- /**
12062
- * Welcome to the Castore, proceed with caution
12063
  */
12064
 
12065
  var combinedReducers = combineReducers({
@@ -12073,8 +11966,8 @@ var combinedReducers = combineReducers({
12073
  settings: settingReducer,
12074
  templates: templateReducer
12075
  });
12076
- /**
12077
- * Logs all actions and states after they are dispatched.
12078
  */
12079
  // const logger = store => next => action => {
12080
  // console.group(action.type);
@@ -12103,8 +11996,8 @@ store_store.add = function (data, model) {
12103
 
12104
  store_store.subscribe(save);
12105
  /* harmony default export */ var dashboard_store = (store_store);
12106
- /**
12107
- * Testing purposes only (templates)
12108
  */
12109
  // import { getTemplates } from "./actions/TemplateActions/helpers";
12110
  // window.getTemplates = getTemplates(store.dispatch);
@@ -13432,1168 +13325,1333 @@ var Button = /*#__PURE__*/react.forwardRef(function Button(props, ref) {
13432
  /* harmony default export */ var Button_Button = ((0,withStyles/* default */.Z)(Button_styles, {
13433
  name: 'MuiButton'
13434
  })(Button));
13435
- // EXTERNAL MODULE: ./node_modules/react-tippy/dist/react-tippy.js
13436
- var react_tippy = __webpack_require__(47964);
13437
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Context.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13438
 
13439
- var Context_ReactReduxContext = /*#__PURE__*/react.createContext(null);
 
 
 
13440
 
13441
- if (false) {}
 
 
13442
 
13443
- /* harmony default export */ var Context = ((/* unused pure expression or super */ null && (Context_ReactReduxContext)));
13444
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/batch.js
13445
- // Default to a dummy "batch" implementation that just runs the callback
13446
- function defaultNoopBatch(callback) {
13447
- callback();
 
 
 
13448
  }
 
13449
 
13450
- var batch = defaultNoopBatch; // Allow injecting another batching function later
13451
 
13452
- var setBatch = function setBatch(newBatch) {
13453
- return batch = newBatch;
13454
- }; // Supply a getter just to skip dealing with ESM bindings
 
13455
 
13456
- var getBatch = function getBatch() {
13457
- return batch;
13458
- };
13459
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/Subscription.js
13460
- // encapsulates the subscription logic for connecting a component to the redux store, as
13461
- // well as nesting subscriptions of descendant components, so that we can ensure the
13462
- // ancestor components re-render before descendants
13463
 
13464
- var nullListeners = {
13465
- notify: function notify() {}
13466
- };
 
 
13467
 
13468
- function createListenerCollection() {
13469
- var batch = getBatch();
13470
- var first = null;
13471
- var last = null;
 
 
 
13472
  return {
13473
- clear: function clear() {
13474
- first = null;
13475
- last = null;
13476
- },
13477
- notify: function notify() {
13478
- batch(function () {
13479
- var listener = first;
13480
 
13481
- while (listener) {
13482
- listener.callback();
13483
- listener = listener.next;
13484
- }
13485
- });
13486
- },
13487
- get: function get() {
13488
- var listeners = [];
13489
- var listener = first;
13490
 
13491
- while (listener) {
13492
- listeners.push(listener);
13493
- listener = listener.next;
13494
- }
13495
 
13496
- return listeners;
13497
- },
13498
- subscribe: function subscribe(callback) {
13499
- var isSubscribed = true;
13500
- var listener = last = {
13501
- callback: callback,
13502
- next: null,
13503
- prev: last
13504
- };
13505
 
13506
- if (listener.prev) {
13507
- listener.prev.next = listener;
13508
- } else {
13509
- first = listener;
13510
- }
 
 
 
 
 
 
 
13511
 
13512
- return function unsubscribe() {
13513
- if (!isSubscribed || first === null) return;
13514
- isSubscribed = false;
 
 
 
13515
 
13516
- if (listener.next) {
13517
- listener.next.prev = listener.prev;
13518
- } else {
13519
- last = listener.prev;
13520
- }
13521
 
13522
- if (listener.prev) {
13523
- listener.prev.next = listener.next;
13524
- } else {
13525
- first = listener.next;
13526
- }
13527
- };
13528
- }
13529
- };
 
 
13530
  }
 
13531
 
13532
- var Subscription_Subscription = /*#__PURE__*/function () {
13533
- function Subscription(store, parentSub) {
13534
- this.store = store;
13535
- this.parentSub = parentSub;
13536
- this.unsubscribe = null;
13537
- this.listeners = nullListeners;
13538
- this.handleChangeWrapper = this.handleChangeWrapper.bind(this);
13539
- }
13540
 
13541
- var _proto = Subscription.prototype;
 
 
 
 
 
13542
 
13543
- _proto.addNestedSub = function addNestedSub(listener) {
13544
- this.trySubscribe();
13545
- return this.listeners.subscribe(listener);
13546
- };
13547
 
13548
- _proto.notifyNestedSubs = function notifyNestedSubs() {
13549
- this.listeners.notify();
13550
- };
13551
 
13552
- _proto.handleChangeWrapper = function handleChangeWrapper() {
13553
- if (this.onStateChange) {
13554
- this.onStateChange();
13555
- }
13556
- };
13557
 
13558
- _proto.isSubscribed = function isSubscribed() {
13559
- return Boolean(this.unsubscribe);
13560
- };
13561
 
13562
- _proto.trySubscribe = function trySubscribe() {
13563
- if (!this.unsubscribe) {
13564
- this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);
13565
- this.listeners = createListenerCollection();
13566
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13567
  };
13568
 
13569
- _proto.tryUnsubscribe = function tryUnsubscribe() {
13570
- if (this.unsubscribe) {
13571
- this.unsubscribe();
13572
- this.unsubscribe = null;
13573
- this.listeners.clear();
13574
- this.listeners = nullListeners;
13575
  }
13576
- };
13577
 
13578
- return Subscription;
13579
- }();
 
 
 
 
 
 
13580
 
 
 
 
 
 
 
 
 
 
 
13581
 
13582
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js
13583
- // React currently throws a warning when using useLayoutEffect on the server.
13584
- // To get around it, we can conditionally useEffect on the server (no-op) and
13585
- // useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
13586
- // subscription callback always has the selector from the latest render commit
13587
- // available, otherwise a store update may happen between render and the effect,
13588
- // which may cause missed updates; we also must ensure the store subscription
13589
- // is created synchronously, otherwise a store update may occur before the
13590
- // subscription is created and an inconsistent state may be observed
13591
 
13592
- var useIsomorphicLayoutEffect_useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react.useLayoutEffect : react.useEffect;
13593
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Provider.js
13594
 
 
 
 
13595
 
 
 
 
13596
 
 
 
 
 
 
 
 
 
13597
 
13598
 
13599
 
13600
- function Provider(_ref) {
13601
- var store = _ref.store,
13602
- context = _ref.context,
13603
- children = _ref.children;
13604
- var contextValue = (0,react.useMemo)(function () {
13605
- var subscription = new Subscription_Subscription(store);
13606
- subscription.onStateChange = subscription.notifyNestedSubs;
13607
- return {
13608
- store: store,
13609
- subscription: subscription
13610
- };
13611
- }, [store]);
13612
- var previousState = (0,react.useMemo)(function () {
13613
- return store.getState();
13614
- }, [store]);
13615
- useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
13616
- var subscription = contextValue.subscription;
13617
- subscription.trySubscribe();
13618
 
13619
- if (previousState !== store.getState()) {
13620
- subscription.notifyNestedSubs();
13621
- }
 
 
 
 
 
13622
 
13623
- return function () {
13624
- subscription.tryUnsubscribe();
13625
- subscription.onStateChange = null;
13626
- };
13627
- }, [contextValue, previousState]);
13628
- var Context = context || Context_ReactReduxContext;
13629
- return /*#__PURE__*/react.createElement(Context.Provider, {
13630
- value: contextValue
13631
- }, children);
13632
  }
 
13633
 
13634
- if (false) {}
13635
 
13636
- /* harmony default export */ var components_Provider = (Provider);
13637
- // EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
13638
- var hoist_non_react_statics_cjs = __webpack_require__(8679);
13639
- var hoist_non_react_statics_cjs_default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics_cjs);
13640
- // EXTERNAL MODULE: ./node_modules/react-redux/node_modules/react-is/index.js
13641
- var react_is = __webpack_require__(72973);
13642
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/connectAdvanced.js
13643
 
13644
 
 
 
 
 
 
13645
 
 
 
 
13646
 
 
 
 
13647
 
13648
 
13649
 
13650
- // Define some constant arrays just to avoid re-creating these
13651
 
13652
- var EMPTY_ARRAY = [];
13653
- var NO_SUBSCRIPTION_ARRAY = [null, null];
 
 
 
 
13654
 
13655
- var stringifyComponent = function stringifyComponent(Comp) {
13656
- try {
13657
- return JSON.stringify(Comp);
13658
- } catch (err) {
13659
- return String(Comp);
13660
  }
13661
- };
13662
 
13663
- function storeStateUpdatesReducer(state, action) {
13664
- var updateCount = state[1];
13665
- return [action.payload, updateCount + 1];
 
 
 
 
13666
  }
 
13667
 
13668
- function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
13669
- useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
13670
- return effectFunc.apply(void 0, effectArgs);
13671
- }, dependencies);
13672
  }
 
13673
 
13674
- function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {
13675
- // We want to capture the wrapper props and child props we used for later comparisons
13676
- lastWrapperProps.current = wrapperProps;
13677
- lastChildProps.current = actualChildProps;
13678
- renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update
13679
 
13680
- if (childPropsFromStoreUpdate.current) {
13681
- childPropsFromStoreUpdate.current = null;
13682
- notifyNestedSubs();
 
 
 
 
 
 
13683
  }
13684
- }
13685
 
13686
- function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {
13687
- // If we're not subscribed to the store, nothing to do here
13688
- if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts
13689
 
13690
- var didUnsubscribe = false;
13691
- var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component
13692
 
13693
- var checkForUpdates = function checkForUpdates() {
13694
- if (didUnsubscribe) {
13695
- // Don't run stale listeners.
13696
- // Redux doesn't guarantee unsubscriptions happen until next dispatch.
13697
- return;
13698
- }
13699
 
13700
- var latestStoreState = store.getState();
13701
- var newChildProps, error;
 
13702
 
13703
- try {
13704
- // Actually run the selector with the most recent store state and wrapper props
13705
- // to determine what the child props should be
13706
- newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);
13707
- } catch (e) {
13708
- error = e;
13709
- lastThrownError = e;
13710
  }
 
13711
 
13712
- if (!error) {
13713
- lastThrownError = null;
13714
- } // If the child props haven't changed, nothing to do here - cascade the subscription update
13715
 
 
 
 
 
13716
 
13717
- if (newChildProps === lastChildProps.current) {
13718
- if (!renderIsScheduled.current) {
13719
- notifyNestedSubs();
13720
- }
13721
  } else {
13722
- // Save references to the new child props. Note that we track the "child props from store update"
13723
- // as a ref instead of a useState/useReducer because we need a way to determine if that value has
13724
- // been processed. If this went into useState/useReducer, we couldn't clear out the value without
13725
- // forcing another re-render, which we don't want.
13726
- lastChildProps.current = newChildProps;
13727
- childPropsFromStoreUpdate.current = newChildProps;
13728
- renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render
13729
-
13730
- forceComponentUpdateDispatch({
13731
- type: 'STORE_UPDATED',
13732
- payload: {
13733
- error: error
13734
- }
13735
- });
13736
  }
13737
- }; // Actually subscribe to the nearest connected ancestor (or store)
13738
 
 
 
 
13739
 
13740
- subscription.onStateChange = checkForUpdates;
13741
- subscription.trySubscribe(); // Pull data from the store after first render in case the store has
13742
- // changed since we began.
13743
 
13744
- checkForUpdates();
 
 
13745
 
13746
- var unsubscribeWrapper = function unsubscribeWrapper() {
13747
- didUnsubscribe = true;
13748
- subscription.tryUnsubscribe();
13749
- subscription.onStateChange = null;
13750
 
13751
- if (lastThrownError) {
13752
- // It's possible that we caught an error due to a bad mapState function, but the
13753
- // parent re-rendered without this component and we're about to unmount.
13754
- // This shouldn't happen as long as we do top-down subscriptions correctly, but
13755
- // if we ever do those wrong, this throw will surface the error in our tests.
13756
- // In that case, throw the error from here so it doesn't get lost.
13757
- throw lastThrownError;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13758
  }
 
 
13759
  };
 
 
 
 
 
 
 
 
 
 
 
13760
 
13761
- return unsubscribeWrapper;
 
 
13762
  }
 
13763
 
13764
- var initStateUpdates = function initStateUpdates() {
13765
- return [null, 0];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13766
  };
13767
 
13768
- function connectAdvanced(
13769
- /*
13770
- selectorFactory is a func that is responsible for returning the selector function used to
13771
- compute new props from state, props, and dispatch. For example:
13772
- export default connectAdvanced((dispatch, options) => (state, props) => ({
13773
- thing: state.things[props.thingId],
13774
- saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),
13775
- }))(YourComponent)
13776
- Access to dispatch is provided to the factory so selectorFactories can bind actionCreators
13777
- outside of their selector as an optimization. Options passed to connectAdvanced are passed to
13778
- the selectorFactory, along with displayName and WrappedComponent, as the second argument.
13779
- Note that selectorFactory is responsible for all caching/memoization of inbound and outbound
13780
- props. Do not use connectAdvanced directly without memoizing results between calls to your
13781
- selector, otherwise the Connect component will re-render on every state or props change.
13782
- */
13783
- selectorFactory, // options object:
13784
- _ref) {
13785
- if (_ref === void 0) {
13786
- _ref = {};
13787
  }
13788
 
13789
- var _ref2 = _ref,
13790
- _ref2$getDisplayName = _ref2.getDisplayName,
13791
- getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {
13792
- return "ConnectAdvanced(" + name + ")";
13793
- } : _ref2$getDisplayName,
13794
- _ref2$methodName = _ref2.methodName,
13795
- methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,
13796
- _ref2$renderCountProp = _ref2.renderCountProp,
13797
- renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,
13798
- _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,
13799
- shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,
13800
- _ref2$storeKey = _ref2.storeKey,
13801
- storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,
13802
- _ref2$withRef = _ref2.withRef,
13803
- withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,
13804
- _ref2$forwardRef = _ref2.forwardRef,
13805
- forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,
13806
- _ref2$context = _ref2.context,
13807
- context = _ref2$context === void 0 ? Context_ReactReduxContext : _ref2$context,
13808
- connectOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]);
13809
-
13810
- if (false) { var customStoreWarningMessage; }
13811
-
13812
- var Context = context;
13813
- return function wrapWithConnect(WrappedComponent) {
13814
- if (false) {}
13815
 
13816
- var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
13817
- var displayName = getDisplayName(wrappedComponentName);
 
 
13818
 
13819
- var selectorFactoryOptions = (0,esm_extends/* default */.Z)({}, connectOptions, {
13820
- getDisplayName: getDisplayName,
13821
- methodName: methodName,
13822
- renderCountProp: renderCountProp,
13823
- shouldHandleStateChanges: shouldHandleStateChanges,
13824
- storeKey: storeKey,
13825
- displayName: displayName,
13826
- wrappedComponentName: wrappedComponentName,
13827
- WrappedComponent: WrappedComponent
13828
- });
13829
 
13830
- var pure = connectOptions.pure;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13831
 
13832
- function createChildSelector(store) {
13833
- return selectorFactory(store.dispatch, selectorFactoryOptions);
13834
- } // If we aren't running in "pure" mode, we don't want to memoize values.
13835
- // To avoid conditionally calling hooks, we fall back to a tiny wrapper
13836
- // that just executes the given callback immediately.
13837
 
 
 
13838
 
13839
- var usePureOnlyMemo = pure ? react.useMemo : function (callback) {
13840
- return callback();
13841
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13842
 
13843
- function ConnectFunction(props) {
13844
- var _useMemo = (0,react.useMemo)(function () {
13845
- // Distinguish between actual "data" props that were passed to the wrapper component,
13846
- // and values needed to control behavior (forwarded refs, alternate context instances).
13847
- // To maintain the wrapperProps object reference, memoize this destructuring.
13848
- var reactReduxForwardedRef = props.reactReduxForwardedRef,
13849
- wrapperProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ["reactReduxForwardedRef"]);
13850
 
13851
- return [props.context, reactReduxForwardedRef, wrapperProps];
13852
- }, [props]),
13853
- propsContext = _useMemo[0],
13854
- reactReduxForwardedRef = _useMemo[1],
13855
- wrapperProps = _useMemo[2];
13856
 
13857
- var ContextToUse = (0,react.useMemo)(function () {
13858
- // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
13859
- // Memoize the check that determines which context instance we should use.
13860
- return propsContext && propsContext.Consumer && (0,react_is.isContextConsumer)( /*#__PURE__*/react.createElement(propsContext.Consumer, null)) ? propsContext : Context;
13861
- }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13862
 
13863
- var contextValue = (0,react.useContext)(ContextToUse); // The store _must_ exist as either a prop or in context.
13864
- // We'll check to see if it _looks_ like a Redux store first.
13865
- // This allows us to pass through a `store` prop that is just a plain value.
13866
 
13867
- var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
13868
- var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
13869
 
13870
- if (false) {} // Based on the previous check, one of these must be true
 
 
 
 
 
 
 
 
13871
 
 
 
 
 
 
 
13872
 
13873
- var store = didStoreComeFromProps ? props.store : contextValue.store;
13874
- var childPropsSelector = (0,react.useMemo)(function () {
13875
- // The child props selector needs the store reference as an input.
13876
- // Re-create this selector whenever the store changes.
13877
- return createChildSelector(store);
13878
- }, [store]);
 
13879
 
13880
- var _useMemo2 = (0,react.useMemo)(function () {
13881
- if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component
13882
- // connected to the store via props shouldn't use subscription from context, or vice versa.
13883
 
13884
- var subscription = new Subscription_Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
13885
- // the middle of the notification loop, where `subscription` will then be null. This can
13886
- // probably be avoided if Subscription's listeners logic is changed to not call listeners
13887
- // that have been unsubscribed in the middle of the notification loop.
13888
 
13889
- var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);
13890
- return [subscription, notifyNestedSubs];
13891
- }, [store, didStoreComeFromProps, contextValue]),
13892
- subscription = _useMemo2[0],
13893
- notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,
13894
- // and memoize that value to avoid unnecessary context updates.
13895
 
 
 
 
 
13896
 
13897
- var overriddenContextValue = (0,react.useMemo)(function () {
13898
- if (didStoreComeFromProps) {
13899
- // This component is directly subscribed to a store from props.
13900
- // We don't want descendants reading from this store - pass down whatever
13901
- // the existing context value is from the nearest connected ancestor.
13902
- return contextValue;
13903
- } // Otherwise, put this component's subscription instance into context, so that
13904
- // connected descendants won't update until after this component is done
13905
 
 
 
13906
 
13907
- return (0,esm_extends/* default */.Z)({}, contextValue, {
13908
- subscription: subscription
13909
- });
13910
- }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update
13911
- // causes a change to the calculated child component props (or we caught an error in mapState)
13912
 
13913
- var _useReducer = (0,react.useReducer)(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),
13914
- _useReducer$ = _useReducer[0],
13915
- previousStateUpdateResult = _useReducer$[0],
13916
- forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards
 
 
 
 
 
 
 
 
 
 
 
 
13917
 
 
 
 
13918
 
13919
- if (previousStateUpdateResult && previousStateUpdateResult.error) {
13920
- throw previousStateUpdateResult.error;
13921
- } // Set up refs to coordinate values between the subscription effect and the render logic
 
 
 
13922
 
 
 
 
 
 
13923
 
13924
- var lastChildProps = (0,react.useRef)();
13925
- var lastWrapperProps = (0,react.useRef)(wrapperProps);
13926
- var childPropsFromStoreUpdate = (0,react.useRef)();
13927
- var renderIsScheduled = (0,react.useRef)(false);
13928
- var actualChildProps = usePureOnlyMemo(function () {
13929
- // Tricky logic here:
13930
- // - This render may have been triggered by a Redux store update that produced new child props
13931
- // - However, we may have gotten new wrapper props after that
13932
- // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
13933
- // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
13934
- // So, we'll use the child props from store update only if the wrapper props are the same as last time.
13935
- if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
13936
- return childPropsFromStoreUpdate.current;
13937
- } // TODO We're reading the store directly in render() here. Bad idea?
13938
- // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
13939
- // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
13940
- // to determine what the child props should be.
13941
 
 
 
 
 
 
 
 
 
 
13942
 
13943
- return childPropsSelector(store.getState(), wrapperProps);
13944
- }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns
13945
- // about useLayoutEffect in SSR, so we try to detect environment and fall back to
13946
- // just useEffect instead to avoid the warning, since neither will run anyway.
 
 
 
 
 
 
 
 
13947
 
13948
- useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes
13949
 
13950
- useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.
13951
- // We memoize the elements for the rendered child component as an optimization.
13952
 
13953
- var renderedWrappedComponent = (0,react.useMemo)(function () {
13954
- return /*#__PURE__*/react.createElement(WrappedComponent, (0,esm_extends/* default */.Z)({}, actualChildProps, {
13955
- ref: reactReduxForwardedRef
13956
- }));
13957
- }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering
13958
- // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
13959
 
13960
- var renderedChild = (0,react.useMemo)(function () {
13961
- if (shouldHandleStateChanges) {
13962
- // If this component is subscribed to store updates, we need to pass its own
13963
- // subscription instance down to our descendants. That means rendering the same
13964
- // Context instance, and putting a different value into the context.
13965
- return /*#__PURE__*/react.createElement(ContextToUse.Provider, {
13966
- value: overriddenContextValue
13967
- }, renderedWrappedComponent);
13968
- }
13969
 
13970
- return renderedWrappedComponent;
13971
- }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
13972
- return renderedChild;
13973
- } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed.
 
 
 
13974
 
 
 
 
 
 
 
13975
 
13976
- var Connect = pure ? react.memo(ConnectFunction) : ConnectFunction;
13977
- Connect.WrappedComponent = WrappedComponent;
13978
- Connect.displayName = displayName;
 
 
 
13979
 
13980
- if (forwardRef) {
13981
- var forwarded = react.forwardRef(function forwardConnectRef(props, ref) {
13982
- return /*#__PURE__*/react.createElement(Connect, (0,esm_extends/* default */.Z)({}, props, {
13983
- reactReduxForwardedRef: ref
13984
- }));
13985
- });
13986
- forwarded.displayName = displayName;
13987
- forwarded.WrappedComponent = WrappedComponent;
13988
- return hoist_non_react_statics_cjs_default()(forwarded, WrappedComponent);
13989
- }
13990
 
13991
- return hoist_non_react_statics_cjs_default()(Connect, WrappedComponent);
13992
- };
13993
- }
13994
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/shallowEqual.js
13995
- function is(x, y) {
13996
- if (x === y) {
13997
- return x !== 0 || y !== 0 || 1 / x === 1 / y;
13998
- } else {
13999
- return x !== x && y !== y;
14000
  }
14001
- }
14002
 
14003
- function shallowEqual(objA, objB) {
14004
- if (is(objA, objB)) return true;
14005
 
14006
- if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
14007
- return false;
14008
- }
14009
 
14010
- var keysA = Object.keys(objA);
14011
- var keysB = Object.keys(objB);
14012
- if (keysA.length !== keysB.length) return false;
 
14013
 
14014
- for (var i = 0; i < keysA.length; i++) {
14015
- if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
14016
- return false;
 
 
14017
  }
14018
  }
14019
 
14020
- return true;
14021
  }
14022
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/wrapMapToProps.js
14023
 
14024
- function wrapMapToPropsConstant(getConstant) {
14025
- return function initConstantSelector(dispatch, options) {
14026
- var constant = getConstant(dispatch, options);
14027
 
14028
- function constantSelector() {
14029
- return constant;
14030
- }
 
 
 
 
 
 
 
 
 
 
 
14031
 
14032
- constantSelector.dependsOnOwnProps = false;
14033
- return constantSelector;
14034
- };
14035
- } // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
14036
- // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
14037
- // whether mapToProps needs to be invoked when props have changed.
14038
- //
14039
- // A length of one signals that mapToProps does not depend on props from the parent component.
14040
- // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
14041
- // therefore not reporting its length accurately..
14042
 
14043
- function getDependsOnOwnProps(mapToProps) {
14044
- return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
14045
- } // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
14046
- // this function wraps mapToProps in a proxy function which does several things:
14047
- //
14048
- // * Detects whether the mapToProps function being called depends on props, which
14049
- // is used by selectorFactory to decide if it should reinvoke on props changes.
14050
- //
14051
- // * On first call, handles mapToProps if returns another function, and treats that
14052
- // new function as the true mapToProps for subsequent calls.
14053
- //
14054
- // * On first call, verifies the first result is a plain object, in order to warn
14055
- // the developer that their mapToProps function is not returning a valid result.
14056
- //
14057
 
14058
- function wrapMapToPropsFunc(mapToProps, methodName) {
14059
- return function initProxySelector(dispatch, _ref) {
14060
- var displayName = _ref.displayName;
14061
 
14062
- var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
14063
- return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);
14064
- }; // allow detectFactoryAndVerify to get ownProps
14065
 
14066
 
14067
- proxy.dependsOnOwnProps = true;
14068
 
14069
- proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
14070
- proxy.mapToProps = mapToProps;
14071
- proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
14072
- var props = proxy(stateOrDispatch, ownProps);
14073
 
14074
- if (typeof props === 'function') {
14075
- proxy.mapToProps = props;
14076
- proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
14077
- props = proxy(stateOrDispatch, ownProps);
14078
- }
14079
 
14080
- if (false) {}
14081
- return props;
14082
- };
 
 
 
 
 
14083
 
14084
- return proxy;
 
 
 
 
 
 
 
14085
  };
14086
  }
14087
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapDispatchToProps.js
14088
 
 
 
14089
 
14090
- function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {
14091
- return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;
14092
- }
14093
- function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
14094
- return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {
14095
- return {
14096
- dispatch: dispatch
14097
- };
14098
- }) : undefined;
14099
- }
14100
- function whenMapDispatchToPropsIsObject(mapDispatchToProps) {
14101
- return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {
14102
- return bindActionCreators(mapDispatchToProps, dispatch);
14103
- }) : undefined;
14104
- }
14105
- /* harmony default export */ var mapDispatchToProps = ([whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]);
14106
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapStateToProps.js
14107
 
14108
- function whenMapStateToPropsIsFunction(mapStateToProps) {
14109
- return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;
14110
- }
14111
- function whenMapStateToPropsIsMissing(mapStateToProps) {
14112
- return !mapStateToProps ? wrapMapToPropsConstant(function () {
14113
- return {};
14114
- }) : undefined;
14115
- }
14116
- /* harmony default export */ var mapStateToProps = ([whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]);
14117
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mergeProps.js
14118
 
 
 
 
 
 
14119
 
14120
- function defaultMergeProps(stateProps, dispatchProps, ownProps) {
14121
- return (0,esm_extends/* default */.Z)({}, ownProps, stateProps, dispatchProps);
14122
- }
14123
- function wrapMergePropsFunc(mergeProps) {
14124
- return function initMergePropsProxy(dispatch, _ref) {
14125
- var displayName = _ref.displayName,
14126
- pure = _ref.pure,
14127
- areMergedPropsEqual = _ref.areMergedPropsEqual;
14128
- var hasRunOnce = false;
14129
- var mergedProps;
14130
- return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
14131
- var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
14132
 
14133
- if (hasRunOnce) {
14134
- if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;
14135
- } else {
14136
- hasRunOnce = true;
14137
- mergedProps = nextMergedProps;
14138
- if (false) {}
14139
  }
 
14140
 
14141
- return mergedProps;
14142
- };
14143
- };
14144
- }
14145
- function whenMergePropsIsFunction(mergeProps) {
14146
- return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;
14147
- }
14148
- function whenMergePropsIsOmitted(mergeProps) {
14149
- return !mergeProps ? function () {
14150
- return defaultMergeProps;
14151
- } : undefined;
14152
- }
14153
- /* harmony default export */ var mergeProps = ([whenMergePropsIsFunction, whenMergePropsIsOmitted]);
14154
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/selectorFactory.js
14155
 
 
14156
 
14157
- function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {
14158
- return function impureFinalPropsSelector(state, ownProps) {
14159
- return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);
14160
- };
14161
- }
14162
- function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {
14163
- var areStatesEqual = _ref.areStatesEqual,
14164
- areOwnPropsEqual = _ref.areOwnPropsEqual,
14165
- areStatePropsEqual = _ref.areStatePropsEqual;
14166
- var hasRunAtLeastOnce = false;
14167
- var state;
14168
- var ownProps;
14169
- var stateProps;
14170
- var dispatchProps;
14171
- var mergedProps;
14172
 
14173
- function handleFirstCall(firstState, firstOwnProps) {
14174
- state = firstState;
14175
- ownProps = firstOwnProps;
14176
- stateProps = mapStateToProps(state, ownProps);
14177
- dispatchProps = mapDispatchToProps(dispatch, ownProps);
14178
- mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
14179
- hasRunAtLeastOnce = true;
14180
- return mergedProps;
14181
- }
14182
 
14183
- function handleNewPropsAndNewState() {
14184
- stateProps = mapStateToProps(state, ownProps);
14185
- if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
14186
- mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
14187
- return mergedProps;
 
14188
  }
14189
 
14190
- function handleNewProps() {
14191
- if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);
14192
- if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
14193
- mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
14194
- return mergedProps;
 
 
 
14195
  }
14196
 
14197
- function handleNewState() {
14198
- var nextStateProps = mapStateToProps(state, ownProps);
14199
- var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
14200
- stateProps = nextStateProps;
14201
- if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
14202
- return mergedProps;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14203
  }
14204
 
14205
- function handleSubsequentCalls(nextState, nextOwnProps) {
14206
- var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
14207
- var stateChanged = !areStatesEqual(nextState, state);
14208
- state = nextState;
14209
- ownProps = nextOwnProps;
14210
- if (propsChanged && stateChanged) return handleNewPropsAndNewState();
14211
- if (propsChanged) return handleNewProps();
14212
- if (stateChanged) return handleNewState();
14213
- return mergedProps;
14214
  }
14215
 
14216
- return function pureFinalPropsSelector(nextState, nextOwnProps) {
14217
- return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
14218
- };
14219
- } // TODO: Add more comments
14220
- // If pure is true, the selector returned by selectorFactory will memoize its results,
14221
- // allowing connectAdvanced's shouldComponentUpdate to return false if final
14222
- // props have not changed. If false, the selector will always return a new
14223
- // object and shouldComponentUpdate will always return true.
14224
 
14225
- function finalPropsSelectorFactory(dispatch, _ref2) {
14226
- var initMapStateToProps = _ref2.initMapStateToProps,
14227
- initMapDispatchToProps = _ref2.initMapDispatchToProps,
14228
- initMergeProps = _ref2.initMergeProps,
14229
- options = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]);
14230
 
14231
- var mapStateToProps = initMapStateToProps(dispatch, options);
14232
- var mapDispatchToProps = initMapDispatchToProps(dispatch, options);
14233
- var mergeProps = initMergeProps(dispatch, options);
 
 
 
 
 
14234
 
14235
- if (false) {}
 
14236
 
14237
- var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;
14238
- return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
14239
- }
14240
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/connect.js
 
 
14241
 
 
 
 
 
 
14242
 
14243
 
 
 
 
14244
 
 
 
 
 
 
 
 
 
14245
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14246
 
 
 
 
14247
 
 
 
 
 
 
14248
 
14249
- /*
14250
- connect is a facade over connectAdvanced. It turns its args into a compatible
14251
- selectorFactory, which has the signature:
14252
-
14253
- (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps
14254
-
14255
- connect passes its args to connectAdvanced as options, which will in turn pass them to
14256
- selectorFactory each time a Connect component instance is instantiated or hot reloaded.
14257
-
14258
- selectorFactory returns a final props selector from its mapStateToProps,
14259
- mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,
14260
- mergePropsFactories, and pure args.
14261
-
14262
- The resulting final props selector is called by the Connect component instance whenever
14263
- it receives new props or store state.
14264
- */
14265
 
14266
- function match(arg, factories, name) {
14267
- for (var i = factories.length - 1; i >= 0; i--) {
14268
- var result = factories[i](arg);
14269
- if (result) return result;
14270
- }
14271
 
14272
- return function (dispatch, options) {
14273
- throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + ".");
 
 
 
14274
  };
14275
- }
14276
 
14277
- function strictEqual(a, b) {
14278
- return a === b;
14279
- } // createConnect with default args builds the 'official' connect behavior. Calling it with
14280
- // different options opens up some testing and extensibility scenarios
14281
 
 
 
 
 
 
 
 
 
 
14282
 
14283
- function createConnect(_temp) {
14284
- var _ref = _temp === void 0 ? {} : _temp,
14285
- _ref$connectHOC = _ref.connectHOC,
14286
- connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,
14287
- _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,
14288
- mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? mapStateToProps : _ref$mapStateToPropsF,
14289
- _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,
14290
- mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? mapDispatchToProps : _ref$mapDispatchToPro,
14291
- _ref$mergePropsFactor = _ref.mergePropsFactories,
14292
- mergePropsFactories = _ref$mergePropsFactor === void 0 ? mergeProps : _ref$mergePropsFactor,
14293
- _ref$selectorFactory = _ref.selectorFactory,
14294
- selectorFactory = _ref$selectorFactory === void 0 ? finalPropsSelectorFactory : _ref$selectorFactory;
14295
 
14296
- return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {
14297
- if (_ref2 === void 0) {
14298
- _ref2 = {};
14299
- }
14300
 
14301
- var _ref3 = _ref2,
14302
- _ref3$pure = _ref3.pure,
14303
- pure = _ref3$pure === void 0 ? true : _ref3$pure,
14304
- _ref3$areStatesEqual = _ref3.areStatesEqual,
14305
- areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,
14306
- _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,
14307
- areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,
14308
- _ref3$areStatePropsEq = _ref3.areStatePropsEqual,
14309
- areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,
14310
- _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,
14311
- areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,
14312
- extraOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref3, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]);
14313
 
14314
- var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');
14315
- var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');
14316
- var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');
14317
- return connectHOC(selectorFactory, (0,esm_extends/* default */.Z)({
14318
- // used in error messages
14319
- methodName: 'connect',
14320
- // used to compute Connect's displayName from the wrapped component's displayName.
14321
- getDisplayName: function getDisplayName(name) {
14322
- return "Connect(" + name + ")";
14323
- },
14324
- // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes
14325
- shouldHandleStateChanges: Boolean(mapStateToProps),
14326
- // passed through to selectorFactory
14327
- initMapStateToProps: initMapStateToProps,
14328
- initMapDispatchToProps: initMapDispatchToProps,
14329
- initMergeProps: initMergeProps,
14330
- pure: pure,
14331
- areStatesEqual: areStatesEqual,
14332
- areOwnPropsEqual: areOwnPropsEqual,
14333
- areStatePropsEqual: areStatePropsEqual,
14334
- areMergedPropsEqual: areMergedPropsEqual
14335
- }, extraOptions));
14336
  };
14337
  }
14338
- /* harmony default export */ var connect = (/*#__PURE__*/createConnect());
14339
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useReduxContext.js
14340
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14341
 
14342
- /**
14343
- * A hook to access the value of the `ReactReduxContext`. This is a low-level
14344
- * hook that you should usually not need to call directly.
14345
- *
14346
- * @returns {any} the value of the `ReactReduxContext`
14347
- *
14348
- * @example
14349
- *
14350
- * import React from 'react'
14351
- * import { useReduxContext } from 'react-redux'
14352
- *
14353
- * export const CounterComponent = ({ value }) => {
14354
- * const { store } = useReduxContext()
14355
- * return <div>{store.getState()}</div>
14356
- * }
14357
- */
14358
 
14359
- function useReduxContext_useReduxContext() {
14360
- var contextValue = (0,react.useContext)(Context_ReactReduxContext);
14361
 
14362
- if (false) {}
14363
 
14364
- return contextValue;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14365
  }
14366
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useStore.js
 
 
 
 
 
 
 
 
 
 
14367
 
14368
 
14369
 
14370
- /**
14371
- * Hook factory, which creates a `useStore` hook bound to a given context.
14372
- *
14373
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
14374
- * @returns {Function} A `useStore` hook bound to the specified context.
14375
- */
 
 
 
 
 
 
14376
 
14377
- function createStoreHook(context) {
14378
- if (context === void 0) {
14379
- context = Context_ReactReduxContext;
14380
- }
 
 
 
 
 
 
14381
 
14382
- var useReduxContext = context === Context_ReactReduxContext ? useReduxContext_useReduxContext : function () {
14383
- return (0,react.useContext)(context);
14384
- };
14385
- return function useStore() {
14386
- var _useReduxContext = useReduxContext(),
14387
- store = _useReduxContext.store;
14388
 
14389
- return store;
 
 
 
 
14390
  };
14391
  }
14392
- /**
14393
- * A hook to access the redux store.
14394
- *
14395
- * @returns {any} the redux store
14396
- *
14397
- * @example
14398
- *
14399
- * import React from 'react'
14400
- * import { useStore } from 'react-redux'
14401
- *
14402
- * export const ExampleComponent = () => {
14403
- * const store = useStore()
14404
- * return <div>{store.getState()}</div>
14405
- * }
14406
- */
14407
 
14408
- var useStore_useStore = /*#__PURE__*/createStoreHook();
14409
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useDispatch.js
14410
 
14411
 
14412
- /**
14413
- * Hook factory, which creates a `useDispatch` hook bound to a given context.
14414
- *
14415
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
14416
- * @returns {Function} A `useDispatch` hook bound to the specified context.
14417
- */
14418
 
14419
- function createDispatchHook(context) {
14420
- if (context === void 0) {
14421
- context = Context_ReactReduxContext;
 
 
 
 
 
 
 
 
 
 
 
 
 
14422
  }
14423
 
14424
- var useStore = context === Context_ReactReduxContext ? useStore_useStore : createStoreHook(context);
14425
- return function useDispatch() {
14426
- var store = useStore();
14427
- return store.dispatch;
 
14428
  };
14429
  }
14430
- /**
14431
- * A hook to access the redux `dispatch` function.
14432
- *
14433
- * @returns {any|function} redux store's `dispatch` function
14434
- *
14435
- * @example
14436
- *
14437
- * import React, { useCallback } from 'react'
14438
- * import { useDispatch } from 'react-redux'
14439
- *
14440
- * export const CounterComponent = ({ value }) => {
14441
- * const dispatch = useDispatch()
14442
- * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
14443
- * return (
14444
- * <div>
14445
- * <span>{value}</span>
14446
- * <button onClick={increaseCounter}>Increase counter</button>
14447
- * </div>
14448
- * )
14449
- * }
14450
- */
14451
 
14452
- var useDispatch = /*#__PURE__*/createDispatchHook();
14453
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useSelector.js
14454
 
 
 
 
 
 
14455
 
 
 
 
 
14456
 
14457
 
 
 
 
14458
 
14459
 
14460
- var refEquality = function refEquality(a, b) {
14461
- return a === b;
14462
- };
 
 
 
 
 
 
 
 
 
14463
 
14464
- function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {
14465
- var _useReducer = useReducer(function (s) {
14466
- return s + 1;
14467
- }, 0),
14468
- forceRender = _useReducer[1];
14469
 
14470
- var subscription = useMemo(function () {
14471
- return new Subscription(store, contextSub);
14472
- }, [store, contextSub]);
14473
- var latestSubscriptionCallbackError = useRef();
14474
- var latestSelector = useRef();
14475
- var latestStoreState = useRef();
14476
- var latestSelectedState = useRef();
14477
- var storeState = store.getState();
14478
- var selectedState;
14479
 
14480
- try {
14481
- if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {
14482
- var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references
14483
 
14484
- if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {
14485
- selectedState = newSelectedState;
14486
- } else {
14487
- selectedState = latestSelectedState.current;
14488
- }
14489
- } else {
14490
- selectedState = latestSelectedState.current;
14491
- }
14492
- } catch (err) {
14493
- if (latestSubscriptionCallbackError.current) {
14494
- err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n";
14495
- }
14496
 
14497
- throw err;
14498
- }
14499
 
14500
- useIsomorphicLayoutEffect(function () {
14501
- latestSelector.current = selector;
14502
- latestStoreState.current = storeState;
14503
- latestSelectedState.current = selectedState;
14504
- latestSubscriptionCallbackError.current = undefined;
14505
- });
14506
- useIsomorphicLayoutEffect(function () {
14507
- function checkForUpdates() {
14508
- try {
14509
- var _newSelectedState = latestSelector.current(store.getState());
14510
 
14511
- if (equalityFn(_newSelectedState, latestSelectedState.current)) {
14512
- return;
14513
- }
14514
 
14515
- latestSelectedState.current = _newSelectedState;
14516
- } catch (err) {
14517
- // we ignore all errors here, since when the component
14518
- // is re-rendered, the selectors are called again, and
14519
- // will throw again, if neither props nor store state
14520
- // changed
14521
- latestSubscriptionCallbackError.current = err;
14522
- }
14523
 
14524
- forceRender();
14525
- }
14526
 
14527
- subscription.onStateChange = checkForUpdates;
14528
- subscription.trySubscribe();
14529
- checkForUpdates();
14530
- return function () {
14531
- return subscription.tryUnsubscribe();
14532
- };
14533
- }, [store, subscription]);
14534
- return selectedState;
 
 
 
 
 
 
 
 
14535
  }
14536
- /**
14537
- * Hook factory, which creates a `useSelector` hook bound to a given context.
14538
- *
14539
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
14540
- * @returns {Function} A `useSelector` hook bound to the specified context.
14541
- */
14542
 
 
 
 
 
 
14543
 
14544
- function createSelectorHook(context) {
14545
- if (context === void 0) {
14546
- context = ReactReduxContext;
14547
- }
14548
 
14549
- var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {
14550
- return useContext(context);
14551
- };
14552
- return function useSelector(selector, equalityFn) {
14553
- if (equalityFn === void 0) {
14554
- equalityFn = refEquality;
14555
- }
14556
 
14557
- if (false) {}
 
 
14558
 
14559
- var _useReduxContext = useReduxContext(),
14560
- store = _useReduxContext.store,
14561
- contextSub = _useReduxContext.subscription;
14562
 
14563
- var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
14564
- useDebugValue(selectedState);
14565
- return selectedState;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14566
  };
14567
  }
14568
- /**
14569
- * A hook to access the redux store's state. This hook takes a selector function
14570
- * as an argument. The selector is called with the store state.
14571
- *
14572
- * This hook takes an optional equality comparison function as the second parameter
14573
- * that allows you to customize the way the selected state is compared to determine
14574
- * whether the component needs to be re-rendered.
14575
- *
14576
- * @param {Function} selector the selector function
14577
- * @param {Function=} equalityFn the function that will be used to determine equality
14578
- *
14579
- * @returns {any} the selected state
14580
- *
14581
- * @example
14582
- *
14583
- * import React from 'react'
14584
- * import { useSelector } from 'react-redux'
14585
- *
14586
- * export const CounterComponent = () => {
14587
- * const counter = useSelector(state => state.counter)
14588
- * return <div>{counter}</div>
14589
- * }
14590
- */
14591
 
14592
- var useSelector = /*#__PURE__*/(/* unused pure expression or super */ null && (createSelectorHook()));
14593
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/reactBatchedUpdates.js
14594
- /* eslint-disable import/no-unresolved */
 
 
 
 
 
 
 
 
14595
 
14596
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/index.js
14597
 
14598
 
14599
 
@@ -14601,2939 +14659,7619 @@ var useSelector = /*#__PURE__*/(/* unused pure expression or super */ null && (c
14601
 
14602
 
14603
 
 
14604
 
 
 
 
 
14605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14606
 
14607
- setBatch(react_dom.unstable_batchedUpdates);
 
 
14608
 
14609
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Tippy/Tippy.js
14610
- function Tippy_extends() { Tippy_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return Tippy_extends.apply(this, arguments); }
14611
 
14612
 
14613
 
 
 
 
 
14614
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14615
 
 
 
14616
 
14617
- function Tippy(_ref) {
14618
- var props = _ref.props,
14619
- preference = _ref.preference;
14620
- if (!preference) return props.children;
14621
- return /*#__PURE__*/react.createElement(react_tippy.Tooltip, Tippy_extends({
14622
- title: null,
14623
- html: props.content
14624
- }, props, {
14625
- disabled: preference ? props.disabled : true
14626
- }), props.children);
 
 
 
 
 
 
14627
  }
 
14628
 
14629
- /* harmony default export */ var Tippy_Tippy = (connect(function (state, props) {
14630
- return {
14631
- preference: state.settings.show_tooltips,
14632
- props: props
14633
- };
14634
- })(Tippy));
14635
- // EXTERNAL MODULE: ./node_modules/react-is/index.js
14636
- var node_modules_react_is = __webpack_require__(59864);
14637
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js
14638
 
14639
 
14640
 
14641
 
14642
 
 
14643
 
 
 
 
 
14644
 
 
 
 
14645
 
 
 
 
 
14646
 
14647
- // Force a side effect so we don't have any override priority issue.
14648
- // eslint-disable-next-line no-unused-expressions
 
14649
 
14650
- Button_Button.styles;
14651
- var ButtonGroup_styles = function styles(theme) {
14652
- return {
14653
- /* Styles applied to the root element. */
14654
- root: {
14655
- display: 'inline-flex',
14656
- borderRadius: theme.shape.borderRadius
14657
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14658
 
14659
- /* Styles applied to the root element if `variant="contained"`. */
14660
- contained: {
14661
- boxShadow: theme.shadows[2]
14662
- },
14663
 
14664
- /* Styles applied to the root element if `disableElevation={true}`. */
14665
- disableElevation: {
14666
- boxShadow: 'none'
14667
- },
14668
 
14669
- /* Pseudo-class applied to child elements if `disabled={true}`. */
14670
- disabled: {},
 
14671
 
14672
- /* Styles applied to the root element if `fullWidth={true}`. */
14673
- fullWidth: {
14674
- width: '100%'
14675
- },
14676
 
14677
- /* Styles applied to the root element if `orientation="vertical"`. */
14678
- vertical: {
14679
- flexDirection: 'column'
14680
- },
 
 
 
14681
 
14682
- /* Styles applied to the children. */
14683
- grouped: {
14684
- minWidth: 40
14685
- },
14686
 
14687
- /* Styles applied to the children if `orientation="horizontal"`. */
14688
- groupedHorizontal: {
14689
- '&:not(:first-child)': {
14690
- borderTopLeftRadius: 0,
14691
- borderBottomLeftRadius: 0
14692
- },
14693
- '&:not(:last-child)': {
14694
- borderTopRightRadius: 0,
14695
- borderBottomRightRadius: 0
14696
- }
14697
- },
14698
 
14699
- /* Styles applied to the children if `orientation="vertical"`. */
14700
- groupedVertical: {
14701
- '&:not(:first-child)': {
14702
- borderTopRightRadius: 0,
14703
- borderTopLeftRadius: 0
14704
- },
14705
- '&:not(:last-child)': {
14706
- borderBottomRightRadius: 0,
14707
- borderBottomLeftRadius: 0
14708
- }
14709
- },
14710
 
14711
- /* Styles applied to the children if `variant="text"`. */
14712
- groupedText: {},
 
 
 
 
14713
 
14714
- /* Styles applied to the children if `variant="text"` and `orientation="horizontal"`. */
14715
- groupedTextHorizontal: {
14716
- '&:not(:last-child)': {
14717
- borderRight: "1px solid ".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')
14718
  }
14719
- },
14720
 
14721
- /* Styles applied to the children if `variant="text"` and `orientation="vertical"`. */
14722
- groupedTextVertical: {
14723
- '&:not(:last-child)': {
14724
- borderBottom: "1px solid ".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')
14725
- }
14726
- },
14727
 
14728
- /* Styles applied to the children if `variant="text"` and `color="primary"`. */
14729
- groupedTextPrimary: {
14730
- '&:not(:last-child)': {
14731
- borderColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, 0.5)
14732
- }
14733
- },
14734
 
14735
- /* Styles applied to the children if `variant="text"` and `color="secondary"`. */
14736
- groupedTextSecondary: {
14737
- '&:not(:last-child)': {
14738
- borderColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, 0.5)
14739
- }
14740
- },
14741
 
14742
- /* Styles applied to the children if `variant="outlined"`. */
14743
- groupedOutlined: {},
14744
 
14745
- /* Styles applied to the children if `variant="outlined"` and `orientation="horizontal"`. */
14746
- groupedOutlinedHorizontal: {
14747
- '&:not(:first-child)': {
14748
- marginLeft: -1
14749
- },
14750
- '&:not(:last-child)': {
14751
- borderRightColor: 'transparent'
14752
- }
14753
- },
 
 
 
 
 
 
14754
 
14755
- /* Styles applied to the children if `variant="outlined"` and `orientation="vertical"`. */
14756
- groupedOutlinedVertical: {
14757
- '&:not(:first-child)': {
14758
- marginTop: -1
14759
- },
14760
- '&:not(:last-child)': {
14761
- borderBottomColor: 'transparent'
14762
- }
14763
- },
14764
 
14765
- /* Styles applied to the children if `variant="outlined"` and `color="primary"`. */
14766
- groupedOutlinedPrimary: {
14767
- '&:hover': {
14768
- borderColor: theme.palette.primary.main
14769
- }
14770
- },
14771
 
14772
- /* Styles applied to the children if `variant="outlined"` and `color="secondary"`. */
14773
- groupedOutlinedSecondary: {
14774
- '&:hover': {
14775
- borderColor: theme.palette.secondary.main
14776
- }
14777
- },
14778
 
14779
- /* Styles applied to the children if `variant="contained"`. */
14780
- groupedContained: {
14781
- boxShadow: 'none'
14782
- },
14783
 
14784
- /* Styles applied to the children if `variant="contained"` and `orientation="horizontal"`. */
14785
- groupedContainedHorizontal: {
14786
- '&:not(:last-child)': {
14787
- borderRight: "1px solid ".concat(theme.palette.grey[400]),
14788
- '&$disabled': {
14789
- borderRight: "1px solid ".concat(theme.palette.action.disabled)
14790
- }
14791
- }
14792
- },
14793
 
14794
- /* Styles applied to the children if `variant="contained"` and `orientation="vertical"`. */
14795
- groupedContainedVertical: {
14796
- '&:not(:last-child)': {
14797
- borderBottom: "1px solid ".concat(theme.palette.grey[400]),
14798
- '&$disabled': {
14799
- borderBottom: "1px solid ".concat(theme.palette.action.disabled)
14800
- }
14801
- }
14802
- },
14803
 
14804
- /* Styles applied to the children if `variant="contained"` and `color="primary"`. */
14805
- groupedContainedPrimary: {
14806
- '&:not(:last-child)': {
14807
- borderColor: theme.palette.primary.dark
14808
- }
14809
- },
14810
 
14811
- /* Styles applied to the children if `variant="contained"` and `color="secondary"`. */
14812
- groupedContainedSecondary: {
14813
- '&:not(:last-child)': {
14814
- borderColor: theme.palette.secondary.dark
14815
- }
14816
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14817
  };
14818
- };
14819
- var ButtonGroup = /*#__PURE__*/react.forwardRef(function ButtonGroup(props, ref) {
14820
- var children = props.children,
14821
- classes = props.classes,
14822
- className = props.className,
14823
- _props$color = props.color,
14824
- color = _props$color === void 0 ? 'default' : _props$color,
14825
- _props$component = props.component,
14826
- Component = _props$component === void 0 ? 'div' : _props$component,
14827
- _props$disabled = props.disabled,
14828
- disabled = _props$disabled === void 0 ? false : _props$disabled,
14829
- _props$disableElevati = props.disableElevation,
14830
- disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,
14831
- _props$disableFocusRi = props.disableFocusRipple,
14832
- disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
14833
- _props$disableRipple = props.disableRipple,
14834
- disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,
14835
- _props$fullWidth = props.fullWidth,
14836
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
14837
- _props$orientation = props.orientation,
14838
- orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,
14839
- _props$size = props.size,
14840
- size = _props$size === void 0 ? 'medium' : _props$size,
14841
- _props$variant = props.variant,
14842
- variant = _props$variant === void 0 ? 'outlined' : _props$variant,
14843
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "color", "component", "disabled", "disableElevation", "disableFocusRipple", "disableRipple", "fullWidth", "orientation", "size", "variant"]);
14844
 
14845
- var buttonClassName = (0,clsx_m/* default */.Z)(classes.grouped, classes["grouped".concat((0,capitalize/* default */.Z)(orientation))], classes["grouped".concat((0,capitalize/* default */.Z)(variant))], classes["grouped".concat((0,capitalize/* default */.Z)(variant)).concat((0,capitalize/* default */.Z)(orientation))], classes["grouped".concat((0,capitalize/* default */.Z)(variant)).concat(color !== 'default' ? (0,capitalize/* default */.Z)(color) : '')], disabled && classes.disabled);
14846
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
14847
- role: "group",
14848
- className: (0,clsx_m/* default */.Z)(classes.root, className, fullWidth && classes.fullWidth, disableElevation && classes.disableElevation, variant === 'contained' && classes.contained, orientation === 'vertical' && classes.vertical),
14849
- ref: ref
14850
- }, other), react.Children.map(children, function (child) {
14851
- if (! /*#__PURE__*/react.isValidElement(child)) {
14852
- return null;
14853
- }
14854
 
14855
- if (false) {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14856
 
14857
- return /*#__PURE__*/react.cloneElement(child, {
14858
- className: (0,clsx_m/* default */.Z)(buttonClassName, child.props.className),
14859
- color: child.props.color || color,
14860
- disabled: child.props.disabled || disabled,
14861
- disableElevation: child.props.disableElevation || disableElevation,
14862
- disableFocusRipple: disableFocusRipple,
14863
- disableRipple: disableRipple,
14864
- fullWidth: fullWidth,
14865
- size: child.props.size || size,
14866
- variant: child.props.variant || variant
14867
- });
14868
- }));
14869
- });
14870
- false ? 0 : void 0;
14871
- /* harmony default export */ var ButtonGroup_ButtonGroup = ((0,withStyles/* default */.Z)(ButtonGroup_styles, {
14872
- name: 'MuiButtonGroup'
14873
- })(ButtonGroup));
14874
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/DevicePreview/DevicePreview.js
14875
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || DevicePreview_unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14876
 
14877
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
 
 
14878
 
14879
- function DevicePreview_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return DevicePreview_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return DevicePreview_arrayLikeToArray(o, minLen); }
 
14880
 
14881
- function DevicePreview_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14882
 
14883
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
14884
 
14885
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14886
 
 
14887
 
 
14888
 
 
 
 
 
14889
 
 
 
14890
 
14891
 
 
 
 
 
 
 
 
 
14892
 
14893
 
14894
- function DevicePreview() {
14895
- var _useState = (0,react.useState)("desktop"),
14896
- _useState2 = _slicedToArray(_useState, 2),
14897
- currentDevicePreview = _useState2[0],
14898
- setCurrentDevicePreview = _useState2[1]; // Set device
14899
 
14900
 
14901
- function setDevice(device) {
14902
- // Don't change anything when chosen device is already selected
14903
- if (device !== setCurrentDevicePreview) {
14904
- // Device
14905
- setCurrentDevicePreview(device); // Update class
14906
 
14907
- document.querySelector(".buttonizer-preview").className = (0,clsx_m/* default */.Z)("buttonizer-preview", device === "mobile" && "frame-size-mobile", device === "tablet" && "frame-size-tablet");
14908
- }
14909
- }
14910
 
14911
- return /*#__PURE__*/react.createElement("div", {
14912
- className: "device-preview"
14913
- }, /*#__PURE__*/react.createElement(ButtonGroup_ButtonGroup, {
14914
- color: "primary"
14915
- }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
14916
- content: translate("bar.preview.desktop")
14917
- }, /*#__PURE__*/react.createElement(Button_Button, {
14918
- onClick: function onClick() {
14919
- return setDevice("desktop");
14920
- },
14921
- variant: currentDevicePreview === "desktop" ? "contained" : null,
14922
- color: "primary",
14923
- "data-testid": "desktop"
14924
- }, /*#__PURE__*/react.createElement("i", {
14925
- className: "fas fa-desktop"
14926
- }))), /*#__PURE__*/react.createElement(Tippy_Tippy, {
14927
- content: translate("bar.preview.tablet")
14928
- }, /*#__PURE__*/react.createElement(Button_Button, {
14929
- onClick: function onClick() {
14930
- return setDevice("tablet");
14931
- },
14932
- variant: currentDevicePreview === "tablet" ? "contained" : null,
14933
- color: "primary",
14934
- "data-testid": "tablet"
14935
- }, /*#__PURE__*/react.createElement("i", {
14936
- className: "fas fa-tablet-alt"
14937
- }))), /*#__PURE__*/react.createElement(Tippy_Tippy, {
14938
- content: translate("bar.preview.mobile")
14939
- }, /*#__PURE__*/react.createElement(Button_Button, {
14940
- onClick: function onClick() {
14941
- return setDevice("mobile");
14942
- },
14943
- variant: currentDevicePreview === "mobile" ? "contained" : null,
14944
- color: "primary",
14945
- "data-testid": "mobile"
14946
- }, /*#__PURE__*/react.createElement("i", {
14947
- className: "fas fa-mobile-alt"
14948
- })))));
14949
- }
14950
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/PublishButton/PublishButton.js
14951
- function PublishButton_slicedToArray(arr, i) { return PublishButton_arrayWithHoles(arr) || PublishButton_iterableToArrayLimit(arr, i) || PublishButton_unsupportedIterableToArray(arr, i) || PublishButton_nonIterableRest(); }
14952
 
14953
- function PublishButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14954
 
14955
- function PublishButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PublishButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return PublishButton_arrayLikeToArray(o, minLen); }
14956
 
14957
- function PublishButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14958
 
14959
- function PublishButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
 
 
 
 
 
14960
 
14961
- function PublishButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
14962
 
 
 
 
 
 
 
 
 
 
14963
 
 
 
 
14964
 
 
 
 
 
 
 
 
 
 
 
14965
 
 
 
 
 
14966
 
 
 
 
14967
 
 
 
 
 
 
14968
 
14969
- function PublishButton(_ref) {
14970
- var hasChanges = _ref.hasChanges;
 
14971
 
14972
- var _useState = (0,react.useState)(false),
14973
- _useState2 = PublishButton_slicedToArray(_useState, 2),
14974
- isPublishing = _useState2[0],
14975
- setIsPublishing = _useState2[1];
14976
 
14977
- var _useState3 = (0,react.useState)(false),
14978
- _useState4 = PublishButton_slicedToArray(_useState3, 2),
14979
- isPublished = _useState4[0],
14980
- setIsPublished = _useState4[1];
14981
 
14982
- function text() {
14983
- if (isPublishing) {
14984
- return translate("common.publishing");
14985
- } else if (isPublished) {
14986
- return translate("common.published");
14987
- } else {
14988
- return translate("common.publish");
14989
  }
14990
  }
14991
- /**
14992
- * Publish buttons
14993
- */
14994
 
 
14995
 
14996
- function publish() {
14997
- setIsPublishing(true);
14998
- savingHelpers_apiRequest("/publish", {
14999
- method: "POST",
15000
- data: {
15001
- nonce: buttonizer_admin.nonce
15002
- }
15003
- }).then(function (_ref2) {
15004
- var status = _ref2.status,
15005
- message = _ref2.message;
15006
- // Done publishing
15007
- setIsPublishing(false); // Error?
15008
 
15009
- if (status === "error") {
15010
- app.loader.hide();
15011
- app.error({
15012
- message: message
15013
- });
15014
- return;
15015
- }
15016
 
15017
- app.setHasChanges(false); // Published!
 
15018
 
15019
- setIsPublished(true); // Hide published message
15020
 
15021
- setTimeout(function () {
15022
- setIsPublished(false);
15023
- }, 3000);
15024
- })["catch"](function (_ref3) {
15025
- var code = _ref3.code;
15026
- setIsPublishing(false); // Lost internet connection
 
 
 
 
15027
 
15028
- if (code === 0) {
15029
- // app.showDialog(
15030
- // ConfirmDialog.create({
15031
- // title: "Lost internet",
15032
- // buttons: [
15033
- // {
15034
- // label: window.Buttonizer.translate("modal.close"),
15035
- // value: "close",
15036
- // },
15037
- // ],
15038
- // children: (
15039
- // <>
15040
- // <p>
15041
- // You've lost your internet connection. Please try again when
15042
- // you have your internet back!
15043
- // </p>
15044
- // </>
15045
- // ),
15046
- // })
15047
- // );
15048
- return;
15049
- } // app.showDialog(
15050
- // ConfirmDialog.create({
15051
- // title: "Something went wrong",
15052
- // buttons: [
15053
- // {
15054
- // label: window.Buttonizer.translate("modal.close"),
15055
- // value: "close",
15056
- // },
15057
- // ],
15058
- // children: (
15059
- // <>
15060
- // <p>Seems like something went wrong.</p>
15061
- // </>
15062
- // ),
15063
- // })
15064
- // );
15065
 
15066
- });
15067
- }
15068
 
15069
- return /*#__PURE__*/react.createElement(Button_Button, {
15070
- onClick: function onClick() {
15071
- return publish();
15072
- },
15073
- disabled: isPublishing || hasChanges === false,
15074
- variant: "contained",
15075
- color: "primary",
15076
- "data-testid": "publish-button",
15077
- className: "MuiButton-Publish"
15078
- }, text());
15079
- }
15080
 
15081
- /* harmony default export */ var PublishButton_PublishButton = (connect(function (state) {
15082
  return {
15083
- hasChanges: state.misc.hasChanges
 
 
 
15084
  };
15085
- })(PublishButton));
15086
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
15087
- var defineProperty = __webpack_require__(96156);
15088
- // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js
15089
- var useTheme = __webpack_require__(159);
15090
- // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js
15091
- var getThemeProps = __webpack_require__(93869);
15092
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerDocument.js
15093
- var ownerDocument = __webpack_require__(30626);
15094
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/setRef.js
15095
- var setRef = __webpack_require__(34236);
15096
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Portal/Portal.js
15097
 
 
 
 
 
 
15098
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15099
 
15100
 
 
 
 
 
 
 
 
 
15101
 
15102
 
15103
 
15104
- function getContainer(container) {
15105
- container = typeof container === 'function' ? container() : container; // #StrictMode ready
15106
 
15107
- return react_dom.findDOMNode(container);
15108
- }
15109
 
15110
- var Portal_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
15111
- /**
15112
- * Portals provide a first-class way to render children into a DOM node
15113
- * that exists outside the DOM hierarchy of the parent component.
15114
- */
15115
 
15116
- var Portal = /*#__PURE__*/react.forwardRef(function Portal(props, ref) {
15117
- var children = props.children,
15118
- container = props.container,
15119
- _props$disablePortal = props.disablePortal,
15120
- disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
15121
- onRendered = props.onRendered;
15122
 
15123
- var _React$useState = react.useState(null),
15124
- mountNode = _React$useState[0],
15125
- setMountNode = _React$useState[1];
15126
 
15127
- var handleRef = (0,useForkRef/* default */.Z)( /*#__PURE__*/react.isValidElement(children) ? children.ref : null, ref);
15128
- Portal_useEnhancedEffect(function () {
15129
- if (!disablePortal) {
15130
- setMountNode(getContainer(container) || document.body);
15131
- }
15132
- }, [container, disablePortal]);
15133
- Portal_useEnhancedEffect(function () {
15134
- if (mountNode && !disablePortal) {
15135
- (0,setRef/* default */.Z)(ref, mountNode);
15136
- return function () {
15137
- (0,setRef/* default */.Z)(ref, null);
15138
- };
15139
- }
15140
 
15141
- return undefined;
15142
- }, [ref, mountNode, disablePortal]);
15143
- Portal_useEnhancedEffect(function () {
15144
- if (onRendered && (mountNode || disablePortal)) {
15145
- onRendered();
15146
- }
15147
- }, [onRendered, mountNode, disablePortal]);
15148
 
15149
- if (disablePortal) {
15150
- if ( /*#__PURE__*/react.isValidElement(children)) {
15151
- return /*#__PURE__*/react.cloneElement(children, {
15152
- ref: handleRef
15153
- });
15154
- }
15155
 
15156
- return children;
15157
- }
15158
 
15159
- return mountNode ? /*#__PURE__*/react_dom.createPortal(children, mountNode) : mountNode;
15160
- });
15161
- false ? 0 : void 0;
15162
 
15163
- if (false) {}
15164
 
15165
- /* harmony default export */ var Portal_Portal = (Portal);
15166
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js
15167
- var createChainedFunction = __webpack_require__(82568);
15168
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/zIndex.js
15169
- var zIndex = __webpack_require__(92781);
15170
- ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
15171
- function classCallCheck_classCallCheck(instance, Constructor) {
15172
- if (!(instance instanceof Constructor)) {
15173
- throw new TypeError("Cannot call a class as a function");
15174
- }
15175
- }
15176
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
15177
- var createClass = __webpack_require__(5991);
15178
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js
15179
- // A change of the browser zoom change the scrollbar size.
15180
- // Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519
15181
- function getScrollbarSize() {
15182
- var scrollDiv = document.createElement('div');
15183
- scrollDiv.style.width = '99px';
15184
- scrollDiv.style.height = '99px';
15185
- scrollDiv.style.position = 'absolute';
15186
- scrollDiv.style.top = '-9999px';
15187
- scrollDiv.style.overflow = 'scroll';
15188
- document.body.appendChild(scrollDiv);
15189
- var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
15190
- document.body.removeChild(scrollDiv);
15191
- return scrollbarSize;
15192
- }
15193
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerWindow.js
15194
- var ownerWindow = __webpack_require__(80713);
15195
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/ModalManager.js
15196
 
15197
 
 
 
 
 
 
 
 
 
 
 
15198
 
 
 
 
 
 
 
 
 
15199
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15200
 
15201
- // Is a vertical scrollbar displayed?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15202
 
15203
- function isOverflowing(container) {
15204
- var doc = (0,ownerDocument/* default */.Z)(container);
 
15205
 
15206
- if (doc.body === container) {
15207
- return (0,ownerWindow/* default */.Z)(doc).innerWidth > doc.documentElement.clientWidth;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15208
  }
15209
 
15210
- return container.scrollHeight > container.clientHeight;
15211
- }
 
15212
 
15213
- function ariaHidden(node, show) {
15214
- if (show) {
15215
- node.setAttribute('aria-hidden', 'true');
15216
- } else {
15217
- node.removeAttribute('aria-hidden');
15218
  }
15219
- }
15220
 
15221
- function getPaddingRight(node) {
15222
- return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;
15223
  }
15224
-
15225
- function ariaHiddenSiblings(container, mountNode, currentNode) {
15226
- var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
15227
- var show = arguments.length > 4 ? arguments[4] : undefined;
15228
- var blacklist = [mountNode, currentNode].concat((0,toConsumableArray/* default */.Z)(nodesToExclude));
15229
- var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];
15230
- [].forEach.call(container.children, function (node) {
15231
- if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {
15232
- ariaHidden(node, show);
15233
  }
15234
  });
15235
  }
15236
-
15237
- function findIndexOf(containerInfo, callback) {
15238
- var idx = -1;
15239
- containerInfo.some(function (item, index) {
15240
- if (callback(item)) {
15241
- idx = index;
15242
- return true;
15243
  }
15244
-
15245
- return false;
15246
  });
15247
- return idx;
15248
  }
 
 
15249
 
15250
- function handleContainer(containerInfo, props) {
15251
- var restoreStyle = [];
15252
- var restorePaddings = [];
15253
- var container = containerInfo.container;
15254
- var fixedNodes;
15255
 
15256
- if (!props.disableScrollLock) {
15257
- if (isOverflowing(container)) {
15258
- // Compute the size before applying overflow hidden to avoid any scroll jumps.
15259
- var scrollbarSize = getScrollbarSize();
15260
- restoreStyle.push({
15261
- value: container.style.paddingRight,
15262
- key: 'padding-right',
15263
- el: container
15264
- }); // Use computed style, here to get the real padding to add our scrollbar width.
15265
 
15266
- container.style['padding-right'] = "".concat(getPaddingRight(container) + scrollbarSize, "px"); // .mui-fixed is a global helper.
 
 
 
 
 
 
 
 
 
 
 
15267
 
15268
- fixedNodes = (0,ownerDocument/* default */.Z)(container).querySelectorAll('.mui-fixed');
15269
- [].forEach.call(fixedNodes, function (node) {
15270
- restorePaddings.push(node.style.paddingRight);
15271
- node.style.paddingRight = "".concat(getPaddingRight(node) + scrollbarSize, "px");
15272
- });
15273
- } // Improve Gatsby support
15274
- // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
 
 
 
 
 
 
 
 
 
 
 
15275
 
 
 
 
 
15276
 
15277
- var parent = container.parentElement;
15278
- var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard
15279
- // screensize shrink.
 
 
 
 
 
 
 
15280
 
15281
- restoreStyle.push({
15282
- value: scrollContainer.style.overflow,
15283
- key: 'overflow',
15284
- el: scrollContainer
15285
- });
15286
- scrollContainer.style.overflow = 'hidden';
15287
  }
15288
 
15289
- var restore = function restore() {
15290
- if (fixedNodes) {
15291
- [].forEach.call(fixedNodes, function (node, i) {
15292
- if (restorePaddings[i]) {
15293
- node.style.paddingRight = restorePaddings[i];
15294
- } else {
15295
- node.style.removeProperty('padding-right');
15296
- }
15297
- });
15298
- }
15299
 
15300
- restoreStyle.forEach(function (_ref) {
15301
- var value = _ref.value,
15302
- el = _ref.el,
15303
- key = _ref.key;
 
 
 
 
 
15304
 
15305
- if (value) {
15306
- el.style.setProperty(key, value);
15307
- } else {
15308
- el.style.removeProperty(key);
15309
- }
15310
- });
15311
- };
15312
 
15313
- return restore;
15314
- }
 
 
15315
 
15316
- function getHiddenSiblings(container) {
15317
- var hiddenSiblings = [];
15318
- [].forEach.call(container.children, function (node) {
15319
- if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {
15320
- hiddenSiblings.push(node);
15321
- }
15322
- });
15323
- return hiddenSiblings;
15324
  }
15325
  /**
15326
- * @ignore - do not document.
15327
- *
15328
- * Proper state management for containers and the modals in those containers.
15329
- * Simplified, but inspired by react-overlay's ModalManager class.
15330
- * Used by the Modal to ensure proper styling of containers.
15331
  */
15332
 
 
 
15333
 
15334
- var ModalManager = /*#__PURE__*/function () {
15335
- function ModalManager() {
15336
- classCallCheck_classCallCheck(this, ModalManager);
15337
 
15338
- // this.modals[modalIndex] = modal
15339
- this.modals = []; // this.containers[containerIndex] = {
15340
- // modals: [],
15341
- // container,
15342
- // restore: null,
15343
- // }
 
 
 
15344
 
15345
- this.containers = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15346
  }
 
 
 
 
15347
 
15348
- (0,createClass/* default */.Z)(ModalManager, [{
15349
- key: "add",
15350
- value: function add(modal, container) {
15351
- var modalIndex = this.modals.indexOf(modal);
15352
 
15353
- if (modalIndex !== -1) {
15354
- return modalIndex;
15355
- }
 
 
 
 
 
 
15356
 
15357
- modalIndex = this.modals.length;
15358
- this.modals.push(modal); // If the modal we are adding is already in the DOM.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15359
 
15360
- if (modal.modalRef) {
15361
- ariaHidden(modal.modalRef, false);
15362
- }
 
 
 
 
 
 
 
15363
 
15364
- var hiddenSiblingNodes = getHiddenSiblings(container);
15365
- ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);
15366
- var containerIndex = findIndexOf(this.containers, function (item) {
15367
- return item.container === container;
15368
- });
15369
 
15370
- if (containerIndex !== -1) {
15371
- this.containers[containerIndex].modals.push(modal);
15372
- return modalIndex;
15373
- }
 
 
 
 
 
 
15374
 
15375
- this.containers.push({
15376
- modals: [modal],
15377
- container: container,
15378
- restore: null,
15379
- hiddenSiblingNodes: hiddenSiblingNodes
15380
- });
15381
- return modalIndex;
15382
  }
15383
- }, {
15384
- key: "mount",
15385
- value: function mount(modal, props) {
15386
- var containerIndex = findIndexOf(this.containers, function (item) {
15387
- return item.modals.indexOf(modal) !== -1;
15388
- });
15389
- var containerInfo = this.containers[containerIndex];
15390
 
15391
- if (!containerInfo.restore) {
15392
- containerInfo.restore = handleContainer(containerInfo, props);
 
 
 
 
 
15393
  }
15394
  }
15395
- }, {
15396
- key: "remove",
15397
- value: function remove(modal) {
15398
- var modalIndex = this.modals.indexOf(modal);
15399
 
15400
- if (modalIndex === -1) {
15401
- return modalIndex;
15402
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15403
 
15404
- var containerIndex = findIndexOf(this.containers, function (item) {
15405
- return item.modals.indexOf(modal) !== -1;
15406
- });
15407
- var containerInfo = this.containers[containerIndex];
15408
- containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
15409
- this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.
15410
 
15411
- if (containerInfo.modals.length === 0) {
15412
- // The modal might be closed before it had the chance to be mounted in the DOM.
15413
- if (containerInfo.restore) {
15414
- containerInfo.restore();
15415
- }
15416
 
15417
- if (modal.modalRef) {
15418
- // In case the modal wasn't in the DOM yet.
15419
- ariaHidden(modal.modalRef, true);
15420
- }
 
15421
 
15422
- ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);
15423
- this.containers.splice(containerIndex, 1);
15424
- } else {
15425
- // Otherwise make sure the next top modal is visible to a screen reader.
15426
- var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set
15427
- // aria-hidden because the dom element doesn't exist either
15428
- // when modal was unmounted before modalRef gets null
15429
 
15430
- if (nextTop.modalRef) {
15431
- ariaHidden(nextTop.modalRef, false);
15432
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15433
  }
 
 
 
 
15434
 
15435
- return modalIndex;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15436
  }
15437
- }, {
15438
- key: "isTopModal",
15439
- value: function isTopModal(modal) {
15440
- return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
 
15441
  }
15442
- }]);
 
 
 
15443
 
15444
- return ModalManager;
15445
- }();
 
 
15446
 
 
 
 
15447
 
15448
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js
15449
- /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */
15450
 
 
 
 
15451
 
 
 
 
15452
 
 
 
 
 
15453
 
 
 
 
15454
 
 
 
 
 
 
 
 
15455
 
15456
- /**
15457
- * Utility component that locks focus inside the component.
15458
- */
15459
 
15460
- function Unstable_TrapFocus(props) {
15461
- var children = props.children,
15462
- _props$disableAutoFoc = props.disableAutoFocus,
15463
- disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
15464
- _props$disableEnforce = props.disableEnforceFocus,
15465
- disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
15466
- _props$disableRestore = props.disableRestoreFocus,
15467
- disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
15468
- getDoc = props.getDoc,
15469
- isEnabled = props.isEnabled,
15470
- open = props.open;
15471
- var ignoreNextEnforceFocus = react.useRef();
15472
- var sentinelStart = react.useRef(null);
15473
- var sentinelEnd = react.useRef(null);
15474
- var nodeToRestore = react.useRef();
15475
- var rootRef = react.useRef(null); // can be removed once we drop support for non ref forwarding class components
15476
 
15477
- var handleOwnRef = react.useCallback(function (instance) {
15478
- // #StrictMode ready
15479
- rootRef.current = react_dom.findDOMNode(instance);
15480
- }, []);
15481
- var handleRef = (0,useForkRef/* default */.Z)(children.ref, handleOwnRef);
15482
- var prevOpenRef = react.useRef();
15483
- react.useEffect(function () {
15484
- prevOpenRef.current = open;
15485
- }, [open]);
15486
 
15487
- if (!prevOpenRef.current && open && typeof window !== 'undefined') {
15488
- // WARNING: Potentially unsafe in concurrent mode.
15489
- // The way the read on `nodeToRestore` is setup could make this actually safe.
15490
- // Say we render `open={false}` -> `open={true}` but never commit.
15491
- // We have now written a state that wasn't committed. But no committed effect
15492
- // will read this wrong value. We only read from `nodeToRestore` in effects
15493
- // that were committed on `open={true}`
15494
- // WARNING: Prevents the instance from being garbage collected. Should only
15495
- // hold a weak ref.
15496
- nodeToRestore.current = getDoc().activeElement;
 
15497
  }
15498
 
15499
- react.useEffect(function () {
15500
- if (!open) {
 
 
15501
  return;
15502
  }
15503
 
15504
- var doc = (0,ownerDocument/* default */.Z)(rootRef.current); // We might render an empty child.
 
 
 
 
15505
 
15506
- if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {
15507
- if (!rootRef.current.hasAttribute('tabIndex')) {
15508
- if (false) {}
 
15509
 
15510
- rootRef.current.setAttribute('tabIndex', -1);
 
 
 
 
15511
  }
 
 
15512
 
15513
- rootRef.current.focus();
 
 
15514
  }
15515
 
15516
- var contain = function contain() {
15517
- var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.
15518
- // Contain can be called between the component being unmounted and its cleanup function being run.
15519
-
15520
- if (rootElement === null) {
15521
- return;
15522
  }
 
 
15523
 
15524
- if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {
15525
- ignoreNextEnforceFocus.current = false;
 
 
 
 
 
 
 
 
 
15526
  return;
15527
  }
 
15528
 
15529
- if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {
15530
- rootRef.current.focus();
 
 
 
 
 
 
 
15531
  }
15532
- };
15533
 
15534
- var loopFocus = function loopFocus(event) {
15535
- // 9 = Tab
15536
- if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {
15537
  return;
15538
- } // Make sure the next tab starts from the right place.
 
 
 
15539
 
 
 
 
 
 
15540
 
15541
- if (doc.activeElement === rootRef.current) {
15542
- // We need to ignore the next contain as
15543
- // it will try to move the focus back to the rootRef element.
15544
- ignoreNextEnforceFocus.current = true;
 
 
15545
 
15546
- if (event.shiftKey) {
15547
- sentinelEnd.current.focus();
15548
- } else {
15549
- sentinelStart.current.focus();
15550
- }
15551
  }
15552
- };
 
15553
 
15554
- doc.addEventListener('focus', contain, true);
15555
- doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area
15556
- // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
15557
- //
15558
- // The whatwg spec defines how the browser should behave but does not explicitly mention any events:
15559
- // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.
15560
 
15561
- var interval = setInterval(function () {
15562
- contain();
15563
- }, 50);
15564
- return function () {
15565
- clearInterval(interval);
15566
- doc.removeEventListener('focus', contain, true);
15567
- doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()
15568
 
15569
- if (!disableRestoreFocus) {
15570
- // In IE 11 it is possible for document.activeElement to be null resulting
15571
- // in nodeToRestore.current being null.
15572
- // Not all elements in IE 11 have a focus method.
15573
- // Once IE 11 support is dropped the focus() call can be unconditional.
15574
- if (nodeToRestore.current && nodeToRestore.current.focus) {
15575
- nodeToRestore.current.focus();
15576
- }
15577
 
15578
- nodeToRestore.current = null;
 
 
 
 
 
 
 
 
 
 
 
15579
  }
15580
- };
15581
- }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);
15582
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
15583
- tabIndex: 0,
15584
- ref: sentinelStart,
15585
- "data-test": "sentinelStart"
15586
- }), /*#__PURE__*/react.cloneElement(children, {
15587
- ref: handleRef
15588
- }), /*#__PURE__*/react.createElement("div", {
15589
- tabIndex: 0,
15590
- ref: sentinelEnd,
15591
- "data-test": "sentinelEnd"
15592
- }));
15593
- }
15594
 
15595
- false ? 0 : void 0;
 
 
15596
 
15597
- if (false) {}
 
15598
 
15599
- /* harmony default export */ var Unstable_TrapFocus_Unstable_TrapFocus = (Unstable_TrapFocus);
15600
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js
 
 
 
 
 
15601
 
15602
 
 
 
 
15603
 
 
 
 
 
15604
 
15605
- var SimpleBackdrop_styles = {
15606
- /* Styles applied to the root element. */
15607
- root: {
15608
- zIndex: -1,
15609
- position: 'fixed',
15610
- right: 0,
15611
- bottom: 0,
15612
- top: 0,
15613
- left: 0,
15614
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
15615
- WebkitTapHighlightColor: 'transparent'
15616
- },
15617
 
15618
- /* Styles applied to the root element if `invisible={true}`. */
15619
- invisible: {
15620
- backgroundColor: 'transparent'
 
 
 
 
 
 
 
15621
  }
15622
- };
15623
- /**
15624
- * @ignore - internal component.
15625
- */
15626
 
15627
- var SimpleBackdrop = /*#__PURE__*/react.forwardRef(function SimpleBackdrop(props, ref) {
15628
- var _props$invisible = props.invisible,
15629
- invisible = _props$invisible === void 0 ? false : _props$invisible,
15630
- open = props.open,
15631
- other = (0,objectWithoutProperties/* default */.Z)(props, ["invisible", "open"]);
 
 
 
 
15632
 
15633
- return open ? /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
15634
- "aria-hidden": true,
15635
- ref: ref
15636
- }, other, {
15637
- style: (0,esm_extends/* default */.Z)({}, SimpleBackdrop_styles.root, invisible ? SimpleBackdrop_styles.invisible : {}, other.style)
15638
- })) : null;
15639
- });
15640
- false ? 0 : void 0;
15641
- /* harmony default export */ var Modal_SimpleBackdrop = (SimpleBackdrop);
15642
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/Modal.js
15643
 
 
15644
 
 
 
 
 
15645
 
 
 
 
15646
 
 
 
 
 
 
 
15647
 
 
 
 
 
 
 
 
 
 
 
15648
 
 
 
15649
 
 
15650
 
 
 
 
15651
 
 
 
 
 
15652
 
 
 
 
 
 
 
 
 
 
15653
 
15654
 
 
 
 
 
 
15655
 
 
 
 
15656
 
 
 
 
 
15657
 
 
 
 
15658
 
 
 
 
15659
 
15660
- function Modal_getContainer(container) {
15661
- container = typeof container === 'function' ? container() : container;
15662
- return react_dom.findDOMNode(container);
15663
- }
15664
 
15665
- function getHasTransition(props) {
15666
- return props.children ? props.children.props.hasOwnProperty('in') : false;
15667
- } // A modal manager used to track and manage the state of open Modals.
15668
- // Modals don't open on the server so this won't conflict with concurrent requests.
15669
 
 
 
 
 
 
 
 
15670
 
15671
- var defaultManager = new ModalManager();
15672
- var Modal_styles = function styles(theme) {
15673
- return {
15674
- /* Styles applied to the root element. */
15675
- root: {
15676
- position: 'fixed',
15677
- zIndex: theme.zIndex.modal,
15678
- right: 0,
15679
- bottom: 0,
15680
- top: 0,
15681
- left: 0
15682
- },
15683
 
15684
- /* Styles applied to the root element if the `Modal` has exited. */
15685
- hidden: {
15686
- visibility: 'hidden'
15687
  }
15688
- };
15689
- };
15690
- /**
15691
- * Modal is a lower-level construct that is leveraged by the following components:
15692
- *
15693
- * - [Dialog](/api/dialog/)
15694
- * - [Drawer](/api/drawer/)
15695
- * - [Menu](/api/menu/)
15696
- * - [Popover](/api/popover/)
15697
- *
15698
- * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component
15699
- * rather than directly using Modal.
15700
- *
15701
- * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).
15702
- */
15703
 
15704
- var Modal = /*#__PURE__*/react.forwardRef(function Modal(inProps, ref) {
15705
- var theme = (0,useTheme/* default */.Z)();
15706
- var props = (0,getThemeProps/* default */.Z)({
15707
- name: 'MuiModal',
15708
- props: (0,esm_extends/* default */.Z)({}, inProps),
15709
- theme: theme
15710
- });
15711
 
15712
- var _props$BackdropCompon = props.BackdropComponent,
15713
- BackdropComponent = _props$BackdropCompon === void 0 ? Modal_SimpleBackdrop : _props$BackdropCompon,
15714
- BackdropProps = props.BackdropProps,
15715
- children = props.children,
15716
- _props$closeAfterTran = props.closeAfterTransition,
15717
- closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,
15718
- container = props.container,
15719
- _props$disableAutoFoc = props.disableAutoFocus,
15720
- disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
15721
- _props$disableBackdro = props.disableBackdropClick,
15722
- disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
15723
- _props$disableEnforce = props.disableEnforceFocus,
15724
- disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
15725
- _props$disableEscapeK = props.disableEscapeKeyDown,
15726
- disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
15727
- _props$disablePortal = props.disablePortal,
15728
- disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
15729
- _props$disableRestore = props.disableRestoreFocus,
15730
- disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
15731
- _props$disableScrollL = props.disableScrollLock,
15732
- disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,
15733
- _props$hideBackdrop = props.hideBackdrop,
15734
- hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,
15735
- _props$keepMounted = props.keepMounted,
15736
- keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,
15737
- _props$manager = props.manager,
15738
- manager = _props$manager === void 0 ? defaultManager : _props$manager,
15739
- onBackdropClick = props.onBackdropClick,
15740
- onClose = props.onClose,
15741
- onEscapeKeyDown = props.onEscapeKeyDown,
15742
- onRendered = props.onRendered,
15743
- open = props.open,
15744
- other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropComponent", "BackdropProps", "children", "closeAfterTransition", "container", "disableAutoFocus", "disableBackdropClick", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onEscapeKeyDown", "onRendered", "open"]);
15745
-
15746
- var _React$useState = react.useState(true),
15747
- exited = _React$useState[0],
15748
- setExited = _React$useState[1];
15749
 
15750
- var modal = react.useRef({});
15751
- var mountNodeRef = react.useRef(null);
15752
- var modalRef = react.useRef(null);
15753
- var handleRef = (0,useForkRef/* default */.Z)(modalRef, ref);
15754
- var hasTransition = getHasTransition(props);
15755
 
15756
- var getDoc = function getDoc() {
15757
- return (0,ownerDocument/* default */.Z)(mountNodeRef.current);
15758
- };
15759
 
15760
- var getModal = function getModal() {
15761
- modal.current.modalRef = modalRef.current;
15762
- modal.current.mountNode = mountNodeRef.current;
15763
- return modal.current;
15764
- };
15765
 
15766
- var handleMounted = function handleMounted() {
15767
- manager.mount(getModal(), {
15768
- disableScrollLock: disableScrollLock
15769
- }); // Fix a bug on Chrome where the scroll isn't initially 0.
15770
 
15771
- modalRef.current.scrollTop = 0;
15772
- };
 
15773
 
15774
- var handleOpen = (0,useEventCallback/* default */.Z)(function () {
15775
- var resolvedContainer = Modal_getContainer(container) || getDoc().body;
15776
- manager.add(getModal(), resolvedContainer); // The element was already mounted.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15777
 
15778
- if (modalRef.current) {
15779
- handleMounted();
 
 
 
 
 
 
15780
  }
15781
- });
15782
- var isTopModal = react.useCallback(function () {
15783
- return manager.isTopModal(getModal());
15784
- }, [manager]);
15785
- var handlePortalRef = (0,useEventCallback/* default */.Z)(function (node) {
15786
- mountNodeRef.current = node;
15787
 
15788
- if (!node) {
15789
- return;
15790
- }
 
 
 
 
15791
 
15792
- if (onRendered) {
15793
- onRendered();
 
 
15794
  }
 
15795
 
15796
- if (open && isTopModal()) {
15797
- handleMounted();
 
 
 
 
 
 
 
 
 
 
15798
  } else {
15799
- ariaHidden(modalRef.current, true);
15800
- }
15801
- });
15802
- var handleClose = react.useCallback(function () {
15803
- manager.remove(getModal());
15804
- }, [manager]);
15805
- react.useEffect(function () {
15806
- return function () {
15807
- handleClose();
15808
- };
15809
- }, [handleClose]);
15810
- react.useEffect(function () {
15811
- if (open) {
15812
- handleOpen();
15813
- } else if (!hasTransition || !closeAfterTransition) {
15814
- handleClose();
15815
  }
15816
- }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
15817
 
15818
- if (!keepMounted && !open && (!hasTransition || exited)) {
15819
- return null;
 
 
15820
  }
15821
 
15822
- var handleEnter = function handleEnter() {
15823
- setExited(false);
15824
- };
15825
 
15826
- var handleExited = function handleExited() {
15827
- setExited(true);
15828
 
15829
- if (closeAfterTransition) {
15830
- handleClose();
15831
  }
15832
- };
15833
 
15834
- var handleBackdropClick = function handleBackdropClick(event) {
15835
- if (event.target !== event.currentTarget) {
15836
- return;
 
 
 
 
 
 
15837
  }
15838
 
15839
- if (onBackdropClick) {
15840
- onBackdropClick(event);
 
 
 
 
15841
  }
 
15842
 
15843
- if (!disableBackdropClick && onClose) {
15844
- onClose(event, 'backdropClick');
 
 
 
 
 
 
 
 
 
 
 
 
 
15845
  }
15846
- };
15847
 
15848
- var handleKeyDown = function handleKeyDown(event) {
15849
- // The handler doesn't take event.defaultPrevented into account:
15850
- //
15851
- // event.preventDefault() is meant to stop default behaviours like
15852
- // clicking a checkbox to check it, hitting a button to submit a form,
15853
- // and hitting left arrow to move the cursor in a text input etc.
15854
- // Only special HTML elements have these default behaviors.
15855
- if (event.key !== 'Escape' || !isTopModal()) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15856
  return;
15857
  }
15858
 
15859
- if (onEscapeKeyDown) {
15860
- onEscapeKeyDown(event);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15861
  }
15862
 
15863
- if (!disableEscapeKeyDown) {
15864
- // Swallow the event, in case someone is listening for the escape key on the body.
15865
- event.stopPropagation();
15866
 
15867
- if (onClose) {
15868
- onClose(event, 'escapeKeyDown');
15869
- }
15870
  }
15871
- };
15872
 
15873
- var inlineStyle = Modal_styles(theme || {
15874
- zIndex: zIndex/* default */.Z
15875
- });
15876
- var childProps = {};
 
15877
 
15878
- if (children.props.tabIndex === undefined) {
15879
- childProps.tabIndex = children.props.tabIndex || '-1';
15880
- } // It's a Transition like component
 
 
 
15881
 
 
 
15882
 
15883
- if (hasTransition) {
15884
- childProps.onEnter = (0,createChainedFunction/* default */.Z)(handleEnter, children.props.onEnter);
15885
- childProps.onExited = (0,createChainedFunction/* default */.Z)(handleExited, children.props.onExited);
 
15886
  }
15887
 
15888
- return /*#__PURE__*/react.createElement(Portal_Portal, {
15889
- ref: handlePortalRef,
15890
- container: container,
15891
- disablePortal: disablePortal
15892
- }, /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
15893
- ref: handleRef,
15894
- onKeyDown: handleKeyDown,
15895
- role: "presentation"
15896
- }, other, {
15897
- style: (0,esm_extends/* default */.Z)({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)
15898
- }), hideBackdrop ? null : /*#__PURE__*/react.createElement(BackdropComponent, (0,esm_extends/* default */.Z)({
15899
- open: open,
15900
- onClick: handleBackdropClick
15901
- }, BackdropProps)), /*#__PURE__*/react.createElement(Unstable_TrapFocus_Unstable_TrapFocus, {
15902
- disableEnforceFocus: disableEnforceFocus,
15903
- disableAutoFocus: disableAutoFocus,
15904
- disableRestoreFocus: disableRestoreFocus,
15905
- getDoc: getDoc,
15906
- isEnabled: isTopModal,
15907
- open: open
15908
- }, /*#__PURE__*/react.cloneElement(children, childProps))));
15909
- });
15910
- false ? 0 : void 0;
15911
- /* harmony default export */ var Modal_Modal = (Modal);
15912
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
15913
- var slicedToArray = __webpack_require__(34699);
15914
- ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/config.js
15915
- /* harmony default export */ var config = ({
15916
- disabled: false
15917
- });
15918
- ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/Transition.js
15919
 
15920
 
 
 
 
 
 
15921
 
 
 
 
 
 
15922
 
15923
 
 
 
 
15924
 
 
15925
 
 
 
 
15926
 
15927
- var UNMOUNTED = 'unmounted';
15928
- var EXITED = 'exited';
15929
- var ENTERING = 'entering';
15930
- var ENTERED = 'entered';
15931
- var EXITING = 'exiting';
15932
- /**
15933
- * The Transition component lets you describe a transition from one component
15934
- * state to another _over time_ with a simple declarative API. Most commonly
15935
- * it's used to animate the mounting and unmounting of a component, but can also
15936
- * be used to describe in-place transition states as well.
15937
- *
15938
- * ---
15939
- *
15940
- * **Note**: `Transition` is a platform-agnostic base component. If you're using
15941
- * transitions in CSS, you'll probably want to use
15942
- * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
15943
- * instead. It inherits all the features of `Transition`, but contains
15944
- * additional features necessary to play nice with CSS transitions (hence the
15945
- * name of the component).
15946
- *
15947
- * ---
15948
- *
15949
- * By default the `Transition` component does not alter the behavior of the
15950
- * component it renders, it only tracks "enter" and "exit" states for the
15951
- * components. It's up to you to give meaning and effect to those states. For
15952
- * example we can add styles to a component when it enters or exits:
15953
- *
15954
- * ```jsx
15955
- * import { Transition } from 'react-transition-group';
15956
- *
15957
- * const duration = 300;
15958
- *
15959
- * const defaultStyle = {
15960
- * transition: `opacity ${duration}ms ease-in-out`,
15961
- * opacity: 0,
15962
- * }
15963
- *
15964
- * const transitionStyles = {
15965
- * entering: { opacity: 1 },
15966
- * entered: { opacity: 1 },
15967
- * exiting: { opacity: 0 },
15968
- * exited: { opacity: 0 },
15969
- * };
15970
- *
15971
- * const Fade = ({ in: inProp }) => (
15972
- * <Transition in={inProp} timeout={duration}>
15973
- * {state => (
15974
- * <div style={{
15975
- * ...defaultStyle,
15976
- * ...transitionStyles[state]
15977
- * }}>
15978
- * I'm a fade Transition!
15979
- * </div>
15980
- * )}
15981
- * </Transition>
15982
- * );
15983
- * ```
15984
- *
15985
- * There are 4 main states a Transition can be in:
15986
- * - `'entering'`
15987
- * - `'entered'`
15988
- * - `'exiting'`
15989
- * - `'exited'`
15990
- *
15991
- * Transition state is toggled via the `in` prop. When `true` the component
15992
- * begins the "Enter" stage. During this stage, the component will shift from
15993
- * its current transition state, to `'entering'` for the duration of the
15994
- * transition and then to the `'entered'` stage once it's complete. Let's take
15995
- * the following example (we'll use the
15996
- * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
15997
- *
15998
- * ```jsx
15999
- * function App() {
16000
- * const [inProp, setInProp] = useState(false);
16001
- * return (
16002
- * <div>
16003
- * <Transition in={inProp} timeout={500}>
16004
- * {state => (
16005
- * // ...
16006
- * )}
16007
- * </Transition>
16008
- * <button onClick={() => setInProp(true)}>
16009
- * Click to Enter
16010
- * </button>
16011
- * </div>
16012
- * );
16013
- * }
16014
- * ```
16015
- *
16016
- * When the button is clicked the component will shift to the `'entering'` state
16017
- * and stay there for 500ms (the value of `timeout`) before it finally switches
16018
- * to `'entered'`.
16019
- *
16020
- * When `in` is `false` the same thing happens except the state moves from
16021
- * `'exiting'` to `'exited'`.
16022
- */
16023
 
16024
- var Transition = /*#__PURE__*/function (_React$Component) {
16025
- (0,inheritsLoose/* default */.Z)(Transition, _React$Component);
 
16026
 
16027
- function Transition(props, context) {
16028
- var _this;
16029
 
16030
- _this = _React$Component.call(this, props, context) || this;
16031
- var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
 
 
16032
 
16033
- var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
16034
- var initialStatus;
16035
- _this.appearStatus = null;
16036
 
16037
- if (props.in) {
16038
- if (appear) {
16039
- initialStatus = EXITED;
16040
- _this.appearStatus = ENTERING;
16041
- } else {
16042
- initialStatus = ENTERED;
16043
- }
16044
- } else {
16045
- if (props.unmountOnExit || props.mountOnEnter) {
16046
- initialStatus = UNMOUNTED;
16047
- } else {
16048
- initialStatus = EXITED;
16049
- }
16050
  }
16051
 
16052
- _this.state = {
16053
- status: initialStatus
16054
- };
16055
- _this.nextCallback = null;
16056
- return _this;
16057
- }
16058
 
16059
- Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
16060
- var nextIn = _ref.in;
 
16061
 
16062
- if (nextIn && prevState.status === UNMOUNTED) {
16063
- return {
16064
- status: EXITED
16065
- };
16066
- }
16067
 
16068
- return null;
16069
- } // getSnapshotBeforeUpdate(prevProps) {
16070
- // let nextStatus = null
16071
- // if (prevProps !== this.props) {
16072
- // const { status } = this.state
16073
- // if (this.props.in) {
16074
- // if (status !== ENTERING && status !== ENTERED) {
16075
- // nextStatus = ENTERING
16076
- // }
16077
- // } else {
16078
- // if (status === ENTERING || status === ENTERED) {
16079
- // nextStatus = EXITING
16080
- // }
16081
- // }
16082
- // }
16083
- // return { nextStatus }
16084
- // }
16085
- ;
16086
 
16087
- var _proto = Transition.prototype;
 
 
 
16088
 
16089
- _proto.componentDidMount = function componentDidMount() {
16090
- this.updateStatus(true, this.appearStatus);
16091
- };
16092
 
16093
- _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
16094
- var nextStatus = null;
 
 
16095
 
16096
- if (prevProps !== this.props) {
16097
- var status = this.state.status;
 
16098
 
16099
- if (this.props.in) {
16100
- if (status !== ENTERING && status !== ENTERED) {
16101
- nextStatus = ENTERING;
16102
- }
16103
- } else {
16104
- if (status === ENTERING || status === ENTERED) {
16105
- nextStatus = EXITING;
16106
- }
16107
  }
16108
- }
16109
 
16110
- this.updateStatus(false, nextStatus);
16111
- };
16112
 
16113
- _proto.componentWillUnmount = function componentWillUnmount() {
16114
- this.cancelNextCallback();
16115
- };
16116
 
16117
- _proto.getTimeouts = function getTimeouts() {
16118
- var timeout = this.props.timeout;
16119
- var exit, enter, appear;
16120
- exit = enter = appear = timeout;
16121
 
16122
- if (timeout != null && typeof timeout !== 'number') {
16123
- exit = timeout.exit;
16124
- enter = timeout.enter; // TODO: remove fallback for next major
 
16125
 
16126
- appear = timeout.appear !== undefined ? timeout.appear : enter;
 
16127
  }
16128
 
16129
- return {
16130
- exit: exit,
16131
- enter: enter,
16132
- appear: appear
16133
- };
16134
- };
16135
 
16136
- _proto.updateStatus = function updateStatus(mounting, nextStatus) {
16137
- if (mounting === void 0) {
16138
- mounting = false;
16139
  }
16140
 
16141
- if (nextStatus !== null) {
16142
- // nextStatus will always be ENTERING or EXITING.
16143
- this.cancelNextCallback();
 
16144
 
16145
- if (nextStatus === ENTERING) {
16146
- this.performEnter(mounting);
16147
- } else {
16148
- this.performExit();
16149
- }
16150
- } else if (this.props.unmountOnExit && this.state.status === EXITED) {
16151
- this.setState({
16152
- status: UNMOUNTED
16153
- });
16154
  }
16155
- };
16156
 
16157
- _proto.performEnter = function performEnter(mounting) {
16158
- var _this2 = this;
 
16159
 
16160
- var enter = this.props.enter;
16161
- var appearing = this.context ? this.context.isMounting : mounting;
 
 
16162
 
16163
- var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],
16164
- maybeNode = _ref2[0],
16165
- maybeAppearing = _ref2[1];
 
 
16166
 
16167
- var timeouts = this.getTimeouts();
16168
- var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
16169
- // if we are mounting and running this it means appear _must_ be set
16170
 
16171
- if (!mounting && !enter || config.disabled) {
16172
- this.safeSetState({
16173
- status: ENTERED
16174
- }, function () {
16175
- _this2.props.onEntered(maybeNode);
16176
- });
16177
- return;
16178
  }
 
16179
 
16180
- this.props.onEnter(maybeNode, maybeAppearing);
16181
- this.safeSetState({
16182
- status: ENTERING
16183
- }, function () {
16184
- _this2.props.onEntering(maybeNode, maybeAppearing);
16185
 
16186
- _this2.onTransitionEnd(enterTimeout, function () {
16187
- _this2.safeSetState({
16188
- status: ENTERED
16189
- }, function () {
16190
- _this2.props.onEntered(maybeNode, maybeAppearing);
16191
- });
16192
- });
16193
- });
16194
- };
16195
 
16196
- _proto.performExit = function performExit() {
16197
- var _this3 = this;
 
16198
 
16199
- var exit = this.props.exit;
16200
- var timeouts = this.getTimeouts();
16201
- var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED
16202
 
16203
- if (!exit || config.disabled) {
16204
- this.safeSetState({
16205
- status: EXITED
16206
- }, function () {
16207
- _this3.props.onExited(maybeNode);
16208
- });
16209
  return;
16210
  }
16211
 
16212
- this.props.onExit(maybeNode);
16213
- this.safeSetState({
16214
- status: EXITING
16215
- }, function () {
16216
- _this3.props.onExiting(maybeNode);
16217
 
16218
- _this3.onTransitionEnd(timeouts.exit, function () {
16219
- _this3.safeSetState({
16220
- status: EXITED
16221
- }, function () {
16222
- _this3.props.onExited(maybeNode);
16223
- });
16224
- });
16225
  });
16226
- };
16227
 
16228
- _proto.cancelNextCallback = function cancelNextCallback() {
16229
- if (this.nextCallback !== null) {
16230
- this.nextCallback.cancel();
16231
- this.nextCallback = null;
16232
  }
16233
- };
16234
 
16235
- _proto.safeSetState = function safeSetState(nextState, callback) {
16236
- // This shouldn't be necessary, but there are weird race conditions with
16237
- // setState callbacks and unmounting in testing, so always make sure that
16238
- // we can cancel any pending setState callbacks after we unmount.
16239
- callback = this.setNextCallback(callback);
16240
- this.setState(nextState, callback);
16241
- };
16242
 
16243
- _proto.setNextCallback = function setNextCallback(callback) {
16244
- var _this4 = this;
 
16245
 
16246
- var active = true;
 
 
16247
 
16248
- this.nextCallback = function (event) {
16249
- if (active) {
16250
- active = false;
16251
- _this4.nextCallback = null;
16252
- callback(event);
16253
- }
16254
- };
 
16255
 
16256
- this.nextCallback.cancel = function () {
16257
- active = false;
16258
- };
 
16259
 
16260
- return this.nextCallback;
16261
- };
16262
 
16263
- _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
16264
- this.setNextCallback(handler);
16265
- var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);
16266
- var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
16267
 
16268
- if (!node || doesNotHaveTimeoutOrListener) {
16269
- setTimeout(this.nextCallback, 0);
16270
- return;
 
 
 
 
 
 
 
 
 
 
 
16271
  }
16272
 
16273
- if (this.props.addEndListener) {
16274
- var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],
16275
- maybeNode = _ref3[0],
16276
- maybeNextCallback = _ref3[1];
16277
 
16278
- this.props.addEndListener(maybeNode, maybeNextCallback);
 
 
 
 
 
 
 
 
 
 
 
 
16279
  }
16280
 
16281
- if (timeout != null) {
16282
- setTimeout(this.nextCallback, timeout);
 
 
 
 
 
 
 
 
 
 
16283
  }
16284
- };
 
16285
 
16286
- _proto.render = function render() {
16287
- var status = this.state.status;
 
16288
 
16289
- if (status === UNMOUNTED) {
16290
- return null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16291
  }
16292
 
16293
- var _this$props = this.props,
16294
- children = _this$props.children,
16295
- _in = _this$props.in,
16296
- _mountOnEnter = _this$props.mountOnEnter,
16297
- _unmountOnExit = _this$props.unmountOnExit,
16298
- _appear = _this$props.appear,
16299
- _enter = _this$props.enter,
16300
- _exit = _this$props.exit,
16301
- _timeout = _this$props.timeout,
16302
- _addEndListener = _this$props.addEndListener,
16303
- _onEnter = _this$props.onEnter,
16304
- _onEntering = _this$props.onEntering,
16305
- _onEntered = _this$props.onEntered,
16306
- _onExit = _this$props.onExit,
16307
- _onExiting = _this$props.onExiting,
16308
- _onExited = _this$props.onExited,
16309
- _nodeRef = _this$props.nodeRef,
16310
- childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
16311
 
16312
- return (
16313
- /*#__PURE__*/
16314
- // allows for nested Transitions
16315
- react.createElement(TransitionGroupContext.Provider, {
16316
- value: null
16317
- }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))
16318
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16319
  };
 
 
 
 
 
 
 
 
16320
 
16321
- return Transition;
16322
- }(react.Component);
 
16323
 
16324
- Transition.contextType = TransitionGroupContext;
16325
- Transition.propTypes = false ? 0 : {}; // Name the function so it is clearer in the documentation
 
 
16326
 
16327
- function noop() {}
16328
 
16329
- Transition.defaultProps = {
16330
- in: false,
16331
- mountOnEnter: false,
16332
- unmountOnExit: false,
16333
- appear: false,
16334
- enter: true,
16335
- exit: true,
16336
- onEnter: noop,
16337
- onEntering: noop,
16338
- onEntered: noop,
16339
- onExit: noop,
16340
- onExiting: noop,
16341
- onExited: noop
16342
- };
16343
- Transition.UNMOUNTED = UNMOUNTED;
16344
- Transition.EXITED = EXITED;
16345
- Transition.ENTERING = ENTERING;
16346
- Transition.ENTERED = ENTERED;
16347
- Transition.EXITING = EXITING;
16348
- /* harmony default export */ var esm_Transition = (Transition);
16349
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/transitions.js
16350
- var transitions = __webpack_require__(43366);
16351
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/defaultTheme.js
16352
- var defaultTheme = __webpack_require__(99700);
16353
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/styles/useTheme.js
16354
 
16355
 
 
 
 
16356
 
16357
- function useTheme_useTheme() {
16358
- var theme = (0,useTheme/* default */.Z)() || defaultTheme/* default */.Z;
16359
 
16360
- if (false) {}
 
 
 
16361
 
16362
- return theme;
16363
- }
16364
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/transitions/utils.js
16365
- var reflow = function reflow(node) {
16366
- return node.scrollTop;
16367
- };
16368
- function getTransitionProps(props, options) {
16369
- var timeout = props.timeout,
16370
- _props$style = props.style,
16371
- style = _props$style === void 0 ? {} : _props$style;
16372
- return {
16373
- duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,
16374
- delay: style.transitionDelay
16375
  };
16376
- }
16377
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Fade/Fade.js
16378
 
 
 
16379
 
 
 
 
16380
 
 
 
 
16381
 
 
 
16382
 
 
 
 
16383
 
 
 
 
 
16384
 
 
16385
 
 
 
 
 
16386
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16387
 
16388
- var Fade_styles = {
16389
- entering: {
16390
- opacity: 1
16391
- },
16392
- entered: {
16393
- opacity: 1
16394
- }
16395
  };
16396
- var defaultTimeout = {
16397
- enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
16398
- exit: transitions/* duration.leavingScreen */.x9.leavingScreen
 
 
16399
  };
16400
  /**
16401
- * The Fade transition is used by the [Modal](/components/modal/) component.
16402
- * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
16403
  */
16404
 
16405
- var Fade = /*#__PURE__*/react.forwardRef(function Fade(props, ref) {
16406
- var children = props.children,
16407
- _props$disableStrictM = props.disableStrictModeCompat,
16408
- disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
16409
- inProp = props.in,
16410
- onEnter = props.onEnter,
16411
- onEntered = props.onEntered,
16412
- onEntering = props.onEntering,
16413
- onExit = props.onExit,
16414
- onExited = props.onExited,
16415
- onExiting = props.onExiting,
16416
- style = props.style,
16417
- _props$TransitionComp = props.TransitionComponent,
16418
- TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
16419
- _props$timeout = props.timeout,
16420
- timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,
16421
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "TransitionComponent", "timeout"]);
16422
 
16423
- var theme = useTheme_useTheme();
16424
- var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
16425
- var nodeRef = react.useRef(null);
16426
- var foreignRef = (0,useForkRef/* default */.Z)(children.ref, ref);
16427
- var handleRef = (0,useForkRef/* default */.Z)(enableStrictModeCompat ? nodeRef : undefined, foreignRef);
 
 
 
 
 
 
 
 
 
16428
 
16429
- var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
16430
- return function (nodeOrAppearing, maybeAppearing) {
16431
- if (callback) {
16432
- var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
16433
- _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
16434
- node = _ref2[0],
16435
- isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
16436
 
 
16437
 
16438
- if (isAppearing === undefined) {
16439
- callback(node);
16440
- } else {
16441
- callback(node, isAppearing);
16442
- }
16443
- }
16444
- };
16445
- };
16446
 
16447
- var handleEntering = normalizedTransitionCallback(onEntering);
16448
- var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
16449
- reflow(node); // So the animation always start from the start.
16450
 
16451
- var transitionProps = getTransitionProps({
16452
- style: style,
16453
- timeout: timeout
16454
- }, {
16455
- mode: 'enter'
16456
- });
16457
- node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
16458
- node.style.transition = theme.transitions.create('opacity', transitionProps);
16459
 
16460
- if (onEnter) {
16461
- onEnter(node, isAppearing);
16462
  }
16463
- });
16464
- var handleEntered = normalizedTransitionCallback(onEntered);
16465
- var handleExiting = normalizedTransitionCallback(onExiting);
16466
- var handleExit = normalizedTransitionCallback(function (node) {
16467
- var transitionProps = getTransitionProps({
16468
- style: style,
16469
- timeout: timeout
16470
- }, {
16471
- mode: 'exit'
16472
- });
16473
- node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
16474
- node.style.transition = theme.transitions.create('opacity', transitionProps);
16475
 
16476
- if (onExit) {
16477
- onExit(node);
16478
  }
16479
- });
16480
- var handleExited = normalizedTransitionCallback(onExited);
16481
- return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
16482
- appear: true,
16483
- in: inProp,
16484
- nodeRef: enableStrictModeCompat ? nodeRef : undefined,
16485
- onEnter: handleEnter,
16486
- onEntered: handleEntered,
16487
- onEntering: handleEntering,
16488
- onExit: handleExit,
16489
- onExited: handleExited,
16490
- onExiting: handleExiting,
16491
- timeout: timeout
16492
- }, other), function (state, childProps) {
16493
- return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
16494
- style: (0,esm_extends/* default */.Z)({
16495
- opacity: 0,
16496
- visibility: state === 'exited' && !inProp ? 'hidden' : undefined
16497
- }, Fade_styles[state], style, children.props.style),
16498
- ref: handleRef
16499
- }, childProps));
16500
- });
16501
- });
16502
- false ? 0 : void 0;
16503
- /* harmony default export */ var Fade_Fade = (Fade);
16504
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js
16505
-
16506
 
 
 
 
16507
 
 
16508
 
 
 
 
 
16509
 
 
 
 
 
16510
 
 
 
 
 
 
 
 
 
16511
 
16512
- var Backdrop_styles = {
16513
- /* Styles applied to the root element. */
16514
- root: {
16515
- // Improve scrollable dialog support.
16516
- zIndex: -1,
16517
- position: 'fixed',
16518
- display: 'flex',
16519
- alignItems: 'center',
16520
- justifyContent: 'center',
16521
- right: 0,
16522
- bottom: 0,
16523
- top: 0,
16524
- left: 0,
16525
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
16526
- WebkitTapHighlightColor: 'transparent'
16527
- },
16528
 
16529
- /* Styles applied to the root element if `invisible={true}`. */
16530
- invisible: {
16531
- backgroundColor: 'transparent'
 
 
 
 
 
 
16532
  }
16533
- };
16534
- var Backdrop = /*#__PURE__*/react.forwardRef(function Backdrop(props, ref) {
16535
- var children = props.children,
16536
- classes = props.classes,
16537
- className = props.className,
16538
- _props$invisible = props.invisible,
16539
- invisible = _props$invisible === void 0 ? false : _props$invisible,
16540
- open = props.open,
16541
- transitionDuration = props.transitionDuration,
16542
- _props$TransitionComp = props.TransitionComponent,
16543
- TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
16544
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "invisible", "open", "transitionDuration", "TransitionComponent"]);
16545
 
16546
- return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
16547
- in: open,
16548
- timeout: transitionDuration
16549
- }, other), /*#__PURE__*/react.createElement("div", {
16550
- className: (0,clsx_m/* default */.Z)(classes.root, className, invisible && classes.invisible),
16551
- "aria-hidden": true,
16552
- ref: ref
16553
- }, children));
16554
- });
16555
- false ? 0 : void 0;
16556
- /* harmony default export */ var Backdrop_Backdrop = ((0,withStyles/* default */.Z)(Backdrop_styles, {
16557
- name: 'MuiBackdrop'
16558
- })(Backdrop));
16559
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Paper/Paper.js
16560
 
 
 
 
 
16561
 
 
 
 
 
 
16562
 
 
 
 
 
16563
 
 
 
 
 
 
 
 
16564
 
 
 
 
 
 
 
 
16565
 
 
 
16566
 
16567
- var Paper_styles = function styles(theme) {
16568
- var elevations = {};
16569
- theme.shadows.forEach(function (shadow, index) {
16570
- elevations["elevation".concat(index)] = {
16571
- boxShadow: shadow
16572
- };
16573
- });
16574
- return (0,esm_extends/* default */.Z)({
16575
- /* Styles applied to the root element. */
16576
- root: {
16577
- backgroundColor: theme.palette.background.paper,
16578
- color: theme.palette.text.primary,
16579
- transition: theme.transitions.create('box-shadow')
16580
- },
16581
 
16582
- /* Styles applied to the root element if `square={false}`. */
16583
- rounded: {
16584
- borderRadius: theme.shape.borderRadius
16585
- },
 
16586
 
16587
- /* Styles applied to the root element if `variant="outlined"`. */
16588
- outlined: {
16589
- border: "1px solid ".concat(theme.palette.divider)
 
 
16590
  }
16591
- }, elevations);
16592
- };
16593
- var Paper = /*#__PURE__*/react.forwardRef(function Paper(props, ref) {
16594
- var classes = props.classes,
16595
- className = props.className,
16596
- _props$component = props.component,
16597
- Component = _props$component === void 0 ? 'div' : _props$component,
16598
- _props$square = props.square,
16599
- square = _props$square === void 0 ? false : _props$square,
16600
- _props$elevation = props.elevation,
16601
- elevation = _props$elevation === void 0 ? 1 : _props$elevation,
16602
- _props$variant = props.variant,
16603
- variant = _props$variant === void 0 ? 'elevation' : _props$variant,
16604
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "component", "square", "elevation", "variant"]);
16605
 
16606
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
16607
- className: (0,clsx_m/* default */.Z)(classes.root, className, variant === 'outlined' ? classes.outlined : classes["elevation".concat(elevation)], !square && classes.rounded),
16608
- ref: ref
16609
- }, other));
16610
- });
16611
- false ? 0 : void 0;
16612
- /* harmony default export */ var Paper_Paper = ((0,withStyles/* default */.Z)(Paper_styles, {
16613
- name: 'MuiPaper'
16614
- })(Paper));
16615
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Dialog/Dialog.js
16616
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16617
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16618
 
 
 
 
 
 
 
16619
 
 
 
 
 
 
16620
 
 
 
 
 
 
 
 
 
16621
 
 
 
 
16622
 
 
 
 
16623
 
 
 
 
 
 
 
 
 
 
 
16624
 
 
 
 
16625
 
 
 
 
16626
 
 
 
 
16627
 
 
 
 
 
 
 
 
16628
 
16629
- var Dialog_styles = function styles(theme) {
16630
- return {
16631
- /* Styles applied to the root element. */
16632
- root: {
16633
- '@media print': {
16634
- // Use !important to override the Modal inline-style.
16635
- position: 'absolute !important'
16636
- }
16637
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
16638
 
16639
- /* Styles applied to the container element if `scroll="paper"`. */
16640
- scrollPaper: {
16641
- display: 'flex',
16642
- justifyContent: 'center',
16643
- alignItems: 'center'
16644
- },
 
 
 
 
 
 
 
 
 
 
16645
 
16646
- /* Styles applied to the container element if `scroll="body"`. */
16647
- scrollBody: {
16648
- overflowY: 'auto',
16649
- overflowX: 'hidden',
16650
- textAlign: 'center',
16651
- '&:after': {
16652
- content: '""',
16653
- display: 'inline-block',
16654
- verticalAlign: 'middle',
16655
- height: '100%',
16656
- width: '0'
16657
  }
16658
- },
16659
 
16660
- /* Styles applied to the container element. */
16661
- container: {
16662
- height: '100%',
16663
- '@media print': {
16664
- height: 'auto'
16665
- },
16666
- // We disable the focus ring for mouse, touch and keyboard users.
16667
- outline: 0
16668
- },
16669
 
16670
- /* Styles applied to the `Paper` component. */
16671
- paper: {
16672
- margin: 32,
16673
- position: 'relative',
16674
- overflowY: 'auto',
16675
- // Fix IE 11 issue, to remove at some point.
16676
- '@media print': {
16677
- overflowY: 'visible',
16678
- boxShadow: 'none'
16679
  }
16680
- },
16681
 
16682
- /* Styles applied to the `Paper` component if `scroll="paper"`. */
16683
- paperScrollPaper: {
16684
- display: 'flex',
16685
- flexDirection: 'column',
16686
- maxHeight: 'calc(100% - 64px)'
16687
- },
 
 
16688
 
16689
- /* Styles applied to the `Paper` component if `scroll="body"`. */
16690
- paperScrollBody: {
16691
- display: 'inline-block',
16692
- verticalAlign: 'middle',
16693
- textAlign: 'left' // 'initial' doesn't work on IE 11
16694
 
16695
- },
 
16696
 
16697
- /* Styles applied to the `Paper` component if `maxWidth=false`. */
16698
- paperWidthFalse: {
16699
- maxWidth: 'calc(100% - 64px)'
16700
- },
16701
 
16702
- /* Styles applied to the `Paper` component if `maxWidth="xs"`. */
16703
- paperWidthXs: {
16704
- maxWidth: Math.max(theme.breakpoints.values.xs, 444),
16705
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {
16706
- maxWidth: 'calc(100% - 64px)'
16707
- })
16708
- },
 
 
 
 
 
 
 
 
16709
 
16710
- /* Styles applied to the `Paper` component if `maxWidth="sm"`. */
16711
- paperWidthSm: {
16712
- maxWidth: theme.breakpoints.values.sm,
16713
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {
16714
- maxWidth: 'calc(100% - 64px)'
16715
- })
16716
- },
 
 
 
 
 
16717
 
16718
- /* Styles applied to the `Paper` component if `maxWidth="md"`. */
16719
- paperWidthMd: {
16720
- maxWidth: theme.breakpoints.values.md,
16721
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {
16722
- maxWidth: 'calc(100% - 64px)'
16723
- })
16724
- },
 
 
 
 
 
16725
 
16726
- /* Styles applied to the `Paper` component if `maxWidth="lg"`. */
16727
- paperWidthLg: {
16728
- maxWidth: theme.breakpoints.values.lg,
16729
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {
16730
- maxWidth: 'calc(100% - 64px)'
16731
- })
16732
- },
16733
 
16734
- /* Styles applied to the `Paper` component if `maxWidth="xl"`. */
16735
- paperWidthXl: {
16736
- maxWidth: theme.breakpoints.values.xl,
16737
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {
16738
- maxWidth: 'calc(100% - 64px)'
16739
- })
16740
- },
 
 
16741
 
16742
- /* Styles applied to the `Paper` component if `fullWidth={true}`. */
16743
- paperFullWidth: {
16744
- width: 'calc(100% - 64px)'
16745
- },
 
16746
 
16747
- /* Styles applied to the `Paper` component if `fullScreen={true}`. */
16748
- paperFullScreen: {
16749
- margin: 0,
16750
- width: '100%',
16751
- maxWidth: '100%',
16752
- height: '100%',
16753
- maxHeight: 'none',
16754
- borderRadius: 0,
16755
- '&$paperScrollBody': {
16756
- margin: 0,
16757
- maxWidth: '100%'
16758
- }
16759
  }
16760
- };
16761
- };
16762
- var defaultTransitionDuration = {
16763
- enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
16764
- exit: transitions/* duration.leavingScreen */.x9.leavingScreen
16765
- };
16766
- /**
16767
- * Dialogs are overlaid modal paper based components with a backdrop.
16768
- */
16769
 
16770
- var Dialog = /*#__PURE__*/react.forwardRef(function Dialog(props, ref) {
16771
- var BackdropProps = props.BackdropProps,
16772
- children = props.children,
16773
- classes = props.classes,
16774
- className = props.className,
16775
- _props$disableBackdro = props.disableBackdropClick,
16776
- disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
16777
- _props$disableEscapeK = props.disableEscapeKeyDown,
16778
- disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
16779
- _props$fullScreen = props.fullScreen,
16780
- fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,
16781
- _props$fullWidth = props.fullWidth,
16782
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
16783
- _props$maxWidth = props.maxWidth,
16784
- maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,
16785
- onBackdropClick = props.onBackdropClick,
16786
- onClose = props.onClose,
16787
- onEnter = props.onEnter,
16788
- onEntered = props.onEntered,
16789
- onEntering = props.onEntering,
16790
- onEscapeKeyDown = props.onEscapeKeyDown,
16791
- onExit = props.onExit,
16792
- onExited = props.onExited,
16793
- onExiting = props.onExiting,
16794
- open = props.open,
16795
- _props$PaperComponent = props.PaperComponent,
16796
- PaperComponent = _props$PaperComponent === void 0 ? Paper_Paper : _props$PaperComponent,
16797
- _props$PaperProps = props.PaperProps,
16798
- PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
16799
- _props$scroll = props.scroll,
16800
- scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,
16801
- _props$TransitionComp = props.TransitionComponent,
16802
- TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
16803
- _props$transitionDura = props.transitionDuration,
16804
- transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,
16805
- TransitionProps = props.TransitionProps,
16806
- ariaDescribedby = props['aria-describedby'],
16807
- ariaLabelledby = props['aria-labelledby'],
16808
- other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropProps", "children", "classes", "className", "disableBackdropClick", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClose", "onEnter", "onEntered", "onEntering", "onEscapeKeyDown", "onExit", "onExited", "onExiting", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps", "aria-describedby", "aria-labelledby"]);
16809
 
16810
- var mouseDownTarget = react.useRef();
 
 
 
 
 
 
 
16811
 
16812
- var handleMouseDown = function handleMouseDown(event) {
16813
- mouseDownTarget.current = event.target;
16814
- };
 
16815
 
16816
- var handleBackdropClick = function handleBackdropClick(event) {
16817
- // Ignore the events not coming from the "backdrop"
16818
- // We don't want to close the dialog when clicking the dialog content.
16819
- if (event.target !== event.currentTarget) {
16820
- return;
16821
- } // Make sure the event starts and ends on the same DOM element.
16822
 
 
 
 
 
 
16823
 
16824
- if (event.target !== mouseDownTarget.current) {
16825
- return;
 
 
16826
  }
16827
 
16828
- mouseDownTarget.current = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16829
 
16830
- if (onBackdropClick) {
16831
- onBackdropClick(event);
16832
- }
16833
 
16834
- if (!disableBackdropClick && onClose) {
16835
- onClose(event, 'backdropClick');
16836
- }
16837
- };
16838
 
16839
- return /*#__PURE__*/react.createElement(Modal_Modal, (0,esm_extends/* default */.Z)({
16840
- className: (0,clsx_m/* default */.Z)(classes.root, className),
16841
- BackdropComponent: Backdrop_Backdrop,
16842
- BackdropProps: (0,esm_extends/* default */.Z)({
16843
- transitionDuration: transitionDuration
16844
- }, BackdropProps),
16845
- closeAfterTransition: true,
16846
- disableBackdropClick: disableBackdropClick,
16847
- disableEscapeKeyDown: disableEscapeKeyDown,
16848
- onEscapeKeyDown: onEscapeKeyDown,
16849
- onClose: onClose,
16850
- open: open,
16851
- ref: ref
16852
- }, other), /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
16853
- appear: true,
16854
- in: open,
16855
- timeout: transitionDuration,
16856
- onEnter: onEnter,
16857
- onEntering: onEntering,
16858
- onEntered: onEntered,
16859
- onExit: onExit,
16860
- onExiting: onExiting,
16861
- onExited: onExited,
16862
- role: "none presentation"
16863
- }, TransitionProps), /*#__PURE__*/react.createElement("div", {
16864
- className: (0,clsx_m/* default */.Z)(classes.container, classes["scroll".concat((0,capitalize/* default */.Z)(scroll))]),
16865
- onMouseUp: handleBackdropClick,
16866
- onMouseDown: handleMouseDown
16867
- }, /*#__PURE__*/react.createElement(PaperComponent, (0,esm_extends/* default */.Z)({
16868
- elevation: 24,
16869
- role: "dialog",
16870
- "aria-describedby": ariaDescribedby,
16871
- "aria-labelledby": ariaLabelledby
16872
- }, PaperProps, {
16873
- className: (0,clsx_m/* default */.Z)(classes.paper, classes["paperScroll".concat((0,capitalize/* default */.Z)(scroll))], classes["paperWidth".concat((0,capitalize/* default */.Z)(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)
16874
- }), children))));
16875
- });
16876
- false ? 0 : void 0;
16877
- /* harmony default export */ var Dialog_Dialog = ((0,withStyles/* default */.Z)(Dialog_styles, {
16878
- name: 'MuiDialog'
16879
- })(Dialog));
16880
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Typography/Typography.js
16881
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16882
 
 
16883
 
 
16884
 
 
 
 
 
 
 
 
 
 
16885
 
 
 
 
 
 
 
16886
 
 
 
 
 
 
 
16887
 
16888
- var Typography_styles = function styles(theme) {
16889
- return {
16890
- /* Styles applied to the root element. */
16891
- root: {
16892
- margin: 0
16893
- },
16894
 
16895
- /* Styles applied to the root element if `variant="body2"`. */
16896
- body2: theme.typography.body2,
 
16897
 
16898
- /* Styles applied to the root element if `variant="body1"`. */
16899
- body1: theme.typography.body1,
16900
 
16901
- /* Styles applied to the root element if `variant="caption"`. */
16902
- caption: theme.typography.caption,
 
16903
 
16904
- /* Styles applied to the root element if `variant="button"`. */
16905
- button: theme.typography.button,
 
 
 
16906
 
16907
- /* Styles applied to the root element if `variant="h1"`. */
16908
- h1: theme.typography.h1,
16909
 
16910
- /* Styles applied to the root element if `variant="h2"`. */
16911
- h2: theme.typography.h2,
 
 
16912
 
16913
- /* Styles applied to the root element if `variant="h3"`. */
16914
- h3: theme.typography.h3,
 
 
 
 
 
 
 
16915
 
16916
- /* Styles applied to the root element if `variant="h4"`. */
16917
- h4: theme.typography.h4,
 
 
16918
 
16919
- /* Styles applied to the root element if `variant="h5"`. */
16920
- h5: theme.typography.h5,
16921
 
16922
- /* Styles applied to the root element if `variant="h6"`. */
16923
- h6: theme.typography.h6,
 
16924
 
16925
- /* Styles applied to the root element if `variant="subtitle1"`. */
16926
- subtitle1: theme.typography.subtitle1,
16927
 
16928
- /* Styles applied to the root element if `variant="subtitle2"`. */
16929
- subtitle2: theme.typography.subtitle2,
16930
 
16931
- /* Styles applied to the root element if `variant="overline"`. */
16932
- overline: theme.typography.overline,
16933
 
16934
- /* Styles applied to the root element if `variant="srOnly"`. Only accessible to screen readers. */
16935
- srOnly: {
16936
- position: 'absolute',
16937
- height: 1,
16938
- width: 1,
16939
- overflow: 'hidden'
16940
- },
16941
 
16942
- /* Styles applied to the root element if `align="left"`. */
16943
- alignLeft: {
16944
- textAlign: 'left'
16945
- },
16946
 
16947
- /* Styles applied to the root element if `align="center"`. */
16948
- alignCenter: {
16949
- textAlign: 'center'
16950
- },
16951
 
16952
- /* Styles applied to the root element if `align="right"`. */
16953
- alignRight: {
16954
- textAlign: 'right'
16955
- },
16956
 
16957
- /* Styles applied to the root element if `align="justify"`. */
16958
- alignJustify: {
16959
- textAlign: 'justify'
16960
- },
 
16961
 
16962
- /* Styles applied to the root element if `nowrap={true}`. */
16963
- noWrap: {
16964
- overflow: 'hidden',
16965
- textOverflow: 'ellipsis',
16966
- whiteSpace: 'nowrap'
16967
- },
16968
 
16969
- /* Styles applied to the root element if `gutterBottom={true}`. */
16970
- gutterBottom: {
16971
- marginBottom: '0.35em'
16972
- },
16973
 
16974
- /* Styles applied to the root element if `paragraph={true}`. */
16975
- paragraph: {
16976
- marginBottom: 16
16977
- },
 
 
16978
 
16979
- /* Styles applied to the root element if `color="inherit"`. */
16980
- colorInherit: {
16981
- color: 'inherit'
16982
- },
 
 
 
 
 
 
 
 
16983
 
16984
- /* Styles applied to the root element if `color="primary"`. */
16985
- colorPrimary: {
16986
- color: theme.palette.primary.main
16987
- },
16988
 
16989
- /* Styles applied to the root element if `color="secondary"`. */
16990
- colorSecondary: {
16991
- color: theme.palette.secondary.main
16992
- },
16993
 
16994
- /* Styles applied to the root element if `color="textPrimary"`. */
16995
- colorTextPrimary: {
16996
- color: theme.palette.text.primary
16997
- },
16998
 
16999
- /* Styles applied to the root element if `color="textSecondary"`. */
17000
- colorTextSecondary: {
17001
- color: theme.palette.text.secondary
17002
- },
 
 
 
17003
 
17004
- /* Styles applied to the root element if `color="error"`. */
17005
- colorError: {
17006
- color: theme.palette.error.main
17007
- },
 
 
 
 
 
17008
 
17009
- /* Styles applied to the root element if `display="inline"`. */
17010
- displayInline: {
17011
- display: 'inline'
17012
- },
 
17013
 
17014
- /* Styles applied to the root element if `display="block"`. */
17015
- displayBlock: {
17016
- display: 'block'
 
 
 
 
17017
  }
17018
- };
17019
- };
17020
- var defaultVariantMapping = {
17021
- h1: 'h1',
17022
- h2: 'h2',
17023
- h3: 'h3',
17024
- h4: 'h4',
17025
- h5: 'h5',
17026
- h6: 'h6',
17027
- subtitle1: 'h6',
17028
- subtitle2: 'h6',
17029
- body1: 'p',
17030
- body2: 'p'
17031
- };
17032
- var Typography = /*#__PURE__*/react.forwardRef(function Typography(props, ref) {
17033
- var _props$align = props.align,
17034
- align = _props$align === void 0 ? 'inherit' : _props$align,
17035
- classes = props.classes,
17036
- className = props.className,
17037
- _props$color = props.color,
17038
- color = _props$color === void 0 ? 'initial' : _props$color,
17039
- component = props.component,
17040
- _props$display = props.display,
17041
- display = _props$display === void 0 ? 'initial' : _props$display,
17042
- _props$gutterBottom = props.gutterBottom,
17043
- gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,
17044
- _props$noWrap = props.noWrap,
17045
- noWrap = _props$noWrap === void 0 ? false : _props$noWrap,
17046
- _props$paragraph = props.paragraph,
17047
- paragraph = _props$paragraph === void 0 ? false : _props$paragraph,
17048
- _props$variant = props.variant,
17049
- variant = _props$variant === void 0 ? 'body1' : _props$variant,
17050
- _props$variantMapping = props.variantMapping,
17051
- variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,
17052
- other = (0,objectWithoutProperties/* default */.Z)(props, ["align", "classes", "className", "color", "component", "display", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]);
17053
 
17054
- var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
17055
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
17056
- className: (0,clsx_m/* default */.Z)(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes["color".concat((0,capitalize/* default */.Z)(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes["align".concat((0,capitalize/* default */.Z)(align))], display !== 'initial' && classes["display".concat((0,capitalize/* default */.Z)(display))]),
17057
- ref: ref
17058
- }, other));
17059
- });
17060
- false ? 0 : void 0;
17061
- /* harmony default export */ var Typography_Typography = ((0,withStyles/* default */.Z)(Typography_styles, {
17062
- name: 'MuiTypography'
17063
- })(Typography));
17064
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js
17065
 
 
 
 
 
 
17066
 
 
 
 
17067
 
 
 
17068
 
 
 
 
 
 
 
 
17069
 
 
 
 
 
 
17070
 
 
 
17071
 
17072
- var DialogTitle_styles = {
17073
- /* Styles applied to the root element. */
17074
- root: {
17075
- margin: 0,
17076
- padding: '16px 24px',
17077
- flex: '0 0 auto'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17078
  }
17079
  };
17080
- var DialogTitle = /*#__PURE__*/react.forwardRef(function DialogTitle(props, ref) {
17081
- var children = props.children,
17082
- classes = props.classes,
17083
- className = props.className,
17084
- _props$disableTypogra = props.disableTypography,
17085
- disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
17086
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography"]);
17087
 
17088
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
17089
- className: (0,clsx_m/* default */.Z)(classes.root, className),
17090
- ref: ref
17091
- }, other), disableTypography ? children : /*#__PURE__*/react.createElement(Typography_Typography, {
17092
- component: "h2",
17093
- variant: "h6"
17094
- }, children));
17095
- });
17096
- false ? 0 : void 0;
17097
- /* harmony default export */ var DialogTitle_DialogTitle = ((0,withStyles/* default */.Z)(DialogTitle_styles, {
17098
- name: 'MuiDialogTitle'
17099
- })(DialogTitle));
17100
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js
 
 
17101
 
 
 
17102
 
 
 
 
17103
 
 
 
 
17104
 
 
 
 
17105
 
 
 
 
 
 
 
 
 
 
 
 
17106
 
17107
- var DialogContent_styles = function styles(theme) {
17108
- return {
17109
- /* Styles applied to the root element. */
17110
- root: {
17111
- flex: '1 1 auto',
17112
- WebkitOverflowScrolling: 'touch',
17113
- // Add iOS momentum scrolling.
17114
- overflowY: 'auto',
17115
- padding: '8px 24px',
17116
- '&:first-child': {
17117
- // dialog without title
17118
- paddingTop: 20
17119
- }
17120
- },
17121
 
17122
- /* Styles applied to the root element if `dividers={true}`. */
17123
- dividers: {
17124
- padding: '16px 24px',
17125
- borderTop: "1px solid ".concat(theme.palette.divider),
17126
- borderBottom: "1px solid ".concat(theme.palette.divider)
17127
  }
17128
- };
17129
- };
17130
- var DialogContent = /*#__PURE__*/react.forwardRef(function DialogContent(props, ref) {
17131
- var classes = props.classes,
17132
- className = props.className,
17133
- _props$dividers = props.dividers,
17134
- dividers = _props$dividers === void 0 ? false : _props$dividers,
17135
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "dividers"]);
17136
-
17137
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
17138
- className: (0,clsx_m/* default */.Z)(classes.root, className, dividers && classes.dividers),
17139
- ref: ref
17140
- }, other));
17141
- });
17142
- false ? 0 : void 0;
17143
- /* harmony default export */ var DialogContent_DialogContent = ((0,withStyles/* default */.Z)(DialogContent_styles, {
17144
- name: 'MuiDialogContent'
17145
- })(DialogContent));
17146
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js
17147
-
17148
 
 
 
 
17149
 
 
 
17150
 
 
 
 
 
 
 
 
 
 
 
 
17151
 
17152
- var DialogContentText_styles = {
17153
- /* Styles applied to the root element. */
17154
- root: {
17155
- marginBottom: 12
17156
- }
17157
- };
17158
- var DialogContentText = /*#__PURE__*/react.forwardRef(function DialogContentText(props, ref) {
17159
- return /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
17160
- component: "p",
17161
- variant: "body1",
17162
- color: "textSecondary",
17163
- ref: ref
17164
- }, props));
17165
- });
17166
- false ? 0 : void 0;
17167
- /* harmony default export */ var DialogContentText_DialogContentText = ((0,withStyles/* default */.Z)(DialogContentText_styles, {
17168
- name: 'MuiDialogContentText'
17169
- })(DialogContentText));
17170
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js
17171
 
 
17172
 
 
 
17173
 
 
 
 
17174
 
 
 
 
 
17175
 
 
 
 
17176
 
17177
- var DialogActions_styles = {
17178
- /* Styles applied to the root element. */
17179
- root: {
17180
- display: 'flex',
17181
- alignItems: 'center',
17182
- padding: 8,
17183
- justifyContent: 'flex-end',
17184
- flex: '0 0 auto'
17185
- },
17186
 
17187
- /* Styles applied to the root element if `disableSpacing={false}`. */
17188
- spacing: {
17189
- '& > :not(:first-child)': {
17190
- marginLeft: 8
17191
- }
17192
- }
17193
- };
17194
- var DialogActions = /*#__PURE__*/react.forwardRef(function DialogActions(props, ref) {
17195
- var _props$disableSpacing = props.disableSpacing,
17196
- disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,
17197
- classes = props.classes,
17198
- className = props.className,
17199
- other = (0,objectWithoutProperties/* default */.Z)(props, ["disableSpacing", "classes", "className"]);
17200
 
17201
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
17202
- className: (0,clsx_m/* default */.Z)(classes.root, className, !disableSpacing && classes.spacing),
17203
- ref: ref
17204
- }, other));
17205
- });
17206
- false ? 0 : void 0;
17207
- /* harmony default export */ var DialogActions_DialogActions = ((0,withStyles/* default */.Z)(DialogActions_styles, {
17208
- name: 'MuiDialogActions'
17209
- })(DialogActions));
17210
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/ConfirmDialog/index.js
17211
- function ConfirmDialog_extends() { ConfirmDialog_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ConfirmDialog_extends.apply(this, arguments); }
17212
 
 
 
17213
 
 
 
 
 
 
17214
 
 
 
17215
 
 
17216
 
17217
- var defaultButtons = [{
17218
- value: "cancel",
17219
- text: translate("modal.cancel")
17220
- }, {
17221
- value: "confirm",
17222
- text: translate("common.confirm")
17223
- }];
17224
- function ConfirmDialog(_ref) {
17225
- var onClose = _ref.onClose,
17226
- _ref$icon = _ref.icon,
17227
- icon = _ref$icon === void 0 ? null : _ref$icon,
17228
- _ref$open = _ref.open,
17229
- open = _ref$open === void 0 ? false : _ref$open,
17230
- _ref$title = _ref.title,
17231
- title = _ref$title === void 0 ? "Confirm" : _ref$title,
17232
- _ref$children = _ref.children,
17233
- children = _ref$children === void 0 ? null : _ref$children,
17234
- _ref$buttons = _ref.buttons,
17235
- buttons = _ref$buttons === void 0 ? null : _ref$buttons,
17236
- _ref$maxWidth = _ref.maxWidth,
17237
- maxWidth = _ref$maxWidth === void 0 ? "xs" : _ref$maxWidth,
17238
- _ref$fullWidth = _ref.fullWidth,
17239
- fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
17240
- className = _ref.className,
17241
- _ref$testId = _ref.testId,
17242
- testId = _ref$testId === void 0 ? null : _ref$testId;
17243
 
17244
- var handleClose = function handleClose(status) {
17245
- onClose(status);
17246
- };
 
 
 
 
17247
 
17248
- if (!buttons) buttons = defaultButtons;
17249
- return /*#__PURE__*/react.createElement(Dialog_Dialog, {
17250
- open: open,
17251
- onClose: handleClose,
17252
- maxWidth: maxWidth,
17253
- fullWidth: fullWidth,
17254
- "aria-labelledby": "alert-dialog-title",
17255
- "aria-describedby": "alert-dialog-description",
17256
- className: className,
17257
- "data-testid": testId ? "dialog:".concat(testId) : null
17258
- }, /*#__PURE__*/react.createElement(DialogTitle_DialogTitle, {
17259
- id: "alert-dialog-title"
17260
- }, icon, title), /*#__PURE__*/react.createElement(DialogContent_DialogContent, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
17261
- id: "alert-dialog-description",
17262
- component: "div"
17263
- }, children)), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, buttons.map(function (button, key) {
17264
- return /*#__PURE__*/react.createElement(Button_Button, ConfirmDialog_extends({
17265
- onClick: function onClick() {
17266
- return handleClose(button.value);
17267
- },
17268
- color: "primary",
17269
- key: key,
17270
- variant: button.variant,
17271
- "data-testid": testId ? "dialog:".concat(testId, ":button:").concat(button.value) : null
17272
- }, button.props), button.text);
17273
- })));
17274
- }
17275
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/IconButton/IconButton.js
17276
 
 
 
 
17277
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17278
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17279
 
 
 
17280
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17281
 
 
 
17282
 
 
 
17283
 
 
 
17284
 
 
 
 
 
 
 
 
 
17285
 
17286
- var IconButton_styles = function styles(theme) {
17287
- return {
17288
- /* Styles applied to the root element. */
17289
- root: {
17290
- textAlign: 'center',
17291
- flex: '0 0 auto',
17292
- fontSize: theme.typography.pxToRem(24),
17293
- padding: 12,
17294
- borderRadius: '50%',
17295
- overflow: 'visible',
17296
- // Explicitly set the default value to solve a bug on IE 11.
17297
- color: theme.palette.action.active,
17298
- transition: theme.transitions.create('background-color', {
17299
- duration: theme.transitions.duration.shortest
17300
- }),
17301
- '&:hover': {
17302
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.action.active, theme.palette.action.hoverOpacity),
17303
- // Reset on touch devices, it doesn't add specificity
17304
- '@media (hover: none)': {
17305
- backgroundColor: 'transparent'
17306
- }
17307
- },
17308
- '&$disabled': {
17309
- backgroundColor: 'transparent',
17310
- color: theme.palette.action.disabled
17311
  }
17312
- },
17313
 
17314
- /* Styles applied to the root element if `edge="start"`. */
17315
- edgeStart: {
17316
- marginLeft: -12,
17317
- '$sizeSmall&': {
17318
- marginLeft: -3
 
 
 
 
 
 
17319
  }
17320
- },
17321
 
17322
- /* Styles applied to the root element if `edge="end"`. */
17323
- edgeEnd: {
17324
- marginRight: -12,
17325
- '$sizeSmall&': {
17326
- marginRight: -3
17327
  }
17328
- },
17329
 
17330
- /* Styles applied to the root element if `color="inherit"`. */
17331
- colorInherit: {
17332
- color: 'inherit'
17333
- },
17334
 
17335
- /* Styles applied to the root element if `color="primary"`. */
17336
- colorPrimary: {
17337
- color: theme.palette.primary.main,
17338
- '&:hover': {
17339
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, theme.palette.action.hoverOpacity),
17340
- // Reset on touch devices, it doesn't add specificity
17341
- '@media (hover: none)': {
17342
- backgroundColor: 'transparent'
17343
- }
17344
  }
17345
- },
17346
 
17347
- /* Styles applied to the root element if `color="secondary"`. */
17348
- colorSecondary: {
17349
- color: theme.palette.secondary.main,
17350
- '&:hover': {
17351
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),
17352
- // Reset on touch devices, it doesn't add specificity
17353
- '@media (hover: none)': {
17354
- backgroundColor: 'transparent'
17355
- }
17356
- }
17357
- },
17358
 
17359
- /* Pseudo-class applied to the root element if `disabled={true}`. */
17360
- disabled: {},
 
 
 
 
17361
 
17362
- /* Styles applied to the root element if `size="small"`. */
17363
- sizeSmall: {
17364
- padding: 3,
17365
- fontSize: theme.typography.pxToRem(18)
17366
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17367
 
17368
- /* Styles applied to the children container element. */
17369
- label: {
17370
- width: '100%',
17371
- display: 'flex',
17372
- alignItems: 'inherit',
17373
- justifyContent: 'inherit'
17374
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17375
  };
17376
- };
17377
- /**
17378
- * Refer to the [Icons](/components/icons/) section of the documentation
17379
- * regarding the available icon options.
17380
- */
17381
 
17382
- var IconButton = /*#__PURE__*/react.forwardRef(function IconButton(props, ref) {
17383
- var _props$edge = props.edge,
17384
- edge = _props$edge === void 0 ? false : _props$edge,
17385
- children = props.children,
17386
- classes = props.classes,
17387
- className = props.className,
17388
- _props$color = props.color,
17389
- color = _props$color === void 0 ? 'default' : _props$color,
17390
- _props$disabled = props.disabled,
17391
- disabled = _props$disabled === void 0 ? false : _props$disabled,
17392
- _props$disableFocusRi = props.disableFocusRipple,
17393
- disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
17394
- _props$size = props.size,
17395
- size = _props$size === void 0 ? 'medium' : _props$size,
17396
- other = (0,objectWithoutProperties/* default */.Z)(props, ["edge", "children", "classes", "className", "color", "disabled", "disableFocusRipple", "size"]);
17397
 
17398
- return /*#__PURE__*/react.createElement(ButtonBase_ButtonBase, (0,esm_extends/* default */.Z)({
17399
- className: (0,clsx_m/* default */.Z)(classes.root, className, color !== 'default' && classes["color".concat((0,capitalize/* default */.Z)(color))], disabled && classes.disabled, size === "small" && classes["size".concat((0,capitalize/* default */.Z)(size))], {
17400
- 'start': classes.edgeStart,
17401
- 'end': classes.edgeEnd
17402
- }[edge]),
17403
- centerRipple: true,
17404
- focusRipple: !disableFocusRipple,
17405
- disabled: disabled,
17406
- ref: ref
17407
- }, other), /*#__PURE__*/react.createElement("span", {
17408
- className: classes.label
17409
- }, children));
17410
  });
17411
- false ? 0 : void 0;
17412
- /* harmony default export */ var IconButton_IconButton = ((0,withStyles/* default */.Z)(IconButton_styles, {
17413
- name: 'MuiIconButton'
17414
- })(IconButton));
17415
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/RevertButton/RevertButton.js
17416
- function RevertButton_slicedToArray(arr, i) { return RevertButton_arrayWithHoles(arr) || RevertButton_iterableToArrayLimit(arr, i) || RevertButton_unsupportedIterableToArray(arr, i) || RevertButton_nonIterableRest(); }
17417
 
17418
- function RevertButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
17419
 
17420
- function RevertButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return RevertButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return RevertButton_arrayLikeToArray(o, minLen); }
17421
 
17422
- function RevertButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17423
 
17424
- function RevertButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
 
17425
 
17426
- function RevertButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
17427
 
 
17428
 
 
17429
 
 
17430
 
 
 
 
 
 
 
17431
 
 
17432
 
 
 
 
17433
 
 
 
 
 
 
 
 
17434
 
 
 
 
17435
 
 
 
 
 
 
 
 
 
 
 
 
 
17436
 
 
 
 
 
 
 
 
 
 
17437
 
17438
- function RevertButton(_ref) {
17439
- var hasChanges = _ref.hasChanges;
 
 
17440
 
17441
- var _useState = (0,react.useState)(false),
17442
- _useState2 = RevertButton_slicedToArray(_useState, 2),
17443
- dialogOpened = _useState2[0],
17444
- setDialogOpened = _useState2[1];
 
 
 
 
 
17445
 
17446
- var _useState3 = (0,react.useState)(false),
17447
- _useState4 = RevertButton_slicedToArray(_useState3, 2),
17448
- startRotate = _useState4[0],
17449
- setStartRotate = _useState4[1];
17450
- /**
17451
- * Revert buttons
17452
- */
17453
 
 
 
 
17454
 
17455
- function startReverting() {
17456
- savingHelpers_apiRequest("/revert", {
17457
- method: "POST",
17458
- data: {
17459
- nonce: buttonizer_admin.nonce
17460
- }
17461
- }).then(function (_ref2) {
17462
- var status = _ref2.status,
17463
- message = _ref2.message;
17464
 
17465
- if (status === "error") {
17466
- app.loader.hide();
17467
- app.error({
17468
- message: message
17469
- });
17470
- return;
17471
- }
 
 
17472
 
17473
- window.location.reload();
17474
- });
17475
- } // Handle close button
 
 
 
 
 
17476
 
 
17477
 
17478
- var handleClose = function handleClose(why) {
17479
- setDialogOpened(false);
 
 
17480
 
17481
- if (why === "revert") {
17482
- setStartRotate(true);
17483
- startReverting();
 
 
 
 
17484
  }
17485
  };
17486
 
17487
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Tippy_Tippy, {
17488
- content: translate("revert.revert_changes")
17489
- }, /*#__PURE__*/react.createElement(IconButton_IconButton, {
17490
- onClick: function onClick() {
17491
- return setDialogOpened(true);
17492
- },
17493
- className: "revert-button",
17494
- color: "secondary",
17495
- disabled: !hasChanges || startRotate,
17496
- "data-testid": "revert-button"
17497
- }, /*#__PURE__*/react.createElement("i", {
17498
- className: (0,clsx_m/* default */.Z)("fas fa-history", startRotate && "spin")
17499
- }))), /*#__PURE__*/react.createElement(ConfirmDialog, {
17500
- open: dialogOpened,
17501
- title: translate("revert.revert_changes"),
17502
- buttons: [{
17503
- text: translate("modal.cancel"),
17504
- value: "close"
17505
- }, {
17506
- text: translate("revert.revert_changes"),
17507
- value: "revert"
17508
- }],
17509
- onClose: handleClose,
17510
- testId: "revert-dialog"
17511
- }, /*#__PURE__*/react.createElement("p", null, translate("revert.modal.intro")), /*#__PURE__*/react.createElement("p", null, translate("revert.modal.action"))));
17512
- }
17513
 
17514
- /* harmony default export */ var RevertButton_RevertButton = (connect(function (state) {
17515
- return {
17516
- hasChanges: state.misc.hasChanges
 
 
17517
  };
17518
- })(RevertButton));
17519
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
17520
- var es_array_filter = __webpack_require__(57327);
17521
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js
17522
- var es_array_for_each = __webpack_require__(89554);
17523
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
17524
- var es_array_iterator = __webpack_require__(66992);
17525
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
17526
- var es_object_assign = __webpack_require__(19601);
17527
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
17528
- var es_object_to_string = __webpack_require__(41539);
17529
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.parse-int.js
17530
- var es_parse_int = __webpack_require__(91058);
17531
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
17532
- var es_string_iterator = __webpack_require__(78783);
17533
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.js
17534
- var es_weak_map = __webpack_require__(4129);
17535
- // EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
17536
- var web_dom_collections_iterator = __webpack_require__(33948);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17537
  // EXTERNAL MODULE: ./node_modules/lodash.throttle/index.js
17538
  var lodash_throttle = __webpack_require__(93096);
17539
  var lodash_throttle_default = /*#__PURE__*/__webpack_require__.n(lodash_throttle);
@@ -17653,7 +22391,7 @@ var MapShim = (function () {
17653
  /**
17654
  * Detects whether window and document objects are available in current environment.
17655
  */
17656
- var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
17657
 
17658
  // Returns global object of a current environment.
17659
  var global$1 = (function () {
@@ -17872,7 +22610,7 @@ var ResizeObserverController = /** @class */ (function () {
17872
  ResizeObserverController.prototype.connect_ = function () {
17873
  // Do nothing if running in a non-browser environment or if listeners
17874
  // have been already added.
17875
- if (!isBrowser || this.connected_) {
17876
  return;
17877
  }
17878
  // Subscription to the "Transitionend" event is used as a workaround for
@@ -17904,7 +22642,7 @@ var ResizeObserverController = /** @class */ (function () {
17904
  ResizeObserverController.prototype.disconnect_ = function () {
17905
  // Do nothing if running in a non-browser environment or if listeners
17906
  // have been already removed.
17907
- if (!isBrowser || !this.connected_) {
17908
  return;
17909
  }
17910
  document.removeEventListener('transitionend', this.onTransitionEnd_);
@@ -18152,7 +22890,7 @@ function isDocumentElement(target) {
18152
  * @returns {DOMRectInit}
18153
  */
18154
  function getContentRect(target) {
18155
- if (!isBrowser) {
18156
  return emptyRect;
18157
  }
18158
  if (isSVGGraphicsElement(target)) {
@@ -18463,7 +23201,7 @@ var ResizeObserver = /** @class */ (function () {
18463
  };
18464
  });
18465
 
18466
- var index = (function () {
18467
  // Export existing implementation if available.
18468
  if (typeof global$1.ResizeObserver !== 'undefined') {
18469
  return global$1.ResizeObserver;
@@ -18471,7 +23209,7 @@ var index = (function () {
18471
  return ResizeObserver;
18472
  })();
18473
 
18474
- /* harmony default export */ var ResizeObserver_es = (index);
18475
 
18476
  // EXTERNAL MODULE: ./node_modules/can-use-dom/index.js
18477
  var can_use_dom = __webpack_require__(31807);
@@ -21443,28 +26181,28 @@ function withRouter(Component) {
21443
  return hoist_non_react_statics_cjs_default()(C, Component);
21444
  }
21445
 
21446
- var react_router_useContext = react.useContext;
21447
  function useHistory() {
21448
  if (false) {}
21449
 
21450
- return react_router_useContext(historyContext);
21451
  }
21452
  function useLocation() {
21453
  if (false) {}
21454
 
21455
- return react_router_useContext(context).location;
21456
  }
21457
  function useParams() {
21458
  if (false) {}
21459
 
21460
- var match = react_router_useContext(context).match;
21461
  return match ? match.params : {};
21462
  }
21463
  function useRouteMatch(path) {
21464
  if (false) {}
21465
 
21466
  var location = useLocation();
21467
- var match = react_router_useContext(context).match;
21468
  return path ? matchPath(location.pathname, path) : match;
21469
  }
21470
 
@@ -21494,7 +26232,7 @@ function RandomTip_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21494
 
21495
  function RandomTip(_ref) {
21496
  var settings = _ref.settings;
21497
- var tips = [translate("random_tips.tip_1"), translate("random_tips.tip_2"), translate("random_tips.tip_3"), translate("random_tips.tip_4"), translate("random_tips.tip_5"), translate("random_tips.tip_6"), translate("random_tips.tip_7"), translate("random_tips.tip_8"), translate("random_tips.tip_9"), translate("random_tips.tip_10"), translate("random_tips.tip_11"), translate("random_tips.tip_12"), translate("random_tips.tip_13"), translate("random_tips.tip_14"), translate("random_tips.tip_15"), translate("random_tips.tip_16"), translate("random_tips.tip_17"), translate("random_tips.tip_18"), translate("random_tips.tip_19"), translate("random_tips.tip_20")];
21498
 
21499
  var _useState = (0,react.useState)(0),
21500
  _useState2 = RandomTip_slicedToArray(_useState, 2),
@@ -21704,6 +26442,47 @@ function GroupActions_duplicateGroup(id, payload) {
21704
 
21705
  save();
21706
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21707
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/ButtonActions.js
21708
  function ButtonActions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
21709
 
@@ -21713,6 +26492,7 @@ function ButtonActions_defineProperty(obj, key, value) { if (key in obj) { Objec
21713
 
21714
 
21715
 
 
21716
  function ButtonActions_removeButton(id) {
21717
  var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
21718
  var dispatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.store.dispatch;
@@ -21730,6 +26510,16 @@ function ButtonActions_duplicateButton(id, group_id, payload) {
21730
  id: undefined
21731
  }, payload);
21732
 
 
 
 
 
 
 
 
 
 
 
21733
  delete attr.id;
21734
  GroupActions_addButton(attr, group_id, Object.values(state.buttons).reduce(function (acc, item, index) {
21735
  return item.id === id ? index + 1 : acc;
@@ -22134,12 +26924,11 @@ var DeleteButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
22134
 
22135
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Tippy_Tippy, {
22136
  content: translate("modal.remove.".concat(model, ".cannot_delete")),
22137
- trigger: "click",
22138
  disabled: !deleteDisabled,
22139
- style: !inDropdown ? {
22140
- "float": "right"
22141
- } : null
22142
- }, !inDropdown ? /*#__PURE__*/react.createElement(Tippy_Tippy, {
22143
  content: translate("utils.delete"),
22144
  disabled: deleteDisabled,
22145
  style: {
@@ -22162,7 +26951,7 @@ var DeleteButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
22162
  overflow: "unset"
22163
  },
22164
  className: "fas fa-times"
22165
- }))) : /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
22166
  onClick: function onClick() {
22167
  return !deleteDisabled && setDialogOpened(true);
22168
  },
@@ -22219,7 +27008,7 @@ function useFormControl() {
22219
  }
22220
  /* harmony default export */ var FormControl_FormControlContext = (FormControlContext);
22221
  // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/debounce.js
22222
- var debounce = __webpack_require__(79437);
22223
  ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js
22224
 
22225
 
@@ -22327,7 +27116,7 @@ var TextareaAutosize = /*#__PURE__*/react.forwardRef(function TextareaAutosize(p
22327
  });
22328
  }, [rowsMax, rowsMin, props.placeholder]);
22329
  react.useEffect(function () {
22330
- var handleResize = (0,debounce/* default */.Z)(function () {
22331
  renders.current = 0;
22332
  syncHeight();
22333
  });
@@ -24248,7 +29037,7 @@ function getTransformOriginValue(transformOrigin) {
24248
  } // Sum the scrollTop between two elements.
24249
 
24250
 
24251
- function getScrollParent(parent, child) {
24252
  var element = child;
24253
  var scrollTop = 0;
24254
 
@@ -24356,7 +29145,7 @@ var Popover = /*#__PURE__*/react.forwardRef(function Popover(props, ref) {
24356
  var contentAnchorEl = getContentAnchorEl(element);
24357
 
24358
  if (contentAnchorEl && element.contains(contentAnchorEl)) {
24359
- var scrollTop = getScrollParent(element, contentAnchorEl);
24360
  contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;
24361
  } // != the default value
24362
 
@@ -24487,7 +29276,7 @@ var Popover = /*#__PURE__*/react.forwardRef(function Popover(props, ref) {
24487
  return undefined;
24488
  }
24489
 
24490
- var handleResize = (0,debounce/* default */.Z)(function () {
24491
  setPositioningStyles();
24492
  });
24493
  window.addEventListener('resize', handleResize);
@@ -25917,6 +30706,35 @@ var TextField = /*#__PURE__*/react.forwardRef(function TextField(props, ref) {
25917
  /* harmony default export */ var TextField_TextField = ((0,withStyles/* default */.Z)(TextField_styles, {
25918
  name: 'MuiTextField'
25919
  })(TextField));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25920
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/FormDialog.js
25921
  function FormDialog_extends() { FormDialog_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return FormDialog_extends.apply(this, arguments); }
25922
 
@@ -25945,6 +30763,7 @@ function FormDialog_objectWithoutPropertiesLoose(source, excluded) { if (source
25945
 
25946
 
25947
 
 
25948
  var FormDialog_defaultButtons = [{
25949
  value: "cancel",
25950
  text: translate("modal.cancel")
@@ -25970,7 +30789,9 @@ function FormDialog(_ref) {
25970
  cancelIfSameAsFirstValue = _ref$cancelIfSameAsFi === void 0 ? false : _ref$cancelIfSameAsFi,
25971
  _ref$clearOnConfirm = _ref.clearOnConfirm,
25972
  clearOnConfirm = _ref$clearOnConfirm === void 0 ? false : _ref$clearOnConfirm,
25973
- props = FormDialog_objectWithoutProperties(_ref, ["open", "buttons", "onClose", "text", "title", "defaultValue", "canBeEmpty", "maxWidth", "fullWidth", "cancelIfSameAsFirstValue", "clearOnConfirm"]);
 
 
25974
 
25975
  var _React$useState = react.useState(defaultValue === "" ? "" : defaultValue || " "),
25976
  _React$useState2 = FormDialog_slicedToArray(_React$useState, 2),
@@ -26033,7 +30854,17 @@ function FormDialog(_ref) {
26033
  }
26034
  }
26035
  }
26036
- })), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, generateButtons()));
 
 
 
 
 
 
 
 
 
 
26037
  }
26038
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/DuplicateButton.js
26039
  function DuplicateButton_extends() { DuplicateButton_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return DuplicateButton_extends.apply(this, arguments); }
@@ -26308,17 +31139,18 @@ function downloadObjectAsJson(exportObj, exportName) {
26308
 
26309
 
26310
 
26311
- /**
26312
- * Generate JSON group object for exporting data
26313
- *
26314
- * @param {*} groupId
26315
  */
26316
 
26317
  function generateJSONGroupObject(groupId) {
 
26318
  // No groups, nothing to export
26319
- if (Object.keys(window.store.getState().groups).length === 0) return null; // Find group object
26320
 
26321
- var groupObject = dlv_umd_default()(window.store.getState().groups, groupId, null); // Group object not found
26322
 
26323
  if (!groupObject) {
26324
  return null;
@@ -26350,6 +31182,229 @@ function generateJSONGroupObject(groupId) {
26350
  buttons: tempButtons
26351
  };
26352
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26353
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/ExportButton.js
26354
  function ExportButton_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26355
 
@@ -26357,6 +31412,23 @@ function ExportButton_objectSpread(target) { for (var i = 1; i < arguments.lengt
26357
 
26358
  function ExportButton_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26360
 
26361
 
26362
 
@@ -26365,26 +31437,124 @@ function ExportButton_defineProperty(obj, key, value) { if (key in obj) { Object
26365
  function ExportButton(_ref) {
26366
  var _ref$type = _ref.type,
26367
  type = _ref$type === void 0 ? "group" : _ref$type,
26368
- object = _ref.object;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26369
 
26370
- var exportData = function exportData() {
26371
  // Generate export name
26372
- var downloadName = "".concat(type === "group" ? "Group" : "Button", " - ").concat(object.name); // Export data
 
 
 
 
 
 
 
 
 
 
26373
 
26374
- var data = type === "group" ? generateJSONGroupObject(object.id) : ExportButton_objectSpread({}, object);
26375
- data.export_type = type;
26376
- delete data.parent;
26377
- delete data.id;
26378
- downloadObjectAsJson(data, downloadName);
26379
  };
26380
 
26381
- return /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
26382
- onClick: exportData
 
26383
  }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(Icon_Icon, {
26384
  className: "fas fa-file-export"
26385
  })), /*#__PURE__*/react.createElement(Typography_Typography, {
26386
  variant: "inherit"
26387
- }, translate("import_export.export_".concat(type))));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26388
  }
26389
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ButtonContainer/ButtonContainer.js
26390
  function ButtonContainer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -26480,6 +31650,7 @@ function ButtonContainer(_ref) {
26480
  "data-testid": "rename",
26481
  inDropdown: true
26482
  }), /*#__PURE__*/react.createElement(ExportButton, {
 
26483
  object: button,
26484
  type: "button"
26485
  }), /*#__PURE__*/react.createElement(ContainerActions_DeleteButton, {
@@ -26611,7 +31782,7 @@ function useCallbackOne(callback, inputs) {
26611
  return callback;
26612
  }, inputs);
26613
  }
26614
- var use_memo_one_esm_useMemo = useMemoOne;
26615
  var useCallback = useCallbackOne;
26616
 
26617
 
@@ -26709,14 +31880,14 @@ var parse = function parse(raw) {
26709
  return result;
26710
  };
26711
 
26712
- var getWindowScroll = function getWindowScroll() {
26713
  return {
26714
  x: window.pageXOffset,
26715
  y: window.pageYOffset
26716
  };
26717
  };
26718
 
26719
- var offset = function offset(original, change) {
26720
  var borderBox = original.borderBox,
26721
  border = original.border,
26722
  margin = original.margin,
@@ -26731,10 +31902,10 @@ var offset = function offset(original, change) {
26731
  };
26732
  var withScroll = function withScroll(original, scroll) {
26733
  if (scroll === void 0) {
26734
- scroll = getWindowScroll();
26735
  }
26736
 
26737
- return offset(original, scroll);
26738
  };
26739
  var calculateBox = function calculateBox(borderBox, styles) {
26740
  var margin = {
@@ -26874,16 +32045,16 @@ var react_beautiful_dnd_esm_isProduction = "production" === 'production';
26874
  var spacesAndTabs = /[ \t]{2,}/g;
26875
  var lineStartWithSpaces = /^[ \t]*/gm;
26876
 
26877
- var clean = function clean(value) {
26878
  return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();
26879
  };
26880
 
26881
- var getDevMessage = function getDevMessage(message) {
26882
- return clean("\n %creact-beautiful-dnd\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development only message. It will be removed in production builds.\n");
26883
  };
26884
 
26885
- var getFormattedMessage = function getFormattedMessage(message) {
26886
- return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];
26887
  };
26888
  var isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';
26889
  function log(type, message) {
@@ -26897,7 +32068,7 @@ function log(type, message) {
26897
  return;
26898
  }
26899
 
26900
- (_console = console)[type].apply(_console, getFormattedMessage(message));
26901
  }
26902
  var react_beautiful_dnd_esm_warning = log.bind(null, 'warn');
26903
  var error = log.bind(null, 'error');
@@ -27944,7 +33115,7 @@ var whenReordering = (function (_ref) {
27944
  });
27945
  }
27946
 
27947
- var withDisplacement = offset(closest.page, displacedBy.point);
27948
  return goBefore({
27949
  axis: axis,
27950
  moveRelativeTo: withDisplacement,
@@ -27959,7 +33130,7 @@ var whenReordering = (function (_ref) {
27959
  }
27960
 
27961
  if (didStartAfterCritical(last.descriptor.id, afterCritical)) {
27962
- var page = offset(last.page, negate(afterCritical.displacedBy.point));
27963
  return goAfter({
27964
  axis: axis,
27965
  moveRelativeTo: page,
@@ -29223,7 +34394,7 @@ var patchDimensionMap = (function (dimensions, updated) {
29223
  };
29224
  });
29225
 
29226
- var start = function start(key) {
29227
  if (false) {}
29228
  };
29229
  var finish = function finish(key) {
@@ -29234,7 +34405,7 @@ var offsetDraggable = (function (_ref) {
29234
  var draggable = _ref.draggable,
29235
  offset$1 = _ref.offset,
29236
  initialWindowScroll = _ref.initialWindowScroll;
29237
- var client = offset(draggable.client, offset$1);
29238
  var page = withScroll(client, initialWindowScroll);
29239
 
29240
  var moved = (0,esm_extends/* default */.Z)({}, draggable, {
@@ -29277,7 +34448,7 @@ var adjustAdditionsForScrollChanges = (function (_ref) {
29277
  var publishWhileDraggingInVirtual = (function (_ref) {
29278
  var state = _ref.state,
29279
  published = _ref.published;
29280
- start();
29281
  var withScrollChange = published.modified.map(function (update) {
29282
  var existing = state.dimensions.droppables[update.droppableId];
29283
  var scrolled = scrollDroppable(existing, update.scroll);
@@ -30345,7 +35516,7 @@ var isCriticalEqual = function isCriticalEqual(first, second) {
30345
  };
30346
 
30347
  var withTimings = function withTimings(key, fn) {
30348
- start();
30349
  fn();
30350
  finish();
30351
  };
@@ -30753,7 +35924,7 @@ function createPublisher(_ref) {
30753
  callbacks.collectionStarting();
30754
  frameId = requestAnimationFrame(function () {
30755
  frameId = null;
30756
- start();
30757
  var _staging = staging,
30758
  additions = _staging.additions,
30759
  removals = _staging.removals,
@@ -30842,14 +36013,14 @@ var getMaxScroll = (function (_ref) {
30842
  return adjustedMaxScroll;
30843
  });
30844
 
30845
- var getDocumentElement = (function () {
30846
  var doc = document.documentElement;
30847
  !doc ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
30848
  return doc;
30849
  });
30850
 
30851
  var getMaxWindowScroll = (function () {
30852
- var doc = getDocumentElement();
30853
  var maxScroll = getMaxScroll({
30854
  scrollHeight: doc.scrollHeight,
30855
  scrollWidth: doc.scrollWidth,
@@ -30864,7 +36035,7 @@ var getViewport = (function () {
30864
  var maxScroll = getMaxWindowScroll();
30865
  var top = scroll.y;
30866
  var left = scroll.x;
30867
- var doc = getDocumentElement();
30868
  var width = doc.clientWidth;
30869
  var height = doc.clientHeight;
30870
  var right = left + width;
@@ -30894,7 +36065,7 @@ var getInitialPublish = (function (_ref) {
30894
  var critical = _ref.critical,
30895
  scrollOptions = _ref.scrollOptions,
30896
  registry = _ref.registry;
30897
- start();
30898
  var viewport = getViewport();
30899
  var windowScroll = viewport.scroll.current;
30900
  var home = critical.droppable;
@@ -31546,7 +36717,7 @@ var createFluidScroller = (function (_ref) {
31546
  };
31547
 
31548
  var start$1 = function start$1(state) {
31549
- start();
31550
  !!dragging ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
31551
  var dragStartTime = Date.now();
31552
  var wasScrollNeeded = false;
@@ -31827,7 +36998,7 @@ var createStyleEl = function createStyleEl(nonce) {
31827
  };
31828
 
31829
  function useStyleMarshal(contextId, nonce) {
31830
- var styles = use_memo_one_esm_useMemo(function () {
31831
  return getStyles$1(contextId);
31832
  }, [contextId]);
31833
  var alwaysRef = (0,react.useRef)(null);
@@ -31884,7 +37055,7 @@ function useStyleMarshal(contextId, nonce) {
31884
 
31885
  setDynamicStyle(styles.resting);
31886
  }, [setDynamicStyle, styles.resting]);
31887
- var marshal = use_memo_one_esm_useMemo(function () {
31888
  return {
31889
  dragging: dragging,
31890
  dropping: dropping,
@@ -32003,7 +37174,7 @@ function useFocusMarshal(contextId) {
32003
  }
32004
  };
32005
  }, []);
32006
- var marshal = use_memo_one_esm_useMemo(function () {
32007
  return {
32008
  register: register,
32009
  tryRecordFocus: tryRecordFocus,
@@ -32158,7 +37329,7 @@ function createRegistry() {
32158
  }
32159
 
32160
  function useRegistry() {
32161
- var registry = use_memo_one_esm_useMemo(createRegistry, []);
32162
  (0,react.useEffect)(function () {
32163
  return function unmount() {
32164
  requestAnimationFrame(registry.clean);
@@ -32191,7 +37362,7 @@ var getId = function getId(contextId) {
32191
  return "rbd-announcement-" + contextId;
32192
  };
32193
  function useAnnouncer(contextId) {
32194
- var id = use_memo_one_esm_useMemo(function () {
32195
  return getId(contextId);
32196
  }, [contextId]);
32197
  var ref = (0,react.useRef)(null);
@@ -32233,7 +37404,7 @@ function useAnnouncer(contextId) {
32233
  }
32234
 
32235
  var count = 0;
32236
- var react_beautiful_dnd_esm_defaults = {
32237
  separator: '::'
32238
  };
32239
  function react_beautiful_dnd_esm_reset() {
@@ -32241,10 +37412,10 @@ function react_beautiful_dnd_esm_reset() {
32241
  }
32242
  function useUniqueId(prefix, options) {
32243
  if (options === void 0) {
32244
- options = react_beautiful_dnd_esm_defaults;
32245
  }
32246
 
32247
- return use_memo_one_esm_useMemo(function () {
32248
  return "" + prefix + options.separator + count++;
32249
  }, [options.separator, prefix]);
32250
  }
@@ -32260,7 +37431,7 @@ function useHiddenTextElement(_ref2) {
32260
  var uniqueId = useUniqueId('hidden-text', {
32261
  separator: '-'
32262
  });
32263
- var id = use_memo_one_esm_useMemo(function () {
32264
  return getElementId({
32265
  contextId: contextId,
32266
  uniqueId: uniqueId
@@ -32433,7 +37604,7 @@ var react_beautiful_dnd_esm_escape = 27;
32433
  var space = 32;
32434
  var pageUp = 33;
32435
  var pageDown = 34;
32436
- var end = 35;
32437
  var home = 36;
32438
  var arrowLeft = 37;
32439
  var arrowUp = 38;
@@ -32594,7 +37765,7 @@ function getCaptureBindings(_ref) {
32594
  function useMouseSensor(api) {
32595
  var phaseRef = (0,react.useRef)(idle$1);
32596
  var unbindEventsRef = (0,react.useRef)(react_beautiful_dnd_esm_noop);
32597
- var startCaptureBinding = use_memo_one_esm_useMemo(function () {
32598
  return {
32599
  eventName: 'mousedown',
32600
  fn: function onMouseDown(event) {
@@ -32634,7 +37805,7 @@ function useMouseSensor(api) {
32634
  }
32635
  };
32636
  }, [api]);
32637
- var preventForcePressBinding = use_memo_one_esm_useMemo(function () {
32638
  return {
32639
  eventName: 'webkitmouseforcewillbegin',
32640
  fn: function fn(event) {
@@ -32736,7 +37907,7 @@ var _scrollJumpKeys;
32736
 
32737
  function noop$1() {}
32738
 
32739
- var scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);
32740
 
32741
  function getDraggingBindings(actions, stop) {
32742
  function cancel() {
@@ -32824,7 +37995,7 @@ function getDraggingBindings(actions, stop) {
32824
 
32825
  function useKeyboardSensor(api) {
32826
  var unbindEventsRef = (0,react.useRef)(noop$1);
32827
- var startCaptureBinding = use_memo_one_esm_useMemo(function () {
32828
  return {
32829
  eventName: 'keydown',
32830
  fn: function onKeyDown(event) {
@@ -33033,7 +38204,7 @@ function useTouchSensor(api) {
33033
  var setPhase = useCallback(function setPhase(phase) {
33034
  phaseRef.current = phase;
33035
  }, []);
33036
- var startCaptureBinding = use_memo_one_esm_useMemo(function () {
33037
  return {
33038
  eventName: 'touchstart',
33039
  fn: function onTouchStart(event) {
@@ -33640,7 +38811,7 @@ function useSensorMarshal(_ref4) {
33640
  }
33641
  }, [lockAPI, store]);
33642
  var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]);
33643
- var api = use_memo_one_esm_useMemo(function () {
33644
  return {
33645
  canGetLock: canGetLock,
33646
  tryGetLock: tryGetLock,
@@ -33693,7 +38864,7 @@ function App(props) {
33693
  var lazyDispatch = useCallback(function (action) {
33694
  getStore(lazyStoreRef).dispatch(action);
33695
  }, []);
33696
- var marshalCallbacks = use_memo_one_esm_useMemo(function () {
33697
  return bindActionCreators({
33698
  publishWhileDragging: publishWhileDragging,
33699
  updateDroppableScroll: updateDroppableScroll,
@@ -33703,10 +38874,10 @@ function App(props) {
33703
  }, lazyDispatch);
33704
  }, [lazyDispatch]);
33705
  var registry = useRegistry();
33706
- var dimensionMarshal = use_memo_one_esm_useMemo(function () {
33707
  return createDimensionMarshal(registry, marshalCallbacks);
33708
  }, [registry, marshalCallbacks]);
33709
- var autoScroller = use_memo_one_esm_useMemo(function () {
33710
  return createAutoScroller((0,esm_extends/* default */.Z)({
33711
  scrollWindow: scrollWindow,
33712
  scrollDroppable: dimensionMarshal.scrollDroppable
@@ -33715,7 +38886,7 @@ function App(props) {
33715
  }, lazyDispatch)));
33716
  }, [dimensionMarshal.scrollDroppable, lazyDispatch]);
33717
  var focusMarshal = useFocusMarshal(contextId);
33718
- var store = use_memo_one_esm_useMemo(function () {
33719
  return react_beautiful_dnd_esm_createStore({
33720
  announce: announce,
33721
  autoScroller: autoScroller,
@@ -33741,7 +38912,7 @@ function App(props) {
33741
  var state = getStore(lazyStoreRef).getState();
33742
  return state.isDragging || state.phase === 'DROP_ANIMATING';
33743
  }, []);
33744
- var appCallbacks = use_memo_one_esm_useMemo(function () {
33745
  return {
33746
  isDragging: isDragging,
33747
  tryAbort: tryResetStore
@@ -33754,7 +38925,7 @@ function App(props) {
33754
  var getIsMovementAllowed = useCallback(function () {
33755
  return isMovementAllowed(getStore(lazyStoreRef).getState());
33756
  }, []);
33757
- var appContext = use_memo_one_esm_useMemo(function () {
33758
  return {
33759
  marshal: dimensionMarshal,
33760
  focus: focusMarshal,
@@ -33788,7 +38959,7 @@ function reset$1() {
33788
  count$1 = 0;
33789
  }
33790
  function useInstanceCount() {
33791
- return use_memo_one_esm_useMemo(function () {
33792
  return "" + count$1++;
33793
  }, []);
33794
  }
@@ -34099,7 +39270,7 @@ function useDroppablePublisher(args) {
34099
  var registry = appContext.registry,
34100
  marshal = appContext.marshal;
34101
  var previousRef = usePrevious(args);
34102
- var descriptor = use_memo_one_esm_useMemo(function () {
34103
  return {
34104
  id: args.droppableId,
34105
  type: args.type,
@@ -34107,7 +39278,7 @@ function useDroppablePublisher(args) {
34107
  };
34108
  }, [args.droppableId, args.mode, args.type]);
34109
  var publishedDescriptorRef = (0,react.useRef)(descriptor);
34110
- var memoizedUpdateScroll = use_memo_one_esm_useMemo(function () {
34111
  return memoize_one_esm(function (x, y) {
34112
  !whileDraggingRef.current ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
34113
  var scroll = {
@@ -34130,7 +39301,7 @@ function useDroppablePublisher(args) {
34130
  var scroll = getClosestScroll();
34131
  memoizedUpdateScroll(scroll.x, scroll.y);
34132
  }, [getClosestScroll, memoizedUpdateScroll]);
34133
- var scheduleScrollUpdate = use_memo_one_esm_useMemo(function () {
34134
  return raf_schd_esm(updateScroll);
34135
  }, [updateScroll]);
34136
  var onClosestScroll = useCallback(function () {
@@ -34208,7 +39379,7 @@ function useDroppablePublisher(args) {
34208
  closest.scrollTop += change.y;
34209
  closest.scrollLeft += change.x;
34210
  }, []);
34211
- var callbacks = use_memo_one_esm_useMemo(function () {
34212
  return {
34213
  getDimensionAndWatchScroll: getDimensionAndWatchScroll,
34214
  getScrollWhileDragging: getScrollWhileDragging,
@@ -34216,7 +39387,7 @@ function useDroppablePublisher(args) {
34216
  scroll: scroll
34217
  };
34218
  }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);
34219
- var entry = use_memo_one_esm_useMemo(function () {
34220
  return {
34221
  uniqueId: uniqueId,
34222
  descriptor: descriptor,
@@ -34622,7 +39793,7 @@ function useDraggablePublisher(args) {
34622
  canDragInteractiveElements = args.canDragInteractiveElements,
34623
  shouldRespectForcePress = args.shouldRespectForcePress,
34624
  isEnabled = args.isEnabled;
34625
- var options = use_memo_one_esm_useMemo(function () {
34626
  return {
34627
  canDragInteractiveElements: canDragInteractiveElements,
34628
  shouldRespectForcePress: shouldRespectForcePress,
@@ -34634,7 +39805,7 @@ function useDraggablePublisher(args) {
34634
  !el ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
34635
  return getDimension$1(descriptor, el, windowScroll);
34636
  }, [descriptor, getDraggableRef]);
34637
- var entry = use_memo_one_esm_useMemo(function () {
34638
  return {
34639
  uniqueId: uniqueId,
34640
  descriptor: descriptor,
@@ -34715,7 +39886,7 @@ function Draggable(props) {
34715
  type = _useRequiredContext2.type,
34716
  droppableId = _useRequiredContext2.droppableId;
34717
 
34718
- var descriptor = use_memo_one_esm_useMemo(function () {
34719
  return {
34720
  id: props.draggableId,
34721
  index: props.index,
@@ -34735,7 +39906,7 @@ function Draggable(props) {
34735
  useClonePropValidation(isClone);
34736
 
34737
  if (!isClone) {
34738
- var forPublisher = use_memo_one_esm_useMemo(function () {
34739
  return {
34740
  descriptor: descriptor,
34741
  registry: registry,
@@ -34748,7 +39919,7 @@ function Draggable(props) {
34748
  useDraggablePublisher(forPublisher);
34749
  }
34750
 
34751
- var dragHandleProps = use_memo_one_esm_useMemo(function () {
34752
  return isEnabled ? {
34753
  tabIndex: 0,
34754
  role: 'button',
@@ -34774,7 +39945,7 @@ function Draggable(props) {
34774
 
34775
  dropAnimationFinishedAction();
34776
  }, [dropAnimationFinishedAction, mapped]);
34777
- var provided = use_memo_one_esm_useMemo(function () {
34778
  var style = getStyle$1(mapped);
34779
  var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;
34780
  var result = {
@@ -34789,7 +39960,7 @@ function Draggable(props) {
34789
  };
34790
  return result;
34791
  }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);
34792
- var rubric = use_memo_one_esm_useMemo(function () {
34793
  return {
34794
  draggableId: descriptor.id,
34795
  type: descriptor.type,
@@ -35140,7 +40311,7 @@ function Droppable(props) {
35140
  onTransitionEnd: onPlaceholderTransitionEnd
35141
  });
35142
  });
35143
- var provided = use_memo_one_esm_useMemo(function () {
35144
  return {
35145
  innerRef: setDroppableRef,
35146
  placeholder: placeholder,
@@ -35151,7 +40322,7 @@ function Droppable(props) {
35151
  };
35152
  }, [contextId, droppableId, placeholder, setDroppableRef]);
35153
  var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;
35154
- var droppableContext = use_memo_one_esm_useMemo(function () {
35155
  return {
35156
  droppableId: droppableId,
35157
  type: type,
@@ -35350,10 +40521,10 @@ ConnectedDroppable.defaultProps = react_beautiful_dnd_esm_defaultProps;
35350
 
35351
 
35352
  ;// CONCATENATED MODULE: ./src/js/utils/cookies.js
35353
- /**
35354
- * Get cookie util
35355
- *
35356
- * @param {string} cname
35357
  */
35358
  // Get cookie
35359
  function getCookie(name) {
@@ -35366,42 +40537,168 @@ function getCookie(name) {
35366
  function setCookie(cname, value) {
35367
  document.cookie = cname + "=" + value;
35368
  }
35369
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/KnowledgeBaseLink/KnowledgeBaseLink.js
 
35370
 
 
35371
 
 
35372
 
 
35373
 
35374
- function KnowledgeBaseLink(_ref) {
35375
- var articleId = _ref.articleId,
35376
- setting = _ref.setting,
35377
- _ref$size = _ref.size,
35378
- size = _ref$size === void 0 ? "medium" : _ref$size,
35379
- _ref$tiny = _ref.tiny,
35380
- tiny = _ref$tiny === void 0 ? false : _ref$tiny,
35381
- style = _ref.style;
35382
- if (tiny) return /*#__PURE__*/react.createElement("a", {
35383
- href: "https://community.buttonizer.pro/knowledgebase/".concat(articleId),
35384
- target: "_blank",
35385
- style: style
35386
- }, /*#__PURE__*/react.createElement("i", {
35387
- className: (0,clsx_m/* default */.Z)("knowledgebase-icon", size, "fas fa-question-circle")
35388
- }));
35389
- return /*#__PURE__*/react.createElement("a", {
35390
- href: "https://community.buttonizer.pro/knowledgebase/".concat(articleId),
35391
- target: "_blank",
35392
- className: (0,clsx_m/* default */.Z)("knowledgebase-link", size),
35393
- dangerouslySetInnerHTML: {
35394
- __html: translate("utils.knowledge_link", setting)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35395
  }
35396
- });
35397
- }
35398
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/ImportButton.js
35399
- function ImportButton_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35400
 
35401
- function ImportButton_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ImportButton_ownKeys(Object(source), true).forEach(function (key) { ImportButton_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ImportButton_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35402
 
35403
- function ImportButton_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
 
35404
 
 
 
35405
  function ImportButton_slicedToArray(arr, i) { return ImportButton_arrayWithHoles(arr) || ImportButton_iterableToArrayLimit(arr, i) || ImportButton_unsupportedIterableToArray(arr, i) || ImportButton_nonIterableRest(); }
35406
 
35407
  function ImportButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -35421,11 +40718,18 @@ function ImportButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr;
35421
 
35422
 
35423
 
35424
- var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
 
 
 
 
35425
  var _ref$isGroup = _ref.isGroup,
35426
  isGroup = _ref$isGroup === void 0 ? true : _ref$isGroup,
35427
  _ref$currentGroup = _ref.currentGroup,
35428
- currentGroup = _ref$currentGroup === void 0 ? null : _ref$currentGroup;
 
 
 
35429
 
35430
  var _useState = (0,react.useState)(false),
35431
  _useState2 = ImportButton_slicedToArray(_useState, 2),
@@ -35437,19 +40741,25 @@ var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
35437
  fileSelected = _useState4[0],
35438
  setFileSelected = _useState4[1];
35439
 
35440
- var _useState5 = (0,react.useState)([]),
35441
  _useState6 = ImportButton_slicedToArray(_useState5, 2),
35442
  foundButtons = _useState6[0],
35443
  setFoundButtons = _useState6[1];
35444
 
 
 
 
 
 
35445
  var importFileUploader = (0,react.useRef)(null);
35446
  var dispatch = useDispatch();
 
 
 
35447
 
35448
- var onFileSelect = function onFileSelect(e) {
35449
- // No file selected
35450
- if (e.target.files.length === 0) return; // Get file
35451
-
35452
- var file = e.target.files[0]; // Read the file
35453
 
35454
  var readFile = new FileReader(); // After reading the file
35455
 
@@ -35460,27 +40770,35 @@ var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
35460
  var fileResult = JSON.parse(result); // Malformed data
35461
 
35462
  if (!fileResult.export_type || fileResult.export_type === "group" && !fileResult.buttons) {
35463
- throw new Error("This file is not a Buttonizer file.");
35464
  } // Import a group
35465
 
35466
 
35467
- if (isGroup && fileResult.export_type === "group") {
35468
- if (fileResult.buttons.length === 0) {
35469
- alert("This group does not have any buttons to import.");
35470
- return;
35471
  }
35472
 
35473
- setFoundButtons(fileResult.buttons);
35474
- } // Import a single button
35475
- else if (isGroup && fileResult.export_type === "button") {
35476
- setFoundButtons([ImportButton_objectSpread(ImportButton_objectSpread({}, fileResult), {}, {
35477
- export_type: null
35478
- })]);
35479
- }
 
 
 
 
 
 
 
 
 
35480
 
35481
  setFileSelected(fileResult);
35482
  } catch (e) {
35483
- alert("The file you have selected is malformed or the file is not a Buttonizer file.");
35484
  }
35485
  });
35486
  readFile.readAsText(file);
@@ -35488,30 +40806,63 @@ var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
35488
 
35489
 
35490
  var onImport = function onImport() {
35491
- foundButtons.map(function (button) {
35492
- // Do not import
35493
- if (Object.keys(button).length === 0) return false;
35494
- GroupActions_addButton(ImportButton_objectSpread(ImportButton_objectSpread({}, button), {}, {
35495
- id: undefined // Make sure there are no duplicate IDs
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35496
 
35497
- }), currentGroup.id, false, dispatch);
35498
- }); // Reset
35499
 
35500
  setDialogOpened(false);
35501
  setFileSelected(null);
35502
- setFoundButtons([]);
 
35503
  };
35504
 
35505
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
35506
  onClick: function onClick() {
35507
  return setDialogOpened(true);
35508
  },
35509
- ref: ref
35510
  }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(Icon_Icon, {
35511
  className: "fas fa-file-import"
35512
  })), /*#__PURE__*/react.createElement(Typography_Typography, {
35513
  variant: "inherit"
35514
- }, translate("import_export.import_button"))), /*#__PURE__*/react.createElement(Dialog_Dialog, {
 
 
 
 
 
 
 
 
 
 
 
35515
  open: dialogOpened,
35516
  onClose: function onClose() {
35517
  return setDialogOpened(false);
@@ -35522,12 +40873,17 @@ var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
35522
  "aria-describedby": "import-button-dialog-description" // className={className}
35523
  ,
35524
  "data-testid": "dialog:import-dialog"
 
 
 
 
 
35525
  }, /*#__PURE__*/react.createElement(DialogTitle_DialogTitle, {
35526
  id: "import-button-dialog-title"
35527
- }, "BETA: ", translate("import_export.import_button")), /*#__PURE__*/react.createElement(DialogContent_DialogContent, null, !fileSelected && /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
35528
  id: "import-button-dialog-description",
35529
  component: "div"
35530
- }, "Import buttons and groups into this group. Please select a Buttonizer export file."), /*#__PURE__*/react.createElement(Button_Button, {
35531
  variant: "contained",
35532
  fullWidth: true,
35533
  startIcon: /*#__PURE__*/react.createElement(Icon_Icon, {
@@ -35543,12 +40899,16 @@ var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
35543
  onClick: function onClick() {
35544
  return importFileUploader.current.click();
35545
  }
35546
- }, "Click here to select a file"), /*#__PURE__*/react.createElement("input", {
35547
  type: "file",
35548
  id: "input",
 
35549
  ref: importFileUploader,
35550
  accept: "application/JSON",
35551
- onChange: onFileSelect,
 
 
 
35552
  style: {
35553
  overflow: "hidden",
35554
  width: 0,
@@ -35559,37 +40919,78 @@ var ImportButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
35559
  component: "div"
35560
  }, /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
35561
  articleId: 653,
35562
- setting: "Import & export"
35563
  }))), fileSelected && /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
35564
  component: "div"
35565
- }, "You're about to import ", foundButtons.length, " button(s):"), foundButtons.map(function (button, key) {
35566
- var propertiesCount = Object.keys(button).length;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35567
  return /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
 
35568
  component: "div",
35569
  key: key
35570
- }, /*#__PURE__*/react.createElement("i", null, "Button ", key + 1), ": ", dlv_umd_default()(button, "name", "Unnamed"), ".", " ", propertiesCount, " properties", " ", propertiesCount === 0 && /*#__PURE__*/react.createElement("span", {
35571
- style: {
35572
- color: "red"
 
 
 
 
 
35573
  }
35574
- }, "- Button will not be imported"));
35575
  }))), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, /*#__PURE__*/react.createElement(Button_Button, {
35576
  onClick: function onClick() {
35577
  return setDialogOpened(false);
35578
  } // variant={""}
35579
 
35580
- }, "Cancel"), fileSelected && /*#__PURE__*/react.createElement(Button_Button, {
35581
  onClick: function onClick() {
35582
  return setFileSelected(null);
35583
  }
35584
- }, "Re-upload file"), /*#__PURE__*/react.createElement(Button_Button, {
35585
  onClick: function onClick() {
35586
  return onImport();
35587
  },
35588
  color: "primary",
35589
- disabled: !fileSelected
35590
- }, "Import"))));
35591
- });
35592
- /* harmony default export */ var ContainerActions_ImportButton = (ImportButton);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35593
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ButtonGroupContainer/ButtonGroupContainer.js
35594
  function ButtonGroupContainer_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = ButtonGroupContainer_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
35595
 
@@ -35702,15 +41103,14 @@ function ButtonGroupContainer(_ref) {
35702
  var duplicateButton = function duplicateButton() {
35703
  /* webpack-strip-block:removed */
35704
  return /*#__PURE__*/react.createElement(Tippy_Tippy, {
35705
- trigger: "click",
35706
  content: translate("premium.warning_duplicate"),
35707
- style: {
35708
- "float": "left"
35709
- }
35710
  }, /*#__PURE__*/react.createElement(DuplicateButton, {
35711
  name: group.name,
35712
  disabled: true
35713
- }));
35714
  };
35715
 
35716
  return /*#__PURE__*/react.createElement("div", {
@@ -35732,18 +41132,12 @@ function ButtonGroupContainer(_ref) {
35732
  className: "group-action-spacer"
35733
  }), /*#__PURE__*/react.createElement("div", {
35734
  className: "group-actions"
35735
- }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
35736
- content: translate("settings.tippy_single_button"),
35737
- trigger: "click",
35738
- style: {
35739
- "float": "left"
35740
- }
35741
  }, /*#__PURE__*/react.createElement(EditButton, {
35742
  onClick: function onClick() {
35743
  return document.location.hash = "#/group/" + group.id;
35744
  },
35745
  "data-testid": "edit-button-group"
35746
- })), duplicateButton(), /*#__PURE__*/react.createElement(ContainerActionsDropdown, null, /*#__PURE__*/react.createElement(ContainerActions_RenameButton, {
35747
  name: group.name,
35748
  onChange: function onChange(val) {
35749
  return set("groups", group.id, "name", val);
@@ -35752,8 +41146,9 @@ function ButtonGroupContainer(_ref) {
35752
  }), /*#__PURE__*/react.createElement(ExportButton, {
35753
  object: group,
35754
  type: "group"
35755
- }), /*#__PURE__*/react.createElement(ContainerActions_ImportButton, {
35756
- currentGroup: group
 
35757
  }), /*#__PURE__*/react.createElement(ContainerActions_DeleteButton, {
35758
  model: "group",
35759
  "data-testid": "delete-button-group",
@@ -35800,7 +41195,8 @@ function ButtonGroupContainer(_ref) {
35800
  name: buttonName
35801
  }, group.id, newButtonDialogOpened);
35802
  }
35803
- }
 
35804
  }))));
35805
  }
35806
 
@@ -35877,6 +41273,7 @@ function Overview_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35877
 
35878
 
35879
 
 
35880
  function Overview(_ref) {
35881
  var _ref$groups = _ref.groups,
35882
  groups = _ref$groups === void 0 ? null : _ref$groups,
@@ -36351,7 +41748,7 @@ function ScrollbarSize(props) {
36351
  };
36352
 
36353
  react.useEffect(function () {
36354
- var handleResize = (0,debounce/* default */.Z)(function () {
36355
  var prevHeight = scrollbarHeight.current;
36356
  setMeasurements();
36357
 
@@ -36846,7 +42243,7 @@ var Tabs = /*#__PURE__*/react.forwardRef(function Tabs(props, ref) {
36846
  }
36847
  });
36848
  react.useEffect(function () {
36849
- var handleResize = (0,debounce/* default */.Z)(function () {
36850
  updateIndicatorState();
36851
  updateScrollButtonState();
36852
  });
@@ -36857,7 +42254,7 @@ var Tabs = /*#__PURE__*/react.forwardRef(function Tabs(props, ref) {
36857
  win.removeEventListener('resize', handleResize);
36858
  };
36859
  }, [updateIndicatorState, updateScrollButtonState]);
36860
- var handleTabsScroll = react.useCallback((0,debounce/* default */.Z)(function () {
36861
  updateScrollButtonState();
36862
  }));
36863
  react.useEffect(function () {
@@ -37170,7 +42567,8 @@ function ButtonHeader(_ref) {
37170
  }, /*#__PURE__*/react.createElement("div", {
37171
  className: "breadcrumb"
37172
  }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
37173
- content: translate("bar.breadcrumb.tippy_home")
 
37174
  }, /*#__PURE__*/react.createElement(Button_Button, {
37175
  onClick: function onClick() {
37176
  history.push("/");
@@ -37182,7 +42580,8 @@ function ButtonHeader(_ref) {
37182
  }, translate("bar.breadcrumb.home")), /*#__PURE__*/react.createElement("i", {
37183
  className: "fas fa-chevron-right"
37184
  }))), /*#__PURE__*/react.createElement(Tippy_Tippy, {
37185
- content: translate("bar.breadcrumb.tippy_group")
 
37186
  }, /*#__PURE__*/react.createElement(Button_Button, {
37187
  onClick: function onClick() {
37188
  history.push("/group/".concat(group.id));
@@ -38412,7 +43811,6 @@ function TwitterDm(_ref) {
38412
  return /*#__PURE__*/react.createElement("div", {
38413
  className: "button-action-value"
38414
  }, /*#__PURE__*/react.createElement(TextField_TextField, {
38415
- type: "number",
38416
  variant: "outlined",
38417
  fullWidth: true,
38418
  value: value,
@@ -38420,7 +43818,7 @@ function TwitterDm(_ref) {
38420
  helperText: !check.test(value) && value !== "" ? "Invalid account ID." : null,
38421
  error: !check.test(value) && value !== "",
38422
  onChange: function onChange(obj) {
38423
- _onChange(obj.target.value);
38424
  },
38425
  inputProps: {
38426
  "data-testid": "action:field"
@@ -38450,6 +43848,8 @@ function TwitterDm(_ref) {
38450
 
38451
 
38452
 
 
 
38453
  function ElementorPopup(_ref) {
38454
  var _ref$value = _ref.value,
38455
  value = _ref$value === void 0 ? "" : _ref$value,
@@ -38461,16 +43861,22 @@ function ElementorPopup(_ref) {
38461
  if (value.substring(value.length - 3) !== "Ev2") onChange("elementor" + uniqueCharset() + "Ev2");
38462
  }
38463
  }, []);
38464
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("p", null, "Copy and paste this into your Elementor Popup's", " ", /*#__PURE__*/react.createElement("b", null, "\"Open By Selector\""), "option. ", /*#__PURE__*/react.createElement("br", null), " "), /*#__PURE__*/react.createElement("pre", {
 
 
 
 
38465
  style: {
38466
  display: "flex"
38467
  }
38468
  }, /*#__PURE__*/react.createElement("code", {
38469
  style: {
38470
- fontSize: "12px",
38471
  padding: "5.5px"
38472
  }
38473
- }, "a[", value.substring(value.length - 3) === "Ev2" ? "buttonizer-popup" : "href", "=\"#", value, "\"]"), value.substring(value.length - 3) !== "Ev2" && /*#__PURE__*/react.createElement(IconButton_IconButton, {
 
 
38474
  onClick: function onClick() {
38475
  onChange("elementor" + uniqueCharset() + "Ev2");
38476
  },
@@ -38484,7 +43890,7 @@ function ElementorPopup(_ref) {
38484
  style: {
38485
  fontSize: "14px"
38486
  }
38487
- }))), /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
38488
  articleId: 76,
38489
  setting: "Elementor Popup"
38490
  }));
@@ -38495,6 +43901,8 @@ function ElementorPopup(_ref) {
38495
 
38496
 
38497
 
 
 
38498
  function PopupMaker(_ref) {
38499
  var _ref$value = _ref.value,
38500
  value = _ref$value === void 0 ? "" : _ref$value,
@@ -38506,16 +43914,22 @@ function PopupMaker(_ref) {
38506
  if (value.substring(value.length - 3) !== "Pv2") onChange("popupMaker" + uniqueCharset() + "Pv2");
38507
  }
38508
  }, []);
38509
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("p", null, "In your ", /*#__PURE__*/react.createElement("b", null, "Popup Settings"), ", add a new ", /*#__PURE__*/react.createElement("b", null, "\"Click to Open\""), " trigger and copy and paste this code in ", /*#__PURE__*/react.createElement("b", null, "\"Extra CSS Selectors\""), " ", /*#__PURE__*/react.createElement("br", null)), /*#__PURE__*/react.createElement("pre", {
 
 
 
 
38510
  style: {
38511
  display: "flex"
38512
  }
38513
  }, /*#__PURE__*/react.createElement("code", {
38514
  style: {
38515
- fontSize: "12px",
38516
  padding: "5.5px"
38517
  }
38518
- }, "a[", value.substring(value.length - 3) === "Pv2" ? "buttonizer-popup" : "href", "=\"#", value, "\"]"), value.substring(value.length - 3) !== "Pv2" && /*#__PURE__*/react.createElement(IconButton_IconButton, {
 
 
38519
  onClick: function onClick() {
38520
  onChange("popupMaker" + uniqueCharset() + "Pv2");
38521
  },
@@ -38529,408 +43943,114 @@ function PopupMaker(_ref) {
38529
  style: {
38530
  fontSize: "14px"
38531
  }
38532
- }))), /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
38533
  articleId: 77,
38534
  setting: "Popup Maker"
38535
  }));
38536
  }
38537
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/internal/SwitchBase.js
38538
-
38539
-
38540
-
38541
-
38542
 
 
38543
 
 
38544
 
 
38545
 
 
38546
 
 
38547
 
38548
 
38549
- var SwitchBase_styles = {
38550
- root: {
38551
- padding: 9
38552
- },
38553
- checked: {},
38554
- disabled: {},
38555
- input: {
38556
- cursor: 'inherit',
38557
- position: 'absolute',
38558
- opacity: 0,
38559
- width: '100%',
38560
- height: '100%',
38561
- top: 0,
38562
- left: 0,
38563
- margin: 0,
38564
- padding: 0,
38565
- zIndex: 1
38566
- }
38567
- };
38568
- /**
38569
- * @ignore - internal component.
38570
- */
38571
 
38572
- var SwitchBase = /*#__PURE__*/react.forwardRef(function SwitchBase(props, ref) {
38573
- var autoFocus = props.autoFocus,
38574
- checkedProp = props.checked,
38575
- checkedIcon = props.checkedIcon,
38576
- classes = props.classes,
38577
- className = props.className,
38578
- defaultChecked = props.defaultChecked,
38579
- disabledProp = props.disabled,
38580
- icon = props.icon,
38581
- id = props.id,
38582
- inputProps = props.inputProps,
38583
- inputRef = props.inputRef,
38584
- name = props.name,
38585
- onBlur = props.onBlur,
38586
- onChange = props.onChange,
38587
- onFocus = props.onFocus,
38588
- readOnly = props.readOnly,
38589
- required = props.required,
38590
- tabIndex = props.tabIndex,
38591
- type = props.type,
38592
- value = props.value,
38593
- other = (0,objectWithoutProperties/* default */.Z)(props, ["autoFocus", "checked", "checkedIcon", "classes", "className", "defaultChecked", "disabled", "icon", "id", "inputProps", "inputRef", "name", "onBlur", "onChange", "onFocus", "readOnly", "required", "tabIndex", "type", "value"]);
38594
 
38595
- var _useControlled = (0,useControlled/* default */.Z)({
38596
- controlled: checkedProp,
38597
- default: Boolean(defaultChecked),
38598
- name: 'SwitchBase',
38599
- state: 'checked'
38600
- }),
38601
- _useControlled2 = (0,slicedToArray/* default */.Z)(_useControlled, 2),
38602
- checked = _useControlled2[0],
38603
- setCheckedState = _useControlled2[1];
 
 
 
 
 
38604
 
38605
- var muiFormControl = useFormControl_useFormControl();
 
 
 
38606
 
38607
- var handleFocus = function handleFocus(event) {
38608
- if (onFocus) {
38609
- onFocus(event);
38610
- }
38611
 
38612
- if (muiFormControl && muiFormControl.onFocus) {
38613
- muiFormControl.onFocus(event);
38614
- }
38615
- };
38616
 
38617
- var handleBlur = function handleBlur(event) {
38618
- if (onBlur) {
38619
- onBlur(event);
38620
- }
38621
 
38622
- if (muiFormControl && muiFormControl.onBlur) {
38623
- muiFormControl.onBlur(event);
 
38624
  }
38625
- };
38626
-
38627
- var handleInputChange = function handleInputChange(event) {
38628
- var newChecked = event.target.checked;
38629
- setCheckedState(newChecked);
38630
 
38631
- if (onChange) {
38632
- // TODO v5: remove the second argument.
38633
- onChange(event, newChecked);
38634
  }
38635
  };
38636
 
38637
- var disabled = disabledProp;
38638
-
38639
- if (muiFormControl) {
38640
- if (typeof disabled === 'undefined') {
38641
- disabled = muiFormControl.disabled;
38642
- }
38643
- }
38644
-
38645
- var hasLabelFor = type === 'checkbox' || type === 'radio';
38646
- return /*#__PURE__*/react.createElement(IconButton_IconButton, (0,esm_extends/* default */.Z)({
38647
- component: "span",
38648
- className: (0,clsx_m/* default */.Z)(classes.root, className, checked && classes.checked, disabled && classes.disabled),
38649
- disabled: disabled,
38650
- tabIndex: null,
38651
- role: undefined,
38652
- onFocus: handleFocus,
38653
- onBlur: handleBlur,
38654
- ref: ref
38655
- }, other), /*#__PURE__*/react.createElement("input", (0,esm_extends/* default */.Z)({
38656
- autoFocus: autoFocus,
38657
- checked: checkedProp,
38658
- defaultChecked: defaultChecked,
38659
- className: classes.input,
38660
- disabled: disabled,
38661
- id: hasLabelFor && id,
38662
- name: name,
38663
- onChange: handleInputChange,
38664
- readOnly: readOnly,
38665
- ref: inputRef,
38666
- required: required,
38667
- tabIndex: tabIndex,
38668
- type: type,
38669
- value: value
38670
- }, inputProps)), checked ? checkedIcon : icon);
38671
- }); // NB: If changed, please update Checkbox, Switch and Radio
38672
- // so that the API documentation is updated.
38673
-
38674
- false ? 0 : void 0;
38675
- /* harmony default export */ var internal_SwitchBase = ((0,withStyles/* default */.Z)(SwitchBase_styles, {
38676
- name: 'PrivateSwitchBase'
38677
- })(SwitchBase));
38678
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Switch/Switch.js
38679
-
38680
-
38681
- // @inheritedComponent IconButton
38682
-
38683
-
38684
-
38685
-
38686
-
38687
-
38688
-
38689
-
38690
- var Switch_styles = function styles(theme) {
38691
- return {
38692
- /* Styles applied to the root element. */
38693
- root: {
38694
- display: 'inline-flex',
38695
- width: 34 + 12 * 2,
38696
- height: 14 + 12 * 2,
38697
- overflow: 'hidden',
38698
- padding: 12,
38699
- boxSizing: 'border-box',
38700
- position: 'relative',
38701
- flexShrink: 0,
38702
- zIndex: 0,
38703
- // Reset the stacking context.
38704
- verticalAlign: 'middle',
38705
- // For correct alignment with the text.
38706
- '@media print': {
38707
- colorAdjust: 'exact'
38708
- }
38709
- },
38710
-
38711
- /* Styles applied to the root element if `edge="start"`. */
38712
- edgeStart: {
38713
- marginLeft: -8
38714
- },
38715
-
38716
- /* Styles applied to the root element if `edge="end"`. */
38717
- edgeEnd: {
38718
- marginRight: -8
38719
- },
38720
-
38721
- /* Styles applied to the internal `SwitchBase` component's `root` class. */
38722
- switchBase: {
38723
- position: 'absolute',
38724
- top: 0,
38725
- left: 0,
38726
- zIndex: 1,
38727
- // Render above the focus ripple.
38728
- color: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[400],
38729
- transition: theme.transitions.create(['left', 'transform'], {
38730
- duration: theme.transitions.duration.shortest
38731
- }),
38732
- '&$checked': {
38733
- transform: 'translateX(20px)'
38734
- },
38735
- '&$disabled': {
38736
- color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]
38737
- },
38738
- '&$checked + $track': {
38739
- opacity: 0.5
38740
- },
38741
- '&$disabled + $track': {
38742
- opacity: theme.palette.type === 'light' ? 0.12 : 0.1
38743
- }
38744
- },
38745
-
38746
- /* Styles applied to the internal SwitchBase component's root element if `color="primary"`. */
38747
- colorPrimary: {
38748
- '&$checked': {
38749
- color: theme.palette.primary.main,
38750
- '&:hover': {
38751
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, theme.palette.action.hoverOpacity),
38752
- '@media (hover: none)': {
38753
- backgroundColor: 'transparent'
38754
- }
38755
- }
38756
- },
38757
- '&$disabled': {
38758
- color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]
38759
- },
38760
- '&$checked + $track': {
38761
- backgroundColor: theme.palette.primary.main
38762
- },
38763
- '&$disabled + $track': {
38764
- backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white
38765
- }
38766
- },
38767
-
38768
- /* Styles applied to the internal SwitchBase component's root element if `color="secondary"`. */
38769
- colorSecondary: {
38770
- '&$checked': {
38771
- color: theme.palette.secondary.main,
38772
- '&:hover': {
38773
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),
38774
- '@media (hover: none)': {
38775
- backgroundColor: 'transparent'
38776
- }
38777
- }
38778
- },
38779
- '&$disabled': {
38780
- color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]
38781
- },
38782
- '&$checked + $track': {
38783
- backgroundColor: theme.palette.secondary.main
38784
  },
38785
- '&$disabled + $track': {
38786
- backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white
38787
- }
38788
- },
38789
-
38790
- /* Styles applied to the root element if `size="small"`. */
38791
- sizeSmall: {
38792
- width: 40,
38793
- height: 24,
38794
- padding: 7,
38795
- '& $thumb': {
38796
- width: 16,
38797
- height: 16
38798
  },
38799
- '& $switchBase': {
38800
- padding: 4,
38801
- '&$checked': {
38802
- transform: 'translateX(16px)'
38803
- }
38804
- }
38805
- },
38806
-
38807
- /* Pseudo-class applied to the internal `SwitchBase` component's `checked` class. */
38808
- checked: {},
38809
-
38810
- /* Pseudo-class applied to the internal SwitchBase component's disabled class. */
38811
- disabled: {},
38812
-
38813
- /* Styles applied to the internal SwitchBase component's input element. */
38814
- input: {
38815
- left: '-100%',
38816
- width: '300%'
38817
- },
38818
-
38819
- /* Styles used to create the thumb passed to the internal `SwitchBase` component `icon` prop. */
38820
- thumb: {
38821
- boxShadow: theme.shadows[1],
38822
- backgroundColor: 'currentColor',
38823
- width: 20,
38824
- height: 20,
38825
- borderRadius: '50%'
38826
- },
38827
-
38828
- /* Styles applied to the track element. */
38829
- track: {
38830
- height: '100%',
38831
- width: '100%',
38832
- borderRadius: 14 / 2,
38833
- zIndex: -1,
38834
- transition: theme.transitions.create(['opacity', 'background-color'], {
38835
- duration: theme.transitions.duration.shortest
38836
- }),
38837
- backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white,
38838
- opacity: theme.palette.type === 'light' ? 0.38 : 0.3
38839
- }
38840
- };
38841
- };
38842
- var Switch_Switch = /*#__PURE__*/react.forwardRef(function Switch(props, ref) {
38843
- var classes = props.classes,
38844
- className = props.className,
38845
- _props$color = props.color,
38846
- color = _props$color === void 0 ? 'secondary' : _props$color,
38847
- _props$edge = props.edge,
38848
- edge = _props$edge === void 0 ? false : _props$edge,
38849
- _props$size = props.size,
38850
- size = _props$size === void 0 ? 'medium' : _props$size,
38851
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "color", "edge", "size"]);
38852
-
38853
- var icon = /*#__PURE__*/react.createElement("span", {
38854
- className: classes.thumb
38855
- });
38856
- return /*#__PURE__*/react.createElement("span", {
38857
- className: (0,clsx_m/* default */.Z)(classes.root, className, {
38858
- 'start': classes.edgeStart,
38859
- 'end': classes.edgeEnd
38860
- }[edge], size === "small" && classes["size".concat((0,capitalize/* default */.Z)(size))])
38861
- }, /*#__PURE__*/react.createElement(internal_SwitchBase, (0,esm_extends/* default */.Z)({
38862
- type: "checkbox",
38863
- icon: icon,
38864
- checkedIcon: icon,
38865
- classes: {
38866
- root: (0,clsx_m/* default */.Z)(classes.switchBase, classes["color".concat((0,capitalize/* default */.Z)(color))]),
38867
- input: classes.input,
38868
- checked: classes.checked,
38869
- disabled: classes.disabled
38870
- },
38871
- ref: ref
38872
- }, other)), /*#__PURE__*/react.createElement("span", {
38873
- className: classes.track
38874
- }));
38875
- });
38876
- false ? 0 : void 0;
38877
- /* harmony default export */ var esm_Switch_Switch = ((0,withStyles/* default */.Z)(Switch_styles, {
38878
- name: 'MuiSwitch'
38879
- })(Switch_Switch));
38880
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/ButtonAction/ButtonActionValue/ButtonActionNewTab/ButtonActionNewTab.js
38881
-
38882
-
38883
-
38884
- function ButtonActionNewTab(_ref) {
38885
- var _ref$value = _ref.value,
38886
- value = _ref$value === void 0 ? false : _ref$value,
38887
- _onChange = _ref.onChange;
38888
- return /*#__PURE__*/react.createElement("div", {
38889
- className: "settings-container container-full-width"
38890
- }, /*#__PURE__*/react.createElement("span", {
38891
- className: "settings-title",
38892
- style: {
38893
- margin: "auto 0"
38894
- },
38895
- "data-testid": "action:click",
38896
- onClick: function onClick() {
38897
- var val = !value;
38898
-
38899
- _onChange(val);
38900
- }
38901
- }, translate("settings.button_action.open_new_tab.title"), ":"), /*#__PURE__*/react.createElement("div", {
38902
- className: "settings-content"
38903
- }, /*#__PURE__*/react.createElement("div", {
38904
- className: "switch",
38905
- style: {
38906
- marginLeft: "auto"
38907
- }
38908
- }, /*#__PURE__*/react.createElement(esm_Switch_Switch, {
38909
- color: "primary",
38910
- inputProps: {
38911
- "data-testid": "action:new-tab-switch"
38912
- },
38913
- checked: value,
38914
- onChange: function onChange(value) {
38915
- _onChange(value.target.checked);
38916
  }
38917
- }))));
 
 
 
 
 
 
 
 
38918
  }
38919
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/ButtonAction/ButtonActionValue/DefaultTextField/DefaultTextField.js
38920
 
38921
 
38922
 
38923
 
38924
- /**
38925
- * DefaultTextField
38926
- * Create a textfield that changes placeholder and such
38927
- *
38928
- * @param type string: Specify textfield type
38929
- * @param placeholder string: Add a placholder in textfield
38930
- * @param newTab bool: Add open in new tab toggle
38931
- * @param paragraph string: Add paragraph under textfield
38932
- * @param knowledge permalink, name: Add knowledgebase link under textfield
38933
- * @param object object: Button object
38934
  */
38935
 
38936
  function DefaultTextField(_ref) {
@@ -39012,7 +44132,6 @@ function MessengerChat_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr;
39012
 
39013
 
39014
 
39015
-
39016
  function MessengerChat(_ref) {
39017
  var data = _ref.data,
39018
  _onChange = _ref.onChange,
@@ -39110,15 +44229,7 @@ function MessengerChat(_ref) {
39110
  },
39111
  getContentAnchorEl: null
39112
  }
39113
- }, messengerLanguages())), /*#__PURE__*/react.createElement(SettingsContainer, {
39114
- title: "Mobile issue workaround (Experimental)",
39115
- fullWidth: false
39116
- }, /*#__PURE__*/react.createElement(esm_Switch_Switch, {
39117
- onChange: function onChange(obj) {
39118
- _onChange(obj.target.checked, "messenger_mobile");
39119
- },
39120
- checked: data.messenger_mobile || false
39121
- }))), /*#__PURE__*/react.createElement(ConfirmDialog, {
39122
  open: dialogOpened,
39123
  title: "This is getting out of hand. Now, there are two of them!",
39124
  buttons: [{
@@ -39258,7 +44369,7 @@ function getStyleComputedProperty(element, property) {
39258
  * @argument {Element} element
39259
  * @returns {Element} parent
39260
  */
39261
- function getParentNode(element) {
39262
  if (element.nodeName === 'HTML') {
39263
  return element;
39264
  }
@@ -39297,7 +44408,7 @@ function popper_getScrollParent(element) {
39297
  return element;
39298
  }
39299
 
39300
- return popper_getScrollParent(getParentNode(element));
39301
  }
39302
 
39303
  /**
@@ -39321,7 +44432,7 @@ var isIE10 = popper_isBrowser && /MSIE 10/.test(navigator.userAgent);
39321
  * @param {Number} version to check
39322
  * @returns {Boolean} isIE
39323
  */
39324
- function isIE(version) {
39325
  if (version === 11) {
39326
  return isIE11;
39327
  }
@@ -39338,12 +44449,12 @@ function isIE(version) {
39338
  * @argument {Element} element
39339
  * @returns {Element} offset parent
39340
  */
39341
- function getOffsetParent(element) {
39342
  if (!element) {
39343
  return document.documentElement;
39344
  }
39345
 
39346
- var noOffsetParent = isIE(10) ? document.body : null;
39347
 
39348
  // NOTE: 1 DOM access here
39349
  var offsetParent = element.offsetParent || null;
@@ -39361,7 +44472,7 @@ function getOffsetParent(element) {
39361
  // .offsetParent will return the closest TH, TD or TABLE in case
39362
  // no offsetParent is present, I hate this job...
39363
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
39364
- return getOffsetParent(offsetParent);
39365
  }
39366
 
39367
  return offsetParent;
@@ -39373,7 +44484,7 @@ function isOffsetContainer(element) {
39373
  if (nodeName === 'BODY') {
39374
  return false;
39375
  }
39376
- return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
39377
  }
39378
 
39379
  /**
@@ -39423,7 +44534,7 @@ function findCommonOffsetParent(element1, element2) {
39423
  return commonAncestorContainer;
39424
  }
39425
 
39426
- return getOffsetParent(commonAncestorContainer);
39427
  }
39428
 
39429
  // one of the nodes is inside shadowDOM, find which one
@@ -39498,13 +44609,13 @@ function popper_getBordersSize(styles, axis) {
39498
  }
39499
 
39500
  function popper_getSize(axis, body, html, computedStyle) {
39501
- return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
39502
  }
39503
 
39504
  function getWindowSizes(document) {
39505
  var body = document.body;
39506
  var html = document.documentElement;
39507
- var computedStyle = isIE(10) && getComputedStyle(html);
39508
 
39509
  return {
39510
  height: popper_getSize('Height', body, html, computedStyle),
@@ -39590,14 +44701,14 @@ function getClientRect(offsets) {
39590
  * @param {HTMLElement} element
39591
  * @return {Object} client rect
39592
  */
39593
- function getBoundingClientRect(element) {
39594
  var rect = {};
39595
 
39596
  // IE10 10 FIX: Please, don't ask, the element isn't
39597
  // considered in DOM in some circumstances...
39598
  // This isn't reproducible in IE10 compatibility mode of IE11
39599
  try {
39600
- if (isIE(10)) {
39601
  rect = element.getBoundingClientRect();
39602
  var scrollTop = popper_getScroll(element, 'top');
39603
  var scrollLeft = popper_getScroll(element, 'left');
@@ -39642,10 +44753,10 @@ function getBoundingClientRect(element) {
39642
  function getOffsetRectRelativeToArbitraryNode(children, parent) {
39643
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
39644
 
39645
- var isIE10 = isIE(10);
39646
  var isHTML = parent.nodeName === 'HTML';
39647
- var childrenRect = getBoundingClientRect(children);
39648
- var parentRect = getBoundingClientRect(parent);
39649
  var scrollParent = popper_getScrollParent(children);
39650
 
39651
  var styles = getStyleComputedProperty(parent);
@@ -39728,7 +44839,7 @@ function isFixed(element) {
39728
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
39729
  return true;
39730
  }
39731
- var parentNode = getParentNode(element);
39732
  if (!parentNode) {
39733
  return false;
39734
  }
@@ -39745,7 +44856,7 @@ function isFixed(element) {
39745
 
39746
  function getFixedPositionOffsetParent(element) {
39747
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
39748
- if (!element || !element.parentElement || isIE()) {
39749
  return document.documentElement;
39750
  }
39751
  var el = element.parentElement;
@@ -39781,7 +44892,7 @@ function getBoundaries(popper, reference, padding, boundariesElement) {
39781
  // Handle other cases based on DOM element used as boundaries
39782
  var boundariesNode = void 0;
39783
  if (boundariesElement === 'scrollParent') {
39784
- boundariesNode = popper_getScrollParent(getParentNode(reference));
39785
  if (boundariesNode.nodeName === 'BODY') {
39786
  boundariesNode = popper.ownerDocument.documentElement;
39787
  }
@@ -39836,7 +44947,7 @@ function getArea(_ref) {
39836
  * @argument {Object} options - Modifiers configuration and options
39837
  * @returns {Object} The data object, properly modified
39838
  */
39839
- function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
39840
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
39841
 
39842
  if (placement.indexOf('auto') === -1) {
@@ -39930,7 +45041,7 @@ function getOuterSizes(element) {
39930
  * @argument {String} placement
39931
  * @returns {String} flipped placement
39932
  */
39933
- function getOppositePlacement(placement) {
39934
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
39935
  return placement.replace(/left|right|bottom|top/g, function (matched) {
39936
  return hash[matched];
@@ -39970,7 +45081,7 @@ function getPopperOffsets(popper, referenceOffsets, placement) {
39970
  if (placement === secondarySide) {
39971
  popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
39972
  } else {
39973
- popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
39974
  }
39975
 
39976
  return popperOffsets;
@@ -40080,7 +45191,7 @@ function popper_update() {
40080
  // compute auto placement, store placement inside the data object,
40081
  // modifiers will be able to edit `placement` if needed
40082
  // and refer to originalPlacement to know the original value
40083
- data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
40084
 
40085
  // store the computed placement inside `originalPlacement`
40086
  data.originalPlacement = data.placement;
@@ -40175,7 +45286,7 @@ function destroy() {
40175
  * @argument {Element} element
40176
  * @returns {Window}
40177
  */
40178
- function getWindow(element) {
40179
  var ownerDocument = element.ownerDocument;
40180
  return ownerDocument ? ownerDocument.defaultView : window;
40181
  }
@@ -40200,7 +45311,7 @@ function attachToScrollParents(scrollParent, event, callback, scrollParents) {
40200
  function setupEventListeners(reference, options, state, updateBound) {
40201
  // Resize event listener on window
40202
  state.updateBound = updateBound;
40203
- getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
40204
 
40205
  // Scroll event listener on scroll parents
40206
  var scrollElement = popper_getScrollParent(reference);
@@ -40231,7 +45342,7 @@ function enableEventListeners() {
40231
  */
40232
  function removeEventListeners(reference, state) {
40233
  // Remove resize event listener on window
40234
- getWindow(reference).removeEventListener('resize', state.updateBound);
40235
 
40236
  // Remove scroll event listener on scroll parents
40237
  state.scrollParents.forEach(function (target) {
@@ -40354,7 +45465,7 @@ function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
40354
  // compute auto placement, store placement inside the data object,
40355
  // modifiers will be able to edit `placement` if needed
40356
  // and refer to originalPlacement to know the original value
40357
- var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
40358
 
40359
  popper.setAttribute('x-placement', placement);
40360
 
@@ -40438,8 +45549,8 @@ function computeStyle(data, options) {
40438
  }
40439
  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
40440
 
40441
- var offsetParent = getOffsetParent(data.instance.popper);
40442
- var offsetParentRect = getBoundingClientRect(offsetParent);
40443
 
40444
  // Styles
40445
  var styles = {
@@ -40549,7 +45660,7 @@ function isModifierRequired(modifiers, requestingName, requestedName) {
40549
  * @argument {Object} options - Modifiers configuration and options
40550
  * @returns {Object} The data object, properly modified
40551
  */
40552
- function arrow(data, options) {
40553
  var _data$offsets$arrow;
40554
 
40555
  // arrow depends on keepTogether in order to work
@@ -40707,7 +45818,7 @@ var BEHAVIORS = {
40707
  * @argument {Object} options - Modifiers configuration and options
40708
  * @returns {Object} The data object, properly modified
40709
  */
40710
- function flip(data, options) {
40711
  // if `inner` modifier is enabled, we can't use the `flip` modifier
40712
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
40713
  return data;
@@ -40721,7 +45832,7 @@ function flip(data, options) {
40721
  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
40722
 
40723
  var placement = data.placement.split('-')[0];
40724
- var placementOpposite = getOppositePlacement(placement);
40725
  var variation = data.placement.split('-')[1] || '';
40726
 
40727
  var flipOrder = [];
@@ -40746,7 +45857,7 @@ function flip(data, options) {
40746
  }
40747
 
40748
  placement = data.placement.split('-')[0];
40749
- placementOpposite = getOppositePlacement(placement);
40750
 
40751
  var popperOffsets = data.offsets.popper;
40752
  var refOffsets = data.offsets.reference;
@@ -41007,14 +46118,14 @@ function popper_offset(data, _ref) {
41007
  * @argument {Object} options - Modifiers configuration and options
41008
  * @returns {Object} The data object, properly modified
41009
  */
41010
- function preventOverflow(data, options) {
41011
- var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
41012
 
41013
  // If offsetParent is the reference element, we really want to
41014
  // go one step up and use the next offsetParent as reference to
41015
  // avoid to make this modifier completely useless and look like broken
41016
  if (data.instance.reference === boundariesElement) {
41017
- boundariesElement = getOffsetParent(boundariesElement);
41018
  }
41019
 
41020
  // NOTE: DOM access here
@@ -41111,7 +46222,7 @@ function popper_shift(data) {
41111
  * @argument {Object} options - Modifiers configuration and options
41112
  * @returns {Object} The data object, properly modified
41113
  */
41114
- function hide(data) {
41115
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
41116
  return data;
41117
  }
@@ -41162,7 +46273,7 @@ function inner(data) {
41162
 
41163
  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
41164
 
41165
- data.placement = getOppositePlacement(placement);
41166
  data.offsets.popper = getClientRect(popper);
41167
 
41168
  return data;
@@ -41281,7 +46392,7 @@ var modifiers = {
41281
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
41282
  enabled: true,
41283
  /** @prop {ModifierFn} */
41284
- fn: preventOverflow,
41285
  /**
41286
  * @prop {Array} [priority=['left','right','top','bottom']]
41287
  * Popper will try to prevent overflow following these priorities by default,
@@ -41337,7 +46448,7 @@ var modifiers = {
41337
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
41338
  enabled: true,
41339
  /** @prop {ModifierFn} */
41340
- fn: arrow,
41341
  /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
41342
  element: '[x-arrow]'
41343
  },
@@ -41359,7 +46470,7 @@ var modifiers = {
41359
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
41360
  enabled: true,
41361
  /** @prop {ModifierFn} */
41362
- fn: flip,
41363
  /**
41364
  * @prop {String|Array} behavior='flip'
41365
  * The behavior used to change the popper's placement. It can be one of
@@ -41429,7 +46540,7 @@ var modifiers = {
41429
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
41430
  enabled: true,
41431
  /** @prop {ModifierFn} */
41432
- fn: hide
41433
  },
41434
 
41435
  /**
@@ -44738,6 +49849,125 @@ function ButtonAction(_ref) {
44738
  }
44739
  })));
44740
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44741
  ;// CONCATENATED MODULE: ./src/js/dashboard/Pages/Button/Tabs/Options.js
44742
  function Options_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
44743
 
@@ -44774,15 +50004,13 @@ function Options_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
44774
 
44775
  function Options(_ref) {
44776
  var set = _ref.set,
44777
- get = _ref.get,
44778
- getParent = _ref.getParent;
44779
 
44780
  var _useState = (0,react.useState)("general"),
44781
  _useState2 = Options_slicedToArray(_useState, 2),
44782
  openedGroup = _useState2[0],
44783
  setOpenedGroup = _useState2[1];
44784
 
44785
- var labelPlaceholder = getParent("menu_style") === "rectangle" || getParent("menu_style") === "text" || getParent("menu_style") === "text-icon";
44786
  return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(CollapsibleGroup, {
44787
  title: translate("settings.setting_categories.general"),
44788
  opened: openedGroup === "general",
@@ -44818,9 +50046,10 @@ function Options(_ref) {
44818
  }, translate("settings.setting_categories.label")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(Label, {
44819
  value: get("label"),
44820
  onChange: function onChange(val) {
44821
- return set("label", val);
 
44822
  },
44823
- placeholder: labelPlaceholder ? get("name") + "'s label" : ""
44824
  })));
44825
  }
44826
 
@@ -44854,11 +50083,7 @@ function Options(_ref) {
44854
  },
44855
  get: function get(key) {
44856
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
44857
- return _get(key, button, returnValue ? "button" : false);
44858
- },
44859
- getParent: function getParent(key) {
44860
- var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
44861
- return _get(key, group, returnValue ? "group" : false);
44862
  }
44863
  }, props);
44864
  })(Options));
@@ -46868,7 +52093,7 @@ function IconPickerFrame(_ref) {
46868
  setImportedIcons = _useState4[1];
46869
 
46870
  var iconList = (0,react.useMemo)(function () {
46871
- return keywordSearch(keyword, importedIcons);
46872
  }, [keyword, importedIcons]);
46873
  (0,react.useEffect)(function () {
46874
  importIcons(icon_library, icon_library_version).then(function (result) {
@@ -47066,19 +52291,19 @@ function DemoFrame_defineProperties(target, props) { for (var i = 0; i < props.l
47066
 
47067
  function DemoFrame_createClass(Constructor, protoProps, staticProps) { if (protoProps) DemoFrame_defineProperties(Constructor.prototype, protoProps); if (staticProps) DemoFrame_defineProperties(Constructor, staticProps); return Constructor; }
47068
 
47069
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
47070
 
47071
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
47072
 
47073
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
47074
 
47075
- function _possibleConstructorReturn(self, call) { if (call && (DemoFrame_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
47076
 
47077
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
47078
 
47079
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47080
 
47081
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47082
 
47083
  function DemoFrame_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47084
 
@@ -47104,9 +52329,9 @@ var DemoFrame_styles = function styles(theme) {
47104
  };
47105
 
47106
  var DemoFrame = /*#__PURE__*/function (_React$Component) {
47107
- _inherits(DemoFrame, _React$Component);
47108
 
47109
- var _super = _createSuper(DemoFrame);
47110
 
47111
  function DemoFrame() {
47112
  var _this;
@@ -47119,16 +52344,16 @@ var DemoFrame = /*#__PURE__*/function (_React$Component) {
47119
 
47120
  _this = _super.call.apply(_super, [this].concat(args));
47121
 
47122
- DemoFrame_defineProperty(_assertThisInitialized(_this), "state", {
47123
  ready: false
47124
  });
47125
 
47126
- DemoFrame_defineProperty(_assertThisInitialized(_this), "handleRef", function (ref) {
47127
  _this.contentDocument = ref ? ref.node.contentDocument : null;
47128
  _this.contentWindow = ref ? ref.node.contentWindow : null;
47129
  });
47130
 
47131
- DemoFrame_defineProperty(_assertThisInitialized(_this), "onContentDidMount", function () {
47132
  _this.setState({
47133
  ready: true,
47134
  jss: (0,jss_esm/* create */.Ue)({
@@ -47140,7 +52365,7 @@ var DemoFrame = /*#__PURE__*/function (_React$Component) {
47140
  });
47141
  });
47142
 
47143
- DemoFrame_defineProperty(_assertThisInitialized(_this), "onContentDidUpdate", function () {
47144
  _this.contentDocument.body.dir = _this.props.theme.direction;
47145
  });
47146
 
@@ -47456,7 +52681,7 @@ var calculateChange = function calculateChange(e, hsl, direction, initialA, cont
47456
  ;// CONCATENATED MODULE: ./node_modules/react-color/es/helpers/checkboard.js
47457
  var checkboardCache = {};
47458
 
47459
- var render = function render(c1, c2, size, serverCanvas) {
47460
  if (typeof document === 'undefined' && !serverCanvas) {
47461
  return null;
47462
  }
@@ -47483,7 +52708,7 @@ var get = function get(c1, c2, size, serverCanvas) {
47483
  return checkboardCache[key];
47484
  }
47485
 
47486
- var checkboard = render(c1, c2, size, serverCanvas);
47487
  checkboardCache[key] = checkboard;
47488
  return checkboard;
47489
  };
@@ -47692,7 +52917,7 @@ var getNumberValue = function getNumberValue(value) {
47692
  return Number(String(value).replace(/%/g, ''));
47693
  };
47694
 
47695
- var idCounter = 1;
47696
 
47697
  var EditableInput = function (_ref) {
47698
  EditableInput_inherits(EditableInput, _ref);
@@ -47757,7 +52982,7 @@ var EditableInput = function (_ref) {
47757
  blurValue: String(props.value).toUpperCase()
47758
  };
47759
 
47760
- _this.inputId = 'rc-editable-input-' + idCounter++;
47761
  return _this;
47762
  }
47763
 
@@ -57658,7 +62883,8 @@ var CustomSwatch = (0,reactcss_lib.handleHover)(function (_ref) {
57658
 
57659
  return /*#__PURE__*/react.createElement(Tippy_Tippy, {
57660
  disabled: title == null,
57661
- content: title
 
57662
  }, /*#__PURE__*/react.createElement("div", ColorSwatches_extends({
57663
  style: styles.swatch,
57664
  onContextMenu: handleContextMenu
@@ -58017,8 +63243,8 @@ function ColorPicker(_ref) {
58017
  trashButton = _ref$trashButton === void 0 ? true : _ref$trashButton,
58018
  _ref$noGradient = _ref.noGradient,
58019
  noGradient = _ref$noGradient === void 0 ? false : _ref$noGradient;
58020
- console.log("reloading components");
58021
 
 
58022
  var _useState = (0,react.useState)(null),
58023
  _useState2 = ColorPicker_slicedToArray(_useState, 2),
58024
  currentRef = _useState2[0],
@@ -59311,7 +64537,7 @@ function SliderContainer(_ref) {
59311
 
59312
 
59313
  var handleInputChange = function handleInputChange(event) {
59314
- var val = event.target.value.replace(/^0+/, "");
59315
 
59316
  if (val === "") {
59317
  setSliderValue("");
@@ -59327,12 +64553,7 @@ function SliderContainer(_ref) {
59327
  setSliderValue(min);
59328
  onChange(Number(val));
59329
  return;
59330
- } //* When value == max value:
59331
- else if (val > max) {
59332
- setSliderValue(max);
59333
- onChange(Number(val));
59334
- return;
59335
- }
59336
 
59337
  setSliderValue(val);
59338
  onChange(Number(val));
@@ -59374,13 +64595,6 @@ function SliderContainer(_ref) {
59374
  if (premium) app.showPremiumDialog("More hover settings!");
59375
  },
59376
  placeholder: sliderDisabled ? "".concat(defaultValue) : "",
59377
- onBlur: function onBlur(e) {
59378
- if (e.target.value < min) {
59379
- handleSliderChange(null, min);
59380
- } else if (e.target.value > max) {
59381
- handleSliderChange(null, max);
59382
- }
59383
- },
59384
  endAdornment: inputText ? /*#__PURE__*/react.createElement(InputAdornment_InputAdornment, {
59385
  position: "end"
59386
  }, inputText) : null,
@@ -59388,7 +64602,6 @@ function SliderContainer(_ref) {
59388
  min: min,
59389
  max: max,
59390
  "data-testid": "slider-input",
59391
- type: "number",
59392
  "aria-labelledby": "input-slider"
59393
  }
59394
  }), trashButton ? /*#__PURE__*/react.createElement(IconButton_IconButton, {
@@ -59603,7 +64816,7 @@ function IconGroup(_ref) {
59603
 
59604
  var settings = function settings() {
59605
  var color = get("icon_color");
59606
- var icon = get("icon", true);
59607
  /* webpack-strip-block:removed */
59608
 
59609
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DisableSetting, {
@@ -59706,11 +64919,11 @@ function IconGroup(_ref) {
59706
  get: function get(key) {
59707
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
59708
  var defToGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
59709
- return _get(key, button, returnValue && "button", returnValue && defToGroup ? group : false);
59710
  },
59711
  getParent: function getParent(key) {
59712
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
59713
- return _get(key, group, returnValue ? "group" : false);
59714
  }
59715
  }, props);
59716
  })(IconGroup));
@@ -59826,6 +65039,9 @@ function FontFamily(_ref) {
59826
  app.showPremiumDialog(translate("premium.font_family"));
59827
  }
59828
  }, /*#__PURE__*/react.createElement(Autocomplete_Autocomplete, {
 
 
 
59829
  multiple: true,
59830
  disabled: true,
59831
  size: "medium",
@@ -59987,144 +65203,505 @@ function TextFieldCorners(_ref) {
59987
  }).join(" "));
59988
  };
59989
 
59990
- (0,react.useEffect)(function () {
59991
- var arrayValues;
59992
- if (!value) arrayValues = ["", "", "", ""];else if (typeof value === "number") arrayValues = ["".concat(value), "".concat(value), "".concat(value), "".concat(value)];else arrayValues = value.match(numberPattern) || ["", "", "", ""];
59993
- if (arrayValues.length === 1) arrayValues = [arrayValues[0], arrayValues[0], arrayValues[0], arrayValues[0]];
59994
- setLinked(arrayValues.every(function (val) {
59995
- return val === arrayValues[0];
59996
- }));
59997
- setValues(arrayValues);
59998
- setUnit(value ? value.toString().includes("px") ? "px" : "%" : defaultValue.toString().includes("px") ? "px" : "%");
59999
- }, [value]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60000
 
60001
- var unitButtons = function unitButtons() {
60002
- /* webpack-strip-block:removed */
60003
- return /*#__PURE__*/react.createElement("div", {
60004
- style: {
60005
- transform: "translateY(-10px)",
60006
- textAlign: "center"
60007
- }
60008
- }, /*#__PURE__*/react.createElement(IconButton_IconButton, {
60009
- color: "primary",
60010
- className: classes.iconButton,
60011
- "data-testid": "textfield-corners-pixel",
60012
- disabled: true
60013
- }, "PX"), /*#__PURE__*/react.createElement(IconButton_IconButton, {
60014
- color: "primary",
60015
- className: classes.iconButton,
60016
- "data-testid": "textfield-corners-percent",
60017
- disabled: true
60018
- }, "%"));
60019
- };
60020
 
60021
- return /*#__PURE__*/react.createElement("div", {
60022
- onClick: function onClick() {
60023
- if (disabled) {
60024
- _onClick();
60025
- }
60026
 
60027
- return;
60028
- }
60029
- }, /*#__PURE__*/react.createElement(SettingsContainer, {
60030
- className: className,
60031
- title: title,
60032
- fullWidth: true
60033
- }, values.map(function (val, key) {
60034
- return /*#__PURE__*/react.createElement(TextField_TextField, TextFieldCorners_extends({
60035
- value: val,
60036
- type: "number",
60037
- className: "textfield-corners-input",
60038
- margin: "dense",
60039
- placeholder: !value ? defaultArray[key] : arrayValues[key],
60040
- variant: "outlined",
60041
- disabled: disabled,
60042
- key: key,
60043
- onChange: function onChange(e) {
60044
- return handleChange(key, e.target.value.replace(/^0+(.+)/, "$1"));
60045
- }
60046
- }, arrayProps[key]));
60047
- }), /*#__PURE__*/react.createElement(Button_Button, {
60048
- color: "primary",
60049
- variant: linked ? "contained" : "outlined",
60050
- className: classes.button,
60051
- disabled: disabled || !value,
60052
- "data-testid": "textfield-corners-link",
60053
- onClick: function onClick() {
60054
- setLinked(!linked);
60055
- }
60056
- }, /*#__PURE__*/react.createElement("i", {
60057
- className: "fas fa-link"
60058
- })), unitButtons()));
60059
- }
60060
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/BorderRadius/BorderRadius.js
60061
- function BorderRadius_extends() { BorderRadius_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return BorderRadius_extends.apply(this, arguments); }
60062
 
 
60063
 
 
60064
 
 
60065
 
60066
- function BorderRadius(props) {
60067
- return /*#__PURE__*/react.createElement(TextFieldCorners, BorderRadius_extends({
60068
- title: translate("settings.border_radius.title"),
60069
- type: "corners"
60070
- }, props));
60071
- }
60072
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/LabelVisibility/LabelVisibility.js
60073
 
60074
 
60075
 
60076
 
60077
 
60078
 
60079
- function LabelVisibility(_ref) {
60080
- var _onChange = _ref.onChange,
60081
- value = _ref.value,
60082
  _ref$title = _ref.title,
60083
  title = _ref$title === void 0 ? "" : _ref$title,
60084
- _ref$device = _ref.device,
60085
- device = _ref$device === void 0 ? "" : _ref$device,
60086
- trashButton = _ref.trashButton;
60087
- return /*#__PURE__*/react.createElement(SettingsContainer, {
 
 
 
 
 
 
 
 
 
 
 
 
60088
  title: title
60089
- }, /*#__PURE__*/react.createElement(FormControl_FormControl, {
60090
- variant: "outlined",
60091
- fullWidth: true
60092
- }, /*#__PURE__*/react.createElement(Select_Select, {
60093
- id: "label-visibility",
60094
- value: value || "",
60095
- onChange: function onChange(e) {
60096
- _onChange(e.target.value);
 
 
 
 
 
 
 
 
60097
  },
60098
- className: "MuiSelect-small",
60099
- inputProps: {
60100
- "data-testid": "setting:".concat(device, "-visibility")
 
 
 
 
 
60101
  },
60102
- displayEmpty: true
60103
- }, trashButton && /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
60104
- value: "",
60105
- key: "group-default",
60106
- disabled: true,
60107
- style: {
60108
- display: "none"
60109
- }
60110
- }, translate("settings.label_styles.group_default")), device === "desktop" ? [/*#__PURE__*/react.createElement(MenuItem_MenuItem, {
60111
- value: "always",
60112
- key: "always"
60113
- }, translate("settings.label_styles.always")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
60114
- value: "hover",
60115
- key: "hover"
60116
- }, translate("settings.label_styles.hover")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
60117
- value: "hide",
60118
- key: "hide"
60119
- }, translate("settings.label_styles.hide"))] : [/*#__PURE__*/react.createElement(MenuItem_MenuItem, {
60120
- value: "always",
60121
- key: "always"
60122
- }, translate("settings.label_styles.always")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
60123
- value: "hide",
60124
- key: "hide"
60125
- }, translate("settings.label_styles.hide"))])), trashButton ? /*#__PURE__*/react.createElement(IconButton_IconButton, {
60126
  onClick: function onClick() {
60127
- _onChange("unset");
 
 
 
 
 
 
 
 
60128
  },
60129
  disabled: !value,
60130
  size: "small",
@@ -60136,8 +65713,8 @@ function LabelVisibility(_ref) {
60136
  }, /*#__PURE__*/react.createElement(Icon_Icon, {
60137
  fontSize: "inherit",
60138
  className: "fas fa-trash"
60139
- })) : null);
60140
- }
60141
  ;// CONCATENATED MODULE: ./src/js/dashboard/Pages/Button/Tabs/Styling/LabelGroup.js
60142
  function LabelGroup_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
60143
 
@@ -60179,6 +65756,7 @@ function LabelGroup_objectWithoutPropertiesLoose(source, excluded) { if (source
60179
 
60180
 
60181
 
 
60182
  function _LabelGroup(_ref) {
60183
  var set = _ref.set,
60184
  get = _ref.get,
@@ -60294,6 +65872,16 @@ function _LabelGroup(_ref) {
60294
  return set("show_label_mobile", val);
60295
  },
60296
  trashButton: true
 
 
 
 
 
 
 
 
 
 
60297
  })), /*#__PURE__*/react.createElement(Tabs_Tabs, {
60298
  onChange: function onChange(_, val) {
60299
  return setHoverSettings(val);
@@ -60365,14 +65953,357 @@ function _LabelGroup(_ref) {
60365
  get: function get(key) {
60366
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
60367
  var defToGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
60368
- return _get(key, button, returnValue && "button", returnValue && defToGroup ? group : []);
60369
  },
60370
  getParent: function getParent(key) {
60371
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
60372
- return _get(key, group, returnValue ? "group" : false);
60373
  }
60374
  }, props);
60375
  })(_LabelGroup));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60376
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/UseBackgroundImage/index.js
60377
 
60378
 
@@ -60573,10 +66504,11 @@ function Styling_ButtonGroup_ButtonGroup(_ref) {
60573
  getParent = _ref5$getParent === void 0 ? false : _ref5$getParent,
60574
  _ref5$returnValue = _ref5.returnValue,
60575
  returnValue = _ref5$returnValue === void 0 ? false : _ref5$returnValue,
60576
- options = ButtonGroup_objectWithoutProperties(_ref5, ["getParent", "returnValue"]);
 
 
60577
 
60578
- return _get(key, getParent ? group : button, returnValue && "button", // returnValue && defToGroup ? group : false,
60579
- options);
60580
  },
60581
  disableBorderRadius: group.menu_style === "square" || group.menu_style === "rectangle"
60582
  }, props);
@@ -61050,275 +66982,6 @@ function StartOpened(_ref) {
61050
  checked: opened
61051
  }));
61052
  }
61053
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Grid/Grid.js
61054
-
61055
-
61056
- // A grid component using the following libs as inspiration.
61057
- //
61058
- // For the implementation:
61059
- // - https://getbootstrap.com/docs/4.3/layout/grid/
61060
- // - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css
61061
- // - https://github.com/roylee0704/react-flexbox-grid
61062
- // - https://material.angularjs.org/latest/layout/introduction
61063
- //
61064
- // Follow this flexbox Guide to better understand the underlying model:
61065
- // - https://css-tricks.com/snippets/css/a-guide-to-flexbox/
61066
-
61067
-
61068
-
61069
-
61070
-
61071
- var SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
61072
- var GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
61073
-
61074
- function generateGrid(globalStyles, theme, breakpoint) {
61075
- var styles = {};
61076
- GRID_SIZES.forEach(function (size) {
61077
- var key = "grid-".concat(breakpoint, "-").concat(size);
61078
-
61079
- if (size === true) {
61080
- // For the auto layouting
61081
- styles[key] = {
61082
- flexBasis: 0,
61083
- flexGrow: 1,
61084
- maxWidth: '100%'
61085
- };
61086
- return;
61087
- }
61088
-
61089
- if (size === 'auto') {
61090
- styles[key] = {
61091
- flexBasis: 'auto',
61092
- flexGrow: 0,
61093
- maxWidth: 'none'
61094
- };
61095
- return;
61096
- } // Keep 7 significant numbers.
61097
-
61098
-
61099
- var width = "".concat(Math.round(size / 12 * 10e7) / 10e5, "%"); // Close to the bootstrap implementation:
61100
- // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41
61101
-
61102
- styles[key] = {
61103
- flexBasis: width,
61104
- flexGrow: 0,
61105
- maxWidth: width
61106
- };
61107
- }); // No need for a media query for the first size.
61108
-
61109
- if (breakpoint === 'xs') {
61110
- (0,esm_extends/* default */.Z)(globalStyles, styles);
61111
- } else {
61112
- globalStyles[theme.breakpoints.up(breakpoint)] = styles;
61113
- }
61114
- }
61115
-
61116
- function getOffset(val) {
61117
- var div = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
61118
- var parse = parseFloat(val);
61119
- return "".concat(parse / div).concat(String(val).replace(String(parse), '') || 'px');
61120
- }
61121
-
61122
- function generateGutter(theme, breakpoint) {
61123
- var styles = {};
61124
- SPACINGS.forEach(function (spacing) {
61125
- var themeSpacing = theme.spacing(spacing);
61126
-
61127
- if (themeSpacing === 0) {
61128
- return;
61129
- }
61130
-
61131
- styles["spacing-".concat(breakpoint, "-").concat(spacing)] = {
61132
- margin: "-".concat(getOffset(themeSpacing, 2)),
61133
- width: "calc(100% + ".concat(getOffset(themeSpacing), ")"),
61134
- '& > $item': {
61135
- padding: getOffset(themeSpacing, 2)
61136
- }
61137
- };
61138
- });
61139
- return styles;
61140
- } // Default CSS values
61141
- // flex: '0 1 auto',
61142
- // flexDirection: 'row',
61143
- // alignItems: 'flex-start',
61144
- // flexWrap: 'nowrap',
61145
- // justifyContent: 'flex-start',
61146
-
61147
-
61148
- var Grid_styles = function styles(theme) {
61149
- return (0,esm_extends/* default */.Z)({
61150
- /* Styles applied to the root element. */
61151
- root: {},
61152
-
61153
- /* Styles applied to the root element if `container={true}`. */
61154
- container: {
61155
- boxSizing: 'border-box',
61156
- display: 'flex',
61157
- flexWrap: 'wrap',
61158
- width: '100%'
61159
- },
61160
-
61161
- /* Styles applied to the root element if `item={true}`. */
61162
- item: {
61163
- boxSizing: 'border-box',
61164
- margin: '0' // For instance, it's useful when used with a `figure` element.
61165
-
61166
- },
61167
-
61168
- /* Styles applied to the root element if `zeroMinWidth={true}`. */
61169
- zeroMinWidth: {
61170
- minWidth: 0
61171
- },
61172
-
61173
- /* Styles applied to the root element if `direction="column"`. */
61174
- 'direction-xs-column': {
61175
- flexDirection: 'column'
61176
- },
61177
-
61178
- /* Styles applied to the root element if `direction="column-reverse"`. */
61179
- 'direction-xs-column-reverse': {
61180
- flexDirection: 'column-reverse'
61181
- },
61182
-
61183
- /* Styles applied to the root element if `direction="row-reverse"`. */
61184
- 'direction-xs-row-reverse': {
61185
- flexDirection: 'row-reverse'
61186
- },
61187
-
61188
- /* Styles applied to the root element if `wrap="nowrap"`. */
61189
- 'wrap-xs-nowrap': {
61190
- flexWrap: 'nowrap'
61191
- },
61192
-
61193
- /* Styles applied to the root element if `wrap="reverse"`. */
61194
- 'wrap-xs-wrap-reverse': {
61195
- flexWrap: 'wrap-reverse'
61196
- },
61197
-
61198
- /* Styles applied to the root element if `alignItems="center"`. */
61199
- 'align-items-xs-center': {
61200
- alignItems: 'center'
61201
- },
61202
-
61203
- /* Styles applied to the root element if `alignItems="flex-start"`. */
61204
- 'align-items-xs-flex-start': {
61205
- alignItems: 'flex-start'
61206
- },
61207
-
61208
- /* Styles applied to the root element if `alignItems="flex-end"`. */
61209
- 'align-items-xs-flex-end': {
61210
- alignItems: 'flex-end'
61211
- },
61212
-
61213
- /* Styles applied to the root element if `alignItems="baseline"`. */
61214
- 'align-items-xs-baseline': {
61215
- alignItems: 'baseline'
61216
- },
61217
-
61218
- /* Styles applied to the root element if `alignContent="center"`. */
61219
- 'align-content-xs-center': {
61220
- alignContent: 'center'
61221
- },
61222
-
61223
- /* Styles applied to the root element if `alignContent="flex-start"`. */
61224
- 'align-content-xs-flex-start': {
61225
- alignContent: 'flex-start'
61226
- },
61227
-
61228
- /* Styles applied to the root element if `alignContent="flex-end"`. */
61229
- 'align-content-xs-flex-end': {
61230
- alignContent: 'flex-end'
61231
- },
61232
-
61233
- /* Styles applied to the root element if `alignContent="space-between"`. */
61234
- 'align-content-xs-space-between': {
61235
- alignContent: 'space-between'
61236
- },
61237
-
61238
- /* Styles applied to the root element if `alignContent="space-around"`. */
61239
- 'align-content-xs-space-around': {
61240
- alignContent: 'space-around'
61241
- },
61242
-
61243
- /* Styles applied to the root element if `justify="center"`. */
61244
- 'justify-xs-center': {
61245
- justifyContent: 'center'
61246
- },
61247
-
61248
- /* Styles applied to the root element if `justify="flex-end"`. */
61249
- 'justify-xs-flex-end': {
61250
- justifyContent: 'flex-end'
61251
- },
61252
-
61253
- /* Styles applied to the root element if `justify="space-between"`. */
61254
- 'justify-xs-space-between': {
61255
- justifyContent: 'space-between'
61256
- },
61257
-
61258
- /* Styles applied to the root element if `justify="space-around"`. */
61259
- 'justify-xs-space-around': {
61260
- justifyContent: 'space-around'
61261
- },
61262
-
61263
- /* Styles applied to the root element if `justify="space-evenly"`. */
61264
- 'justify-xs-space-evenly': {
61265
- justifyContent: 'space-evenly'
61266
- }
61267
- }, generateGutter(theme, 'xs'), theme.breakpoints.keys.reduce(function (accumulator, key) {
61268
- // Use side effect over immutability for better performance.
61269
- generateGrid(accumulator, theme, key);
61270
- return accumulator;
61271
- }, {}));
61272
- };
61273
- var Grid = /*#__PURE__*/react.forwardRef(function Grid(props, ref) {
61274
- var _props$alignContent = props.alignContent,
61275
- alignContent = _props$alignContent === void 0 ? 'stretch' : _props$alignContent,
61276
- _props$alignItems = props.alignItems,
61277
- alignItems = _props$alignItems === void 0 ? 'stretch' : _props$alignItems,
61278
- classes = props.classes,
61279
- classNameProp = props.className,
61280
- _props$component = props.component,
61281
- Component = _props$component === void 0 ? 'div' : _props$component,
61282
- _props$container = props.container,
61283
- container = _props$container === void 0 ? false : _props$container,
61284
- _props$direction = props.direction,
61285
- direction = _props$direction === void 0 ? 'row' : _props$direction,
61286
- _props$item = props.item,
61287
- item = _props$item === void 0 ? false : _props$item,
61288
- _props$justify = props.justify,
61289
- justify = _props$justify === void 0 ? 'flex-start' : _props$justify,
61290
- _props$lg = props.lg,
61291
- lg = _props$lg === void 0 ? false : _props$lg,
61292
- _props$md = props.md,
61293
- md = _props$md === void 0 ? false : _props$md,
61294
- _props$sm = props.sm,
61295
- sm = _props$sm === void 0 ? false : _props$sm,
61296
- _props$spacing = props.spacing,
61297
- spacing = _props$spacing === void 0 ? 0 : _props$spacing,
61298
- _props$wrap = props.wrap,
61299
- wrap = _props$wrap === void 0 ? 'wrap' : _props$wrap,
61300
- _props$xl = props.xl,
61301
- xl = _props$xl === void 0 ? false : _props$xl,
61302
- _props$xs = props.xs,
61303
- xs = _props$xs === void 0 ? false : _props$xs,
61304
- _props$zeroMinWidth = props.zeroMinWidth,
61305
- zeroMinWidth = _props$zeroMinWidth === void 0 ? false : _props$zeroMinWidth,
61306
- other = (0,objectWithoutProperties/* default */.Z)(props, ["alignContent", "alignItems", "classes", "className", "component", "container", "direction", "item", "justify", "lg", "md", "sm", "spacing", "wrap", "xl", "xs", "zeroMinWidth"]);
61307
-
61308
- var className = (0,clsx_m/* default */.Z)(classes.root, classNameProp, container && [classes.container, spacing !== 0 && classes["spacing-xs-".concat(String(spacing))]], item && classes.item, zeroMinWidth && classes.zeroMinWidth, direction !== 'row' && classes["direction-xs-".concat(String(direction))], wrap !== 'wrap' && classes["wrap-xs-".concat(String(wrap))], alignItems !== 'stretch' && classes["align-items-xs-".concat(String(alignItems))], alignContent !== 'stretch' && classes["align-content-xs-".concat(String(alignContent))], justify !== 'flex-start' && classes["justify-xs-".concat(String(justify))], xs !== false && classes["grid-xs-".concat(String(xs))], sm !== false && classes["grid-sm-".concat(String(sm))], md !== false && classes["grid-md-".concat(String(md))], lg !== false && classes["grid-lg-".concat(String(lg))], xl !== false && classes["grid-xl-".concat(String(xl))]);
61309
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
61310
- className: className,
61311
- ref: ref
61312
- }, other));
61313
- });
61314
- false ? 0 : void 0;
61315
- var StyledGrid = (0,withStyles/* default */.Z)(Grid_styles, {
61316
- name: 'MuiGrid'
61317
- })(Grid);
61318
-
61319
- if (false) { var requireProp; }
61320
-
61321
- /* harmony default export */ var Grid_Grid = (StyledGrid);
61322
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/Position/Position.js
61323
  function Position_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
61324
 
@@ -61545,7 +67208,7 @@ function Position(_ref) {
61545
  variant: "outlined",
61546
  onChange: function onChange(e) {
61547
  updatePosition({
61548
- value: e.target.value.replace(/^0+(.+)/, "$1")
61549
  });
61550
  },
61551
  onBlur: function onBlur() {
@@ -61555,7 +67218,6 @@ function Position(_ref) {
61555
  },
61556
  size: "small",
61557
  inputProps: {
61558
- type: "number",
61559
  "aria-labelledby": "input-slider",
61560
  "data-testid": "setting:position-".concat(position, "-field")
61561
  },
@@ -61806,7 +67468,6 @@ function Options_Options(_ref) {
61806
  openedGroup = _useState2[0],
61807
  setOpenedGroup = _useState2[1];
61808
 
61809
- var labelPlaceholder = get("menu_style") === "rectangle" || get("menu_style") === "text" || get("menu_style") === "text-icon";
61810
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(CollapsibleGroup, {
61811
  title: translate("settings.setting_categories.general"),
61812
  opened: openedGroup === "general",
@@ -61818,9 +67479,10 @@ function Options_Options(_ref) {
61818
  className: "setting-group-title"
61819
  }, translate("settings.label.title")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(Label, {
61820
  value: get("label"),
61821
- placeholder: labelPlaceholder ? get("name") + "'s label" : "",
61822
  onChange: function onChange(val) {
61823
- return set("label", val);
 
61824
  }
61825
  }), /*#__PURE__*/react.createElement("div", {
61826
  className: "setting-group-title"
@@ -61872,10 +67534,6 @@ function Options_Options(_ref) {
61872
  }, translate("settings.menu_style.title_short")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(MenuStyle, {
61873
  value: get("menu_style", "default"),
61874
  onChange: function onChange(val) {
61875
- if (val === "text" || val === "text-icon") {
61876
- set("border_radius", "10px 10px 10px 10px");
61877
- }
61878
-
61879
  set("menu_style", val);
61880
  }
61881
  }), /*#__PURE__*/react.createElement(OpeningAnimation, {
@@ -61978,7 +67636,8 @@ function ButtonGroupHeader(_ref) {
61978
  }, /*#__PURE__*/react.createElement("div", {
61979
  className: "breadcrumb"
61980
  }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
61981
- content: translate("bar.breadcrumb.tippy_home")
 
61982
  }, /*#__PURE__*/react.createElement(Button_Button, {
61983
  onClick: function onClick() {
61984
  history.push("/");
@@ -62209,7 +67868,7 @@ function _IconGroup(_ref) {
62209
  var group = _groups[groupId];
62210
  return Styling_IconGroup_objectSpread({
62211
  defs: function defs(key) {
62212
- return _defs("group", key, formats.normal_hover.parse(group[key]).map(function (val) {
62213
  return val === "" ? undefined : val;
62214
  }));
62215
  },
@@ -62218,7 +67877,7 @@ function _IconGroup(_ref) {
62218
  },
62219
  get: function get(key) {
62220
  var alwaysValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
62221
- return _get(key, group, alwaysValue ? "group" : false);
62222
  }
62223
  }, ownProps);
62224
  })(_IconGroup));
@@ -62359,7 +68018,7 @@ function Tabs_Styling_ButtonGroup_ButtonGroup(_ref) {
62359
  },
62360
  defs: function defs(key) {
62361
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
62362
- return _defs("group", key, formats.normal_hover.parse(group[key]).map(function (val) {
62363
  return val === "" ? undefined : val;
62364
  }), [], options);
62365
  },
@@ -62368,7 +68027,7 @@ function Tabs_Styling_ButtonGroup_ButtonGroup(_ref) {
62368
  _ref5$returnValue = _ref5.returnValue,
62369
  returnValue = _ref5$returnValue === void 0 ? false : _ref5$returnValue;
62370
 
62371
- return _get(key, group, returnValue ? typeof returnValue === "string" ? returnValue : "group" : false);
62372
  }
62373
  }, ownProps);
62374
  })(Tabs_Styling_ButtonGroup_ButtonGroup));
@@ -62414,11 +68073,13 @@ function Styling_LabelGroup_objectWithoutPropertiesLoose(source, excluded) { if
62414
 
62415
 
62416
 
 
62417
  function LabelGroup_LabelGroup(_ref) {
62418
  var defs = _ref.defs,
62419
  set = _ref.set,
62420
  get = _ref.get,
62421
- groupProps = Styling_LabelGroup_objectWithoutProperties(_ref, ["defs", "set", "get"]);
 
62422
 
62423
  var _useState = (0,react.useState)(0),
62424
  _useState2 = Styling_LabelGroup_slicedToArray(_useState, 2),
@@ -62526,6 +68187,16 @@ function LabelGroup_LabelGroup(_ref) {
62526
  onChange: function onChange(val) {
62527
  return set("show_label_mobile", val);
62528
  }
 
 
 
 
 
 
 
 
 
 
62529
  })), /*#__PURE__*/react.createElement(Tabs_Tabs, {
62530
  onChange: function onChange(_, val) {
62531
  return setHoverSettings(val);
@@ -62589,7 +68260,7 @@ function LabelGroup_LabelGroup(_ref) {
62589
  var group = _groups[groupId];
62590
  return Styling_LabelGroup_objectSpread({
62591
  defs: function defs(key) {
62592
- return _defs("group", key, formats.normal_hover.parse(group[key]).map(function (val) {
62593
  return val === "" ? undefined : val;
62594
  }));
62595
  },
@@ -62598,7 +68269,11 @@ function LabelGroup_LabelGroup(_ref) {
62598
  },
62599
  get: function get(key) {
62600
  var alwaysValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
62601
- return _get(key, group, alwaysValue ? "group" : false);
 
 
 
 
62602
  }
62603
  }, ownProps);
62604
  })(LabelGroup_LabelGroup));
@@ -63373,14 +69048,19 @@ function TimeoutScroll(_ref) {
63373
  variant: "outlined",
63374
  label: translate("settings.timeout_scroll.timeout.milliseconds"),
63375
  helperText: translate("settings.timeout_scroll.timeout.info", "0"),
63376
- type: "number",
63377
  fullWidth: true,
63378
  disabled: true,
63379
  InputProps: {
63380
  "data-testid": "setting:timeout-field",
63381
  endAdornment: /*#__PURE__*/react.createElement(PremiumTag, null)
63382
  }
63383
- }))), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(DisableSetting, {
 
 
 
 
 
 
63384
  onClick: function onClick() {
63385
  openDialogDelay("scroll");
63386
  }
@@ -63404,7 +69084,6 @@ function TimeoutScroll(_ref) {
63404
  }), /*#__PURE__*/react.createElement(TextField_TextField, {
63405
  variant: "outlined",
63406
  label: translate("settings.timeout_scroll.scroll.from_top"),
63407
- type: "number",
63408
  FormHelperTextProps: {
63409
  component: "span"
63410
  },
@@ -63426,36 +69105,13 @@ function TimeoutScroll(_ref) {
63426
  variant: "outlined",
63427
  color: "primary",
63428
  "data-testid": "setting:scroll-px"
63429
- }, "px")))), /*#__PURE__*/react.createElement(DisableSetting, {
63430
- onClick: function onClick() {
63431
- openDialogDelay("scroll");
63432
- }
63433
- }, /*#__PURE__*/react.createElement("div", {
63434
- className: "advanced-scroll-hide"
63435
- }, /*#__PURE__*/react.createElement(SettingsContainer, {
63436
  title: translate("settings.timeout_scroll.scroll.visibility"),
63437
- className: "disabled"
63438
- }, /*#__PURE__*/react.createElement(Tabs_Tabs, {
63439
- value: false,
63440
- indicatorColor: "secondary",
63441
- textColor: "secondary",
63442
- variant: "fullWidth",
63443
- className: "icon-or-image"
63444
- }, /*#__PURE__*/react.createElement(Tab_Tab, {
63445
- disabled: true,
63446
- label: translate("settings.timeout_scroll.scroll.hide"),
63447
- size: "small"
63448
- }), /*#__PURE__*/react.createElement(Tab_Tab, {
63449
- disabled: true,
63450
- label: translate("settings.timeout_scroll.scroll.show"),
63451
- size: "small"
63452
- })))), /*#__PURE__*/react.createElement("span", {
63453
- className: "advanced-scroll-description"
63454
- }, /*#__PURE__*/react.createElement("p", {
63455
- dangerouslySetInnerHTML: {
63456
- __html: translate("settings.timeout_scroll.scroll.info", "0", "%", "SHOW")
63457
- }
63458
- })))));
63459
  }
63460
  };
63461
  return /*#__PURE__*/react.createElement(react.Fragment, null, settings.timeoutScroll());
@@ -64037,92 +69693,6 @@ var Badge = /*#__PURE__*/react.forwardRef(function Badge(props, ref) {
64037
  /* harmony default export */ var Badge_Badge = ((0,withStyles/* default */.Z)(Badge_styles, {
64038
  name: 'MuiBadge'
64039
  })(Badge));
64040
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js
64041
-
64042
-
64043
-
64044
-
64045
-
64046
-
64047
-
64048
-
64049
- var ListItemText_styles = {
64050
- /* Styles applied to the root element. */
64051
- root: {
64052
- flex: '1 1 auto',
64053
- minWidth: 0,
64054
- marginTop: 4,
64055
- marginBottom: 4
64056
- },
64057
-
64058
- /* Styles applied to the `Typography` components if primary and secondary are set. */
64059
- multiline: {
64060
- marginTop: 6,
64061
- marginBottom: 6
64062
- },
64063
-
64064
- /* Styles applied to the `Typography` components if dense. */
64065
- dense: {},
64066
-
64067
- /* Styles applied to the root element if `inset={true}`. */
64068
- inset: {
64069
- paddingLeft: 56
64070
- },
64071
-
64072
- /* Styles applied to the primary `Typography` component. */
64073
- primary: {},
64074
-
64075
- /* Styles applied to the secondary `Typography` component. */
64076
- secondary: {}
64077
- };
64078
- var ListItemText = /*#__PURE__*/react.forwardRef(function ListItemText(props, ref) {
64079
- var children = props.children,
64080
- classes = props.classes,
64081
- className = props.className,
64082
- _props$disableTypogra = props.disableTypography,
64083
- disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
64084
- _props$inset = props.inset,
64085
- inset = _props$inset === void 0 ? false : _props$inset,
64086
- primaryProp = props.primary,
64087
- primaryTypographyProps = props.primaryTypographyProps,
64088
- secondaryProp = props.secondary,
64089
- secondaryTypographyProps = props.secondaryTypographyProps,
64090
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography", "inset", "primary", "primaryTypographyProps", "secondary", "secondaryTypographyProps"]);
64091
-
64092
- var _React$useContext = react.useContext(List_ListContext),
64093
- dense = _React$useContext.dense;
64094
-
64095
- var primary = primaryProp != null ? primaryProp : children;
64096
-
64097
- if (primary != null && primary.type !== Typography_Typography && !disableTypography) {
64098
- primary = /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
64099
- variant: dense ? 'body2' : 'body1',
64100
- className: classes.primary,
64101
- component: "span",
64102
- display: "block"
64103
- }, primaryTypographyProps), primary);
64104
- }
64105
-
64106
- var secondary = secondaryProp;
64107
-
64108
- if (secondary != null && secondary.type !== Typography_Typography && !disableTypography) {
64109
- secondary = /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
64110
- variant: "body2",
64111
- className: classes.secondary,
64112
- color: "textSecondary",
64113
- display: "block"
64114
- }, secondaryTypographyProps), secondary);
64115
- }
64116
-
64117
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
64118
- className: (0,clsx_m/* default */.Z)(classes.root, className, dense && classes.dense, inset && classes.inset, primary && secondary && classes.multiline),
64119
- ref: ref
64120
- }, other), primary, secondary);
64121
- });
64122
- false ? 0 : void 0;
64123
- /* harmony default export */ var ListItemText_ListItemText = ((0,withStyles/* default */.Z)(ListItemText_styles, {
64124
- name: 'MuiListItemText'
64125
- })(ListItemText));
64126
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/EventsButton/EventsButton.js
64127
  function EventsButton_slicedToArray(arr, i) { return EventsButton_arrayWithHoles(arr) || EventsButton_iterableToArrayLimit(arr, i) || EventsButton_unsupportedIterableToArray(arr, i) || EventsButton_nonIterableRest(); }
64128
 
@@ -64999,7 +70569,7 @@ var Slide = /*#__PURE__*/react.forwardRef(function Slide(props, ref) {
64999
  return undefined;
65000
  }
65001
 
65002
- var handleResize = (0,debounce/* default */.Z)(function () {
65003
  if (childrenRef.current) {
65004
  setTranslateValue(direction, childrenRef.current);
65005
  }
@@ -66943,17 +72513,17 @@ var forwardRefShim = function forwardRefShim(C) {
66943
  return C;
66944
  };
66945
 
66946
- var forwardRef = react.forwardRef;
66947
 
66948
- if (typeof forwardRef === "undefined") {
66949
- forwardRef = forwardRefShim;
66950
  }
66951
 
66952
  function isModifiedEvent(event) {
66953
  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
66954
  }
66955
 
66956
- var LinkAnchor = forwardRef(function (_ref, forwardedRef) {
66957
  var innerRef = _ref.innerRef,
66958
  navigate = _ref.navigate,
66959
  _onClick = _ref.onClick,
@@ -66982,7 +72552,7 @@ var LinkAnchor = forwardRef(function (_ref, forwardedRef) {
66982
  }); // React 15 compat
66983
 
66984
 
66985
- if (forwardRefShim !== forwardRef) {
66986
  props.ref = forwardedRef || innerRef;
66987
  } else {
66988
  props.ref = innerRef;
@@ -66999,7 +72569,7 @@ if (false) {}
66999
  */
67000
 
67001
 
67002
- var react_router_dom_Link = forwardRef(function (_ref2, forwardedRef) {
67003
  var _ref2$component = _ref2.component,
67004
  component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,
67005
  replace = _ref2.replace,
@@ -67023,7 +72593,7 @@ var react_router_dom_Link = forwardRef(function (_ref2, forwardedRef) {
67023
  }); // React 15 compat
67024
 
67025
 
67026
- if (forwardRefShim !== forwardRef) {
67027
  props.ref = forwardedRef || innerRef;
67028
  } else {
67029
  props.innerRef = innerRef;
@@ -67316,9 +72886,9 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67316
  }
67317
  }, false);
67318
  }
67319
- /**
67320
- * Buttonizer
67321
- * @returns {*}
67322
  */
67323
 
67324
  }, {
@@ -67420,9 +72990,9 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67420
  fontAwesome.setAttribute("crossorigin", "anonymous");
67421
  document.getElementsByTagName("head")[0].appendChild(fontAwesome);
67422
  }
67423
- /**
67424
- * Does this user have premium?
67425
- * @returns {boolean|*}
67426
  */
67427
 
67428
  }, {
@@ -67431,10 +73001,10 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67431
  if (window.free === true) return false;
67432
  return this.props._premium; // return false;
67433
  }
67434
- /**
67435
- * Does this user have any changes?
67436
- *
67437
- * @returns {boolean}
67438
  */
67439
 
67440
  }, {
@@ -67442,11 +73012,11 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67442
  value: function hasChanges() {
67443
  return this.props.hasChanges;
67444
  }
67445
- /**
67446
- * Update if the user has any changes
67447
- *
67448
- * @param status
67449
- * @returns {boolean}
67450
  */
67451
 
67452
  }, {
@@ -67456,9 +73026,9 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67456
  dashboard_store.dispatch(changeHasChanges(status));
67457
  return status;
67458
  }
67459
- /**
67460
- * Buttonizer fully loaded?
67461
- * @returns {boolean}
67462
  */
67463
 
67464
  }, {
@@ -67466,9 +73036,9 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67466
  value: function isLoaded() {
67467
  return this.props.loading.loaded;
67468
  }
67469
- /**
67470
- * Return button saver (discontinued)
67471
- * @returns {ButtonSaver}
67472
  */
67473
 
67474
  }, {
@@ -67502,9 +73072,9 @@ var App_App = /*#__PURE__*/function (_React$Component) {
67502
  }
67503
  });
67504
  }
67505
- /**
67506
- * Open a page on the dashboard when clicking on a button/group
67507
- * @param {*} action
67508
  */
67509
 
67510
  }, {
@@ -71651,54 +77221,54 @@ var ErrorBoundary_ErrorBoundary = /*#__PURE__*/function (_React$Component) {
71651
  });
71652
  return null; // Future: custom crash report window, requires manual API calls to sentry
71653
 
71654
- /*return (
71655
- <Dialog
71656
- open={true}
71657
- maxWidth={"sm"}
71658
- fullWidth={true}
71659
- aria-labelledby="max-width-dialog-title"
71660
- >
71661
- <DialogTitle id="max-width-dialog-title">
71662
- Buttonizer has crashed!
71663
- </DialogTitle>
71664
- <DialogContent>
71665
- <DialogContentText>
71666
- Buttonizer has crashed. Our development team has been notified. If
71667
- you'd like to help, tell us what happened below.
71668
- </DialogContentText>
71669
- <Divider />
71670
- <form noValidate>
71671
- <TextField
71672
- placeholder="Thomas Anderson"
71673
- variant="outlined"
71674
- label="Name"
71675
- />
71676
- <TextField
71677
- placeholder="neo@example.com"
71678
- variant="outlined"
71679
- label="Email"
71680
- />
71681
- <TextField
71682
- multiline
71683
- placeholder="I clicked on 'X', added a button, then hit 'Confirm'"
71684
- variant="outlined"
71685
- rows="4"
71686
- rowsMax="6"
71687
- label="What happened?"
71688
- />
71689
- </form>
71690
- </DialogContent>
71691
- <DialogActions>
71692
- <Button
71693
- href="https://community.buttonizer.pro/"
71694
- color="secondary"
71695
- variant="contained"
71696
- target="_blank"
71697
- >
71698
- Submit
71699
- </Button>
71700
- </DialogActions>
71701
- </Dialog>
71702
  );*/
71703
  }
71704
 
@@ -71894,79 +77464,233 @@ document.body.classList.add("buttonizer-initialized");
71894
 
71895
  /***/ }),
71896
 
71897
- /***/ 59528:
71898
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
71899
 
71900
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
 
 
 
 
 
 
 
 
71901
 
71902
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
71903
 
71904
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
 
71905
 
71906
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
71907
 
71908
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
71909
 
71910
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
71911
 
71912
- /* global module, require */
71913
- var defaults = __webpack_require__(46314);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71914
 
71915
- var merge = __webpack_require__(82492);
71916
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71917
  module.exports = {
71918
- frontend: {
71919
- styling: {
71920
- get button() {
71921
- return merge({}, defaults.styling.button);
71922
- },
 
 
 
 
 
 
 
71923
 
71924
- get group() {
71925
- return merge({}, defaults.styling.button, defaults.styling.group);
71926
- }
71927
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71928
  },
71929
- data: {
71930
- get button() {
71931
- return merge({}, defaults.data.button);
71932
- },
71933
 
71934
- get icon() {
71935
- return merge({}, defaults.data.icon);
71936
- },
 
 
71937
 
71938
- get group() {
71939
- return merge({}, defaults.data.button, defaults.data.group);
71940
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71941
 
71942
- get menu_button() {
71943
- return merge({}, defaults.data.group);
71944
- },
71945
 
71946
- get edit_button() {
71947
- return merge({}, defaults.data.edit_button);
71948
- }
71949
 
71950
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71951
  },
71952
- dashboard: {
71953
- get button() {
71954
- return merge({}, defaults.data.button, defaults.styling.button);
 
 
 
 
 
 
 
 
 
71955
  },
71956
 
71957
  get group() {
71958
- return merge({}, defaults.data.group, defaults.styling.button, defaults.styling.group);
 
 
71959
  },
71960
 
71961
- get formatted() {
71962
- return Object.entries(merge({}, defaults.data.group, defaults.data.button, defaults.styling.button, defaults.styling.group)).filter(function (entry) {
71963
- return Array.isArray(entry[1]);
71964
- }).map(function (_ref) {
71965
- var _ref2 = _slicedToArray(_ref, 1),
71966
- key = _ref2[0];
 
 
 
71967
 
71968
- return key;
71969
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71970
  }
71971
 
71972
  }
@@ -71974,6 +77698,80 @@ module.exports = {
71974
 
71975
  /***/ }),
71976
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71977
  /***/ 76124:
71978
  /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
71979
 
@@ -95322,9699 +101120,21457 @@ var nodeIsSet = nodeUtil && nodeUtil.isSet;
95322
  * @memberOf _
95323
  * @since 4.3.0
95324
  * @category Lang
95325
- * @param {*} value The value to check.
95326
- * @returns {boolean} Returns `true` if `value` is a set, else `false`.
95327
- * @example
95328
- *
95329
- * _.isSet(new Set);
95330
- * // => true
95331
- *
95332
- * _.isSet(new WeakSet);
95333
- * // => false
95334
- */
95335
- var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
95336
-
95337
- module.exports = isSet;
95338
-
95339
-
95340
- /***/ }),
95341
-
95342
- /***/ 47037:
95343
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95344
-
95345
- var baseGetTag = __webpack_require__(44239),
95346
- isArray = __webpack_require__(1469),
95347
- isObjectLike = __webpack_require__(37005);
95348
-
95349
- /** `Object#toString` result references. */
95350
- var stringTag = '[object String]';
95351
-
95352
- /**
95353
- * Checks if `value` is classified as a `String` primitive or object.
95354
- *
95355
- * @static
95356
- * @since 0.1.0
95357
- * @memberOf _
95358
- * @category Lang
95359
- * @param {*} value The value to check.
95360
- * @returns {boolean} Returns `true` if `value` is a string, else `false`.
95361
- * @example
95362
- *
95363
- * _.isString('abc');
95364
- * // => true
95365
- *
95366
- * _.isString(1);
95367
- * // => false
95368
- */
95369
- function isString(value) {
95370
- return typeof value == 'string' ||
95371
- (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
95372
- }
95373
-
95374
- module.exports = isString;
95375
-
95376
-
95377
- /***/ }),
95378
-
95379
- /***/ 33448:
95380
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95381
-
95382
- var baseGetTag = __webpack_require__(44239),
95383
- isObjectLike = __webpack_require__(37005);
95384
-
95385
- /** `Object#toString` result references. */
95386
- var symbolTag = '[object Symbol]';
95387
-
95388
- /**
95389
- * Checks if `value` is classified as a `Symbol` primitive or object.
95390
- *
95391
- * @static
95392
- * @memberOf _
95393
- * @since 4.0.0
95394
- * @category Lang
95395
- * @param {*} value The value to check.
95396
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
95397
- * @example
95398
- *
95399
- * _.isSymbol(Symbol.iterator);
95400
- * // => true
95401
- *
95402
- * _.isSymbol('abc');
95403
- * // => false
95404
- */
95405
- function isSymbol(value) {
95406
- return typeof value == 'symbol' ||
95407
- (isObjectLike(value) && baseGetTag(value) == symbolTag);
95408
- }
95409
-
95410
- module.exports = isSymbol;
95411
-
95412
-
95413
- /***/ }),
95414
-
95415
- /***/ 36719:
95416
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95417
-
95418
- var baseIsTypedArray = __webpack_require__(38749),
95419
- baseUnary = __webpack_require__(7518),
95420
- nodeUtil = __webpack_require__(31167);
95421
-
95422
- /* Node.js helper references. */
95423
- var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
95424
-
95425
- /**
95426
- * Checks if `value` is classified as a typed array.
95427
- *
95428
- * @static
95429
- * @memberOf _
95430
- * @since 3.0.0
95431
- * @category Lang
95432
- * @param {*} value The value to check.
95433
- * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
95434
- * @example
95435
- *
95436
- * _.isTypedArray(new Uint8Array);
95437
- * // => true
95438
- *
95439
- * _.isTypedArray([]);
95440
- * // => false
95441
- */
95442
- var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
95443
-
95444
- module.exports = isTypedArray;
95445
-
95446
-
95447
- /***/ }),
95448
-
95449
- /***/ 3674:
95450
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95451
-
95452
- var arrayLikeKeys = __webpack_require__(14636),
95453
- baseKeys = __webpack_require__(280),
95454
- isArrayLike = __webpack_require__(98612);
95455
-
95456
- /**
95457
- * Creates an array of the own enumerable property names of `object`.
95458
- *
95459
- * **Note:** Non-object values are coerced to objects. See the
95460
- * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
95461
- * for more details.
95462
- *
95463
- * @static
95464
- * @since 0.1.0
95465
- * @memberOf _
95466
- * @category Object
95467
- * @param {Object} object The object to query.
95468
- * @returns {Array} Returns the array of property names.
95469
- * @example
95470
- *
95471
- * function Foo() {
95472
- * this.a = 1;
95473
- * this.b = 2;
95474
- * }
95475
- *
95476
- * Foo.prototype.c = 3;
95477
- *
95478
- * _.keys(new Foo);
95479
- * // => ['a', 'b'] (iteration order is not guaranteed)
95480
- *
95481
- * _.keys('hi');
95482
- * // => ['0', '1']
95483
- */
95484
- function keys(object) {
95485
- return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
95486
- }
95487
-
95488
- module.exports = keys;
95489
-
95490
-
95491
- /***/ }),
95492
-
95493
- /***/ 81704:
95494
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95495
-
95496
- var arrayLikeKeys = __webpack_require__(14636),
95497
- baseKeysIn = __webpack_require__(10313),
95498
- isArrayLike = __webpack_require__(98612);
95499
-
95500
- /**
95501
- * Creates an array of the own and inherited enumerable property names of `object`.
95502
- *
95503
- * **Note:** Non-object values are coerced to objects.
95504
- *
95505
- * @static
95506
- * @memberOf _
95507
- * @since 3.0.0
95508
- * @category Object
95509
- * @param {Object} object The object to query.
95510
- * @returns {Array} Returns the array of property names.
95511
- * @example
95512
- *
95513
- * function Foo() {
95514
- * this.a = 1;
95515
- * this.b = 2;
95516
- * }
95517
- *
95518
- * Foo.prototype.c = 3;
95519
- *
95520
- * _.keysIn(new Foo);
95521
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
95522
- */
95523
- function keysIn(object) {
95524
- return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
95525
- }
95526
-
95527
- module.exports = keysIn;
95528
-
95529
-
95530
- /***/ }),
95531
-
95532
- /***/ 35161:
95533
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95534
-
95535
- var arrayMap = __webpack_require__(29932),
95536
- baseIteratee = __webpack_require__(67206),
95537
- baseMap = __webpack_require__(69199),
95538
- isArray = __webpack_require__(1469);
95539
-
95540
- /**
95541
- * Creates an array of values by running each element in `collection` thru
95542
- * `iteratee`. The iteratee is invoked with three arguments:
95543
- * (value, index|key, collection).
95544
- *
95545
- * Many lodash methods are guarded to work as iteratees for methods like
95546
- * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
95547
- *
95548
- * The guarded methods are:
95549
- * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
95550
- * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
95551
- * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
95552
- * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
95553
- *
95554
- * @static
95555
- * @memberOf _
95556
- * @since 0.1.0
95557
- * @category Collection
95558
- * @param {Array|Object} collection The collection to iterate over.
95559
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
95560
- * @returns {Array} Returns the new mapped array.
95561
- * @example
95562
- *
95563
- * function square(n) {
95564
- * return n * n;
95565
- * }
95566
- *
95567
- * _.map([4, 8], square);
95568
- * // => [16, 64]
95569
- *
95570
- * _.map({ 'a': 4, 'b': 8 }, square);
95571
- * // => [16, 64] (iteration order is not guaranteed)
95572
- *
95573
- * var users = [
95574
- * { 'user': 'barney' },
95575
- * { 'user': 'fred' }
95576
- * ];
95577
- *
95578
- * // The `_.property` iteratee shorthand.
95579
- * _.map(users, 'user');
95580
- * // => ['barney', 'fred']
95581
- */
95582
- function map(collection, iteratee) {
95583
- var func = isArray(collection) ? arrayMap : baseMap;
95584
- return func(collection, baseIteratee(iteratee, 3));
95585
- }
95586
-
95587
- module.exports = map;
95588
-
95589
-
95590
- /***/ }),
95591
-
95592
- /***/ 88306:
95593
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95594
-
95595
- var MapCache = __webpack_require__(83369);
95596
-
95597
- /** Error message constants. */
95598
- var FUNC_ERROR_TEXT = 'Expected a function';
95599
-
95600
- /**
95601
- * Creates a function that memoizes the result of `func`. If `resolver` is
95602
- * provided, it determines the cache key for storing the result based on the
95603
- * arguments provided to the memoized function. By default, the first argument
95604
- * provided to the memoized function is used as the map cache key. The `func`
95605
- * is invoked with the `this` binding of the memoized function.
95606
- *
95607
- * **Note:** The cache is exposed as the `cache` property on the memoized
95608
- * function. Its creation may be customized by replacing the `_.memoize.Cache`
95609
- * constructor with one whose instances implement the
95610
- * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
95611
- * method interface of `clear`, `delete`, `get`, `has`, and `set`.
95612
- *
95613
- * @static
95614
- * @memberOf _
95615
- * @since 0.1.0
95616
- * @category Function
95617
- * @param {Function} func The function to have its output memoized.
95618
- * @param {Function} [resolver] The function to resolve the cache key.
95619
- * @returns {Function} Returns the new memoized function.
95620
- * @example
95621
- *
95622
- * var object = { 'a': 1, 'b': 2 };
95623
- * var other = { 'c': 3, 'd': 4 };
95624
- *
95625
- * var values = _.memoize(_.values);
95626
- * values(object);
95627
- * // => [1, 2]
95628
- *
95629
- * values(other);
95630
- * // => [3, 4]
95631
- *
95632
- * object.a = 2;
95633
- * values(object);
95634
- * // => [1, 2]
95635
- *
95636
- * // Modify the result cache.
95637
- * values.cache.set(object, ['a', 'b']);
95638
- * values(object);
95639
- * // => ['a', 'b']
95640
- *
95641
- * // Replace `_.memoize.Cache`.
95642
- * _.memoize.Cache = WeakMap;
95643
- */
95644
- function memoize(func, resolver) {
95645
- if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
95646
- throw new TypeError(FUNC_ERROR_TEXT);
95647
- }
95648
- var memoized = function() {
95649
- var args = arguments,
95650
- key = resolver ? resolver.apply(this, args) : args[0],
95651
- cache = memoized.cache;
95652
-
95653
- if (cache.has(key)) {
95654
- return cache.get(key);
95655
- }
95656
- var result = func.apply(this, args);
95657
- memoized.cache = cache.set(key, result) || cache;
95658
- return result;
95659
- };
95660
- memoized.cache = new (memoize.Cache || MapCache);
95661
- return memoized;
95662
- }
95663
-
95664
- // Expose `MapCache`.
95665
- memoize.Cache = MapCache;
95666
-
95667
- module.exports = memoize;
95668
-
95669
-
95670
- /***/ }),
95671
-
95672
- /***/ 82492:
95673
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95674
-
95675
- var baseMerge = __webpack_require__(42980),
95676
- createAssigner = __webpack_require__(21463);
95677
-
95678
- /**
95679
- * This method is like `_.assign` except that it recursively merges own and
95680
- * inherited enumerable string keyed properties of source objects into the
95681
- * destination object. Source properties that resolve to `undefined` are
95682
- * skipped if a destination value exists. Array and plain object properties
95683
- * are merged recursively. Other objects and value types are overridden by
95684
- * assignment. Source objects are applied from left to right. Subsequent
95685
- * sources overwrite property assignments of previous sources.
95686
- *
95687
- * **Note:** This method mutates `object`.
95688
- *
95689
- * @static
95690
- * @memberOf _
95691
- * @since 0.5.0
95692
- * @category Object
95693
- * @param {Object} object The destination object.
95694
- * @param {...Object} [sources] The source objects.
95695
- * @returns {Object} Returns `object`.
95696
- * @example
95697
- *
95698
- * var object = {
95699
- * 'a': [{ 'b': 2 }, { 'd': 4 }]
95700
- * };
95701
- *
95702
- * var other = {
95703
- * 'a': [{ 'c': 3 }, { 'e': 5 }]
95704
- * };
95705
- *
95706
- * _.merge(object, other);
95707
- * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
95708
- */
95709
- var merge = createAssigner(function(object, source, srcIndex) {
95710
- baseMerge(object, source, srcIndex);
95711
- });
95712
-
95713
- module.exports = merge;
95714
-
95715
-
95716
- /***/ }),
95717
-
95718
- /***/ 7771:
95719
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95720
-
95721
- var root = __webpack_require__(55639);
95722
-
95723
- /**
95724
- * Gets the timestamp of the number of milliseconds that have elapsed since
95725
- * the Unix epoch (1 January 1970 00:00:00 UTC).
95726
- *
95727
- * @static
95728
- * @memberOf _
95729
- * @since 2.4.0
95730
- * @category Date
95731
- * @returns {number} Returns the timestamp.
95732
- * @example
95733
- *
95734
- * _.defer(function(stamp) {
95735
- * console.log(_.now() - stamp);
95736
- * }, _.now());
95737
- * // => Logs the number of milliseconds it took for the deferred invocation.
95738
- */
95739
- var now = function() {
95740
- return root.Date.now();
95741
- };
95742
-
95743
- module.exports = now;
95744
-
95745
-
95746
- /***/ }),
95747
-
95748
- /***/ 39601:
95749
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95750
-
95751
- var baseProperty = __webpack_require__(40371),
95752
- basePropertyDeep = __webpack_require__(79152),
95753
- isKey = __webpack_require__(15403),
95754
- toKey = __webpack_require__(40327);
95755
-
95756
- /**
95757
- * Creates a function that returns the value at `path` of a given object.
95758
- *
95759
- * @static
95760
- * @memberOf _
95761
- * @since 2.4.0
95762
- * @category Util
95763
- * @param {Array|string} path The path of the property to get.
95764
- * @returns {Function} Returns the new accessor function.
95765
- * @example
95766
- *
95767
- * var objects = [
95768
- * { 'a': { 'b': 2 } },
95769
- * { 'a': { 'b': 1 } }
95770
- * ];
95771
- *
95772
- * _.map(objects, _.property('a.b'));
95773
- * // => [2, 1]
95774
- *
95775
- * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
95776
- * // => [1, 2]
95777
- */
95778
- function property(path) {
95779
- return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
95780
- }
95781
-
95782
- module.exports = property;
95783
-
95784
-
95785
- /***/ }),
95786
-
95787
- /***/ 70479:
95788
- /***/ (function(module) {
95789
-
95790
- /**
95791
- * This method returns a new empty array.
95792
- *
95793
- * @static
95794
- * @memberOf _
95795
- * @since 4.13.0
95796
- * @category Util
95797
- * @returns {Array} Returns the new empty array.
95798
  * @example
95799
  *
95800
- * var arrays = _.times(2, _.stubArray);
95801
- *
95802
- * console.log(arrays);
95803
- * // => [[], []]
95804
  *
95805
- * console.log(arrays[0] === arrays[1]);
95806
  * // => false
95807
  */
95808
- function stubArray() {
95809
- return [];
95810
- }
95811
 
95812
- module.exports = stubArray;
95813
 
95814
 
95815
  /***/ }),
95816
 
95817
- /***/ 95062:
95818
- /***/ (function(module) {
 
 
 
 
 
 
 
95819
 
95820
  /**
95821
- * This method returns `false`.
95822
  *
95823
  * @static
 
95824
  * @memberOf _
95825
- * @since 4.13.0
95826
- * @category Util
95827
- * @returns {boolean} Returns `false`.
95828
  * @example
95829
  *
95830
- * _.times(2, _.stubFalse);
95831
- * // => [false, false]
 
 
 
95832
  */
95833
- function stubFalse() {
95834
- return false;
 
95835
  }
95836
 
95837
- module.exports = stubFalse;
95838
 
95839
 
95840
  /***/ }),
95841
 
95842
- /***/ 23493:
95843
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95844
 
95845
- var debounce = __webpack_require__(23279),
95846
- isObject = __webpack_require__(13218);
95847
 
95848
- /** Error message constants. */
95849
- var FUNC_ERROR_TEXT = 'Expected a function';
95850
 
95851
  /**
95852
- * Creates a throttled function that only invokes `func` at most once per
95853
- * every `wait` milliseconds. The throttled function comes with a `cancel`
95854
- * method to cancel delayed `func` invocations and a `flush` method to
95855
- * immediately invoke them. Provide `options` to indicate whether `func`
95856
- * should be invoked on the leading and/or trailing edge of the `wait`
95857
- * timeout. The `func` is invoked with the last arguments provided to the
95858
- * throttled function. Subsequent calls to the throttled function return the
95859
- * result of the last `func` invocation.
95860
- *
95861
- * **Note:** If `leading` and `trailing` options are `true`, `func` is
95862
- * invoked on the trailing edge of the timeout only if the throttled function
95863
- * is invoked more than once during the `wait` timeout.
95864
- *
95865
- * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
95866
- * until to the next tick, similar to `setTimeout` with a timeout of `0`.
95867
- *
95868
- * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
95869
- * for details over the differences between `_.throttle` and `_.debounce`.
95870
  *
95871
  * @static
95872
  * @memberOf _
95873
- * @since 0.1.0
95874
- * @category Function
95875
- * @param {Function} func The function to throttle.
95876
- * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
95877
- * @param {Object} [options={}] The options object.
95878
- * @param {boolean} [options.leading=true]
95879
- * Specify invoking on the leading edge of the timeout.
95880
- * @param {boolean} [options.trailing=true]
95881
- * Specify invoking on the trailing edge of the timeout.
95882
- * @returns {Function} Returns the new throttled function.
95883
  * @example
95884
  *
95885
- * // Avoid excessively updating the position while scrolling.
95886
- * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
95887
- *
95888
- * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
95889
- * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
95890
- * jQuery(element).on('click', throttled);
95891
  *
95892
- * // Cancel the trailing throttled invocation.
95893
- * jQuery(window).on('popstate', throttled.cancel);
95894
  */
95895
- function throttle(func, wait, options) {
95896
- var leading = true,
95897
- trailing = true;
95898
-
95899
- if (typeof func != 'function') {
95900
- throw new TypeError(FUNC_ERROR_TEXT);
95901
- }
95902
- if (isObject(options)) {
95903
- leading = 'leading' in options ? !!options.leading : leading;
95904
- trailing = 'trailing' in options ? !!options.trailing : trailing;
95905
- }
95906
- return debounce(func, wait, {
95907
- 'leading': leading,
95908
- 'maxWait': wait,
95909
- 'trailing': trailing
95910
- });
95911
  }
95912
 
95913
- module.exports = throttle;
95914
 
95915
 
95916
  /***/ }),
95917
 
95918
- /***/ 14841:
95919
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95920
 
95921
- var baseTrim = __webpack_require__(27561),
95922
- isObject = __webpack_require__(13218),
95923
- isSymbol = __webpack_require__(33448);
95924
-
95925
- /** Used as references for various `Number` constants. */
95926
- var NAN = 0 / 0;
95927
-
95928
- /** Used to detect bad signed hexadecimal string values. */
95929
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
95930
-
95931
- /** Used to detect binary string values. */
95932
- var reIsBinary = /^0b[01]+$/i;
95933
-
95934
- /** Used to detect octal string values. */
95935
- var reIsOctal = /^0o[0-7]+$/i;
95936
 
95937
- /** Built-in method references without a dependency on `root`. */
95938
- var freeParseInt = parseInt;
95939
 
95940
  /**
95941
- * Converts `value` to a number.
95942
  *
95943
  * @static
95944
  * @memberOf _
95945
- * @since 4.0.0
95946
  * @category Lang
95947
- * @param {*} value The value to process.
95948
- * @returns {number} Returns the number.
95949
  * @example
95950
  *
95951
- * _.toNumber(3.2);
95952
- * // => 3.2
95953
- *
95954
- * _.toNumber(Number.MIN_VALUE);
95955
- * // => 5e-324
95956
- *
95957
- * _.toNumber(Infinity);
95958
- * // => Infinity
95959
  *
95960
- * _.toNumber('3.2');
95961
- * // => 3.2
95962
  */
95963
- function toNumber(value) {
95964
- if (typeof value == 'number') {
95965
- return value;
95966
- }
95967
- if (isSymbol(value)) {
95968
- return NAN;
95969
- }
95970
- if (isObject(value)) {
95971
- var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
95972
- value = isObject(other) ? (other + '') : other;
95973
- }
95974
- if (typeof value != 'string') {
95975
- return value === 0 ? value : +value;
95976
- }
95977
- value = baseTrim(value);
95978
- var isBinary = reIsBinary.test(value);
95979
- return (isBinary || reIsOctal.test(value))
95980
- ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
95981
- : (reIsBadHex.test(value) ? NAN : +value);
95982
- }
95983
 
95984
- module.exports = toNumber;
95985
 
95986
 
95987
  /***/ }),
95988
 
95989
- /***/ 59881:
95990
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
95991
 
95992
- var copyObject = __webpack_require__(98363),
95993
- keysIn = __webpack_require__(81704);
 
95994
 
95995
  /**
95996
- * Converts `value` to a plain object flattening inherited enumerable string
95997
- * keyed properties of `value` to own properties of the plain object.
 
 
 
95998
  *
95999
  * @static
 
96000
  * @memberOf _
96001
- * @since 3.0.0
96002
- * @category Lang
96003
- * @param {*} value The value to convert.
96004
- * @returns {Object} Returns the converted plain object.
96005
  * @example
96006
  *
96007
  * function Foo() {
 
96008
  * this.b = 2;
96009
  * }
96010
  *
96011
  * Foo.prototype.c = 3;
96012
  *
96013
- * _.assign({ 'a': 1 }, new Foo);
96014
- * // => { 'a': 1, 'b': 2 }
96015
  *
96016
- * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
96017
- * // => { 'a': 1, 'b': 2, 'c': 3 }
96018
  */
96019
- function toPlainObject(value) {
96020
- return copyObject(value, keysIn(value));
96021
  }
96022
 
96023
- module.exports = toPlainObject;
96024
 
96025
 
96026
  /***/ }),
96027
 
96028
- /***/ 79833:
96029
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
96030
 
96031
- var baseToString = __webpack_require__(80531);
 
 
96032
 
96033
  /**
96034
- * Converts `value` to a string. An empty string is returned for `null`
96035
- * and `undefined` values. The sign of `-0` is preserved.
 
96036
  *
96037
  * @static
96038
  * @memberOf _
96039
- * @since 4.0.0
96040
- * @category Lang
96041
- * @param {*} value The value to convert.
96042
- * @returns {string} Returns the converted string.
96043
  * @example
96044
  *
96045
- * _.toString(null);
96046
- * // => ''
 
 
96047
  *
96048
- * _.toString(-0);
96049
- * // => '-0'
96050
  *
96051
- * _.toString([1, 2, 3]);
96052
- * // => '1,2,3'
96053
  */
96054
- function toString(value) {
96055
- return value == null ? '' : baseToString(value);
96056
  }
96057
 
96058
- module.exports = toString;
96059
 
96060
 
96061
  /***/ }),
96062
 
96063
- /***/ 27418:
96064
- /***/ (function(module) {
96065
 
96066
- "use strict";
96067
- /*
96068
- object-assign
96069
- (c) Sindre Sorhus
96070
- @license MIT
96071
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96072
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96073
 
96074
- /* eslint-disable no-unused-vars */
96075
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
96076
- var hasOwnProperty = Object.prototype.hasOwnProperty;
96077
- var propIsEnumerable = Object.prototype.propertyIsEnumerable;
 
 
96078
 
96079
- function toObject(val) {
96080
- if (val === null || val === undefined) {
96081
- throw new TypeError('Object.assign cannot be called with null or undefined');
96082
- }
96083
 
96084
- return Object(val);
96085
- }
96086
 
96087
- function shouldUseNative() {
96088
- try {
96089
- if (!Object.assign) {
96090
- return false;
96091
- }
96092
 
96093
- // Detect buggy property enumeration order in older V8 versions.
 
96094
 
96095
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
96096
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
96097
- test1[5] = 'de';
96098
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
96099
- return false;
96100
- }
 
 
 
 
 
96101
 
96102
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
96103
- var test2 = {};
96104
- for (var i = 0; i < 10; i++) {
96105
- test2['_' + String.fromCharCode(i)] = i;
96106
- }
96107
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
96108
- return test2[n];
96109
- });
96110
- if (order2.join('') !== '0123456789') {
96111
- return false;
96112
- }
96113
 
96114
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
96115
- var test3 = {};
96116
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
96117
- test3[letter] = letter;
96118
- });
96119
- if (Object.keys(Object.assign({}, test3)).join('') !==
96120
- 'abcdefghijklmnopqrst') {
96121
- return false;
96122
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96123
 
96124
- return true;
96125
- } catch (err) {
96126
- // We don't expect any of the above to throw, but better to be safe.
96127
- return false;
96128
- }
96129
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96130
 
96131
- module.exports = shouldUseNative() ? Object.assign : function (target, source) {
96132
- var from;
96133
- var to = toObject(target);
96134
- var symbols;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96135
 
96136
- for (var s = 1; s < arguments.length; s++) {
96137
- from = Object(arguments[s]);
 
96138
 
96139
- for (var key in from) {
96140
- if (hasOwnProperty.call(from, key)) {
96141
- to[key] = from[key];
96142
- }
96143
- }
96144
 
96145
- if (getOwnPropertySymbols) {
96146
- symbols = getOwnPropertySymbols(from);
96147
- for (var i = 0; i < symbols.length; i++) {
96148
- if (propIsEnumerable.call(from, symbols[i])) {
96149
- to[symbols[i]] = from[symbols[i]];
96150
- }
96151
- }
96152
- }
96153
- }
96154
 
96155
- return to;
96156
- };
96157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96158
 
96159
- /***/ }),
 
 
 
 
 
 
 
 
 
 
 
 
96160
 
96161
- /***/ 92703:
96162
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 
 
 
96163
 
96164
- "use strict";
96165
- /**
96166
- * Copyright (c) 2013-present, Facebook, Inc.
96167
- *
96168
- * This source code is licensed under the MIT license found in the
96169
- * LICENSE file in the root directory of this source tree.
96170
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96171
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96172
 
 
 
 
 
 
 
 
 
 
 
96173
 
96174
- var ReactPropTypesSecret = __webpack_require__(50414);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96175
 
96176
- function emptyFunction() {}
96177
- function emptyFunctionWithReset() {}
96178
- emptyFunctionWithReset.resetWarningCache = emptyFunction;
 
 
 
 
 
 
 
 
 
 
 
96179
 
96180
- module.exports = function() {
96181
- function shim(props, propName, componentName, location, propFullName, secret) {
96182
- if (secret === ReactPropTypesSecret) {
96183
- // It is still safe when called from React.
96184
- return;
96185
  }
96186
- var err = new Error(
96187
- 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
96188
- 'Use PropTypes.checkPropTypes() to call them. ' +
96189
- 'Read more at http://fb.me/use-check-prop-types'
96190
- );
96191
- err.name = 'Invariant Violation';
96192
- throw err;
96193
- };
96194
- shim.isRequired = shim;
96195
- function getShim() {
96196
- return shim;
96197
- };
96198
- // Important!
96199
- // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
96200
- var ReactPropTypes = {
96201
- array: shim,
96202
- bool: shim,
96203
- func: shim,
96204
- number: shim,
96205
- object: shim,
96206
- string: shim,
96207
- symbol: shim,
96208
 
96209
- any: shim,
96210
- arrayOf: getShim,
96211
- element: shim,
96212
- elementType: shim,
96213
- instanceOf: getShim,
96214
- node: shim,
96215
- objectOf: getShim,
96216
- oneOf: getShim,
96217
- oneOfType: getShim,
96218
- shape: getShim,
96219
- exact: getShim,
 
 
 
96220
 
96221
- checkPropTypes: emptyFunctionWithReset,
96222
- resetWarningCache: emptyFunction
96223
- };
 
 
 
 
 
 
 
 
 
 
96224
 
96225
- ReactPropTypes.PropTypes = ReactPropTypes;
 
 
 
 
 
 
96226
 
96227
- return ReactPropTypes;
96228
- };
 
 
 
 
 
 
 
 
96229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96230
 
96231
- /***/ }),
 
 
 
 
 
 
 
 
 
 
 
96232
 
96233
- /***/ 45697:
96234
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 
 
 
 
 
 
 
 
 
96235
 
96236
- /**
96237
- * Copyright (c) 2013-present, Facebook, Inc.
96238
- *
96239
- * This source code is licensed under the MIT license found in the
96240
- * LICENSE file in the root directory of this source tree.
96241
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96242
 
96243
- if (false) { var throwOnDirectAccess, ReactIs; } else {
96244
- // By explicitly using `prop-types` you are opting into new production behavior.
96245
- // http://fb.me/prop-types-in-prod
96246
- module.exports = __webpack_require__(92703)();
96247
- }
 
 
 
 
 
 
 
96248
 
 
 
 
 
 
 
96249
 
96250
- /***/ }),
 
 
 
 
 
 
 
 
 
 
 
 
96251
 
96252
- /***/ 50414:
96253
- /***/ (function(module) {
 
 
 
 
 
 
96254
 
96255
- "use strict";
96256
- /**
96257
- * Copyright (c) 2013-present, Facebook, Inc.
96258
- *
96259
- * This source code is licensed under the MIT license found in the
96260
- * LICENSE file in the root directory of this source tree.
96261
- */
 
 
 
 
 
96262
 
 
 
 
 
 
96263
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96264
 
96265
- var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
 
 
 
 
 
 
 
 
 
 
 
96266
 
96267
- module.exports = ReactPropTypesSecret;
 
 
 
 
 
 
 
 
 
 
 
96268
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96269
 
96270
- /***/ }),
 
 
 
 
 
 
 
 
 
 
96271
 
96272
- /***/ 57319:
96273
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
 
 
 
 
96274
 
96275
- "use strict";
 
 
96276
 
 
 
 
 
 
 
 
 
 
 
 
96277
 
96278
- Object.defineProperty(exports, "__esModule", ({
96279
- value: true
96280
- }));
96281
- exports.Alpha = undefined;
96282
 
96283
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
 
 
 
 
 
 
 
 
96284
 
96285
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
 
 
 
 
 
96286
 
96287
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
96288
 
96289
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
 
 
96290
 
96291
- var _reactcss = __webpack_require__(79941);
 
 
 
 
 
 
 
 
 
96292
 
96293
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
 
 
 
 
 
 
 
 
 
96294
 
96295
- var _alpha = __webpack_require__(66713);
 
 
 
 
 
 
 
 
 
96296
 
96297
- var alpha = _interopRequireWildcard(_alpha);
 
 
 
 
 
 
 
 
 
96298
 
96299
- var _Checkboard = __webpack_require__(34349);
 
 
 
 
 
 
 
 
 
96300
 
96301
- var _Checkboard2 = _interopRequireDefault(_Checkboard);
 
 
 
 
96302
 
96303
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
 
 
 
 
 
 
 
 
96304
 
96305
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
96306
 
96307
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
 
 
 
 
 
 
 
 
 
96308
 
96309
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
 
 
 
 
 
 
 
 
 
 
 
 
 
96310
 
96311
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 
 
 
 
 
 
 
96312
 
96313
- var Alpha = exports.Alpha = function (_ref) {
96314
- _inherits(Alpha, _ref);
 
 
 
 
 
 
 
 
96315
 
96316
- function Alpha() {
96317
- var _ref2;
 
 
 
96318
 
96319
- var _temp, _this, _ret;
 
 
 
 
 
 
 
 
 
96320
 
96321
- _classCallCheck(this, Alpha);
 
 
 
 
96322
 
96323
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
96324
- args[_key] = arguments[_key];
96325
- }
 
 
 
 
 
 
 
 
 
 
96326
 
96327
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {
96328
- var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);
96329
- change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);
96330
- }, _this.handleMouseDown = function (e) {
96331
- _this.handleChange(e);
96332
- window.addEventListener('mousemove', _this.handleChange);
96333
- window.addEventListener('mouseup', _this.handleMouseUp);
96334
- }, _this.handleMouseUp = function () {
96335
- _this.unbindEventListeners();
96336
- }, _this.unbindEventListeners = function () {
96337
- window.removeEventListener('mousemove', _this.handleChange);
96338
- window.removeEventListener('mouseup', _this.handleMouseUp);
96339
- }, _temp), _possibleConstructorReturn(_this, _ret);
96340
  }
96341
 
96342
- _createClass(Alpha, [{
96343
- key: 'componentWillUnmount',
96344
- value: function componentWillUnmount() {
96345
- this.unbindEventListeners();
 
 
 
 
 
 
 
 
 
 
 
 
96346
  }
96347
- }, {
96348
- key: 'render',
96349
- value: function render() {
96350
- var _this2 = this;
96351
-
96352
- var rgb = this.props.rgb;
96353
- var styles = (0, _reactcss2.default)({
96354
- 'default': {
96355
- alpha: {
96356
- absolute: '0px 0px 0px 0px',
96357
- borderRadius: this.props.radius
96358
- },
96359
- checkboard: {
96360
- absolute: '0px 0px 0px 0px',
96361
- overflow: 'hidden',
96362
- borderRadius: this.props.radius
96363
- },
96364
- gradient: {
96365
- absolute: '0px 0px 0px 0px',
96366
- background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',
96367
- boxShadow: this.props.shadow,
96368
- borderRadius: this.props.radius
96369
- },
96370
- container: {
96371
- position: 'relative',
96372
- height: '100%',
96373
- margin: '0 3px'
96374
- },
96375
- pointer: {
96376
- position: 'absolute',
96377
- left: rgb.a * 100 + '%'
96378
- },
96379
- slider: {
96380
- width: '4px',
96381
- borderRadius: '1px',
96382
- height: '8px',
96383
- boxShadow: '0 0 2px rgba(0, 0, 0, .6)',
96384
- background: '#fff',
96385
- marginTop: '1px',
96386
- transform: 'translateX(-2px)'
96387
- }
96388
- },
96389
- 'vertical': {
96390
- gradient: {
96391
- background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'
96392
- },
96393
- pointer: {
96394
- left: 0,
96395
- top: rgb.a * 100 + '%'
96396
- }
96397
- },
96398
- 'overwrite': _extends({}, this.props.style)
96399
- }, {
96400
- vertical: this.props.direction === 'vertical',
96401
- overwrite: true
96402
- });
96403
 
96404
- return _react2.default.createElement(
96405
- 'div',
96406
- { style: styles.alpha },
96407
- _react2.default.createElement(
96408
- 'div',
96409
- { style: styles.checkboard },
96410
- _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers })
96411
- ),
96412
- _react2.default.createElement('div', { style: styles.gradient }),
96413
- _react2.default.createElement(
96414
- 'div',
96415
- {
96416
- style: styles.container,
96417
- ref: function ref(container) {
96418
- return _this2.container = container;
96419
- },
96420
- onMouseDown: this.handleMouseDown,
96421
- onTouchMove: this.handleChange,
96422
- onTouchStart: this.handleChange
96423
- },
96424
- _react2.default.createElement(
96425
- 'div',
96426
- { style: styles.pointer },
96427
- this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })
96428
- )
96429
- )
96430
- );
96431
- }
96432
- }]);
96433
 
96434
- return Alpha;
96435
- }(_react.PureComponent || _react.Component);
 
 
 
 
 
 
 
 
 
 
96436
 
96437
- exports.default = Alpha;
 
 
 
 
 
 
 
 
 
96438
 
96439
- /***/ }),
 
 
96440
 
96441
- /***/ 34349:
96442
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
96443
 
96444
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
 
 
96445
 
 
 
 
 
 
 
 
 
 
 
96446
 
96447
- Object.defineProperty(exports, "__esModule", ({
96448
- value: true
96449
- }));
96450
- exports.Checkboard = undefined;
 
 
 
 
 
 
96451
 
96452
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
96453
 
96454
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96455
 
96456
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
96457
 
96458
- var _reactcss = __webpack_require__(79941);
 
96459
 
96460
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
96461
 
96462
- var _checkboard = __webpack_require__(45704);
 
 
 
 
96463
 
96464
- var checkboard = _interopRequireWildcard(_checkboard);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96465
 
96466
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96467
 
96468
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96469
 
96470
- var Checkboard = exports.Checkboard = function Checkboard(_ref) {
96471
- var white = _ref.white,
96472
- grey = _ref.grey,
96473
- size = _ref.size,
96474
- renderers = _ref.renderers,
96475
- borderRadius = _ref.borderRadius,
96476
- boxShadow = _ref.boxShadow,
96477
- children = _ref.children;
96478
 
96479
- var styles = (0, _reactcss2.default)({
96480
- 'default': {
96481
- grid: {
96482
- borderRadius: borderRadius,
96483
- boxShadow: boxShadow,
96484
- absolute: '0px 0px 0px 0px',
96485
- background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'
96486
- }
 
 
 
 
 
96487
  }
96488
- });
96489
- return (0, _react.isValidElement)(children) ? _react2.default.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : _react2.default.createElement('div', { style: styles.grid });
96490
- };
96491
 
96492
- Checkboard.defaultProps = {
96493
- size: 8,
96494
- white: 'transparent',
96495
- grey: 'rgba(0,0,0,.08)',
96496
- renderers: {}
96497
- };
 
 
 
 
96498
 
96499
- exports.default = Checkboard;
 
 
 
 
 
 
96500
 
96501
- /***/ }),
 
 
 
 
 
 
96502
 
96503
- /***/ 88288:
96504
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
96505
 
96506
- "use strict";
 
 
 
 
 
 
96507
 
 
 
 
 
 
 
 
96508
 
96509
- Object.defineProperty(exports, "__esModule", ({
96510
- value: true
96511
- }));
96512
- exports.ColorWrap = undefined;
 
 
 
 
 
96513
 
96514
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
96515
 
96516
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
96517
 
96518
- var _react = __webpack_require__(67294);
96519
 
96520
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96521
 
96522
- var _debounce = __webpack_require__(23279);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96523
 
96524
- var _debounce2 = _interopRequireDefault(_debounce);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96525
 
96526
- var _color = __webpack_require__(64809);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96527
 
96528
- var color = _interopRequireWildcard(_color);
 
 
96529
 
96530
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
96531
 
96532
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
96533
 
96534
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
 
 
96535
 
96536
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
 
 
 
 
 
 
 
 
 
 
96537
 
96538
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96539
 
96540
- var ColorWrap = exports.ColorWrap = function ColorWrap(Picker) {
96541
- var ColorPicker = function (_ref) {
96542
- _inherits(ColorPicker, _ref);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96543
 
96544
- function ColorPicker(props) {
96545
- _classCallCheck(this, ColorPicker);
 
 
 
 
 
 
 
 
 
 
 
96546
 
96547
- var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96548
 
96549
- _this.handleChange = function (data, event) {
96550
- var isValidColor = color.simpleCheckForValidColor(data);
96551
- if (isValidColor) {
96552
- var colors = color.toState(data, data.h || _this.state.oldHue);
96553
- _this.setState(colors);
96554
- _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);
96555
- _this.props.onChange && _this.props.onChange(colors, event);
96556
- }
96557
- };
96558
 
96559
- _this.handleSwatchHover = function (data, event) {
96560
- var isValidColor = color.simpleCheckForValidColor(data);
96561
- if (isValidColor) {
96562
- var colors = color.toState(data, data.h || _this.state.oldHue);
96563
- _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);
96564
- }
96565
- };
96566
 
96567
- _this.state = _extends({}, color.toState(props.color, 0));
 
 
 
 
 
 
 
 
 
96568
 
96569
- _this.debounce = (0, _debounce2.default)(function (fn, data, event) {
96570
- fn(data, event);
96571
- }, 100);
96572
- return _this;
 
96573
  }
96574
 
96575
- _createClass(ColorPicker, [{
96576
- key: 'render',
96577
- value: function render() {
96578
- var optionalEvents = {};
96579
- if (this.props.onSwatchHover) {
96580
- optionalEvents.onSwatchHover = this.handleSwatchHover;
96581
- }
 
 
 
 
96582
 
96583
- return _react2.default.createElement(Picker, _extends({}, this.props, this.state, {
96584
- onChange: this.handleChange
96585
- }, optionalEvents));
 
 
 
 
 
 
 
 
 
 
 
 
96586
  }
96587
- }], [{
96588
- key: 'getDerivedStateFromProps',
96589
- value: function getDerivedStateFromProps(nextProps, state) {
96590
- return _extends({}, color.toState(nextProps.color, state.oldHue));
 
96591
  }
96592
- }]);
96593
-
96594
- return ColorPicker;
96595
- }(_react.PureComponent || _react.Component);
96596
-
96597
- ColorPicker.propTypes = _extends({}, Picker.propTypes);
96598
-
96599
- ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {
96600
- color: {
96601
- h: 250,
96602
- s: 0.50,
96603
- l: 0.20,
96604
- a: 1
96605
  }
96606
- });
96607
-
96608
- return ColorPicker;
96609
- };
96610
 
96611
- exports.default = ColorWrap;
 
 
 
 
 
 
 
 
 
 
 
96612
 
96613
- /***/ }),
 
96614
 
96615
- /***/ 27747:
96616
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
 
 
 
 
96617
 
96618
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
 
96619
 
 
 
 
 
 
 
 
 
96620
 
96621
- Object.defineProperty(exports, "__esModule", ({
96622
- value: true
96623
- }));
96624
- exports.EditableInput = undefined;
 
 
96625
 
96626
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
96627
 
96628
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
 
96629
 
96630
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
96631
 
96632
- var _reactcss = __webpack_require__(79941);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96633
 
96634
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
 
 
 
 
 
 
 
 
 
 
 
 
96635
 
96636
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
96637
 
96638
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
 
 
 
 
 
 
 
 
 
 
 
96639
 
96640
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
 
 
 
 
 
 
 
 
 
96641
 
96642
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
 
 
 
96643
 
96644
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 
 
 
 
96645
 
96646
- var DEFAULT_ARROW_OFFSET = 1;
96647
 
96648
- var UP_KEY_CODE = 38;
96649
- var DOWN_KEY_CODE = 40;
96650
- var VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];
96651
- var isValidKeyCode = function isValidKeyCode(keyCode) {
96652
- return VALID_KEY_CODES.indexOf(keyCode) > -1;
96653
- };
96654
- var getNumberValue = function getNumberValue(value) {
96655
- return Number(String(value).replace(/%/g, ''));
96656
- };
 
 
96657
 
96658
- var idCounter = 1;
 
 
 
 
96659
 
96660
- var EditableInput = exports.EditableInput = function (_ref) {
96661
- _inherits(EditableInput, _ref);
 
 
 
 
 
 
 
 
 
 
 
 
96662
 
96663
- function EditableInput(props) {
96664
- _classCallCheck(this, EditableInput);
 
 
 
 
 
 
 
 
 
 
96665
 
96666
- var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));
 
 
96667
 
96668
- _this.handleBlur = function () {
96669
- if (_this.state.blurValue) {
96670
- _this.setState({ value: _this.state.blurValue, blurValue: null });
96671
- }
96672
- };
96673
 
96674
- _this.handleChange = function (e) {
96675
- _this.setUpdatedValue(e.target.value, e);
96676
- };
 
 
 
 
 
 
 
 
96677
 
96678
- _this.handleKeyDown = function (e) {
96679
- // In case `e.target.value` is a percentage remove the `%` character
96680
- // and update accordingly with a percentage
96681
- // https://github.com/casesandberg/react-color/issues/383
96682
- var value = getNumberValue(e.target.value);
96683
- if (!isNaN(value) && isValidKeyCode(e.keyCode)) {
96684
- var offset = _this.getArrowOffset();
96685
- var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;
 
 
 
96686
 
96687
- _this.setUpdatedValue(updatedValue, e);
96688
- }
96689
- };
 
 
 
 
 
 
 
 
 
96690
 
96691
- _this.handleDrag = function (e) {
96692
- if (_this.props.dragLabel) {
96693
- var newValue = Math.round(_this.props.value + e.movementX);
96694
- if (newValue >= 0 && newValue <= _this.props.dragMax) {
96695
- _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);
96696
- }
96697
- }
96698
- };
96699
 
96700
- _this.handleMouseDown = function (e) {
96701
- if (_this.props.dragLabel) {
96702
- e.preventDefault();
96703
- _this.handleDrag(e);
96704
- window.addEventListener('mousemove', _this.handleDrag);
96705
- window.addEventListener('mouseup', _this.handleMouseUp);
96706
- }
96707
- };
 
 
 
 
96708
 
96709
- _this.handleMouseUp = function () {
96710
- _this.unbindEventListeners();
96711
- };
 
 
 
 
 
 
 
 
 
96712
 
96713
- _this.unbindEventListeners = function () {
96714
- window.removeEventListener('mousemove', _this.handleDrag);
96715
- window.removeEventListener('mouseup', _this.handleMouseUp);
96716
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96717
 
96718
- _this.state = {
96719
- value: String(props.value).toUpperCase(),
96720
- blurValue: String(props.value).toUpperCase()
96721
- };
 
 
96722
 
96723
- _this.inputId = 'rc-editable-input-' + idCounter++;
96724
- return _this;
96725
- }
96726
 
96727
- _createClass(EditableInput, [{
96728
- key: 'componentDidUpdate',
96729
- value: function componentDidUpdate(prevProps, prevState) {
96730
- if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {
96731
- if (this.input === document.activeElement) {
96732
- this.setState({ blurValue: String(this.props.value).toUpperCase() });
96733
- } else {
96734
- this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96735
  }
96736
  }
 
96737
  }
96738
- }, {
96739
- key: 'componentWillUnmount',
96740
- value: function componentWillUnmount() {
96741
- this.unbindEventListeners();
96742
- }
96743
- }, {
96744
- key: 'getValueObjectWithLabel',
96745
- value: function getValueObjectWithLabel(value) {
96746
- return _defineProperty({}, this.props.label, value);
96747
- }
96748
- }, {
96749
- key: 'getArrowOffset',
96750
- value: function getArrowOffset() {
96751
- return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;
96752
- }
96753
- }, {
96754
- key: 'setUpdatedValue',
96755
- value: function setUpdatedValue(value, e) {
96756
- var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;
96757
- this.props.onChange && this.props.onChange(onChangeValue, e);
96758
 
96759
- this.setState({ value: value });
 
 
 
 
 
 
 
 
 
96760
  }
96761
- }, {
96762
- key: 'render',
96763
- value: function render() {
96764
- var _this2 = this;
96765
-
96766
- var styles = (0, _reactcss2.default)({
96767
- 'default': {
96768
- wrap: {
96769
- position: 'relative'
96770
- }
96771
- },
96772
- 'user-override': {
96773
- wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},
96774
- input: this.props.style && this.props.style.input ? this.props.style.input : {},
96775
- label: this.props.style && this.props.style.label ? this.props.style.label : {}
96776
- },
96777
- 'dragLabel-true': {
96778
- label: {
96779
- cursor: 'ew-resize'
96780
- }
96781
- }
96782
- }, {
96783
- 'user-override': true
96784
- }, this.props);
96785
 
96786
- return _react2.default.createElement(
96787
- 'div',
96788
- { style: styles.wrap },
96789
- _react2.default.createElement('input', {
96790
- id: this.inputId,
96791
- style: styles.input,
96792
- ref: function ref(input) {
96793
- return _this2.input = input;
96794
- },
96795
- value: this.state.value,
96796
- onKeyDown: this.handleKeyDown,
96797
- onChange: this.handleChange,
96798
- onBlur: this.handleBlur,
96799
- placeholder: this.props.placeholder,
96800
- spellCheck: 'false'
96801
- }),
96802
- this.props.label && !this.props.hideLabel ? _react2.default.createElement(
96803
- 'label',
96804
- {
96805
- htmlFor: this.inputId,
96806
- style: styles.label,
96807
- onMouseDown: this.handleMouseDown
96808
- },
96809
- this.props.label
96810
- ) : null
96811
- );
96812
  }
96813
- }]);
96814
-
96815
- return EditableInput;
96816
- }(_react.PureComponent || _react.Component);
96817
-
96818
- exports.default = EditableInput;
96819
-
96820
- /***/ }),
96821
-
96822
- /***/ 26358:
96823
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
96824
 
96825
- "use strict";
 
 
 
 
 
 
 
 
 
96826
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96827
 
96828
- Object.defineProperty(exports, "__esModule", ({
96829
- value: true
96830
- }));
96831
- exports.Hue = undefined;
 
 
 
 
 
 
 
 
 
 
 
 
 
96832
 
96833
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96834
 
96835
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96836
 
96837
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
 
 
 
 
 
 
96838
 
96839
- var _reactcss = __webpack_require__(79941);
 
 
 
 
 
 
 
 
 
 
 
96840
 
96841
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96842
 
96843
- var _hue = __webpack_require__(33716);
 
 
 
 
 
 
 
 
 
 
 
 
96844
 
96845
- var hue = _interopRequireWildcard(_hue);
 
 
 
 
96846
 
96847
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96848
 
96849
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96850
 
96851
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96852
 
96853
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
 
 
 
 
 
 
 
 
96854
 
96855
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 
96856
 
96857
- var Hue = exports.Hue = function (_ref) {
96858
- _inherits(Hue, _ref);
 
 
 
 
 
 
 
 
 
96859
 
96860
- function Hue() {
96861
- var _ref2;
 
 
 
 
 
 
 
 
 
 
 
96862
 
96863
- var _temp, _this, _ret;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96864
 
96865
- _classCallCheck(this, Hue);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96866
 
96867
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
96868
- args[_key] = arguments[_key];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96869
  }
96870
 
96871
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {
96872
- var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);
96873
- change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);
96874
- }, _this.handleMouseDown = function (e) {
96875
- _this.handleChange(e);
96876
- window.addEventListener('mousemove', _this.handleChange);
96877
- window.addEventListener('mouseup', _this.handleMouseUp);
96878
- }, _this.handleMouseUp = function () {
96879
- _this.unbindEventListeners();
96880
- }, _temp), _possibleConstructorReturn(_this, _ret);
96881
- }
96882
 
96883
- _createClass(Hue, [{
96884
- key: 'componentWillUnmount',
96885
- value: function componentWillUnmount() {
96886
- this.unbindEventListeners();
96887
- }
96888
- }, {
96889
- key: 'unbindEventListeners',
96890
- value: function unbindEventListeners() {
96891
- window.removeEventListener('mousemove', this.handleChange);
96892
- window.removeEventListener('mouseup', this.handleMouseUp);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96893
  }
96894
- }, {
96895
- key: 'render',
96896
- value: function render() {
96897
- var _this2 = this;
96898
 
96899
- var _props$direction = this.props.direction,
96900
- direction = _props$direction === undefined ? 'horizontal' : _props$direction;
 
 
 
 
 
 
 
 
 
 
 
96901
 
 
 
 
96902
 
96903
- var styles = (0, _reactcss2.default)({
96904
- 'default': {
96905
- hue: {
96906
- absolute: '0px 0px 0px 0px',
96907
- borderRadius: this.props.radius,
96908
- boxShadow: this.props.shadow
96909
- },
96910
- container: {
96911
- padding: '0 2px',
96912
- position: 'relative',
96913
- height: '100%',
96914
- borderRadius: this.props.radius
96915
- },
96916
- pointer: {
96917
- position: 'absolute',
96918
- left: this.props.hsl.h * 100 / 360 + '%'
96919
- },
96920
- slider: {
96921
- marginTop: '1px',
96922
- width: '4px',
96923
- borderRadius: '1px',
96924
- height: '8px',
96925
- boxShadow: '0 0 2px rgba(0, 0, 0, .6)',
96926
- background: '#fff',
96927
- transform: 'translateX(-2px)'
96928
- }
96929
- },
96930
- 'vertical': {
96931
- pointer: {
96932
- left: '0px',
96933
- top: -(this.props.hsl.h * 100 / 360) + 100 + '%'
96934
- }
96935
  }
96936
- }, { vertical: direction === 'vertical' });
96937
-
96938
- return _react2.default.createElement(
96939
- 'div',
96940
- { style: styles.hue },
96941
- _react2.default.createElement(
96942
- 'div',
96943
- {
96944
- className: 'hue-' + direction,
96945
- style: styles.container,
96946
- ref: function ref(container) {
96947
- return _this2.container = container;
96948
- },
96949
- onMouseDown: this.handleMouseDown,
96950
- onTouchMove: this.handleChange,
96951
- onTouchStart: this.handleChange
96952
- },
96953
- _react2.default.createElement(
96954
- 'style',
96955
- null,
96956
- '\n .hue-horizontal {\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n\n .hue-vertical {\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n '
96957
- ),
96958
- _react2.default.createElement(
96959
- 'div',
96960
- { style: styles.pointer },
96961
- this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })
96962
- )
96963
- )
96964
- );
96965
  }
96966
- }]);
96967
 
96968
- return Hue;
96969
- }(_react.PureComponent || _react.Component);
 
 
 
 
 
 
 
 
 
 
96970
 
96971
- exports.default = Hue;
 
 
 
 
 
 
 
 
 
 
 
 
 
96972
 
96973
- /***/ }),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96974
 
96975
- /***/ 96207:
96976
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96977
 
96978
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
96979
 
 
 
 
 
 
 
 
 
 
 
 
96980
 
96981
- Object.defineProperty(exports, "__esModule", ({
96982
- value: true
96983
- }));
96984
- exports.Raised = undefined;
 
 
 
 
 
 
 
96985
 
96986
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
 
 
96987
 
96988
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
 
 
 
 
 
 
 
 
96989
 
96990
- var _propTypes = __webpack_require__(45697);
 
 
 
 
 
 
 
 
 
96991
 
96992
- var _propTypes2 = _interopRequireDefault(_propTypes);
 
96993
 
96994
- var _reactcss = __webpack_require__(79941);
 
 
 
 
96995
 
96996
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96997
 
96998
- var _merge = __webpack_require__(82492);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96999
 
97000
- var _merge2 = _interopRequireDefault(_merge);
 
 
 
 
 
 
 
 
 
 
 
97001
 
97002
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
97003
 
97004
- var Raised = exports.Raised = function Raised(_ref) {
97005
- var zDepth = _ref.zDepth,
97006
- radius = _ref.radius,
97007
- background = _ref.background,
97008
- children = _ref.children,
97009
- _ref$styles = _ref.styles,
97010
- passedStyles = _ref$styles === undefined ? {} : _ref$styles;
 
 
 
 
97011
 
97012
- var styles = (0, _reactcss2.default)((0, _merge2.default)({
97013
- 'default': {
97014
- wrap: {
97015
- position: 'relative',
97016
- display: 'inline-block'
97017
- },
97018
- content: {
97019
- position: 'relative'
97020
- },
97021
- bg: {
97022
- absolute: '0px 0px 0px 0px',
97023
- boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',
97024
- borderRadius: radius,
97025
- background: background
97026
- }
97027
- },
97028
- 'zDepth-0': {
97029
- bg: {
97030
- boxShadow: 'none'
97031
- }
97032
- },
97033
 
97034
- 'zDepth-1': {
97035
- bg: {
97036
- boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'
97037
- }
97038
- },
97039
- 'zDepth-2': {
97040
- bg: {
97041
- boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'
97042
- }
97043
- },
97044
- 'zDepth-3': {
97045
- bg: {
97046
- boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'
97047
- }
97048
- },
97049
- 'zDepth-4': {
97050
- bg: {
97051
- boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'
97052
- }
97053
- },
97054
- 'zDepth-5': {
97055
- bg: {
97056
- boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'
97057
- }
97058
- },
97059
- 'square': {
97060
- bg: {
97061
- borderRadius: '0'
97062
- }
97063
- },
97064
- 'circle': {
97065
- bg: {
97066
- borderRadius: '50%'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97067
  }
 
97068
  }
97069
- }, passedStyles), { 'zDepth-1': zDepth === 1 });
97070
-
97071
- return _react2.default.createElement(
97072
- 'div',
97073
- { style: styles.wrap },
97074
- _react2.default.createElement('div', { style: styles.bg }),
97075
- _react2.default.createElement(
97076
- 'div',
97077
- { style: styles.content },
97078
- children
97079
- )
97080
- );
97081
- };
97082
 
97083
- Raised.propTypes = {
97084
- background: _propTypes2.default.string,
97085
- zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]),
97086
- radius: _propTypes2.default.number,
97087
- styles: _propTypes2.default.object
97088
- };
 
 
 
 
 
 
 
 
 
 
 
97089
 
97090
- Raised.defaultProps = {
97091
- background: '#fff',
97092
- zDepth: 1,
97093
- radius: 2,
97094
- styles: {}
97095
- };
 
 
 
 
 
 
 
 
 
 
97096
 
97097
- exports.default = Raised;
 
 
 
 
 
 
 
 
 
97098
 
97099
- /***/ }),
 
 
 
 
 
 
 
 
 
97100
 
97101
- /***/ 76659:
97102
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
 
 
97103
 
97104
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97106
 
97107
- Object.defineProperty(exports, "__esModule", ({
97108
- value: true
97109
- }));
97110
- exports.Saturation = undefined;
97111
 
97112
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
 
97113
 
97114
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97115
 
97116
- var _react2 = _interopRequireDefault(_react);
 
 
97117
 
97118
- var _reactcss = __webpack_require__(79941);
 
 
 
 
 
 
 
 
 
97119
 
97120
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
 
 
 
 
 
 
 
 
97121
 
97122
- var _throttle = __webpack_require__(23493);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97123
 
97124
- var _throttle2 = _interopRequireDefault(_throttle);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97125
 
97126
- var _saturation = __webpack_require__(37599);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97127
 
97128
- var saturation = _interopRequireWildcard(_saturation);
 
 
 
 
 
 
 
 
 
97129
 
97130
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
 
 
 
 
 
 
 
 
97131
 
97132
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
97133
 
97134
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97135
 
97136
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97137
 
97138
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 
 
 
 
 
 
 
 
 
 
 
97139
 
97140
- var Saturation = exports.Saturation = function (_ref) {
97141
- _inherits(Saturation, _ref);
 
 
 
 
 
97142
 
97143
- function Saturation(props) {
97144
- _classCallCheck(this, Saturation);
 
 
 
 
 
 
 
 
 
 
97145
 
97146
- var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));
 
 
 
 
 
 
 
 
 
 
97147
 
97148
- _this.handleChange = function (e) {
97149
- typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);
97150
- };
 
 
97151
 
97152
- _this.handleMouseDown = function (e) {
97153
- _this.handleChange(e);
97154
- var renderWindow = _this.getContainerRenderWindow();
97155
- renderWindow.addEventListener('mousemove', _this.handleChange);
97156
- renderWindow.addEventListener('mouseup', _this.handleMouseUp);
97157
- };
 
 
 
 
 
 
 
 
 
 
97158
 
97159
- _this.handleMouseUp = function () {
97160
- _this.unbindEventListeners();
97161
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97162
 
97163
- _this.throttle = (0, _throttle2.default)(function (fn, data, e) {
97164
- fn(data, e);
97165
- }, 50);
97166
- return _this;
97167
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97168
 
97169
- _createClass(Saturation, [{
97170
- key: 'componentWillUnmount',
97171
- value: function componentWillUnmount() {
97172
- this.throttle.cancel();
97173
- this.unbindEventListeners();
 
97174
  }
97175
- }, {
97176
- key: 'getContainerRenderWindow',
97177
- value: function getContainerRenderWindow() {
97178
- var container = this.container;
97179
 
97180
- var renderWindow = window;
97181
- while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {
97182
- renderWindow = renderWindow.parent;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97183
  }
97184
- return renderWindow;
97185
- }
97186
- }, {
97187
- key: 'unbindEventListeners',
97188
- value: function unbindEventListeners() {
97189
- var renderWindow = this.getContainerRenderWindow();
97190
- renderWindow.removeEventListener('mousemove', this.handleChange);
97191
- renderWindow.removeEventListener('mouseup', this.handleMouseUp);
97192
- }
97193
- }, {
97194
- key: 'render',
97195
- value: function render() {
97196
- var _this2 = this;
97197
 
97198
- var _ref2 = this.props.style || {},
97199
- color = _ref2.color,
97200
- white = _ref2.white,
97201
- black = _ref2.black,
97202
- pointer = _ref2.pointer,
97203
- circle = _ref2.circle;
97204
 
97205
- var styles = (0, _reactcss2.default)({
97206
- 'default': {
97207
- color: {
97208
- absolute: '0px 0px 0px 0px',
97209
- background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',
97210
- borderRadius: this.props.radius
97211
- },
97212
- white: {
97213
- absolute: '0px 0px 0px 0px',
97214
- borderRadius: this.props.radius
97215
- },
97216
- black: {
97217
- absolute: '0px 0px 0px 0px',
97218
- boxShadow: this.props.shadow,
97219
- borderRadius: this.props.radius
97220
- },
97221
- pointer: {
97222
- position: 'absolute',
97223
- top: -(this.props.hsv.v * 100) + 100 + '%',
97224
- left: this.props.hsv.s * 100 + '%',
97225
- cursor: 'default'
97226
- },
97227
- circle: {
97228
- width: '4px',
97229
- height: '4px',
97230
- boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\n 0 0 1px 2px rgba(0,0,0,.4)',
97231
- borderRadius: '50%',
97232
- cursor: 'hand',
97233
- transform: 'translate(-2px, -2px)'
97234
  }
97235
- },
97236
- 'custom': {
97237
- color: color,
97238
- white: white,
97239
- black: black,
97240
- pointer: pointer,
97241
- circle: circle
97242
  }
97243
- }, { 'custom': !!this.props.style });
97244
-
97245
- return _react2.default.createElement(
97246
- 'div',
97247
- {
97248
- style: styles.color,
97249
- ref: function ref(container) {
97250
- return _this2.container = container;
97251
- },
97252
- onMouseDown: this.handleMouseDown,
97253
- onTouchMove: this.handleChange,
97254
- onTouchStart: this.handleChange
97255
- },
97256
- _react2.default.createElement(
97257
- 'style',
97258
- null,
97259
- '\n .saturation-white {\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\n }\n .saturation-black {\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\n }\n '
97260
- ),
97261
- _react2.default.createElement(
97262
- 'div',
97263
- { style: styles.white, className: 'saturation-white' },
97264
- _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }),
97265
- _react2.default.createElement(
97266
- 'div',
97267
- { style: styles.pointer },
97268
- this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle })
97269
- )
97270
- )
97271
- );
97272
  }
97273
- }]);
97274
 
97275
- return Saturation;
97276
- }(_react.PureComponent || _react.Component);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97277
 
97278
- exports.default = Saturation;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97279
 
97280
- /***/ }),
 
97281
 
97282
- /***/ 62489:
97283
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
97284
 
97285
- "use strict";
 
 
 
97286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97287
 
97288
- Object.defineProperty(exports, "__esModule", ({
97289
- value: true
97290
- }));
97291
- exports.Swatch = undefined;
 
 
 
 
 
 
 
 
 
97292
 
97293
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
97294
 
97295
- var _react = __webpack_require__(67294);
 
 
 
 
 
97296
 
97297
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
 
 
 
 
 
 
97298
 
97299
- var _reactcss = __webpack_require__(79941);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97300
 
97301
- var _reactcss2 = _interopRequireDefault(_reactcss);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97302
 
97303
- var _interaction = __webpack_require__(82538);
 
 
 
 
 
 
 
 
 
 
 
97304
 
97305
- var _Checkboard = __webpack_require__(34349);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97306
 
97307
- var _Checkboard2 = _interopRequireDefault(_Checkboard);
 
 
 
 
 
97308
 
97309
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97310
 
97311
- var ENTER = 13;
 
97312
 
97313
- var Swatch = exports.Swatch = function Swatch(_ref) {
97314
- var color = _ref.color,
97315
- style = _ref.style,
97316
- _ref$onClick = _ref.onClick,
97317
- onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,
97318
- onHover = _ref.onHover,
97319
- _ref$title = _ref.title,
97320
- title = _ref$title === undefined ? color : _ref$title,
97321
- children = _ref.children,
97322
- focus = _ref.focus,
97323
- _ref$focusStyle = _ref.focusStyle,
97324
- focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;
97325
 
97326
- var transparent = color === 'transparent';
97327
- var styles = (0, _reactcss2.default)({
97328
- default: {
97329
- swatch: _extends({
97330
- background: color,
97331
- height: '100%',
97332
- width: '100%',
97333
- cursor: 'pointer',
97334
- position: 'relative',
97335
- outline: 'none'
97336
- }, style, focus ? focusStyle : {})
97337
  }
97338
- });
97339
 
97340
- var handleClick = function handleClick(e) {
97341
- return onClick(color, e);
97342
- };
97343
- var handleKeyDown = function handleKeyDown(e) {
97344
- return e.keyCode === ENTER && onClick(color, e);
97345
- };
97346
- var handleHover = function handleHover(e) {
97347
- return onHover(color, e);
97348
- };
 
 
 
97349
 
97350
- var optionalEvents = {};
97351
- if (onHover) {
97352
- optionalEvents.onMouseOver = handleHover;
97353
- }
 
 
 
 
 
 
 
 
 
 
 
97354
 
97355
- return _react2.default.createElement(
97356
- 'div',
97357
- _extends({
97358
- style: styles.swatch,
97359
- onClick: handleClick,
97360
- title: title,
97361
- tabIndex: 0,
97362
- onKeyDown: handleKeyDown
97363
- }, optionalEvents),
97364
- children,
97365
- transparent && _react2.default.createElement(_Checkboard2.default, {
97366
- borderRadius: styles.swatch.borderRadius,
97367
- boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'
97368
- })
97369
- );
97370
- };
97371
 
97372
- exports.default = (0, _interaction.handleFocus)(Swatch);
 
 
97373
 
97374
- /***/ }),
 
 
97375
 
97376
- /***/ 1150:
97377
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
 
 
 
 
 
 
97378
 
97379
- "use strict";
97380
- var __webpack_unused_export__;
 
 
 
 
 
 
 
 
 
 
97381
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97382
 
97383
- __webpack_unused_export__ = ({
97384
- value: true
97385
- });
 
 
 
 
 
 
 
97386
 
97387
- var _Alpha = __webpack_require__(57319);
 
 
 
 
 
 
 
 
 
 
 
97388
 
97389
- Object.defineProperty(exports, "xV", ({
97390
- enumerable: true,
97391
- get: function get() {
97392
- return _interopRequireDefault(_Alpha).default;
97393
- }
97394
- }));
 
 
 
97395
 
97396
- var _Checkboard = __webpack_require__(34349);
 
 
 
 
 
97397
 
97398
- __webpack_unused_export__ = ({
97399
- enumerable: true,
97400
- get: function get() {
97401
- return _interopRequireDefault(_Checkboard).default;
97402
- }
97403
- });
 
 
 
 
 
97404
 
97405
- var _EditableInput = __webpack_require__(27747);
 
 
 
 
 
97406
 
97407
- Object.defineProperty(exports, "Vm", ({
97408
- enumerable: true,
97409
- get: function get() {
97410
- return _interopRequireDefault(_EditableInput).default;
97411
- }
97412
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97413
 
97414
- var _Hue = __webpack_require__(26358);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97415
 
97416
- Object.defineProperty(exports, "PS", ({
97417
- enumerable: true,
97418
- get: function get() {
97419
- return _interopRequireDefault(_Hue).default;
97420
- }
97421
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97422
 
97423
- var _Raised = __webpack_require__(96207);
 
 
 
 
 
 
 
 
 
 
 
 
 
97424
 
97425
- __webpack_unused_export__ = ({
97426
- enumerable: true,
97427
- get: function get() {
97428
- return _interopRequireDefault(_Raised).default;
97429
- }
97430
- });
97431
 
97432
- var _Saturation = __webpack_require__(76659);
 
 
 
 
 
 
97433
 
97434
- Object.defineProperty(exports, "OQ", ({
97435
- enumerable: true,
97436
- get: function get() {
97437
- return _interopRequireDefault(_Saturation).default;
97438
- }
97439
- }));
 
 
 
 
 
 
 
 
 
 
 
97440
 
97441
- var _ColorWrap = __webpack_require__(88288);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97442
 
97443
- Object.defineProperty(exports, "t1", ({
97444
- enumerable: true,
97445
- get: function get() {
97446
- return _interopRequireDefault(_ColorWrap).default;
97447
- }
97448
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97449
 
97450
- var _Swatch = __webpack_require__(62489);
 
 
 
 
 
 
 
 
 
 
 
 
97451
 
97452
- Object.defineProperty(exports, "m4", ({
97453
- enumerable: true,
97454
- get: function get() {
97455
- return _interopRequireDefault(_Swatch).default;
97456
- }
97457
- }));
 
 
 
 
 
 
 
97458
 
97459
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
 
 
97460
 
97461
- /***/ }),
 
97462
 
97463
- /***/ 66713:
97464
- /***/ (function(__unused_webpack_module, exports) {
 
 
97465
 
97466
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97468
 
97469
- Object.defineProperty(exports, "__esModule", ({
97470
- value: true
97471
- }));
97472
- var calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) {
97473
- var containerWidth = container.clientWidth;
97474
- var containerHeight = container.clientHeight;
97475
- var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;
97476
- var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;
97477
- var left = x - (container.getBoundingClientRect().left + window.pageXOffset);
97478
- var top = y - (container.getBoundingClientRect().top + window.pageYOffset);
97479
 
97480
- if (direction === 'vertical') {
97481
- var a = void 0;
97482
- if (top < 0) {
97483
- a = 0;
97484
- } else if (top > containerHeight) {
97485
- a = 1;
97486
- } else {
97487
- a = Math.round(top * 100 / containerHeight) / 100;
97488
  }
97489
 
97490
- if (hsl.a !== a) {
97491
- return {
97492
- h: hsl.h,
97493
- s: hsl.s,
97494
- l: hsl.l,
97495
- a: a,
97496
- source: 'rgb'
97497
- };
97498
- }
97499
- } else {
97500
- var _a = void 0;
97501
- if (left < 0) {
97502
- _a = 0;
97503
- } else if (left > containerWidth) {
97504
- _a = 1;
97505
- } else {
97506
- _a = Math.round(left * 100 / containerWidth) / 100;
97507
- }
97508
 
97509
- if (initialA !== _a) {
97510
- return {
97511
- h: hsl.h,
97512
- s: hsl.s,
97513
- l: hsl.l,
97514
- a: _a,
97515
- source: 'rgb'
97516
- };
97517
  }
97518
- }
97519
- return null;
97520
- };
97521
 
97522
- /***/ }),
97523
-
97524
- /***/ 45704:
97525
- /***/ (function(__unused_webpack_module, exports) {
 
 
 
 
 
 
97526
 
97527
- "use strict";
 
 
 
 
 
 
 
 
 
97528
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97529
 
97530
- Object.defineProperty(exports, "__esModule", ({
97531
- value: true
97532
- }));
97533
- var checkboardCache = {};
 
 
 
 
 
 
97534
 
97535
- var render = exports.render = function render(c1, c2, size, serverCanvas) {
97536
- if (typeof document === 'undefined' && !serverCanvas) {
97537
- return null;
97538
- }
97539
- var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');
97540
- canvas.width = size * 2;
97541
- canvas.height = size * 2;
97542
- var ctx = canvas.getContext('2d');
97543
- if (!ctx) {
97544
- return null;
97545
- } // If no context can be found, return early.
97546
- ctx.fillStyle = c1;
97547
- ctx.fillRect(0, 0, canvas.width, canvas.height);
97548
- ctx.fillStyle = c2;
97549
- ctx.fillRect(0, 0, size, size);
97550
- ctx.translate(size, size);
97551
- ctx.fillRect(0, 0, size, size);
97552
- return canvas.toDataURL();
97553
- };
97554
 
97555
- var get = exports.get = function get(c1, c2, size, serverCanvas) {
97556
- var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');
 
 
 
 
 
 
 
97557
 
97558
- if (checkboardCache[key]) {
97559
- return checkboardCache[key];
97560
- }
 
 
 
 
 
 
 
 
 
 
 
97561
 
97562
- var checkboard = render(c1, c2, size, serverCanvas);
97563
- checkboardCache[key] = checkboard;
97564
- return checkboard;
97565
- };
97566
 
97567
- /***/ }),
 
 
 
 
 
 
 
 
 
 
 
97568
 
97569
- /***/ 64809:
97570
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
 
 
 
 
 
 
97571
 
97572
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
97573
 
 
 
 
 
 
 
 
 
 
 
97574
 
97575
- Object.defineProperty(exports, "__esModule", ({
97576
- value: true
97577
- }));
97578
- exports.isvalidColorString = exports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;
 
 
 
 
 
 
 
 
97579
 
97580
- var _each = __webpack_require__(66073);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97581
 
97582
- var _each2 = _interopRequireDefault(_each);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97583
 
97584
- var _tinycolor = __webpack_require__(17621);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97585
 
97586
- var _tinycolor2 = _interopRequireDefault(_tinycolor);
 
 
 
 
 
 
 
 
 
 
 
 
97587
 
97588
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97589
 
97590
- var simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {
97591
- var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];
97592
- var checked = 0;
97593
- var passed = 0;
97594
- (0, _each2.default)(keysToCheck, function (letter) {
97595
- if (data[letter]) {
97596
- checked += 1;
97597
- if (!isNaN(data[letter])) {
97598
- passed += 1;
97599
  }
97600
- if (letter === 's' || letter === 'l') {
97601
- var percentPatt = /^\d+%$/;
97602
- if (percentPatt.test(data[letter])) {
97603
- passed += 1;
 
 
 
97604
  }
97605
  }
 
97606
  }
97607
- });
97608
- return checked === passed ? data : false;
97609
- };
97610
 
97611
- var toState = exports.toState = function toState(data, oldHue) {
97612
- var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);
97613
- var hsl = color.toHsl();
97614
- var hsv = color.toHsv();
97615
- var rgb = color.toRgb();
97616
- var hex = color.toHex();
97617
- if (hsl.s === 0) {
97618
- hsl.h = oldHue || 0;
97619
- hsv.h = oldHue || 0;
97620
- }
97621
- var transparent = hex === '000000' && rgb.a === 0;
97622
 
97623
- return {
97624
- hsl: hsl,
97625
- hex: transparent ? 'transparent' : '#' + hex,
97626
- rgb: rgb,
97627
- hsv: hsv,
97628
- oldHue: data.h || oldHue || hsl.h,
97629
- source: data.source
97630
- };
97631
- };
97632
 
97633
- var isValidHex = exports.isValidHex = function isValidHex(hex) {
97634
- if (hex === 'transparent') {
97635
- return true;
97636
- }
97637
- // disable hex4 and hex8
97638
- var lh = String(hex).charAt(0) === '#' ? 1 : 0;
97639
- return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();
97640
- };
 
 
 
 
 
97641
 
97642
- var getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {
97643
- if (!data) {
97644
- return '#fff';
97645
- }
97646
- var col = toState(data);
97647
- if (col.hex === 'transparent') {
97648
- return 'rgba(0,0,0,0.4)';
97649
- }
97650
- var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;
97651
- return yiq >= 128 ? '#000' : '#fff';
97652
- };
97653
 
97654
- var red = exports.red = {
97655
- hsl: { a: 1, h: 0, l: 0.5, s: 1 },
97656
- hex: '#ff0000',
97657
- rgb: { r: 255, g: 0, b: 0, a: 1 },
97658
- hsv: { h: 0, s: 1, v: 1, a: 1 }
97659
- };
97660
 
97661
- var isvalidColorString = exports.isvalidColorString = function isvalidColorString(string, type) {
97662
- var stringWithoutDegree = string.replace('°', '');
97663
- return (0, _tinycolor2.default)(type + ' (' + stringWithoutDegree + ')')._ok;
97664
- };
97665
 
97666
- /***/ }),
 
 
 
 
 
 
 
 
 
 
97667
 
97668
- /***/ 33716:
97669
- /***/ (function(__unused_webpack_module, exports) {
 
 
 
 
 
 
 
 
 
97670
 
97671
- "use strict";
 
 
 
 
 
 
 
 
 
 
97672
 
 
 
 
 
 
 
 
 
 
 
 
 
97673
 
97674
- Object.defineProperty(exports, "__esModule", ({
97675
- value: true
97676
- }));
97677
- var calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) {
97678
- var containerWidth = container.clientWidth;
97679
- var containerHeight = container.clientHeight;
97680
- var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;
97681
- var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;
97682
- var left = x - (container.getBoundingClientRect().left + window.pageXOffset);
97683
- var top = y - (container.getBoundingClientRect().top + window.pageYOffset);
97684
 
97685
- if (direction === 'vertical') {
97686
- var h = void 0;
97687
- if (top < 0) {
97688
- h = 359;
97689
- } else if (top > containerHeight) {
97690
- h = 0;
97691
- } else {
97692
- var percent = -(top * 100 / containerHeight) + 100;
97693
- h = 360 * percent / 100;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97694
  }
97695
 
97696
- if (hsl.h !== h) {
97697
- return {
97698
- h: h,
97699
- s: hsl.s,
97700
- l: hsl.l,
97701
- a: hsl.a,
97702
- source: 'hsl'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97703
  };
97704
  }
97705
- } else {
97706
- var _h = void 0;
97707
- if (left < 0) {
97708
- _h = 0;
97709
- } else if (left > containerWidth) {
97710
- _h = 359;
97711
- } else {
97712
- var _percent = left * 100 / containerWidth;
97713
- _h = 360 * _percent / 100;
97714
- }
97715
 
97716
- if (hsl.h !== _h) {
97717
- return {
97718
- h: _h,
97719
- s: hsl.s,
97720
- l: hsl.l,
97721
- a: hsl.a,
97722
- source: 'hsl'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97723
  };
97724
  }
97725
- }
97726
- return null;
97727
- };
97728
 
97729
- /***/ }),
 
 
 
 
 
 
 
 
 
 
 
 
97730
 
97731
- /***/ 82538:
97732
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 
 
 
97733
 
97734
- "use strict";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97735
 
 
 
 
 
 
 
 
 
 
 
 
97736
 
97737
- Object.defineProperty(exports, "__esModule", ({
97738
- value: true
97739
- }));
97740
- exports.handleFocus = undefined;
 
97741
 
97742
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
 
 
 
97743
 
97744
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
 
 
 
 
 
 
 
 
 
97745
 
97746
- var _react = __webpack_require__(67294);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97747
 
97748
- var _react2 = _interopRequireDefault(_react);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97749
 
97750
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
97751
 
97752
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
 
 
 
 
 
 
 
 
 
 
97753
 
97754
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
 
 
 
 
97755
 
97756
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */
 
 
 
 
 
 
97757
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97758
 
97759
- var handleFocus = exports.handleFocus = function handleFocus(Component) {
97760
- var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';
97761
- return function (_React$Component) {
97762
- _inherits(Focus, _React$Component);
97763
 
97764
- function Focus() {
97765
- var _ref;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97766
 
97767
- var _temp, _this, _ret;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97768
 
97769
- _classCallCheck(this, Focus);
 
 
 
 
 
 
 
 
 
 
 
 
97770
 
97771
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
97772
- args[_key] = arguments[_key];
97773
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97774
 
97775
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {
97776
- return _this.setState({ focus: true });
97777
- }, _this.handleBlur = function () {
97778
- return _this.setState({ focus: false });
97779
- }, _temp), _possibleConstructorReturn(_this, _ret);
 
 
 
 
 
 
 
 
 
 
 
 
97780
  }
97781
 
97782
- _createClass(Focus, [{
97783
- key: 'render',
97784
- value: function render() {
97785
- return _react2.default.createElement(
97786
- Span,
97787
- { onFocus: this.handleFocus, onBlur: this.handleBlur },
97788
- _react2.default.createElement(Component, _extends({}, this.props, this.state))
97789
- );
 
 
 
 
 
 
 
97790
  }
97791
- }]);
 
 
 
 
97792
 
97793
- return Focus;
97794
- }(_react2.default.Component);
97795
- };
3
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
4
  * please do not redistribute this plugin or the files without any written permission of the author.
5
  *
6
+ * If you need support:
7
+ * - pleae create a ticket: https://community.buttonizer.pro/tickets
8
+ * - or visit our community website: https://community.buttonizer.pro/
9
  *
10
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
11
  *
12
+ * (C) 2017-2021 Buttonizer v2.5.0
13
  *
14
  */
15
  /*!
17
  * This file is part of the Buttonizer plugin that is downloadable through Wordpress.org,
18
  * please do not redistribute this plugin or the files without any written permission of the author.
19
  *
20
+ * If you need support:
21
+ * - pleae create a ticket: https://community.buttonizer.pro/tickets
22
+ * - or visit our community website: https://community.buttonizer.pro/
23
  *
24
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
25
  *
26
+ * (C) 2017-2021 Buttonizer v2.5.0
27
  *
28
  */
29
  /******/ (function() { // webpackBootstrap
7248
 
7249
  /***/ }),
7250
 
7251
+ /***/ 23175:
7252
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
7253
 
7254
  "use strict";
7913
  ;// CONCATENATED MODULE: ./src/js/utils/buttonizer-constants.js
7914
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
7915
 
7916
+ /**
7917
+ * Constants
7918
  */
7919
  var buttonizer_constants_actionTypes = {
7920
  INIT: "INIT",
7983
  GET_DATA_FAILURE: "GET TEMPLATES DATA FAILURE",
7984
  GET_DATA_END: "GET TEMPLATES DATA END",
7985
 
7986
+ /**
7987
+ * Not used
7988
  */
7989
  ADD_RECORD: "ADDING TEMPLATE"
7990
  }
8027
  PAGE_RULES: "pagerules"
8028
  };
8029
  var formats = {
8030
+ /**
8031
+ * Combine values with normal;hover.
8032
  */
8033
  normal_hover: {
8034
  format: function format(normal, hover) {
8064
  }
8065
  },
8066
 
8067
+ /**
8068
+ * Px for four sides, for example for margin or padding.
8069
  */
8070
  fourSidesPx: {
8071
  format: function format(val1, val2, val3, val4) {
8078
  }
8079
  },
8080
 
8081
+ /**
8082
+ * Position format, example: 'bottom: 5px', or 'left: 10%'
8083
  */
8084
  position: {
8085
  format: function format(type, mode, value) {
8088
  }
8089
  };
8090
  var excludedPropertyRequests = (/* unused pure expression or super */ null && (["selected_schedule", "show_on_schedule_trigger", "selected_page_rule", "show_on_rule_trigger", "show_mobile", "show_desktop", "is_menu"]));
8091
+ var import_export = {
8092
+ propertiesToOmit: ["export_type", "selected_page_rule", "selected_schedule", "id", "parent", "show_on_rule_trigger", "show_on_schedule_trigger"],
8093
+ groupStyling: ["background_color", "background_is_image", "background_image", "border_radius", "show_label_desktop", "show_label_mobile", "label_color", "label_font_size", "label_font_family", "label_background_color", "label_border_radius", "label_margin", "label_padding"]
8094
+ };
8095
  // EXTERNAL MODULE: ./node_modules/axios/index.js
8096
  var axios = __webpack_require__(9669);
8097
  var axios_default = /*#__PURE__*/__webpack_require__.n(axios);
8225
 
8226
 
8227
 
8228
+ /**
8229
+ * Create api request
8230
+ *maar j
8231
+ * @param {*} endpoint
8232
+ * @param {*} data
8233
  */
8234
 
8235
  function apiRequest(endpoint, data) {
8239
  };
8240
  return axios_default()(data);
8241
  }
8242
+ /**
8243
+ * init store
8244
  */
8245
 
8246
  function init() {
8255
  }
8256
  };
8257
  }
8258
+ /**
8259
+ * Convert data to models
8260
+ *
8261
+ * @param result
8262
+ * @return {obj} converted data
8263
  */
8264
 
8265
  function convertData(result) {
8363
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/dataActions/index.js
8364
 
8365
 
8366
+ /**
8367
+ * Add model to store
8368
+ * @param {object} data
8369
+ * @param {string} model
8370
  */
8371
 
8372
  function addModel(data, model) {
8375
  payload: data
8376
  };
8377
  }
8378
+ /**
8379
+ * Add relation between button and group
8380
+ * @param {string} button_id
8381
+ * @param {string} group_id
8382
  */
8383
 
8384
  function dataActions_addRelation(button_id, group_id) {
8392
  }
8393
  };
8394
  }
8395
+ /**
8396
+ * Change relations (for drag n drop)
8397
+ * @param {string} button_id button id to change relations
8398
+ * @param {string} new_group_id new group id
8399
  */
8400
 
8401
  function dataActions_changeRelation(button_id, old_group_id, new_group_id, button_index) {
8409
  }
8410
  };
8411
  }
8412
+ /**
8413
+ * Remove relation between button and group
8414
+ * @param {string} button_id
8415
+ * @param {string} group_id
8416
  */
8417
 
8418
  function removeRelation(button_id, group_id) {
8424
  }
8425
  };
8426
  }
8427
+ /**
8428
+ * Set key of model id to value specified
8429
+ *
8430
+ * @param {string} model model of object to change value on
8431
+ * @param {string} id button or group id
8432
+ * @param {string} key key of value to change
8433
+ * @param {any} value new value to set
8434
  */
8435
 
8436
  var dataActions_set = function set(model, id, key, value) {
8466
  }
8467
  };
8468
  };
8469
+ /**
8470
+ * Time Schedule Actions
8471
  */
8472
  //
8473
 
8510
  }
8511
  };
8512
  };
8513
+ /**
8514
+ * Adds record to store
8515
+ * @param {object} payload data for new record
8516
+ * @param {String} model type of model
8517
  */
8518
 
8519
  function dataActions_addRecord(data, model) {
8526
  }
8527
  };
8528
  }
8529
+ /**
8530
+ * Removes record to store
8531
+ * @param {int} model_id id of model to remove
8532
+ * @param {String} model type of model
8533
  */
8534
 
8535
  function removeRecord(model_id, model) {
8540
  }
8541
  };
8542
  }
 
 
 
 
 
 
 
 
8543
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/selectors.js
 
 
 
 
 
8544
 
8545
  function getButtons(group_id) {
8546
  var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
8577
  if (!state.groups) return 0;
8578
  return Object.keys(state.groups).length;
8579
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8580
  ;// CONCATENATED MODULE: ./node_modules/immer/dist/immer.esm.js
8581
+ function n(n){for(var t=arguments.length,r=Array(t>1?t-1:0),e=1;e<t;e++)r[e-1]=arguments[e];if(false){ var i, o; }throw Error("[Immer] minified error nr: "+n+(r.length?" "+r.map((function(n){return"'"+n+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function t(n){return!!n&&!!n[Q]}function r(n){return!!n&&(function(n){if(!n||"object"!=typeof n)return!1;var t=Object.getPrototypeOf(n);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v(n))}function e(r){return t(r)||n(23,r),r[Q].t}function i(n,t,r){void 0===r&&(r=!1),0===o(n)?(r?Object.keys:nn)(n).forEach((function(e){r&&"symbol"==typeof e||t(e,n[e],n)})):n.forEach((function(r,e){return t(e,r,n)}))}function o(n){var t=n[Q];return t?t.i>3?t.i-4:t.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,t){return 2===o(n)?n.has(t):Object.prototype.hasOwnProperty.call(n,t)}function a(n,t){return 2===o(n)?n.get(t):n[t]}function f(n,t,r){var e=o(n);2===e?n.set(t,r):3===e?(n.delete(t),n.add(r)):n[t]=r}function c(n,t){return n===t?0!==n||1/n==1/t:n!=n&&t!=t}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var t=tn(n);delete t[Q];for(var r=nn(t),e=0;e<r.length;e++){var i=r[e],o=t[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(t[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),t)}function d(n,e){return void 0===e&&(e=!1),y(n)||t(n)||!r(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,t){return d(t,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b(t){var r=rn[t];return r||n(18,t),r}function m(n,t){rn[n]||(rn[n]=t)}function _(){return true||0,U}function j(n,t){t&&(b("Patches"),n.u=[],n.s=[],n.v=t)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var t=n[Q];0===t.i||1===t.i?t.j():t.O=!0}function P(t,e){e._=e.p.length;var i=e.p[0],o=void 0!==t&&t!==i;return e.h.g||b("ES5").S(e,t,o),o?(i[Q].P&&(O(e),n(4)),r(t)&&(t=M(e,t),e.l||x(e,t)),e.u&&b("Patches").M(i[Q],t,e.u,e.s)):t=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),t!==H?t:void 0}function M(n,t,r){if(y(t))return t;var e=t[Q];if(!e)return i(t,(function(i,o){return A(n,e,t,i,o,r)}),!0),t;if(e.A!==n)return t;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(t,i){return A(n,e,o,t,i,r)})),x(n,o,!1),r&&n.u&&b("Patches").R(e,r,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if( false&&0,t(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!t(v))return;e.m=!1}if(r(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,t,r){void 0===r&&(r=!1),n.h.F&&n.m&&d(t,r)}function z(n,t){var r=n[Q];return(r?p(r):n)[t]}function I(n,t){if(t in n)for(var r=Object.getPrototypeOf(n);r;){var e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=Object.getPrototypeOf(r)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,t,r){var e=s(t)?b("MapSet").N(t,r):v(t)?b("MapSet").T(t,r):n.g?function(n,t){var r=Array.isArray(n),e={i:r?1:0,A:t?t.A:_(),P:!1,I:!1,D:{},l:t,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;r&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(t,r):b("ES5").J(t,r);return(r?r.A:_()).p.push(e),e}function D(e){return t(e)||n(22,e),function n(t){if(!r(t))return t;var e,u=t[Q],c=o(t);if(u){if(!u.P&&(u.i<4||!b("ES5").K(u)))return u.t;u.I=!0,e=F(t,c),u.I=!1}else e=F(t,c);return i(e,(function(t,r){u&&a(u.t,t)===r||f(e,t,n(r))})),3===c?new Set(e):e}(e)}function F(n,t){switch(t){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function r(n,t){var r=s[n];return r?r.enumerable=t:s[n]=r={configurable:!0,enumerable:t,get:function(){var t=this[Q];return false&&0,en.get(t,n)},set:function(t){var r=this[Q]; false&&0,en.set(r,n,t)}},r}function e(n){for(var t=n.length-1;t>=0;t--){var r=n[t][Q];if(!r.P)switch(r.i){case 5:a(r)&&k(r);break;case 4:o(r)&&k(r)}}}function o(n){for(var t=n.t,r=n.k,e=nn(r),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=t[o];if(void 0===a&&!u(t,o))return!0;var f=r[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!t[Q];return e.length!==nn(t).length+(v?0:1)}function a(n){var t=n.k;if(t.length!==n.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}function f(t){t.O&&n(3,JSON.stringify(p(t)))}var s={};m("ES5",{J:function(n,t){var e=Array.isArray(n),i=function(n,t){if(n){for(var e=Array(t.length),i=0;i<t.length;i++)Object.defineProperty(e,""+i,r(i,!0));return e}var o=tn(t);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=r(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(t),o)}(e,n),o={i:e?5:4,A:t?t.A:_(),P:!1,I:!1,D:{},l:t,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,r,o){o?t(r)&&r[Q].A===n&&e(n.p):(n.u&&function n(t){if(t&&"object"==typeof t){var r=t[Q];if(r){var e=r.t,o=r.k,f=r.D,c=r.i;if(4===c)i(o,(function(t){t!==Q&&(void 0!==e[t]||u(e,t)?f[t]||n(o[t]):(f[t]=!0,k(r)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(r))}));else if(5===c){if(a(r)&&(k(r),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!r(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var t=Object.create(Object.getPrototypeOf(n));for(var i in n)t[i]=e(n[i]);return u(n,L)&&(t[L]=n[L]),t}function f(n){return t(n)?e(n):n}var c="add";m("Patches",{$:function(t,r){return r.forEach((function(r){for(var i=r.path,u=r.op,f=t,s=0;s<i.length-1;s++){var v=o(f),p=""+i[s];0!==v&&1!==v||"__proto__"!==p&&"constructor"!==p||n(24),"function"==typeof f&&"prototype"===p&&n(24),"object"!=typeof(f=a(f,p))&&n(15,i.join("/"))}var l=o(f),d=e(r.value),h=i[i.length-1];switch(u){case"replace":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case"remove":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(r.value);default:return delete f[h]}default:n(17,u)}})),t},R:function(n,t,r,e){switch(n.i){case 0:case 4:case 2:return function(n,t,r,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?"replace":c:"remove";if(v!==p||"replace"!==l){var d=t.concat(n);r.push("remove"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:"remove",path:d}:"remove"===l?{op:c,path:d,value:f(v)}:{op:"replace",path:d,value:f(v)})}}))}(n,t,r,e);case 5:case 1:return function(n,t,r,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,r];r=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=t.concat([v]);r.push({op:"replace",path:p,value:f(u[v])}),e.push({op:"replace",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=t.concat([l]);r.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:"replace",path:t.concat(["length"]),value:i.length})}(n,t,r,e);case 3:return function(n,t,r,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=t.concat([u]);r.push({op:"remove",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=t.concat([u]);r.push({op:c,path:o,value:n}),e.unshift({op:"remove",path:o,value:n})}u++}))}(n,t,r,e)}},M:function(n,t,r,e){r.push({op:"replace",path:[],value:t===H?void 0:t}),e.push({op:"replace",path:[],value:n.t})}})}function C(){function t(n,t){function r(){this.constructor=n}a(n,t),n.prototype=(r.prototype=t.prototype,new r)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(t){if(r(t)){var e=R(n.A.h,t,n);n.p.set(t,e),n.o.add(e)}else n.o.add(t)})))}function u(t){t.O&&n(3,JSON.stringify(p(t)))}var a=function(n,t){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r])})(n,t)},f=function(){function n(n,t){return this[Q]={i:2,l:t,A:t?t.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,O:!1},this}t(n,Map);var o=n.prototype;return Object.defineProperty(o,"size",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,t){var r=this[Q];return u(r),p(r).has(n)&&p(r).get(n)===t||(e(r),k(r),r.D.set(n,!0),r.o.set(n,t),r.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var t=this[Q];return u(t),e(t),k(t),t.D.set(n,!1),t.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(t){n.D.set(t,!1)})),n.o.clear())},o.forEach=function(n,t){var r=this;p(this[Q]).forEach((function(e,i){n.call(t,r.get(i),i,r)}))},o.get=function(n){var t=this[Q];u(t);var i=p(t).get(n);if(t.I||!r(i))return i;if(i!==t.t.get(n))return i;var o=R(t.A.h,i,t);return e(t),t.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,t=this,r=this.keys();return(n={})[V]=function(){return t.values()},n.next=function(){var n=r.next();return n.done?n:{done:!1,value:t.get(n.value)}},n},o.entries=function(){var n,t=this,r=this.keys();return(n={})[V]=function(){return t.entries()},n.next=function(){var n=r.next();if(n.done)return n;var e=t.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,t){return this[Q]={i:3,l:t,A:t?t.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,O:!1,C:!1},this}t(n,Set);var r=n.prototype;return Object.defineProperty(r,"size",{get:function(){return p(this[Q]).size}}),r.has=function(n){var t=this[Q];return u(t),t.o?!!t.o.has(n)||!(!t.p.has(n)||!t.o.has(t.p.get(n))):t.t.has(n)},r.add=function(n){var t=this[Q];return u(t),this.has(n)||(o(t),k(t),t.o.add(n)),this},r.delete=function(n){if(!this.has(n))return!1;var t=this[Q];return u(t),o(t),k(t),t.o.delete(n)||!!t.p.has(n)&&t.o.delete(t.p.get(n))},r.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},r.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},r.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},r.keys=function(){return this.values()},r[V]=function(){return this.values()},r.forEach=function(n,t){for(var r=this.values(),e=r.next();!e.done;)n.call(t,e.value,e.value,this),e=r.next()},n}();m("MapSet",{N:function(n,t){return new f(n,t)},T:function(n,t){return new c(n,t)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),X="undefined"!=typeof Map,q="undefined"!=typeof Set,B="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,H=W?Symbol.for("immer-nothing"):((G={})["immer-nothing"]=!0,G),L=W?Symbol.for("immer-draftable"):"__$immer_draftable",Q=W?Symbol.for("immer-state"):"__$immer_state",V="undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator",Y={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(n){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+n},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(n){return"Cannot apply patch, path doesn't resolve: "+n},16:'Sets cannot have "replace" patches.',17:function(n){return"Unsupported patch operation: "+n},18:function(n){return"The plugin for '"+n+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+n+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(n){return"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+n+"'"},22:function(n){return"'current' expects a draft, got: "+n},23:function(n){return"'original' expects a draft, got: "+n},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Z=""+Object.prototype.constructor,nn="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,tn=Object.getOwnPropertyDescriptors||function(n){var t={};return nn(n).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(n,r)})),t},rn={},en={get:function(n,t){if(t===Q)return n;var e=p(n);if(!u(e,t))return function(n,t,r){var e,i=I(t,r);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,t);var i=e[t];return n.I||!r(i)?i:i===z(n.t,t)?(E(n),n.o[t]=R(n.A.h,i,n)):i},has:function(n,t){return t in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,t,r){var e=I(p(n),t);if(null==e?void 0:e.set)return e.set.call(n.k,r),!0;if(!n.P){var i=z(p(n),t),o=null==i?void 0:i[Q];if(o&&o.t===r)return n.o[t]=r,n.D[t]=!1,!0;if(c(r,i)&&(void 0!==r||u(n.t,t)))return!0;E(n),k(n)}return n.o[t]===r&&"number"!=typeof r&&(void 0!==r||t in n.o)||(n.o[t]=r,n.D[t]=!0,!0)},deleteProperty:function(n,t){return void 0!==z(n.t,t)||t in n.t?(n.D[t]=!1,E(n),k(n)):delete n.D[t],n.o&&delete n.o[t],!0},getOwnPropertyDescriptor:function(n,t){var r=p(n),e=Reflect.getOwnPropertyDescriptor(r,t);return e?{writable:!0,configurable:1!==n.i||"length"!==t,enumerable:e.enumerable,value:r[t]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,t){on[n]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),on.deleteProperty=function(t,r){return false&&0,en.deleteProperty.call(this,t[0],r)},on.set=function(t,r,e){return false&&0,en.set.call(this,t[0],r,e,t[0])};var un=function(){function e(t){var e=this;this.g=B,this.F=!0,this.produce=function(t,i,o){if("function"==typeof t&&"function"!=typeof i){var u=i;i=t;var a=e;return function(n){var t=this;void 0===n&&(n=u);for(var r=arguments.length,e=Array(r>1?r-1:0),o=1;o<r;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var r;return(r=i).call.apply(r,[t,n].concat(e))}))}}var f;if("function"!=typeof i&&n(6),void 0!==o&&"function"!=typeof o&&n(7),r(t)){var c=w(e),s=R(e,t,void 0),v=!0;try{f=i(s),v=!1}finally{v?O(c):g(c)}return"undefined"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!t||"object"!=typeof t){if((f=i(t))===H)return;return void 0===f&&(f=t),e.F&&d(f,!0),f}n(21,t)},this.produceWithPatches=function(n,t){return"function"==typeof n?function(t){for(var r=arguments.length,i=Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];return e.produceWithPatches(t,(function(t){return n.apply(void 0,[t].concat(i))}))}:[e.produce(n,t,(function(n,t){r=n,i=t})),r,i];var r,i},"boolean"==typeof(null==t?void 0:t.useProxies)&&this.setUseProxies(t.useProxies),"boolean"==typeof(null==t?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){r(e)||n(8),t(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,g(i),o},i.finishDraft=function(t,r){var e=t&&t[Q]; false&&(0);var i=e.A;return j(i,r),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(t){t&&!B&&n(20),this.g=t},i.applyPatches=function(n,r){var e;for(e=r.length-1;e>=0;e--){var i=r[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}var o=b("Patches").$;return t(n)?o(n,r):this.produce(n,(function(n){return o(n,r.slice(e+1))}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);/* harmony default export */ var immer_esm = (fn);
8582
  //# sourceMappingURL=immer.esm.js.map
8583
 
8584
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/savingHelpers.js
8585
 
8586
 
8587
 
8588
+ /**
8589
+ * Generate JSON object
8590
+ * @returns {Array}
8591
  */
8592
 
8593
  function generateJSONObject(storeDataObject) {
8622
  });
8623
  return data;
8624
  }
8625
+ /**
8626
+ * Create api request
8627
+ *
8628
+ * @param {*} endpoint
8629
+ * @param {*} data
8630
  */
8631
 
8632
  function savingHelpers_apiRequest(endpoint, data) {
8636
  };
8637
  return axios_default()(data);
8638
  }
8639
+ /**
8640
+ * Reset Buttonizer
8641
  */
8642
 
8643
  function resetSettings() {
11107
  //# sourceMappingURL=index.js.map
11108
  ;// CONCATENATED MODULE: ./src/js/utils/reloadPreview.js
11109
 
11110
+ /**
11111
+ * Reload preview
11112
  */
11113
 
11114
  function reloadPreview(forceReloadPreview) {
11129
  }
11130
  }
11131
  ;// CONCATENATED MODULE: ./src/js/utils/reloadPreviewIframe.js
11132
+ /**
11133
+ * Force reload page
11134
  */
11135
  function reloadPreviewIframe() {
11136
  // Reload the iframe
11148
 
11149
  return null;
11150
  }
11151
+ // EXTERNAL MODULE: ./node_modules/lodash/merge.js
11152
+ var merge = __webpack_require__(82492);
11153
+ var merge_default = /*#__PURE__*/__webpack_require__.n(merge);
11154
  // EXTERNAL MODULE: ./node_modules/lodash/isEqual.js
11155
  var isEqual = __webpack_require__(18446);
11156
  var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);
11246
 
11247
  var timer = setTimeout(function () {});
11248
  var currentState = {};
11249
+ /**
11250
+ * Save groups & buttons
11251
  */
11252
 
11253
  function save() {
11396
  break;
11397
  }
11398
 
11399
+ /**
11400
+ * Button actions
11401
  */
11402
 
11403
  case buttonizer_constants_actionTypes.timeSchedules.SET_KEY_VALUE:
11406
  break;
11407
  }
11408
 
11409
+ /**
11410
+ * Time Schedule reducers
11411
  */
11412
 
11413
  case buttonizer_constants_actionTypes.timeSchedules.SET_WEEKDAY:
11513
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/reducers/pageRuleReducer.js
11514
 
11515
 
11516
+ /**
11517
+ * Page rule reducers
11518
  */
11519
 
11520
  /* harmony default export */ function pageRuleReducer() {
11848
  store.settings.loading = false;
11849
  break;
11850
 
11851
+ /**
11852
+ * Not used
11853
  */
11854
 
11855
  case buttonizer_constants_actionTypes.templates.ADD_RECORD:
11863
 
11864
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11865
 
11866
+ /**
11867
+ * Update preview data
11868
  */
11869
 
11870
  var listenTo = [buttonizer_constants_actionTypes.groups.SET_KEY_VALUE, buttonizer_constants_actionTypes.groups.SET_KEY_FORMAT, buttonizer_constants_actionTypes.buttons.SET_KEY_VALUE, buttonizer_constants_actionTypes.buttons.SET_KEY_FORMAT];
11951
 
11952
 
11953
 
11954
+ /**
11955
+ * Welcome to the Castore, proceed with caution
11956
  */
11957
 
11958
  var combinedReducers = combineReducers({
11966
  settings: settingReducer,
11967
  templates: templateReducer
11968
  });
11969
+ /**
11970
+ * Logs all actions and states after they are dispatched.
11971
  */
11972
  // const logger = store => next => action => {
11973
  // console.group(action.type);
11996
 
11997
  store_store.subscribe(save);
11998
  /* harmony default export */ var dashboard_store = (store_store);
11999
+ /**
12000
+ * Testing purposes only (templates)
12001
  */
12002
  // import { getTemplates } from "./actions/TemplateActions/helpers";
12003
  // window.getTemplates = getTemplates(store.dispatch);
13325
  /* harmony default export */ var Button_Button = ((0,withStyles/* default */.Z)(Button_styles, {
13326
  name: 'MuiButton'
13327
  })(Button));
13328
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
13329
+ function getBoundingClientRect(element) {
13330
+ var rect = element.getBoundingClientRect();
13331
+ return {
13332
+ width: rect.width,
13333
+ height: rect.height,
13334
+ top: rect.top,
13335
+ right: rect.right,
13336
+ bottom: rect.bottom,
13337
+ left: rect.left,
13338
+ x: rect.left,
13339
+ y: rect.top
13340
+ };
13341
+ }
13342
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
13343
+ function getWindow(node) {
13344
+ if (node == null) {
13345
+ return window;
13346
+ }
13347
 
13348
+ if (node.toString() !== '[object Window]') {
13349
+ var ownerDocument = node.ownerDocument;
13350
+ return ownerDocument ? ownerDocument.defaultView || window : window;
13351
+ }
13352
 
13353
+ return node;
13354
+ }
13355
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
13356
 
13357
+ function getWindowScroll(node) {
13358
+ var win = getWindow(node);
13359
+ var scrollLeft = win.pageXOffset;
13360
+ var scrollTop = win.pageYOffset;
13361
+ return {
13362
+ scrollLeft: scrollLeft,
13363
+ scrollTop: scrollTop
13364
+ };
13365
  }
13366
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
13367
 
 
13368
 
13369
+ function instanceOf_isElement(node) {
13370
+ var OwnElement = getWindow(node).Element;
13371
+ return node instanceof OwnElement || node instanceof Element;
13372
+ }
13373
 
13374
+ function isHTMLElement(node) {
13375
+ var OwnElement = getWindow(node).HTMLElement;
13376
+ return node instanceof OwnElement || node instanceof HTMLElement;
13377
+ }
 
 
 
13378
 
13379
+ function isShadowRoot(node) {
13380
+ // IE 11 has no ShadowRoot
13381
+ if (typeof ShadowRoot === 'undefined') {
13382
+ return false;
13383
+ }
13384
 
13385
+ var OwnElement = getWindow(node).ShadowRoot;
13386
+ return node instanceof OwnElement || node instanceof ShadowRoot;
13387
+ }
13388
+
13389
+
13390
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
13391
+ function getHTMLElementScroll(element) {
13392
  return {
13393
+ scrollLeft: element.scrollLeft,
13394
+ scrollTop: element.scrollTop
13395
+ };
13396
+ }
13397
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
 
 
13398
 
 
 
 
 
 
 
 
 
 
13399
 
 
 
 
 
13400
 
 
 
 
 
 
 
 
 
 
13401
 
13402
+ function getNodeScroll(node) {
13403
+ if (node === getWindow(node) || !isHTMLElement(node)) {
13404
+ return getWindowScroll(node);
13405
+ } else {
13406
+ return getHTMLElementScroll(node);
13407
+ }
13408
+ }
13409
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
13410
+ function getNodeName(element) {
13411
+ return element ? (element.nodeName || '').toLowerCase() : null;
13412
+ }
13413
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
13414
 
13415
+ function getDocumentElement(element) {
13416
+ // $FlowFixMe[incompatible-return]: assume body is always available
13417
+ return ((instanceOf_isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
13418
+ element.document) || window.document).documentElement;
13419
+ }
13420
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
13421
 
 
 
 
 
 
13422
 
13423
+
13424
+ function getWindowScrollBarX(element) {
13425
+ // If <html> has a CSS width greater than the viewport, then this will be
13426
+ // incorrect for RTL.
13427
+ // Popper 1 is broken in this case and never had a bug report so let's assume
13428
+ // it's not an issue. I don't think anyone ever specifies width on <html>
13429
+ // anyway.
13430
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
13431
+ // this (e.g. Edge 2019, IE11, Safari)
13432
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
13433
  }
13434
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
13435
 
13436
+ function getComputedStyle_getComputedStyle(element) {
13437
+ return getWindow(element).getComputedStyle(element);
13438
+ }
13439
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
 
 
 
 
13440
 
13441
+ function isScrollParent(element) {
13442
+ // Firefox wants us to check `-x` and `-y` variations as well
13443
+ var _getComputedStyle = getComputedStyle_getComputedStyle(element),
13444
+ overflow = _getComputedStyle.overflow,
13445
+ overflowX = _getComputedStyle.overflowX,
13446
+ overflowY = _getComputedStyle.overflowY;
13447
 
13448
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
13449
+ }
13450
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
 
13451
 
 
 
 
13452
 
 
 
 
 
 
13453
 
 
 
 
13454
 
13455
+
13456
+
13457
+ // Returns the composite rect of an element relative to its offsetParent.
13458
+ // Composite means it takes into account transforms as well as layout.
13459
+
13460
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
13461
+ if (isFixed === void 0) {
13462
+ isFixed = false;
13463
+ }
13464
+
13465
+ var documentElement = getDocumentElement(offsetParent);
13466
+ var rect = getBoundingClientRect(elementOrVirtualElement);
13467
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
13468
+ var scroll = {
13469
+ scrollLeft: 0,
13470
+ scrollTop: 0
13471
+ };
13472
+ var offsets = {
13473
+ x: 0,
13474
+ y: 0
13475
  };
13476
 
13477
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
13478
+ if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
13479
+ isScrollParent(documentElement)) {
13480
+ scroll = getNodeScroll(offsetParent);
 
 
13481
  }
 
13482
 
13483
+ if (isHTMLElement(offsetParent)) {
13484
+ offsets = getBoundingClientRect(offsetParent);
13485
+ offsets.x += offsetParent.clientLeft;
13486
+ offsets.y += offsetParent.clientTop;
13487
+ } else if (documentElement) {
13488
+ offsets.x = getWindowScrollBarX(documentElement);
13489
+ }
13490
+ }
13491
 
13492
+ return {
13493
+ x: rect.left + scroll.scrollLeft - offsets.x,
13494
+ y: rect.top + scroll.scrollTop - offsets.y,
13495
+ width: rect.width,
13496
+ height: rect.height
13497
+ };
13498
+ }
13499
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
13500
+ // Returns the layout rect of an element relative to its offsetParent. Layout
13501
+ // means it doesn't take into account transforms.
13502
 
13503
+ function getLayoutRect(element) {
13504
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
13505
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
 
 
 
 
 
 
13506
 
13507
+ var width = element.offsetWidth;
13508
+ var height = element.offsetHeight;
13509
 
13510
+ if (Math.abs(clientRect.width - width) <= 1) {
13511
+ width = clientRect.width;
13512
+ }
13513
 
13514
+ if (Math.abs(clientRect.height - height) <= 1) {
13515
+ height = clientRect.height;
13516
+ }
13517
 
13518
+ return {
13519
+ x: element.offsetLeft,
13520
+ y: element.offsetTop,
13521
+ width: width,
13522
+ height: height
13523
+ };
13524
+ }
13525
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
13526
 
13527
 
13528
 
13529
+ function getParentNode(element) {
13530
+ if (getNodeName(element) === 'html') {
13531
+ return element;
13532
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13533
 
13534
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
13535
+ // $FlowFixMe[incompatible-return]
13536
+ // $FlowFixMe[prop-missing]
13537
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
13538
+ element.parentNode || ( // DOM Element detected
13539
+ isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
13540
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
13541
+ getDocumentElement(element) // fallback
13542
 
13543
+ );
 
 
 
 
 
 
 
 
13544
  }
13545
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
13546
 
 
13547
 
 
 
 
 
 
 
 
13548
 
13549
 
13550
+ function getScrollParent(node) {
13551
+ if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
13552
+ // $FlowFixMe[incompatible-return]: assume body is always available
13553
+ return node.ownerDocument.body;
13554
+ }
13555
 
13556
+ if (isHTMLElement(node) && isScrollParent(node)) {
13557
+ return node;
13558
+ }
13559
 
13560
+ return getScrollParent(getParentNode(node));
13561
+ }
13562
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
13563
 
13564
 
13565
 
 
13566
 
13567
+ /*
13568
+ given a DOM element, return the list of all scroll parents, up the list of ancesors
13569
+ until we get to the top window object. This list is what we attach scroll listeners
13570
+ to, because if any of these parent elements scroll, we'll need to re-calculate the
13571
+ reference element's position.
13572
+ */
13573
 
13574
+ function listScrollParents(element, list) {
13575
+ var _element$ownerDocumen;
13576
+
13577
+ if (list === void 0) {
13578
+ list = [];
13579
  }
 
13580
 
13581
+ var scrollParent = getScrollParent(element);
13582
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
13583
+ var win = getWindow(scrollParent);
13584
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
13585
+ var updatedList = list.concat(target);
13586
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
13587
+ updatedList.concat(listScrollParents(getParentNode(target)));
13588
  }
13589
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
13590
 
13591
+ function isTableElement(element) {
13592
+ return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
 
 
13593
  }
13594
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
13595
 
 
 
 
 
 
13596
 
13597
+
13598
+
13599
+
13600
+
13601
+
13602
+ function getTrueOffsetParent(element) {
13603
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
13604
+ getComputedStyle_getComputedStyle(element).position === 'fixed') {
13605
+ return null;
13606
  }
 
13607
 
13608
+ return element.offsetParent;
13609
+ } // `.offsetParent` reports `null` for fixed elements, while absolute elements
13610
+ // return the containing block
13611
 
 
 
13612
 
13613
+ function getContainingBlock(element) {
13614
+ var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
13615
+ var isIE = navigator.userAgent.indexOf('Trident') !== -1;
 
 
 
13616
 
13617
+ if (isIE && isHTMLElement(element)) {
13618
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
13619
+ var elementCss = getComputedStyle_getComputedStyle(element);
13620
 
13621
+ if (elementCss.position === 'fixed') {
13622
+ return null;
 
 
 
 
 
13623
  }
13624
+ }
13625
 
13626
+ var currentNode = getParentNode(element);
 
 
13627
 
13628
+ while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
13629
+ var css = getComputedStyle_getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
13630
+ // create a containing block.
13631
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
13632
 
13633
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
13634
+ return currentNode;
 
 
13635
  } else {
13636
+ currentNode = currentNode.parentNode;
 
 
 
 
 
 
 
 
 
 
 
 
 
13637
  }
13638
+ }
13639
 
13640
+ return null;
13641
+ } // Gets the closest ancestor positioned element. Handles some edge cases,
13642
+ // such as table ancestors and cross browser bugs.
13643
 
 
 
 
13644
 
13645
+ function getOffsetParent(element) {
13646
+ var window = getWindow(element);
13647
+ var offsetParent = getTrueOffsetParent(element);
13648
 
13649
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle_getComputedStyle(offsetParent).position === 'static') {
13650
+ offsetParent = getTrueOffsetParent(offsetParent);
13651
+ }
 
13652
 
13653
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle_getComputedStyle(offsetParent).position === 'static')) {
13654
+ return window;
13655
+ }
13656
+
13657
+ return offsetParent || getContainingBlock(element) || window;
13658
+ }
13659
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/enums.js
13660
+ var enums_top = 'top';
13661
+ var bottom = 'bottom';
13662
+ var right = 'right';
13663
+ var left = 'left';
13664
+ var auto = 'auto';
13665
+ var basePlacements = [enums_top, bottom, right, left];
13666
+ var start = 'start';
13667
+ var end = 'end';
13668
+ var clippingParents = 'clippingParents';
13669
+ var viewport = 'viewport';
13670
+ var popper = 'popper';
13671
+ var reference = 'reference';
13672
+ var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
13673
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
13674
+ }, []);
13675
+ var enums_placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
13676
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
13677
+ }, []); // modifiers that need to read the DOM
13678
+
13679
+ var beforeRead = 'beforeRead';
13680
+ var read = 'read';
13681
+ var afterRead = 'afterRead'; // pure-logic modifiers
13682
+
13683
+ var beforeMain = 'beforeMain';
13684
+ var main = 'main';
13685
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
13686
+
13687
+ var beforeWrite = 'beforeWrite';
13688
+ var write = 'write';
13689
+ var afterWrite = 'afterWrite';
13690
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
13691
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/orderModifiers.js
13692
+ // source: https://stackoverflow.com/questions/49875255
13693
+
13694
+ function order(modifiers) {
13695
+ var map = new Map();
13696
+ var visited = new Set();
13697
+ var result = [];
13698
+ modifiers.forEach(function (modifier) {
13699
+ map.set(modifier.name, modifier);
13700
+ }); // On visiting object, check for its dependencies and visit them recursively
13701
+
13702
+ function sort(modifier) {
13703
+ visited.add(modifier.name);
13704
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
13705
+ requires.forEach(function (dep) {
13706
+ if (!visited.has(dep)) {
13707
+ var depModifier = map.get(dep);
13708
+
13709
+ if (depModifier) {
13710
+ sort(depModifier);
13711
+ }
13712
+ }
13713
+ });
13714
+ result.push(modifier);
13715
+ }
13716
+
13717
+ modifiers.forEach(function (modifier) {
13718
+ if (!visited.has(modifier.name)) {
13719
+ // check for visited object
13720
+ sort(modifier);
13721
+ }
13722
+ });
13723
+ return result;
13724
+ }
13725
+
13726
+ function orderModifiers(modifiers) {
13727
+ // order based on dependencies
13728
+ var orderedModifiers = order(modifiers); // order based on phase
13729
+
13730
+ return modifierPhases.reduce(function (acc, phase) {
13731
+ return acc.concat(orderedModifiers.filter(function (modifier) {
13732
+ return modifier.phase === phase;
13733
+ }));
13734
+ }, []);
13735
+ }
13736
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/debounce.js
13737
+ function debounce(fn) {
13738
+ var pending;
13739
+ return function () {
13740
+ if (!pending) {
13741
+ pending = new Promise(function (resolve) {
13742
+ Promise.resolve().then(function () {
13743
+ pending = undefined;
13744
+ resolve(fn());
13745
+ });
13746
+ });
13747
  }
13748
+
13749
+ return pending;
13750
  };
13751
+ }
13752
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergeByName.js
13753
+ function mergeByName(modifiers) {
13754
+ var merged = modifiers.reduce(function (merged, current) {
13755
+ var existing = merged[current.name];
13756
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
13757
+ options: Object.assign({}, existing.options, current.options),
13758
+ data: Object.assign({}, existing.data, current.data)
13759
+ }) : current;
13760
+ return merged;
13761
+ }, {}); // IE11 does not support Object.values
13762
 
13763
+ return Object.keys(merged).map(function (key) {
13764
+ return merged[key];
13765
+ });
13766
  }
13767
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/createPopper.js
13768
 
13769
+
13770
+
13771
+
13772
+
13773
+
13774
+
13775
+
13776
+
13777
+
13778
+
13779
+
13780
+
13781
+
13782
+ var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
13783
+ var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
13784
+ var DEFAULT_OPTIONS = {
13785
+ placement: 'bottom',
13786
+ modifiers: [],
13787
+ strategy: 'absolute'
13788
  };
13789
 
13790
+ function areValidElements() {
13791
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13792
+ args[_key] = arguments[_key];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13793
  }
13794
 
13795
+ return !args.some(function (element) {
13796
+ return !(element && typeof element.getBoundingClientRect === 'function');
13797
+ });
13798
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13799
 
13800
+ function popperGenerator(generatorOptions) {
13801
+ if (generatorOptions === void 0) {
13802
+ generatorOptions = {};
13803
+ }
13804
 
13805
+ var _generatorOptions = generatorOptions,
13806
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
13807
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
13808
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
13809
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
13810
+ return function createPopper(reference, popper, options) {
13811
+ if (options === void 0) {
13812
+ options = defaultOptions;
13813
+ }
 
13814
 
13815
+ var state = {
13816
+ placement: 'bottom',
13817
+ orderedModifiers: [],
13818
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
13819
+ modifiersData: {},
13820
+ elements: {
13821
+ reference: reference,
13822
+ popper: popper
13823
+ },
13824
+ attributes: {},
13825
+ styles: {}
13826
+ };
13827
+ var effectCleanupFns = [];
13828
+ var isDestroyed = false;
13829
+ var instance = {
13830
+ state: state,
13831
+ setOptions: function setOptions(options) {
13832
+ cleanupModifierEffects();
13833
+ state.options = Object.assign({}, defaultOptions, state.options, options);
13834
+ state.scrollParents = {
13835
+ reference: instanceOf_isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
13836
+ popper: listScrollParents(popper)
13837
+ }; // Orders the modifiers based on their dependencies and `phase`
13838
+ // properties
13839
+
13840
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
13841
+
13842
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
13843
+ return m.enabled;
13844
+ }); // Validate the provided modifiers so that the consumer will get warned
13845
+ // if one of the modifiers is invalid for any reason
13846
+
13847
+ if (false) { var _getComputedStyle, marginTop, marginRight, marginBottom, marginLeft, flipModifier, modifiers; }
13848
+
13849
+ runModifierEffects();
13850
+ return instance.update();
13851
+ },
13852
+ // Sync update – it will always be executed, even if not necessary. This
13853
+ // is useful for low frequency updates where sync behavior simplifies the
13854
+ // logic.
13855
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
13856
+ // prefer the async Popper#update method
13857
+ forceUpdate: function forceUpdate() {
13858
+ if (isDestroyed) {
13859
+ return;
13860
+ }
13861
 
13862
+ var _state$elements = state.elements,
13863
+ reference = _state$elements.reference,
13864
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
13865
+ // anymore
 
13866
 
13867
+ if (!areValidElements(reference, popper)) {
13868
+ if (false) {}
13869
 
13870
+ return;
13871
+ } // Store the reference and popper rects to be read by modifiers
13872
+
13873
+
13874
+ state.rects = {
13875
+ reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
13876
+ popper: getLayoutRect(popper)
13877
+ }; // Modifiers have the ability to reset the current update cycle. The
13878
+ // most common use case for this is the `flip` modifier changing the
13879
+ // placement, which then needs to re-run all the modifiers, because the
13880
+ // logic was previously ran for the previous placement and is therefore
13881
+ // stale/incorrect
13882
+
13883
+ state.reset = false;
13884
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
13885
+ // is filled with the initial data specified by the modifier. This means
13886
+ // it doesn't persist and is fresh on each update.
13887
+ // To ensure persistent data, use `${name}#persistent`
13888
+
13889
+ state.orderedModifiers.forEach(function (modifier) {
13890
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
13891
+ });
13892
+ var __debug_loops__ = 0;
13893
 
13894
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
13895
+ if (false) {}
 
 
 
 
 
13896
 
13897
+ if (state.reset === true) {
13898
+ state.reset = false;
13899
+ index = -1;
13900
+ continue;
13901
+ }
13902
 
13903
+ var _state$orderedModifie = state.orderedModifiers[index],
13904
+ fn = _state$orderedModifie.fn,
13905
+ _state$orderedModifie2 = _state$orderedModifie.options,
13906
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
13907
+ name = _state$orderedModifie.name;
13908
+
13909
+ if (typeof fn === 'function') {
13910
+ state = fn({
13911
+ state: state,
13912
+ options: _options,
13913
+ name: name,
13914
+ instance: instance
13915
+ }) || state;
13916
+ }
13917
+ }
13918
+ },
13919
+ // Async and optimistically optimized update – it will not be executed if
13920
+ // not necessary (debounced to run at most once-per-tick)
13921
+ update: debounce(function () {
13922
+ return new Promise(function (resolve) {
13923
+ instance.forceUpdate();
13924
+ resolve(state);
13925
+ });
13926
+ }),
13927
+ destroy: function destroy() {
13928
+ cleanupModifierEffects();
13929
+ isDestroyed = true;
13930
+ }
13931
+ };
13932
 
13933
+ if (!areValidElements(reference, popper)) {
13934
+ if (false) {}
 
13935
 
13936
+ return instance;
13937
+ }
13938
 
13939
+ instance.setOptions(options).then(function (state) {
13940
+ if (!isDestroyed && options.onFirstUpdate) {
13941
+ options.onFirstUpdate(state);
13942
+ }
13943
+ }); // Modifiers have the ability to execute arbitrary code before the first
13944
+ // update cycle runs. They will be executed in the same order as the update
13945
+ // cycle. This is useful when a modifier adds some persistent data that
13946
+ // other modifiers need to use, but the modifier is run after the dependent
13947
+ // one.
13948
 
13949
+ function runModifierEffects() {
13950
+ state.orderedModifiers.forEach(function (_ref3) {
13951
+ var name = _ref3.name,
13952
+ _ref3$options = _ref3.options,
13953
+ options = _ref3$options === void 0 ? {} : _ref3$options,
13954
+ effect = _ref3.effect;
13955
 
13956
+ if (typeof effect === 'function') {
13957
+ var cleanupFn = effect({
13958
+ state: state,
13959
+ name: name,
13960
+ instance: instance,
13961
+ options: options
13962
+ });
13963
 
13964
+ var noopFn = function noopFn() {};
 
 
13965
 
13966
+ effectCleanupFns.push(cleanupFn || noopFn);
13967
+ }
13968
+ });
13969
+ }
13970
 
13971
+ function cleanupModifierEffects() {
13972
+ effectCleanupFns.forEach(function (fn) {
13973
+ return fn();
13974
+ });
13975
+ effectCleanupFns = [];
13976
+ }
13977
 
13978
+ return instance;
13979
+ };
13980
+ }
13981
+ var createPopper = /*#__PURE__*/(/* unused pure expression or super */ null && (popperGenerator())); // eslint-disable-next-line import/no-unused-modules
13982
 
 
 
 
 
 
 
 
 
13983
 
13984
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js
13985
+ // eslint-disable-next-line import/no-unused-modules
13986
 
13987
+ var passive = {
13988
+ passive: true
13989
+ };
 
 
13990
 
13991
+ function effect(_ref) {
13992
+ var state = _ref.state,
13993
+ instance = _ref.instance,
13994
+ options = _ref.options;
13995
+ var _options$scroll = options.scroll,
13996
+ scroll = _options$scroll === void 0 ? true : _options$scroll,
13997
+ _options$resize = options.resize,
13998
+ resize = _options$resize === void 0 ? true : _options$resize;
13999
+ var window = getWindow(state.elements.popper);
14000
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
14001
+
14002
+ if (scroll) {
14003
+ scrollParents.forEach(function (scrollParent) {
14004
+ scrollParent.addEventListener('scroll', instance.update, passive);
14005
+ });
14006
+ }
14007
 
14008
+ if (resize) {
14009
+ window.addEventListener('resize', instance.update, passive);
14010
+ }
14011
 
14012
+ return function () {
14013
+ if (scroll) {
14014
+ scrollParents.forEach(function (scrollParent) {
14015
+ scrollParent.removeEventListener('scroll', instance.update, passive);
14016
+ });
14017
+ }
14018
 
14019
+ if (resize) {
14020
+ window.removeEventListener('resize', instance.update, passive);
14021
+ }
14022
+ };
14023
+ } // eslint-disable-next-line import/no-unused-modules
14024
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14025
 
14026
+ /* harmony default export */ var eventListeners = ({
14027
+ name: 'eventListeners',
14028
+ enabled: true,
14029
+ phase: 'write',
14030
+ fn: function fn() {},
14031
+ effect: effect,
14032
+ data: {}
14033
+ });
14034
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js
14035
 
14036
+ function getBasePlacement(placement) {
14037
+ return placement.split('-')[0];
14038
+ }
14039
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getVariation.js
14040
+ function getVariation(placement) {
14041
+ return placement.split('-')[1];
14042
+ }
14043
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
14044
+ function getMainAxisFromPlacement(placement) {
14045
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
14046
+ }
14047
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeOffsets.js
14048
 
 
14049
 
 
 
14050
 
 
 
 
 
 
 
14051
 
14052
+ function computeOffsets(_ref) {
14053
+ var reference = _ref.reference,
14054
+ element = _ref.element,
14055
+ placement = _ref.placement;
14056
+ var basePlacement = placement ? getBasePlacement(placement) : null;
14057
+ var variation = placement ? getVariation(placement) : null;
14058
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
14059
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
14060
+ var offsets;
14061
 
14062
+ switch (basePlacement) {
14063
+ case enums_top:
14064
+ offsets = {
14065
+ x: commonX,
14066
+ y: reference.y - element.height
14067
+ };
14068
+ break;
14069
 
14070
+ case bottom:
14071
+ offsets = {
14072
+ x: commonX,
14073
+ y: reference.y + reference.height
14074
+ };
14075
+ break;
14076
 
14077
+ case right:
14078
+ offsets = {
14079
+ x: reference.x + reference.width,
14080
+ y: commonY
14081
+ };
14082
+ break;
14083
 
14084
+ case left:
14085
+ offsets = {
14086
+ x: reference.x - element.width,
14087
+ y: commonY
14088
+ };
14089
+ break;
 
 
 
 
14090
 
14091
+ default:
14092
+ offsets = {
14093
+ x: reference.x,
14094
+ y: reference.y
14095
+ };
 
 
 
 
14096
  }
 
14097
 
14098
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
 
14099
 
14100
+ if (mainAxis != null) {
14101
+ var len = mainAxis === 'y' ? 'height' : 'width';
 
14102
 
14103
+ switch (variation) {
14104
+ case start:
14105
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
14106
+ break;
14107
 
14108
+ case end:
14109
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
14110
+ break;
14111
+
14112
+ default:
14113
  }
14114
  }
14115
 
14116
+ return offsets;
14117
  }
14118
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
14119
 
 
 
 
14120
 
14121
+ function popperOffsets(_ref) {
14122
+ var state = _ref.state,
14123
+ name = _ref.name;
14124
+ // Offsets are the actual position the popper needs to have to be
14125
+ // properly positioned near its reference element
14126
+ // This is the most basic placement, and will be adjusted by
14127
+ // the modifiers in the next step
14128
+ state.modifiersData[name] = computeOffsets({
14129
+ reference: state.rects.reference,
14130
+ element: state.rects.popper,
14131
+ strategy: 'absolute',
14132
+ placement: state.placement
14133
+ });
14134
+ } // eslint-disable-next-line import/no-unused-modules
14135
 
 
 
 
 
 
 
 
 
 
 
14136
 
14137
+ /* harmony default export */ var modifiers_popperOffsets = ({
14138
+ name: 'popperOffsets',
14139
+ enabled: true,
14140
+ phase: 'read',
14141
+ fn: popperOffsets,
14142
+ data: {}
14143
+ });
14144
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/math.js
14145
+ var math_max = Math.max;
14146
+ var math_min = Math.min;
14147
+ var round = Math.round;
14148
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js
 
 
14149
 
 
 
 
14150
 
 
 
 
14151
 
14152
 
 
14153
 
 
 
 
 
14154
 
14155
+ // eslint-disable-next-line import/no-unused-modules
 
 
 
 
14156
 
14157
+ var unsetSides = {
14158
+ top: 'auto',
14159
+ right: 'auto',
14160
+ bottom: 'auto',
14161
+ left: 'auto'
14162
+ }; // Round the offsets to the nearest suitable subpixel based on the DPR.
14163
+ // Zooming can change the DPR, but it seems to report a value that will
14164
+ // cleanly divide the values into the appropriate subpixels.
14165
 
14166
+ function roundOffsetsByDPR(_ref) {
14167
+ var x = _ref.x,
14168
+ y = _ref.y;
14169
+ var win = window;
14170
+ var dpr = win.devicePixelRatio || 1;
14171
+ return {
14172
+ x: round(round(x * dpr) / dpr) || 0,
14173
+ y: round(round(y * dpr) / dpr) || 0
14174
  };
14175
  }
 
14176
 
14177
+ function mapToStyles(_ref2) {
14178
+ var _Object$assign2;
14179
 
14180
+ var popper = _ref2.popper,
14181
+ popperRect = _ref2.popperRect,
14182
+ placement = _ref2.placement,
14183
+ offsets = _ref2.offsets,
14184
+ position = _ref2.position,
14185
+ gpuAcceleration = _ref2.gpuAcceleration,
14186
+ adaptive = _ref2.adaptive,
14187
+ roundOffsets = _ref2.roundOffsets;
 
 
 
 
 
 
 
 
 
14188
 
14189
+ var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
14190
+ _ref3$x = _ref3.x,
14191
+ x = _ref3$x === void 0 ? 0 : _ref3$x,
14192
+ _ref3$y = _ref3.y,
14193
+ y = _ref3$y === void 0 ? 0 : _ref3$y;
 
 
 
 
 
14194
 
14195
+ var hasX = offsets.hasOwnProperty('x');
14196
+ var hasY = offsets.hasOwnProperty('y');
14197
+ var sideX = left;
14198
+ var sideY = enums_top;
14199
+ var win = window;
14200
 
14201
+ if (adaptive) {
14202
+ var offsetParent = getOffsetParent(popper);
14203
+ var heightProp = 'clientHeight';
14204
+ var widthProp = 'clientWidth';
 
 
 
 
 
 
 
 
14205
 
14206
+ if (offsetParent === getWindow(popper)) {
14207
+ offsetParent = getDocumentElement(popper);
14208
+
14209
+ if (getComputedStyle_getComputedStyle(offsetParent).position !== 'static') {
14210
+ heightProp = 'scrollHeight';
14211
+ widthProp = 'scrollWidth';
14212
  }
14213
+ } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
14214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14215
 
14216
+ offsetParent = offsetParent;
14217
 
14218
+ if (placement === enums_top) {
14219
+ sideY = bottom; // $FlowFixMe[prop-missing]
 
 
 
 
 
 
 
 
 
 
 
 
 
14220
 
14221
+ y -= offsetParent[heightProp] - popperRect.height;
14222
+ y *= gpuAcceleration ? 1 : -1;
14223
+ }
 
 
 
 
 
 
14224
 
14225
+ if (placement === left) {
14226
+ sideX = right; // $FlowFixMe[prop-missing]
14227
+
14228
+ x -= offsetParent[widthProp] - popperRect.width;
14229
+ x *= gpuAcceleration ? 1 : -1;
14230
+ }
14231
  }
14232
 
14233
+ var commonStyles = Object.assign({
14234
+ position: position
14235
+ }, adaptive && unsetSides);
14236
+
14237
+ if (gpuAcceleration) {
14238
+ var _Object$assign;
14239
+
14240
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
14241
  }
14242
 
14243
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
14244
+ }
14245
+
14246
+ function computeStyles(_ref4) {
14247
+ var state = _ref4.state,
14248
+ options = _ref4.options;
14249
+ var _options$gpuAccelerat = options.gpuAcceleration,
14250
+ gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
14251
+ _options$adaptive = options.adaptive,
14252
+ adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
14253
+ _options$roundOffsets = options.roundOffsets,
14254
+ roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
14255
+
14256
+ if (false) { var transitionProperty; }
14257
+
14258
+ var commonStyles = {
14259
+ placement: getBasePlacement(state.placement),
14260
+ popper: state.elements.popper,
14261
+ popperRect: state.rects.popper,
14262
+ gpuAcceleration: gpuAcceleration
14263
+ };
14264
+
14265
+ if (state.modifiersData.popperOffsets != null) {
14266
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
14267
+ offsets: state.modifiersData.popperOffsets,
14268
+ position: state.options.strategy,
14269
+ adaptive: adaptive,
14270
+ roundOffsets: roundOffsets
14271
+ })));
14272
  }
14273
 
14274
+ if (state.modifiersData.arrow != null) {
14275
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
14276
+ offsets: state.modifiersData.arrow,
14277
+ position: 'absolute',
14278
+ adaptive: false,
14279
+ roundOffsets: roundOffsets
14280
+ })));
 
 
14281
  }
14282
 
14283
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
14284
+ 'data-popper-placement': state.placement
14285
+ });
14286
+ } // eslint-disable-next-line import/no-unused-modules
 
 
 
 
14287
 
 
 
 
 
 
14288
 
14289
+ /* harmony default export */ var modifiers_computeStyles = ({
14290
+ name: 'computeStyles',
14291
+ enabled: true,
14292
+ phase: 'beforeWrite',
14293
+ fn: computeStyles,
14294
+ data: {}
14295
+ });
14296
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js
14297
 
14298
+ // This modifier takes the styles prepared by the `computeStyles` modifier
14299
+ // and applies them to the HTMLElements such as popper and arrow
14300
 
14301
+ function applyStyles(_ref) {
14302
+ var state = _ref.state;
14303
+ Object.keys(state.elements).forEach(function (name) {
14304
+ var style = state.styles[name] || {};
14305
+ var attributes = state.attributes[name] || {};
14306
+ var element = state.elements[name]; // arrow is optional + virtual elements
14307
 
14308
+ if (!isHTMLElement(element) || !getNodeName(element)) {
14309
+ return;
14310
+ } // Flow doesn't support to extend this property, but it's the most
14311
+ // effective way to apply styles to an HTMLElement
14312
+ // $FlowFixMe[cannot-write]
14313
 
14314
 
14315
+ Object.assign(element.style, style);
14316
+ Object.keys(attributes).forEach(function (name) {
14317
+ var value = attributes[name];
14318
 
14319
+ if (value === false) {
14320
+ element.removeAttribute(name);
14321
+ } else {
14322
+ element.setAttribute(name, value === true ? '' : value);
14323
+ }
14324
+ });
14325
+ });
14326
+ }
14327
 
14328
+ function applyStyles_effect(_ref2) {
14329
+ var state = _ref2.state;
14330
+ var initialStyles = {
14331
+ popper: {
14332
+ position: state.options.strategy,
14333
+ left: '0',
14334
+ top: '0',
14335
+ margin: '0'
14336
+ },
14337
+ arrow: {
14338
+ position: 'absolute'
14339
+ },
14340
+ reference: {}
14341
+ };
14342
+ Object.assign(state.elements.popper.style, initialStyles.popper);
14343
+ state.styles = initialStyles;
14344
 
14345
+ if (state.elements.arrow) {
14346
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
14347
+ }
14348
 
14349
+ return function () {
14350
+ Object.keys(state.elements).forEach(function (name) {
14351
+ var element = state.elements[name];
14352
+ var attributes = state.attributes[name] || {};
14353
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
14354
 
14355
+ var style = styleProperties.reduce(function (style, property) {
14356
+ style[property] = '';
14357
+ return style;
14358
+ }, {}); // arrow is optional + virtual elements
 
 
 
 
 
 
 
 
 
 
 
 
14359
 
14360
+ if (!isHTMLElement(element) || !getNodeName(element)) {
14361
+ return;
14362
+ }
 
 
14363
 
14364
+ Object.assign(element.style, style);
14365
+ Object.keys(attributes).forEach(function (attribute) {
14366
+ element.removeAttribute(attribute);
14367
+ });
14368
+ });
14369
  };
14370
+ } // eslint-disable-next-line import/no-unused-modules
14371
 
 
 
 
 
14372
 
14373
+ /* harmony default export */ var modifiers_applyStyles = ({
14374
+ name: 'applyStyles',
14375
+ enabled: true,
14376
+ phase: 'write',
14377
+ fn: applyStyles,
14378
+ effect: applyStyles_effect,
14379
+ requires: ['computeStyles']
14380
+ });
14381
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/offset.js
14382
 
 
 
 
 
 
 
 
 
 
 
 
 
14383
 
14384
+ function distanceAndSkiddingToXY(placement, rects, offset) {
14385
+ var basePlacement = getBasePlacement(placement);
14386
+ var invertDistance = [left, enums_top].indexOf(basePlacement) >= 0 ? -1 : 1;
 
14387
 
14388
+ var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
14389
+ placement: placement
14390
+ })) : offset,
14391
+ skidding = _ref[0],
14392
+ distance = _ref[1];
 
 
 
 
 
 
 
14393
 
14394
+ skidding = skidding || 0;
14395
+ distance = (distance || 0) * invertDistance;
14396
+ return [left, right].indexOf(basePlacement) >= 0 ? {
14397
+ x: distance,
14398
+ y: skidding
14399
+ } : {
14400
+ x: skidding,
14401
+ y: distance
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14402
  };
14403
  }
 
 
14404
 
14405
+ function offset(_ref2) {
14406
+ var state = _ref2.state,
14407
+ options = _ref2.options,
14408
+ name = _ref2.name;
14409
+ var _options$offset = options.offset,
14410
+ offset = _options$offset === void 0 ? [0, 0] : _options$offset;
14411
+ var data = enums_placements.reduce(function (acc, placement) {
14412
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
14413
+ return acc;
14414
+ }, {});
14415
+ var _data$state$placement = data[state.placement],
14416
+ x = _data$state$placement.x,
14417
+ y = _data$state$placement.y;
14418
 
14419
+ if (state.modifiersData.popperOffsets != null) {
14420
+ state.modifiersData.popperOffsets.x += x;
14421
+ state.modifiersData.popperOffsets.y += y;
14422
+ }
 
 
 
 
 
 
 
 
 
 
 
 
14423
 
14424
+ state.modifiersData[name] = data;
14425
+ } // eslint-disable-next-line import/no-unused-modules
14426
 
 
14427
 
14428
+ /* harmony default export */ var modifiers_offset = ({
14429
+ name: 'offset',
14430
+ enabled: true,
14431
+ phase: 'main',
14432
+ requires: ['popperOffsets'],
14433
+ fn: offset
14434
+ });
14435
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
14436
+ var hash = {
14437
+ left: 'right',
14438
+ right: 'left',
14439
+ bottom: 'top',
14440
+ top: 'bottom'
14441
+ };
14442
+ function getOppositePlacement(placement) {
14443
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
14444
+ return hash[matched];
14445
+ });
14446
  }
14447
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
14448
+ var getOppositeVariationPlacement_hash = {
14449
+ start: 'end',
14450
+ end: 'start'
14451
+ };
14452
+ function getOppositeVariationPlacement(placement) {
14453
+ return placement.replace(/start|end/g, function (matched) {
14454
+ return getOppositeVariationPlacement_hash[matched];
14455
+ });
14456
+ }
14457
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
14458
 
14459
 
14460
 
14461
+ function getViewportRect(element) {
14462
+ var win = getWindow(element);
14463
+ var html = getDocumentElement(element);
14464
+ var visualViewport = win.visualViewport;
14465
+ var width = html.clientWidth;
14466
+ var height = html.clientHeight;
14467
+ var x = 0;
14468
+ var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper
14469
+ // can be obscured underneath it.
14470
+ // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
14471
+ // if it isn't open, so if this isn't available, the popper will be detected
14472
+ // to overflow the bottom of the screen too early.
14473
 
14474
+ if (visualViewport) {
14475
+ width = visualViewport.width;
14476
+ height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)
14477
+ // In Chrome, it returns a value very close to 0 (+/-) but contains rounding
14478
+ // errors due to floating point numbers, so we need to check precision.
14479
+ // Safari returns a number <= 0, usually < -1 when pinch-zoomed
14480
+ // Feature detection fails in mobile emulation mode in Chrome.
14481
+ // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
14482
+ // 0.001
14483
+ // Fallback here: "Not Safari" userAgent
14484
 
14485
+ if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
14486
+ x = visualViewport.offsetLeft;
14487
+ y = visualViewport.offsetTop;
14488
+ }
14489
+ }
 
14490
 
14491
+ return {
14492
+ width: width,
14493
+ height: height,
14494
+ x: x + getWindowScrollBarX(element),
14495
+ y: y
14496
  };
14497
  }
14498
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14499
 
 
 
14500
 
14501
 
 
 
 
 
 
 
14502
 
14503
+ // Gets the entire size of the scrollable document area, even extending outside
14504
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable
14505
+
14506
+ function getDocumentRect(element) {
14507
+ var _element$ownerDocumen;
14508
+
14509
+ var html = getDocumentElement(element);
14510
+ var winScroll = getWindowScroll(element);
14511
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
14512
+ var width = math_max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
14513
+ var height = math_max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
14514
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
14515
+ var y = -winScroll.scrollTop;
14516
+
14517
+ if (getComputedStyle_getComputedStyle(body || html).direction === 'rtl') {
14518
+ x += math_max(html.clientWidth, body ? body.clientWidth : 0) - width;
14519
  }
14520
 
14521
+ return {
14522
+ width: width,
14523
+ height: height,
14524
+ x: x,
14525
+ y: y
14526
  };
14527
  }
14528
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/contains.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14529
 
14530
+ function contains(parent, child) {
14531
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
14532
 
14533
+ if (parent.contains(child)) {
14534
+ return true;
14535
+ } // then fallback to custom implementation with Shadow DOM support
14536
+ else if (rootNode && isShadowRoot(rootNode)) {
14537
+ var next = child;
14538
 
14539
+ do {
14540
+ if (next && parent.isSameNode(next)) {
14541
+ return true;
14542
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
14543
 
14544
 
14545
+ next = next.parentNode || next.host;
14546
+ } while (next);
14547
+ } // Give up, the result is false
14548
 
14549
 
14550
+ return false;
14551
+ }
14552
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js
14553
+ function rectToClientRect(rect) {
14554
+ return Object.assign({}, rect, {
14555
+ left: rect.x,
14556
+ top: rect.y,
14557
+ right: rect.x + rect.width,
14558
+ bottom: rect.y + rect.height
14559
+ });
14560
+ }
14561
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
14562
 
 
 
 
 
 
14563
 
 
 
 
 
 
 
 
 
 
14564
 
 
 
 
14565
 
 
 
 
 
 
 
 
 
 
 
 
 
14566
 
 
 
14567
 
 
 
 
 
 
 
 
 
 
 
14568
 
 
 
 
14569
 
 
 
 
 
 
 
 
 
14570
 
 
 
14571
 
14572
+
14573
+
14574
+
14575
+
14576
+
14577
+ function getInnerBoundingClientRect(element) {
14578
+ var rect = getBoundingClientRect(element);
14579
+ rect.top = rect.top + element.clientTop;
14580
+ rect.left = rect.left + element.clientLeft;
14581
+ rect.bottom = rect.top + element.clientHeight;
14582
+ rect.right = rect.left + element.clientWidth;
14583
+ rect.width = element.clientWidth;
14584
+ rect.height = element.clientHeight;
14585
+ rect.x = rect.left;
14586
+ rect.y = rect.top;
14587
+ return rect;
14588
  }
 
 
 
 
 
 
14589
 
14590
+ function getClientRectFromMixedType(element, clippingParent) {
14591
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
14592
+ } // A "clipping parent" is an overflowable container with the characteristic of
14593
+ // clipping (or hiding) overflowing elements with a position different from
14594
+ // `initial`
14595
 
 
 
 
 
14596
 
14597
+ function getClippingParents(element) {
14598
+ var clippingParents = listScrollParents(getParentNode(element));
14599
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle_getComputedStyle(element).position) >= 0;
14600
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
 
 
 
14601
 
14602
+ if (!instanceOf_isElement(clipperElement)) {
14603
+ return [];
14604
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
14605
 
 
 
 
14606
 
14607
+ return clippingParents.filter(function (clippingParent) {
14608
+ return instanceOf_isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
14609
+ });
14610
+ } // Gets the maximum area that the element is visible in due to any number of
14611
+ // clipping parents
14612
+
14613
+
14614
+ function getClippingRect(element, boundary, rootBoundary) {
14615
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
14616
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
14617
+ var firstClippingParent = clippingParents[0];
14618
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
14619
+ var rect = getClientRectFromMixedType(element, clippingParent);
14620
+ accRect.top = math_max(rect.top, accRect.top);
14621
+ accRect.right = math_min(rect.right, accRect.right);
14622
+ accRect.bottom = math_min(rect.bottom, accRect.bottom);
14623
+ accRect.left = math_max(rect.left, accRect.left);
14624
+ return accRect;
14625
+ }, getClientRectFromMixedType(element, firstClippingParent));
14626
+ clippingRect.width = clippingRect.right - clippingRect.left;
14627
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
14628
+ clippingRect.x = clippingRect.left;
14629
+ clippingRect.y = clippingRect.top;
14630
+ return clippingRect;
14631
+ }
14632
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
14633
+ function getFreshSideObject() {
14634
+ return {
14635
+ top: 0,
14636
+ right: 0,
14637
+ bottom: 0,
14638
+ left: 0
14639
  };
14640
  }
14641
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14642
 
14643
+ function mergePaddingObject(paddingObject) {
14644
+ return Object.assign({}, getFreshSideObject(), paddingObject);
14645
+ }
14646
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js
14647
+ function expandToHashMap(value, keys) {
14648
+ return keys.reduce(function (hashMap, key) {
14649
+ hashMap[key] = value;
14650
+ return hashMap;
14651
+ }, {});
14652
+ }
14653
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/detectOverflow.js
14654
 
 
14655
 
14656
 
14657
 
14659
 
14660
 
14661
 
14662
+ // eslint-disable-next-line import/no-unused-modules
14663
 
14664
+ function detectOverflow(state, options) {
14665
+ if (options === void 0) {
14666
+ options = {};
14667
+ }
14668
 
14669
+ var _options = options,
14670
+ _options$placement = _options.placement,
14671
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
14672
+ _options$boundary = _options.boundary,
14673
+ boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
14674
+ _options$rootBoundary = _options.rootBoundary,
14675
+ rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
14676
+ _options$elementConte = _options.elementContext,
14677
+ elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
14678
+ _options$altBoundary = _options.altBoundary,
14679
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
14680
+ _options$padding = _options.padding,
14681
+ padding = _options$padding === void 0 ? 0 : _options$padding;
14682
+ var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
14683
+ var altContext = elementContext === popper ? reference : popper;
14684
+ var referenceElement = state.elements.reference;
14685
+ var popperRect = state.rects.popper;
14686
+ var element = state.elements[altBoundary ? altContext : elementContext];
14687
+ var clippingClientRect = getClippingRect(instanceOf_isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
14688
+ var referenceClientRect = getBoundingClientRect(referenceElement);
14689
+ var popperOffsets = computeOffsets({
14690
+ reference: referenceClientRect,
14691
+ element: popperRect,
14692
+ strategy: 'absolute',
14693
+ placement: placement
14694
+ });
14695
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
14696
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
14697
+ // 0 or negative = within the clipping rect
14698
+
14699
+ var overflowOffsets = {
14700
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
14701
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
14702
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
14703
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
14704
+ };
14705
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
14706
+
14707
+ if (elementContext === popper && offsetData) {
14708
+ var offset = offsetData[placement];
14709
+ Object.keys(overflowOffsets).forEach(function (key) {
14710
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
14711
+ var axis = [enums_top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
14712
+ overflowOffsets[key] += offset[axis] * multiply;
14713
+ });
14714
+ }
14715
 
14716
+ return overflowOffsets;
14717
+ }
14718
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
14719
 
 
 
14720
 
14721
 
14722
 
14723
+ function computeAutoPlacement(state, options) {
14724
+ if (options === void 0) {
14725
+ options = {};
14726
+ }
14727
 
14728
+ var _options = options,
14729
+ placement = _options.placement,
14730
+ boundary = _options.boundary,
14731
+ rootBoundary = _options.rootBoundary,
14732
+ padding = _options.padding,
14733
+ flipVariations = _options.flipVariations,
14734
+ _options$allowedAutoP = _options.allowedAutoPlacements,
14735
+ allowedAutoPlacements = _options$allowedAutoP === void 0 ? enums_placements : _options$allowedAutoP;
14736
+ var variation = getVariation(placement);
14737
+ var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
14738
+ return getVariation(placement) === variation;
14739
+ }) : basePlacements;
14740
+ var allowedPlacements = placements.filter(function (placement) {
14741
+ return allowedAutoPlacements.indexOf(placement) >= 0;
14742
+ });
14743
 
14744
+ if (allowedPlacements.length === 0) {
14745
+ allowedPlacements = placements;
14746
 
14747
+ if (false) {}
14748
+ } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
14749
+
14750
+
14751
+ var overflows = allowedPlacements.reduce(function (acc, placement) {
14752
+ acc[placement] = detectOverflow(state, {
14753
+ placement: placement,
14754
+ boundary: boundary,
14755
+ rootBoundary: rootBoundary,
14756
+ padding: padding
14757
+ })[getBasePlacement(placement)];
14758
+ return acc;
14759
+ }, {});
14760
+ return Object.keys(overflows).sort(function (a, b) {
14761
+ return overflows[a] - overflows[b];
14762
+ });
14763
  }
14764
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/flip.js
14765
 
 
 
 
 
 
 
 
 
 
14766
 
14767
 
14768
 
14769
 
14770
 
14771
+ // eslint-disable-next-line import/no-unused-modules
14772
 
14773
+ function getExpandedFallbackPlacements(placement) {
14774
+ if (getBasePlacement(placement) === auto) {
14775
+ return [];
14776
+ }
14777
 
14778
+ var oppositePlacement = getOppositePlacement(placement);
14779
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
14780
+ }
14781
 
14782
+ function flip(_ref) {
14783
+ var state = _ref.state,
14784
+ options = _ref.options,
14785
+ name = _ref.name;
14786
 
14787
+ if (state.modifiersData[name]._skip) {
14788
+ return;
14789
+ }
14790
 
14791
+ var _options$mainAxis = options.mainAxis,
14792
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
14793
+ _options$altAxis = options.altAxis,
14794
+ checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
14795
+ specifiedFallbackPlacements = options.fallbackPlacements,
14796
+ padding = options.padding,
14797
+ boundary = options.boundary,
14798
+ rootBoundary = options.rootBoundary,
14799
+ altBoundary = options.altBoundary,
14800
+ _options$flipVariatio = options.flipVariations,
14801
+ flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
14802
+ allowedAutoPlacements = options.allowedAutoPlacements;
14803
+ var preferredPlacement = state.options.placement;
14804
+ var basePlacement = getBasePlacement(preferredPlacement);
14805
+ var isBasePlacement = basePlacement === preferredPlacement;
14806
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
14807
+ var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
14808
+ return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
14809
+ placement: placement,
14810
+ boundary: boundary,
14811
+ rootBoundary: rootBoundary,
14812
+ padding: padding,
14813
+ flipVariations: flipVariations,
14814
+ allowedAutoPlacements: allowedAutoPlacements
14815
+ }) : placement);
14816
+ }, []);
14817
+ var referenceRect = state.rects.reference;
14818
+ var popperRect = state.rects.popper;
14819
+ var checksMap = new Map();
14820
+ var makeFallbackChecks = true;
14821
+ var firstFittingPlacement = placements[0];
14822
+
14823
+ for (var i = 0; i < placements.length; i++) {
14824
+ var placement = placements[i];
14825
+
14826
+ var _basePlacement = getBasePlacement(placement);
14827
+
14828
+ var isStartVariation = getVariation(placement) === start;
14829
+ var isVertical = [enums_top, bottom].indexOf(_basePlacement) >= 0;
14830
+ var len = isVertical ? 'width' : 'height';
14831
+ var overflow = detectOverflow(state, {
14832
+ placement: placement,
14833
+ boundary: boundary,
14834
+ rootBoundary: rootBoundary,
14835
+ altBoundary: altBoundary,
14836
+ padding: padding
14837
+ });
14838
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : enums_top;
14839
 
14840
+ if (referenceRect[len] > popperRect[len]) {
14841
+ mainVariationSide = getOppositePlacement(mainVariationSide);
14842
+ }
 
14843
 
14844
+ var altVariationSide = getOppositePlacement(mainVariationSide);
14845
+ var checks = [];
 
 
14846
 
14847
+ if (checkMainAxis) {
14848
+ checks.push(overflow[_basePlacement] <= 0);
14849
+ }
14850
 
14851
+ if (checkAltAxis) {
14852
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
14853
+ }
 
14854
 
14855
+ if (checks.every(function (check) {
14856
+ return check;
14857
+ })) {
14858
+ firstFittingPlacement = placement;
14859
+ makeFallbackChecks = false;
14860
+ break;
14861
+ }
14862
 
14863
+ checksMap.set(placement, checks);
14864
+ }
 
 
14865
 
14866
+ if (makeFallbackChecks) {
14867
+ // `2` may be desired in some cases – research later
14868
+ var numberOfChecks = flipVariations ? 3 : 1;
 
 
 
 
 
 
 
 
14869
 
14870
+ var _loop = function _loop(_i) {
14871
+ var fittingPlacement = placements.find(function (placement) {
14872
+ var checks = checksMap.get(placement);
 
 
 
 
 
 
 
 
14873
 
14874
+ if (checks) {
14875
+ return checks.slice(0, _i).every(function (check) {
14876
+ return check;
14877
+ });
14878
+ }
14879
+ });
14880
 
14881
+ if (fittingPlacement) {
14882
+ firstFittingPlacement = fittingPlacement;
14883
+ return "break";
 
14884
  }
14885
+ };
14886
 
14887
+ for (var _i = numberOfChecks; _i > 0; _i--) {
14888
+ var _ret = _loop(_i);
 
 
 
 
14889
 
14890
+ if (_ret === "break") break;
14891
+ }
14892
+ }
 
 
 
14893
 
14894
+ if (state.placement !== firstFittingPlacement) {
14895
+ state.modifiersData[name]._skip = true;
14896
+ state.placement = firstFittingPlacement;
14897
+ state.reset = true;
14898
+ }
14899
+ } // eslint-disable-next-line import/no-unused-modules
14900
 
 
 
14901
 
14902
+ /* harmony default export */ var modifiers_flip = ({
14903
+ name: 'flip',
14904
+ enabled: true,
14905
+ phase: 'main',
14906
+ fn: flip,
14907
+ requiresIfExists: ['offset'],
14908
+ data: {
14909
+ _skip: false
14910
+ }
14911
+ });
14912
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getAltAxis.js
14913
+ function getAltAxis(axis) {
14914
+ return axis === 'x' ? 'y' : 'x';
14915
+ }
14916
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/within.js
14917
 
14918
+ function within(min, value, max) {
14919
+ return math_max(min, math_min(value, max));
14920
+ }
14921
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
 
 
 
 
 
14922
 
 
 
 
 
 
 
14923
 
 
 
 
 
 
 
14924
 
 
 
 
 
14925
 
 
 
 
 
 
 
 
 
 
14926
 
 
 
 
 
 
 
 
 
 
14927
 
 
 
 
 
 
 
14928
 
14929
+
14930
+
14931
+
14932
+
14933
+
14934
+ function preventOverflow(_ref) {
14935
+ var state = _ref.state,
14936
+ options = _ref.options,
14937
+ name = _ref.name;
14938
+ var _options$mainAxis = options.mainAxis,
14939
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
14940
+ _options$altAxis = options.altAxis,
14941
+ checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
14942
+ boundary = options.boundary,
14943
+ rootBoundary = options.rootBoundary,
14944
+ altBoundary = options.altBoundary,
14945
+ padding = options.padding,
14946
+ _options$tether = options.tether,
14947
+ tether = _options$tether === void 0 ? true : _options$tether,
14948
+ _options$tetherOffset = options.tetherOffset,
14949
+ tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
14950
+ var overflow = detectOverflow(state, {
14951
+ boundary: boundary,
14952
+ rootBoundary: rootBoundary,
14953
+ padding: padding,
14954
+ altBoundary: altBoundary
14955
+ });
14956
+ var basePlacement = getBasePlacement(state.placement);
14957
+ var variation = getVariation(state.placement);
14958
+ var isBasePlacement = !variation;
14959
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
14960
+ var altAxis = getAltAxis(mainAxis);
14961
+ var popperOffsets = state.modifiersData.popperOffsets;
14962
+ var referenceRect = state.rects.reference;
14963
+ var popperRect = state.rects.popper;
14964
+ var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
14965
+ placement: state.placement
14966
+ })) : tetherOffset;
14967
+ var data = {
14968
+ x: 0,
14969
+ y: 0
14970
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14971
 
14972
+ if (!popperOffsets) {
14973
+ return;
14974
+ }
 
 
 
 
 
 
14975
 
14976
+ if (checkMainAxis || checkAltAxis) {
14977
+ var mainSide = mainAxis === 'y' ? enums_top : left;
14978
+ var altSide = mainAxis === 'y' ? bottom : right;
14979
+ var len = mainAxis === 'y' ? 'height' : 'width';
14980
+ var offset = popperOffsets[mainAxis];
14981
+ var min = popperOffsets[mainAxis] + overflow[mainSide];
14982
+ var max = popperOffsets[mainAxis] - overflow[altSide];
14983
+ var additive = tether ? -popperRect[len] / 2 : 0;
14984
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
14985
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
14986
+ // outside the reference bounds
14987
+
14988
+ var arrowElement = state.elements.arrow;
14989
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
14990
+ width: 0,
14991
+ height: 0
14992
+ };
14993
+ var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
14994
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
14995
+ var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
14996
+ // to include its full size in the calculation. If the reference is small
14997
+ // and near the edge of a boundary, the popper can overflow even if the
14998
+ // reference is not overflowing as well (e.g. virtual elements with no
14999
+ // width or height)
15000
 
15001
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
15002
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;
15003
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;
15004
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
15005
+ var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
15006
+ var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;
15007
+ var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;
15008
+ var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;
 
 
 
 
 
 
 
 
 
 
 
15009
 
15010
+ if (checkMainAxis) {
15011
+ var preventedOffset = within(tether ? math_min(min, tetherMin) : min, offset, tether ? math_max(max, tetherMax) : max);
15012
+ popperOffsets[mainAxis] = preventedOffset;
15013
+ data[mainAxis] = preventedOffset - offset;
15014
+ }
15015
 
15016
+ if (checkAltAxis) {
15017
+ var _mainSide = mainAxis === 'x' ? enums_top : left;
15018
 
15019
+ var _altSide = mainAxis === 'x' ? bottom : right;
15020
 
15021
+ var _offset = popperOffsets[altAxis];
15022
 
15023
+ var _min = _offset + overflow[_mainSide];
15024
 
15025
+ var _max = _offset - overflow[_altSide];
15026
 
15027
+ var _preventedOffset = within(tether ? math_min(_min, tetherMin) : _min, _offset, tether ? math_max(_max, tetherMax) : _max);
15028
 
15029
+ popperOffsets[altAxis] = _preventedOffset;
15030
+ data[altAxis] = _preventedOffset - _offset;
15031
+ }
15032
+ }
15033
 
15034
+ state.modifiersData[name] = data;
15035
+ } // eslint-disable-next-line import/no-unused-modules
15036
 
15037
 
15038
+ /* harmony default export */ var modifiers_preventOverflow = ({
15039
+ name: 'preventOverflow',
15040
+ enabled: true,
15041
+ phase: 'main',
15042
+ fn: preventOverflow,
15043
+ requiresIfExists: ['offset']
15044
+ });
15045
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/arrow.js
15046
 
15047
 
 
 
 
 
 
15048
 
15049
 
 
 
 
 
 
15050
 
 
 
 
15051
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15052
 
 
15053
 
 
15054
 
15055
+ // eslint-disable-next-line import/no-unused-modules
15056
 
15057
+ var toPaddingObject = function toPaddingObject(padding, state) {
15058
+ padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
15059
+ placement: state.placement
15060
+ })) : padding;
15061
+ return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
15062
+ };
15063
 
15064
+ function arrow(_ref) {
15065
+ var _state$modifiersData$;
15066
 
15067
+ var state = _ref.state,
15068
+ name = _ref.name,
15069
+ options = _ref.options;
15070
+ var arrowElement = state.elements.arrow;
15071
+ var popperOffsets = state.modifiersData.popperOffsets;
15072
+ var basePlacement = getBasePlacement(state.placement);
15073
+ var axis = getMainAxisFromPlacement(basePlacement);
15074
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
15075
+ var len = isVertical ? 'height' : 'width';
15076
 
15077
+ if (!arrowElement || !popperOffsets) {
15078
+ return;
15079
+ }
15080
 
15081
+ var paddingObject = toPaddingObject(options.padding, state);
15082
+ var arrowRect = getLayoutRect(arrowElement);
15083
+ var minProp = axis === 'y' ? enums_top : left;
15084
+ var maxProp = axis === 'y' ? bottom : right;
15085
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
15086
+ var startDiff = popperOffsets[axis] - state.rects.reference[axis];
15087
+ var arrowOffsetParent = getOffsetParent(arrowElement);
15088
+ var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
15089
+ var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
15090
+ // outside of the popper bounds
15091
 
15092
+ var min = paddingObject[minProp];
15093
+ var max = clientSize - arrowRect[len] - paddingObject[maxProp];
15094
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
15095
+ var offset = within(min, center, max); // Prevents breaking syntax highlighting...
15096
 
15097
+ var axisProp = axis;
15098
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
15099
+ }
15100
 
15101
+ function arrow_effect(_ref2) {
15102
+ var state = _ref2.state,
15103
+ options = _ref2.options;
15104
+ var _options$element = options.element,
15105
+ arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
15106
 
15107
+ if (arrowElement == null) {
15108
+ return;
15109
+ } // CSS selector
15110
 
 
 
 
 
15111
 
15112
+ if (typeof arrowElement === 'string') {
15113
+ arrowElement = state.elements.popper.querySelector(arrowElement);
 
 
15114
 
15115
+ if (!arrowElement) {
15116
+ return;
 
 
 
 
 
15117
  }
15118
  }
 
 
 
15119
 
15120
+ if (false) {}
15121
 
15122
+ if (!contains(state.elements.popper, arrowElement)) {
15123
+ if (false) {}
 
 
 
 
 
 
 
 
 
 
15124
 
15125
+ return;
15126
+ }
 
 
 
 
 
15127
 
15128
+ state.elements.arrow = arrowElement;
15129
+ } // eslint-disable-next-line import/no-unused-modules
15130
 
 
15131
 
15132
+ /* harmony default export */ var modifiers_arrow = ({
15133
+ name: 'arrow',
15134
+ enabled: true,
15135
+ phase: 'main',
15136
+ fn: arrow,
15137
+ effect: arrow_effect,
15138
+ requires: ['popperOffsets'],
15139
+ requiresIfExists: ['preventOverflow']
15140
+ });
15141
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/hide.js
15142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15143
 
 
 
15144
 
15145
+ function getSideOffsets(overflow, rect, preventedOffsets) {
15146
+ if (preventedOffsets === void 0) {
15147
+ preventedOffsets = {
15148
+ x: 0,
15149
+ y: 0
15150
+ };
15151
+ }
 
 
 
 
15152
 
 
15153
  return {
15154
+ top: overflow.top - rect.height - preventedOffsets.y,
15155
+ right: overflow.right - rect.width + preventedOffsets.x,
15156
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
15157
+ left: overflow.left - rect.width - preventedOffsets.x
15158
  };
15159
+ }
 
 
 
 
 
 
 
 
 
 
 
15160
 
15161
+ function isAnySideFullyClipped(overflow) {
15162
+ return [enums_top, right, bottom, left].some(function (side) {
15163
+ return overflow[side] >= 0;
15164
+ });
15165
+ }
15166
 
15167
+ function hide(_ref) {
15168
+ var state = _ref.state,
15169
+ name = _ref.name;
15170
+ var referenceRect = state.rects.reference;
15171
+ var popperRect = state.rects.popper;
15172
+ var preventedOffsets = state.modifiersData.preventOverflow;
15173
+ var referenceOverflow = detectOverflow(state, {
15174
+ elementContext: 'reference'
15175
+ });
15176
+ var popperAltOverflow = detectOverflow(state, {
15177
+ altBoundary: true
15178
+ });
15179
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
15180
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
15181
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
15182
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
15183
+ state.modifiersData[name] = {
15184
+ referenceClippingOffsets: referenceClippingOffsets,
15185
+ popperEscapeOffsets: popperEscapeOffsets,
15186
+ isReferenceHidden: isReferenceHidden,
15187
+ hasPopperEscaped: hasPopperEscaped
15188
+ };
15189
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
15190
+ 'data-popper-reference-hidden': isReferenceHidden,
15191
+ 'data-popper-escaped': hasPopperEscaped
15192
+ });
15193
+ } // eslint-disable-next-line import/no-unused-modules
15194
 
15195
 
15196
+ /* harmony default export */ var modifiers_hide = ({
15197
+ name: 'hide',
15198
+ enabled: true,
15199
+ phase: 'main',
15200
+ requiresIfExists: ['preventOverflow'],
15201
+ fn: hide
15202
+ });
15203
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/popper.js
15204
 
15205
 
15206
 
 
 
15207
 
 
 
15208
 
 
 
 
 
 
15209
 
 
 
 
 
 
 
15210
 
 
 
 
15211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15212
 
 
 
 
 
 
 
 
15213
 
15214
+ var defaultModifiers = [eventListeners, modifiers_popperOffsets, modifiers_computeStyles, modifiers_applyStyles, modifiers_offset, modifiers_flip, modifiers_preventOverflow, modifiers_arrow, modifiers_hide];
15215
+ var popper_createPopper = /*#__PURE__*/popperGenerator({
15216
+ defaultModifiers: defaultModifiers
15217
+ }); // eslint-disable-next-line import/no-unused-modules
 
 
15218
 
15219
+ // eslint-disable-next-line import/no-unused-modules
 
15220
 
15221
+ // eslint-disable-next-line import/no-unused-modules
 
 
15222
 
 
15223
 
15224
+ ;// CONCATENATED MODULE: ./node_modules/@tippyjs/react/node_modules/tippy.js/dist/tippy.esm.js
15225
+ /**!
15226
+ * tippy.js v6.3.1
15227
+ * (c) 2017-2021 atomiks
15228
+ * MIT License
15229
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15230
 
15231
 
15232
+ var ROUND_ARROW = '<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>';
15233
+ var BOX_CLASS = "tippy-box";
15234
+ var CONTENT_CLASS = "tippy-content";
15235
+ var BACKDROP_CLASS = "tippy-backdrop";
15236
+ var ARROW_CLASS = "tippy-arrow";
15237
+ var SVG_ARROW_CLASS = "tippy-svg-arrow";
15238
+ var TOUCH_OPTIONS = {
15239
+ passive: true,
15240
+ capture: true
15241
+ };
15242
 
15243
+ function tippy_esm_hasOwnProperty(obj, key) {
15244
+ return {}.hasOwnProperty.call(obj, key);
15245
+ }
15246
+ function getValueAtIndexOrReturn(value, index, defaultValue) {
15247
+ if (Array.isArray(value)) {
15248
+ var v = value[index];
15249
+ return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;
15250
+ }
15251
 
15252
+ return value;
15253
+ }
15254
+ function isType(value, type) {
15255
+ var str = {}.toString.call(value);
15256
+ return str.indexOf('[object') === 0 && str.indexOf(type + "]") > -1;
15257
+ }
15258
+ function invokeWithArgsOrReturn(value, args) {
15259
+ return typeof value === 'function' ? value.apply(void 0, args) : value;
15260
+ }
15261
+ function tippy_esm_debounce(fn, ms) {
15262
+ // Avoid wrapping in `setTimeout` if ms is 0 anyway
15263
+ if (ms === 0) {
15264
+ return fn;
15265
+ }
15266
 
15267
+ var timeout;
15268
+ return function (arg) {
15269
+ clearTimeout(timeout);
15270
+ timeout = setTimeout(function () {
15271
+ fn(arg);
15272
+ }, ms);
15273
+ };
15274
+ }
15275
+ function removeProperties(obj, keys) {
15276
+ var clone = Object.assign({}, obj);
15277
+ keys.forEach(function (key) {
15278
+ delete clone[key];
15279
+ });
15280
+ return clone;
15281
+ }
15282
+ function splitBySpaces(value) {
15283
+ return value.split(/\s+/).filter(Boolean);
15284
+ }
15285
+ function normalizeToArray(value) {
15286
+ return [].concat(value);
15287
+ }
15288
+ function pushIfUnique(arr, value) {
15289
+ if (arr.indexOf(value) === -1) {
15290
+ arr.push(value);
15291
+ }
15292
+ }
15293
+ function unique(arr) {
15294
+ return arr.filter(function (item, index) {
15295
+ return arr.indexOf(item) === index;
15296
+ });
15297
+ }
15298
+ function tippy_esm_getBasePlacement(placement) {
15299
+ return placement.split('-')[0];
15300
+ }
15301
+ function arrayFrom(value) {
15302
+ return [].slice.call(value);
15303
+ }
15304
+ function removeUndefinedProps(obj) {
15305
+ return Object.keys(obj).reduce(function (acc, key) {
15306
+ if (obj[key] !== undefined) {
15307
+ acc[key] = obj[key];
15308
+ }
15309
 
15310
+ return acc;
15311
+ }, {});
15312
+ }
15313
 
15314
+ function div() {
15315
+ return document.createElement('div');
15316
+ }
15317
+ function tippy_esm_isElement(value) {
15318
+ return ['Element', 'Fragment'].some(function (type) {
15319
+ return isType(value, type);
15320
+ });
15321
+ }
15322
+ function isNodeList(value) {
15323
+ return isType(value, 'NodeList');
15324
+ }
15325
+ function isMouseEvent(value) {
15326
+ return isType(value, 'MouseEvent');
15327
+ }
15328
+ function isReferenceElement(value) {
15329
+ return !!(value && value._tippy && value._tippy.reference === value);
15330
+ }
15331
+ function getArrayOfElements(value) {
15332
+ if (tippy_esm_isElement(value)) {
15333
+ return [value];
15334
  }
15335
 
15336
+ if (isNodeList(value)) {
15337
+ return arrayFrom(value);
15338
+ }
15339
 
15340
+ if (Array.isArray(value)) {
15341
+ return value;
 
 
 
15342
  }
 
15343
 
15344
+ return arrayFrom(document.querySelectorAll(value));
 
15345
  }
15346
+ function setTransitionDuration(els, value) {
15347
+ els.forEach(function (el) {
15348
+ if (el) {
15349
+ el.style.transitionDuration = value + "ms";
 
 
 
 
 
15350
  }
15351
  });
15352
  }
15353
+ function setVisibilityState(els, state) {
15354
+ els.forEach(function (el) {
15355
+ if (el) {
15356
+ el.setAttribute('data-state', state);
 
 
 
15357
  }
 
 
15358
  });
 
15359
  }
15360
+ function getOwnerDocument(elementOrElements) {
15361
+ var _element$ownerDocumen;
15362
 
15363
+ var _normalizeToArray = normalizeToArray(elementOrElements),
15364
+ element = _normalizeToArray[0]; // Elements created via a <template> have an ownerDocument with no reference to the body
 
 
 
15365
 
 
 
 
 
 
 
 
 
 
15366
 
15367
+ return (element == null ? void 0 : (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body) ? element.ownerDocument : document;
15368
+ }
15369
+ function isCursorOutsideInteractiveBorder(popperTreeData, event) {
15370
+ var clientX = event.clientX,
15371
+ clientY = event.clientY;
15372
+ return popperTreeData.every(function (_ref) {
15373
+ var popperRect = _ref.popperRect,
15374
+ popperState = _ref.popperState,
15375
+ props = _ref.props;
15376
+ var interactiveBorder = props.interactiveBorder;
15377
+ var basePlacement = tippy_esm_getBasePlacement(popperState.placement);
15378
+ var offsetData = popperState.modifiersData.offset;
15379
 
15380
+ if (!offsetData) {
15381
+ return true;
15382
+ }
15383
+
15384
+ var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;
15385
+ var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;
15386
+ var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;
15387
+ var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;
15388
+ var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;
15389
+ var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;
15390
+ var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;
15391
+ var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;
15392
+ return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;
15393
+ });
15394
+ }
15395
+ function updateTransitionEndListener(box, action, listener) {
15396
+ var method = action + "EventListener"; // some browsers apparently support `transition` (unprefixed) but only fire
15397
+ // `webkitTransitionEnd`...
15398
 
15399
+ ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {
15400
+ box[method](event, listener);
15401
+ });
15402
+ }
15403
 
15404
+ var currentInput = {
15405
+ isTouch: false
15406
+ };
15407
+ var lastMouseMoveTime = 0;
15408
+ /**
15409
+ * When a `touchstart` event is fired, it's assumed the user is using touch
15410
+ * input. We'll bind a `mousemove` event listener to listen for mouse input in
15411
+ * the future. This way, the `isTouch` property is fully dynamic and will handle
15412
+ * hybrid devices that use a mix of touch + mouse input.
15413
+ */
15414
 
15415
+ function onDocumentTouchStart() {
15416
+ if (currentInput.isTouch) {
15417
+ return;
 
 
 
15418
  }
15419
 
15420
+ currentInput.isTouch = true;
 
 
 
 
 
 
 
 
 
15421
 
15422
+ if (window.performance) {
15423
+ document.addEventListener('mousemove', onDocumentMouseMove);
15424
+ }
15425
+ }
15426
+ /**
15427
+ * When two `mousemove` event are fired consecutively within 20ms, it's assumed
15428
+ * the user is using mouse input again. `mousemove` can fire on touch devices as
15429
+ * well, but very rarely that quickly.
15430
+ */
15431
 
15432
+ function onDocumentMouseMove() {
15433
+ var now = performance.now();
 
 
 
 
 
15434
 
15435
+ if (now - lastMouseMoveTime < 20) {
15436
+ currentInput.isTouch = false;
15437
+ document.removeEventListener('mousemove', onDocumentMouseMove);
15438
+ }
15439
 
15440
+ lastMouseMoveTime = now;
 
 
 
 
 
 
 
15441
  }
15442
  /**
15443
+ * When an element is in focus and has a tippy, leaving the tab/window and
15444
+ * returning causes it to show again. For mouse users this is unexpected, but
15445
+ * for keyboard use it makes sense.
15446
+ * TODO: find a better technique to solve this problem
 
15447
  */
15448
 
15449
+ function onWindowBlur() {
15450
+ var activeElement = document.activeElement;
15451
 
15452
+ if (isReferenceElement(activeElement)) {
15453
+ var instance = activeElement._tippy;
 
15454
 
15455
+ if (activeElement.blur && !instance.state.isVisible) {
15456
+ activeElement.blur();
15457
+ }
15458
+ }
15459
+ }
15460
+ function bindGlobalEventListeners() {
15461
+ document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);
15462
+ window.addEventListener('blur', onWindowBlur);
15463
+ }
15464
 
15465
+ var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
15466
+ var ua = isBrowser ? navigator.userAgent : '';
15467
+ var isIE = /MSIE |Trident\//.test(ua);
15468
+
15469
+ function createMemoryLeakWarning(method) {
15470
+ var txt = method === 'destroy' ? 'n already-' : ' ';
15471
+ return [method + "() was called on a" + txt + "destroyed instance. This is a no-op but", 'indicates a potential memory leak.'].join(' ');
15472
+ }
15473
+ function clean(value) {
15474
+ var spacesAndTabs = /[ \t]{2,}/g;
15475
+ var lineStartWithSpaces = /^[ \t]*/gm;
15476
+ return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();
15477
+ }
15478
+
15479
+ function getDevMessage(message) {
15480
+ return clean("\n %ctippy.js\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development-only message. It will be removed in production.\n ");
15481
+ }
15482
+
15483
+ function getFormattedMessage(message) {
15484
+ return [getDevMessage(message), // title
15485
+ 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message
15486
+ 'line-height: 1.5', // footer
15487
+ 'color: #a6a095;'];
15488
+ } // Assume warnings and errors never have the same message
15489
+
15490
+ var visitedMessages;
15491
+
15492
+ if (false) {}
15493
+
15494
+ function resetVisitedMessages() {
15495
+ visitedMessages = new Set();
15496
+ }
15497
+ function warnWhen(condition, message) {
15498
+ if (condition && !visitedMessages.has(message)) {
15499
+ var _console;
15500
+
15501
+ visitedMessages.add(message);
15502
+
15503
+ (_console = console).warn.apply(_console, getFormattedMessage(message));
15504
  }
15505
+ }
15506
+ function errorWhen(condition, message) {
15507
+ if (condition && !visitedMessages.has(message)) {
15508
+ var _console2;
15509
 
15510
+ visitedMessages.add(message);
 
 
 
15511
 
15512
+ (_console2 = console).error.apply(_console2, getFormattedMessage(message));
15513
+ }
15514
+ }
15515
+ function validateTargets(targets) {
15516
+ var didPassFalsyValue = !targets;
15517
+ var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;
15518
+ errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));
15519
+ errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));
15520
+ }
15521
 
15522
+ var pluginProps = {
15523
+ animateFill: false,
15524
+ followCursor: false,
15525
+ inlinePositioning: false,
15526
+ sticky: false
15527
+ };
15528
+ var renderProps = {
15529
+ allowHTML: false,
15530
+ animation: 'fade',
15531
+ arrow: true,
15532
+ content: '',
15533
+ inertia: false,
15534
+ maxWidth: 350,
15535
+ role: 'tooltip',
15536
+ theme: '',
15537
+ zIndex: 9999
15538
+ };
15539
+ var tippy_esm_defaultProps = Object.assign({
15540
+ appendTo: function appendTo() {
15541
+ return document.body;
15542
+ },
15543
+ aria: {
15544
+ content: 'auto',
15545
+ expanded: 'auto'
15546
+ },
15547
+ delay: 0,
15548
+ duration: [300, 250],
15549
+ getReferenceClientRect: null,
15550
+ hideOnClick: true,
15551
+ ignoreAttributes: false,
15552
+ interactive: false,
15553
+ interactiveBorder: 2,
15554
+ interactiveDebounce: 0,
15555
+ moveTransition: '',
15556
+ offset: [0, 10],
15557
+ onAfterUpdate: function onAfterUpdate() {},
15558
+ onBeforeUpdate: function onBeforeUpdate() {},
15559
+ onCreate: function onCreate() {},
15560
+ onDestroy: function onDestroy() {},
15561
+ onHidden: function onHidden() {},
15562
+ onHide: function onHide() {},
15563
+ onMount: function onMount() {},
15564
+ onShow: function onShow() {},
15565
+ onShown: function onShown() {},
15566
+ onTrigger: function onTrigger() {},
15567
+ onUntrigger: function onUntrigger() {},
15568
+ onClickOutside: function onClickOutside() {},
15569
+ placement: 'top',
15570
+ plugins: [],
15571
+ popperOptions: {},
15572
+ render: null,
15573
+ showOnCreate: false,
15574
+ touch: true,
15575
+ trigger: 'mouseenter focus',
15576
+ triggerTarget: null
15577
+ }, pluginProps, {}, renderProps);
15578
+ var defaultKeys = Object.keys(tippy_esm_defaultProps);
15579
+ var setDefaultProps = function setDefaultProps(partialProps) {
15580
+ /* istanbul ignore else */
15581
+ if (false) {}
15582
 
15583
+ var keys = Object.keys(partialProps);
15584
+ keys.forEach(function (key) {
15585
+ tippy_esm_defaultProps[key] = partialProps[key];
15586
+ });
15587
+ };
15588
+ function getExtendedPassedProps(passedProps) {
15589
+ var plugins = passedProps.plugins || [];
15590
+ var pluginProps = plugins.reduce(function (acc, plugin) {
15591
+ var name = plugin.name,
15592
+ defaultValue = plugin.defaultValue;
15593
 
15594
+ if (name) {
15595
+ acc[name] = passedProps[name] !== undefined ? passedProps[name] : defaultValue;
15596
+ }
 
 
15597
 
15598
+ return acc;
15599
+ }, {});
15600
+ return Object.assign({}, passedProps, {}, pluginProps);
15601
+ }
15602
+ function getDataAttributeProps(reference, plugins) {
15603
+ var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, tippy_esm_defaultProps, {
15604
+ plugins: plugins
15605
+ }))) : defaultKeys;
15606
+ var props = propKeys.reduce(function (acc, key) {
15607
+ var valueAsString = (reference.getAttribute("data-tippy-" + key) || '').trim();
15608
 
15609
+ if (!valueAsString) {
15610
+ return acc;
 
 
 
 
 
15611
  }
 
 
 
 
 
 
 
15612
 
15613
+ if (key === 'content') {
15614
+ acc[key] = valueAsString;
15615
+ } else {
15616
+ try {
15617
+ acc[key] = JSON.parse(valueAsString);
15618
+ } catch (e) {
15619
+ acc[key] = valueAsString;
15620
  }
15621
  }
 
 
 
 
15622
 
15623
+ return acc;
15624
+ }, {});
15625
+ return props;
15626
+ }
15627
+ function evaluateProps(reference, props) {
15628
+ var out = Object.assign({}, props, {
15629
+ content: invokeWithArgsOrReturn(props.content, [reference])
15630
+ }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));
15631
+ out.aria = Object.assign({}, tippy_esm_defaultProps.aria, {}, out.aria);
15632
+ out.aria = {
15633
+ expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,
15634
+ content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content
15635
+ };
15636
+ return out;
15637
+ }
15638
+ function validateProps(partialProps, plugins) {
15639
+ if (partialProps === void 0) {
15640
+ partialProps = {};
15641
+ }
15642
 
15643
+ if (plugins === void 0) {
15644
+ plugins = [];
15645
+ }
 
 
 
15646
 
15647
+ var keys = Object.keys(partialProps);
15648
+ keys.forEach(function (prop) {
15649
+ var nonPluginProps = removeProperties(tippy_esm_defaultProps, Object.keys(pluginProps));
15650
+ var didPassUnknownProp = !tippy_esm_hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`
 
15651
 
15652
+ if (didPassUnknownProp) {
15653
+ didPassUnknownProp = plugins.filter(function (plugin) {
15654
+ return plugin.name === prop;
15655
+ }).length === 0;
15656
+ }
15657
 
15658
+ warnWhen(didPassUnknownProp, ["`" + prop + "`", "is not a valid prop. You may have spelled it incorrectly, or if it's", 'a plugin, forgot to pass it in an array as props.plugins.', '\n\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));
15659
+ });
15660
+ }
 
 
 
 
15661
 
15662
+ var innerHTML = function innerHTML() {
15663
+ return 'innerHTML';
15664
+ };
15665
+
15666
+ function dangerouslySetInnerHTML(element, html) {
15667
+ element[innerHTML()] = html;
15668
+ }
15669
+
15670
+ function createArrowElement(value) {
15671
+ var arrow = div();
15672
+
15673
+ if (value === true) {
15674
+ arrow.className = ARROW_CLASS;
15675
+ } else {
15676
+ arrow.className = SVG_ARROW_CLASS;
15677
+
15678
+ if (tippy_esm_isElement(value)) {
15679
+ arrow.appendChild(value);
15680
+ } else {
15681
+ dangerouslySetInnerHTML(arrow, value);
15682
+ }
15683
+ }
15684
+
15685
+ return arrow;
15686
+ }
15687
+
15688
+ function setContent(content, props) {
15689
+ if (tippy_esm_isElement(props.content)) {
15690
+ dangerouslySetInnerHTML(content, '');
15691
+ content.appendChild(props.content);
15692
+ } else if (typeof props.content !== 'function') {
15693
+ if (props.allowHTML) {
15694
+ dangerouslySetInnerHTML(content, props.content);
15695
+ } else {
15696
+ content.textContent = props.content;
15697
+ }
15698
+ }
15699
+ }
15700
+ function getChildren(popper) {
15701
+ var box = popper.firstElementChild;
15702
+ var boxChildren = arrayFrom(box.children);
15703
+ return {
15704
+ box: box,
15705
+ content: boxChildren.find(function (node) {
15706
+ return node.classList.contains(CONTENT_CLASS);
15707
+ }),
15708
+ arrow: boxChildren.find(function (node) {
15709
+ return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);
15710
+ }),
15711
+ backdrop: boxChildren.find(function (node) {
15712
+ return node.classList.contains(BACKDROP_CLASS);
15713
+ })
15714
+ };
15715
+ }
15716
+ function render(instance) {
15717
+ var popper = div();
15718
+ var box = div();
15719
+ box.className = BOX_CLASS;
15720
+ box.setAttribute('data-state', 'hidden');
15721
+ box.setAttribute('tabindex', '-1');
15722
+ var content = div();
15723
+ content.className = CONTENT_CLASS;
15724
+ content.setAttribute('data-state', 'hidden');
15725
+ setContent(content, instance.props);
15726
+ popper.appendChild(box);
15727
+ box.appendChild(content);
15728
+ onUpdate(instance.props, instance.props);
15729
+
15730
+ function onUpdate(prevProps, nextProps) {
15731
+ var _getChildren = getChildren(popper),
15732
+ box = _getChildren.box,
15733
+ content = _getChildren.content,
15734
+ arrow = _getChildren.arrow;
15735
+
15736
+ if (nextProps.theme) {
15737
+ box.setAttribute('data-theme', nextProps.theme);
15738
+ } else {
15739
+ box.removeAttribute('data-theme');
15740
+ }
15741
+
15742
+ if (typeof nextProps.animation === 'string') {
15743
+ box.setAttribute('data-animation', nextProps.animation);
15744
+ } else {
15745
+ box.removeAttribute('data-animation');
15746
+ }
15747
+
15748
+ if (nextProps.inertia) {
15749
+ box.setAttribute('data-inertia', '');
15750
+ } else {
15751
+ box.removeAttribute('data-inertia');
15752
+ }
15753
+
15754
+ box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + "px" : nextProps.maxWidth;
15755
+
15756
+ if (nextProps.role) {
15757
+ box.setAttribute('role', nextProps.role);
15758
+ } else {
15759
+ box.removeAttribute('role');
15760
+ }
15761
+
15762
+ if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {
15763
+ setContent(content, instance.props);
15764
+ }
15765
+
15766
+ if (nextProps.arrow) {
15767
+ if (!arrow) {
15768
+ box.appendChild(createArrowElement(nextProps.arrow));
15769
+ } else if (prevProps.arrow !== nextProps.arrow) {
15770
+ box.removeChild(arrow);
15771
+ box.appendChild(createArrowElement(nextProps.arrow));
15772
  }
15773
+ } else if (arrow) {
15774
+ box.removeChild(arrow);
15775
+ }
15776
+ }
15777
 
15778
+ return {
15779
+ popper: popper,
15780
+ onUpdate: onUpdate
15781
+ };
15782
+ } // Runtime check to identify if the render function is the default one; this
15783
+ // way we can apply default CSS transitions logic and it can be tree-shaken away
15784
+
15785
+ render.$$tippy = true;
15786
+
15787
+ var idCounter = 1;
15788
+ var mouseMoveListeners = []; // Used by `hideAll()`
15789
+
15790
+ var mountedInstances = [];
15791
+ function createTippy(reference, passedProps) {
15792
+ var props = evaluateProps(reference, Object.assign({}, tippy_esm_defaultProps, {}, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================
15793
+ // 🔒 Private members
15794
+ // ===========================================================================
15795
+
15796
+ var showTimeout;
15797
+ var hideTimeout;
15798
+ var scheduleHideAnimationFrame;
15799
+ var isVisibleFromClick = false;
15800
+ var didHideDueToDocumentMouseDown = false;
15801
+ var didTouchMove = false;
15802
+ var ignoreOnFirstUpdate = false;
15803
+ var lastTriggerEvent;
15804
+ var currentTransitionEndListener;
15805
+ var onFirstUpdate;
15806
+ var listeners = [];
15807
+ var debouncedOnMouseMove = tippy_esm_debounce(onMouseMove, props.interactiveDebounce);
15808
+ var currentTarget; // ===========================================================================
15809
+ // 🔑 Public members
15810
+ // ===========================================================================
15811
+
15812
+ var id = idCounter++;
15813
+ var popperInstance = null;
15814
+ var plugins = unique(props.plugins);
15815
+ var state = {
15816
+ // Is the instance currently enabled?
15817
+ isEnabled: true,
15818
+ // Is the tippy currently showing and not transitioning out?
15819
+ isVisible: false,
15820
+ // Has the instance been destroyed?
15821
+ isDestroyed: false,
15822
+ // Is the tippy currently mounted to the DOM?
15823
+ isMounted: false,
15824
+ // Has the tippy finished transitioning in?
15825
+ isShown: false
15826
+ };
15827
+ var instance = {
15828
+ // properties
15829
+ id: id,
15830
+ reference: reference,
15831
+ popper: div(),
15832
+ popperInstance: popperInstance,
15833
+ props: props,
15834
+ state: state,
15835
+ plugins: plugins,
15836
+ // methods
15837
+ clearDelayTimeouts: clearDelayTimeouts,
15838
+ setProps: setProps,
15839
+ setContent: setContent,
15840
+ show: show,
15841
+ hide: hide,
15842
+ hideWithInteractivity: hideWithInteractivity,
15843
+ enable: enable,
15844
+ disable: disable,
15845
+ unmount: unmount,
15846
+ destroy: destroy
15847
+ }; // TODO: Investigate why this early return causes a TDZ error in the tests —
15848
+ // it doesn't seem to happen in the browser
15849
+
15850
+ /* istanbul ignore if */
15851
+
15852
+ if (!props.render) {
15853
+ if (false) {}
15854
+
15855
+ return instance;
15856
+ } // ===========================================================================
15857
+ // Initial mutations
15858
+ // ===========================================================================
15859
+
15860
+
15861
+ var _props$render = props.render(instance),
15862
+ popper = _props$render.popper,
15863
+ onUpdate = _props$render.onUpdate;
15864
+
15865
+ popper.setAttribute('data-tippy-root', '');
15866
+ popper.id = "tippy-" + instance.id;
15867
+ instance.popper = popper;
15868
+ reference._tippy = instance;
15869
+ popper._tippy = instance;
15870
+ var pluginsHooks = plugins.map(function (plugin) {
15871
+ return plugin.fn(instance);
15872
+ });
15873
+ var hasAriaExpanded = reference.hasAttribute('aria-expanded');
15874
+ addListeners();
15875
+ handleAriaExpandedAttribute();
15876
+ handleStyles();
15877
+ invokeHook('onCreate', [instance]);
15878
+
15879
+ if (props.showOnCreate) {
15880
+ scheduleShow();
15881
+ } // Prevent a tippy with a delay from hiding if the cursor left then returned
15882
+ // before it started hiding
15883
+
15884
+
15885
+ popper.addEventListener('mouseenter', function () {
15886
+ if (instance.props.interactive && instance.state.isVisible) {
15887
+ instance.clearDelayTimeouts();
15888
  }
15889
+ });
15890
+ popper.addEventListener('mouseleave', function (event) {
15891
+ if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {
15892
+ getDocument().addEventListener('mousemove', debouncedOnMouseMove);
15893
+ debouncedOnMouseMove(event);
15894
  }
15895
+ });
15896
+ return instance; // ===========================================================================
15897
+ // 🔒 Private methods
15898
+ // ===========================================================================
15899
 
15900
+ function getNormalizedTouchSettings() {
15901
+ var touch = instance.props.touch;
15902
+ return Array.isArray(touch) ? touch : [touch, 0];
15903
+ }
15904
 
15905
+ function getIsCustomTouchBehavior() {
15906
+ return getNormalizedTouchSettings()[0] === 'hold';
15907
+ }
15908
 
15909
+ function getIsDefaultRenderFn() {
15910
+ var _instance$props$rende;
15911
 
15912
+ // @ts-ignore
15913
+ return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);
15914
+ }
15915
 
15916
+ function getCurrentTarget() {
15917
+ return currentTarget || reference;
15918
+ }
15919
 
15920
+ function getDocument() {
15921
+ var parent = getCurrentTarget().parentNode;
15922
+ return parent ? getOwnerDocument(parent) : document;
15923
+ }
15924
 
15925
+ function getDefaultTemplateChildren() {
15926
+ return getChildren(popper);
15927
+ }
15928
 
15929
+ function getDelay(isShow) {
15930
+ // For touch or keyboard input, force `0` delay for UX reasons
15931
+ // Also if the instance is mounted but not visible (transitioning out),
15932
+ // ignore delay
15933
+ if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {
15934
+ return 0;
15935
+ }
15936
 
15937
+ return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, tippy_esm_defaultProps.delay);
15938
+ }
 
15939
 
15940
+ function handleStyles() {
15941
+ popper.style.pointerEvents = instance.props.interactive && instance.state.isVisible ? '' : 'none';
15942
+ popper.style.zIndex = "" + instance.props.zIndex;
15943
+ }
 
 
 
 
 
 
 
 
 
 
 
 
15944
 
15945
+ function invokeHook(hook, args, shouldInvokePropsHook) {
15946
+ if (shouldInvokePropsHook === void 0) {
15947
+ shouldInvokePropsHook = true;
15948
+ }
 
 
 
 
 
15949
 
15950
+ pluginsHooks.forEach(function (pluginHooks) {
15951
+ if (pluginHooks[hook]) {
15952
+ pluginHooks[hook].apply(void 0, args);
15953
+ }
15954
+ });
15955
+
15956
+ if (shouldInvokePropsHook) {
15957
+ var _instance$props;
15958
+
15959
+ (_instance$props = instance.props)[hook].apply(_instance$props, args);
15960
+ }
15961
  }
15962
 
15963
+ function handleAriaContentAttribute() {
15964
+ var aria = instance.props.aria;
15965
+
15966
+ if (!aria.content) {
15967
  return;
15968
  }
15969
 
15970
+ var attr = "aria-" + aria.content;
15971
+ var id = popper.id;
15972
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference);
15973
+ nodes.forEach(function (node) {
15974
+ var currentValue = node.getAttribute(attr);
15975
 
15976
+ if (instance.state.isVisible) {
15977
+ node.setAttribute(attr, currentValue ? currentValue + " " + id : id);
15978
+ } else {
15979
+ var nextValue = currentValue && currentValue.replace(id, '').trim();
15980
 
15981
+ if (nextValue) {
15982
+ node.setAttribute(attr, nextValue);
15983
+ } else {
15984
+ node.removeAttribute(attr);
15985
+ }
15986
  }
15987
+ });
15988
+ }
15989
 
15990
+ function handleAriaExpandedAttribute() {
15991
+ if (hasAriaExpanded || !instance.props.aria.expanded) {
15992
+ return;
15993
  }
15994
 
15995
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference);
15996
+ nodes.forEach(function (node) {
15997
+ if (instance.props.interactive) {
15998
+ node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');
15999
+ } else {
16000
+ node.removeAttribute('aria-expanded');
16001
  }
16002
+ });
16003
+ }
16004
 
16005
+ function cleanupInteractiveMouseListeners() {
16006
+ getDocument().removeEventListener('mousemove', debouncedOnMouseMove);
16007
+ mouseMoveListeners = mouseMoveListeners.filter(function (listener) {
16008
+ return listener !== debouncedOnMouseMove;
16009
+ });
16010
+ }
16011
+
16012
+ function onDocumentPress(event) {
16013
+ // Moved finger to scroll instead of an intentional tap outside
16014
+ if (currentInput.isTouch) {
16015
+ if (didTouchMove || event.type === 'mousedown') {
16016
  return;
16017
  }
16018
+ } // Clicked on interactive popper
16019
 
16020
+
16021
+ if (instance.props.interactive && popper.contains(event.target)) {
16022
+ return;
16023
+ } // Clicked on the event listeners target
16024
+
16025
+
16026
+ if (getCurrentTarget().contains(event.target)) {
16027
+ if (currentInput.isTouch) {
16028
+ return;
16029
  }
 
16030
 
16031
+ if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {
 
 
16032
  return;
16033
+ }
16034
+ } else {
16035
+ invokeHook('onClickOutside', [instance, event]);
16036
+ }
16037
 
16038
+ if (instance.props.hideOnClick === true) {
16039
+ instance.clearDelayTimeouts();
16040
+ instance.hide(); // `mousedown` event is fired right before `focus` if pressing the
16041
+ // currentTarget. This lets a tippy with `focus` trigger know that it
16042
+ // should not show
16043
 
16044
+ didHideDueToDocumentMouseDown = true;
16045
+ setTimeout(function () {
16046
+ didHideDueToDocumentMouseDown = false;
16047
+ }); // The listener gets added in `scheduleShow()`, but this may be hiding it
16048
+ // before it shows, and hide()'s early bail-out behavior can prevent it
16049
+ // from being cleaned up
16050
 
16051
+ if (!instance.state.isMounted) {
16052
+ removeDocumentPress();
 
 
 
16053
  }
16054
+ }
16055
+ }
16056
 
16057
+ function onTouchMove() {
16058
+ didTouchMove = true;
16059
+ }
 
 
 
16060
 
16061
+ function onTouchStart() {
16062
+ didTouchMove = false;
16063
+ }
 
 
 
 
16064
 
16065
+ function addDocumentPress() {
16066
+ var doc = getDocument();
16067
+ doc.addEventListener('mousedown', onDocumentPress, true);
16068
+ doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);
16069
+ doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);
16070
+ doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);
16071
+ }
 
16072
 
16073
+ function removeDocumentPress() {
16074
+ var doc = getDocument();
16075
+ doc.removeEventListener('mousedown', onDocumentPress, true);
16076
+ doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);
16077
+ doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);
16078
+ doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);
16079
+ }
16080
+
16081
+ function onTransitionedOut(duration, callback) {
16082
+ onTransitionEnd(duration, function () {
16083
+ if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {
16084
+ callback();
16085
  }
16086
+ });
16087
+ }
 
 
 
 
 
 
 
 
 
 
 
 
16088
 
16089
+ function onTransitionedIn(duration, callback) {
16090
+ onTransitionEnd(duration, callback);
16091
+ }
16092
 
16093
+ function onTransitionEnd(duration, callback) {
16094
+ var box = getDefaultTemplateChildren().box;
16095
 
16096
+ function listener(event) {
16097
+ if (event.target === box) {
16098
+ updateTransitionEndListener(box, 'remove', listener);
16099
+ callback();
16100
+ }
16101
+ } // Make callback synchronous if duration is 0
16102
+ // `transitionend` won't fire otherwise
16103
 
16104
 
16105
+ if (duration === 0) {
16106
+ return callback();
16107
+ }
16108
 
16109
+ updateTransitionEndListener(box, 'remove', currentTransitionEndListener);
16110
+ updateTransitionEndListener(box, 'add', listener);
16111
+ currentTransitionEndListener = listener;
16112
+ }
16113
 
16114
+ function on(eventType, handler, options) {
16115
+ if (options === void 0) {
16116
+ options = false;
16117
+ }
 
 
 
 
 
 
 
 
16118
 
16119
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference);
16120
+ nodes.forEach(function (node) {
16121
+ node.addEventListener(eventType, handler, options);
16122
+ listeners.push({
16123
+ node: node,
16124
+ eventType: eventType,
16125
+ handler: handler,
16126
+ options: options
16127
+ });
16128
+ });
16129
  }
 
 
 
 
16130
 
16131
+ function addListeners() {
16132
+ if (getIsCustomTouchBehavior()) {
16133
+ on('touchstart', onTrigger, {
16134
+ passive: true
16135
+ });
16136
+ on('touchend', onMouseLeave, {
16137
+ passive: true
16138
+ });
16139
+ }
16140
 
16141
+ splitBySpaces(instance.props.trigger).forEach(function (eventType) {
16142
+ if (eventType === 'manual') {
16143
+ return;
16144
+ }
 
 
 
 
 
 
16145
 
16146
+ on(eventType, onTrigger);
16147
 
16148
+ switch (eventType) {
16149
+ case 'mouseenter':
16150
+ on('mouseleave', onMouseLeave);
16151
+ break;
16152
 
16153
+ case 'focus':
16154
+ on(isIE ? 'focusout' : 'blur', onBlurOrFocusOut);
16155
+ break;
16156
 
16157
+ case 'focusin':
16158
+ on('focusout', onBlurOrFocusOut);
16159
+ break;
16160
+ }
16161
+ });
16162
+ }
16163
 
16164
+ function removeListeners() {
16165
+ listeners.forEach(function (_ref) {
16166
+ var node = _ref.node,
16167
+ eventType = _ref.eventType,
16168
+ handler = _ref.handler,
16169
+ options = _ref.options;
16170
+ node.removeEventListener(eventType, handler, options);
16171
+ });
16172
+ listeners = [];
16173
+ }
16174
 
16175
+ function onTrigger(event) {
16176
+ var _lastTriggerEvent;
16177
 
16178
+ var shouldScheduleClickHide = false;
16179
 
16180
+ if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {
16181
+ return;
16182
+ }
16183
 
16184
+ var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';
16185
+ lastTriggerEvent = event;
16186
+ currentTarget = event.currentTarget;
16187
+ handleAriaExpandedAttribute();
16188
 
16189
+ if (!instance.state.isVisible && isMouseEvent(event)) {
16190
+ // If scrolling, `mouseenter` events can be fired if the cursor lands
16191
+ // over a new target, but `mousemove` events don't get fired. This
16192
+ // causes interactive tooltips to get stuck open until the cursor is
16193
+ // moved
16194
+ mouseMoveListeners.forEach(function (listener) {
16195
+ return listener(event);
16196
+ });
16197
+ } // Toggle show/hide when clicking click-triggered tooltips
16198
 
16199
 
16200
+ if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {
16201
+ shouldScheduleClickHide = true;
16202
+ } else {
16203
+ scheduleShow(event);
16204
+ }
16205
 
16206
+ if (event.type === 'click') {
16207
+ isVisibleFromClick = !shouldScheduleClickHide;
16208
+ }
16209
 
16210
+ if (shouldScheduleClickHide && !wasFocused) {
16211
+ scheduleHide(event);
16212
+ }
16213
+ }
16214
 
16215
+ function onMouseMove(event) {
16216
+ var target = event.target;
16217
+ var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper.contains(target);
16218
 
16219
+ if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {
16220
+ return;
16221
+ }
16222
 
16223
+ var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {
16224
+ var _instance$popperInsta;
 
 
16225
 
16226
+ var instance = popper._tippy;
16227
+ var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;
 
 
16228
 
16229
+ if (state) {
16230
+ return {
16231
+ popperRect: popper.getBoundingClientRect(),
16232
+ popperState: state,
16233
+ props: props
16234
+ };
16235
+ }
16236
 
16237
+ return null;
16238
+ }).filter(Boolean);
 
 
 
 
 
 
 
 
 
 
16239
 
16240
+ if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {
16241
+ cleanupInteractiveMouseListeners();
16242
+ scheduleHide(event);
16243
  }
16244
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16245
 
16246
+ function onMouseLeave(event) {
16247
+ var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;
 
 
 
 
 
16248
 
16249
+ if (shouldBail) {
16250
+ return;
16251
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16252
 
16253
+ if (instance.props.interactive) {
16254
+ instance.hideWithInteractivity(event);
16255
+ return;
16256
+ }
 
16257
 
16258
+ scheduleHide(event);
16259
+ }
 
16260
 
16261
+ function onBlurOrFocusOut(event) {
16262
+ if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {
16263
+ return;
16264
+ } // If focus was moved to within the popper
 
16265
 
 
 
 
 
16266
 
16267
+ if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {
16268
+ return;
16269
+ }
16270
 
16271
+ scheduleHide(event);
16272
+ }
16273
+
16274
+ function isEventListenerStopped(event) {
16275
+ return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;
16276
+ }
16277
+
16278
+ function createPopperInstance() {
16279
+ destroyPopperInstance();
16280
+ var _instance$props2 = instance.props,
16281
+ popperOptions = _instance$props2.popperOptions,
16282
+ placement = _instance$props2.placement,
16283
+ offset = _instance$props2.offset,
16284
+ getReferenceClientRect = _instance$props2.getReferenceClientRect,
16285
+ moveTransition = _instance$props2.moveTransition;
16286
+ var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;
16287
+ var computedReference = getReferenceClientRect ? {
16288
+ getBoundingClientRect: getReferenceClientRect,
16289
+ contextElement: getReferenceClientRect.contextElement || getCurrentTarget()
16290
+ } : reference;
16291
+ var tippyModifier = {
16292
+ name: '$$tippy',
16293
+ enabled: true,
16294
+ phase: 'beforeWrite',
16295
+ requires: ['computeStyles'],
16296
+ fn: function fn(_ref2) {
16297
+ var state = _ref2.state;
16298
+
16299
+ if (getIsDefaultRenderFn()) {
16300
+ var _getDefaultTemplateCh = getDefaultTemplateChildren(),
16301
+ box = _getDefaultTemplateCh.box;
16302
+
16303
+ ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {
16304
+ if (attr === 'placement') {
16305
+ box.setAttribute('data-placement', state.placement);
16306
+ } else {
16307
+ if (state.attributes.popper["data-popper-" + attr]) {
16308
+ box.setAttribute("data-" + attr, '');
16309
+ } else {
16310
+ box.removeAttribute("data-" + attr);
16311
+ }
16312
+ }
16313
+ });
16314
+ state.attributes.popper = {};
16315
+ }
16316
+ }
16317
+ };
16318
+ var modifiers = [{
16319
+ name: 'offset',
16320
+ options: {
16321
+ offset: offset
16322
+ }
16323
+ }, {
16324
+ name: 'preventOverflow',
16325
+ options: {
16326
+ padding: {
16327
+ top: 2,
16328
+ bottom: 2,
16329
+ left: 5,
16330
+ right: 5
16331
+ }
16332
+ }
16333
+ }, {
16334
+ name: 'flip',
16335
+ options: {
16336
+ padding: 5
16337
+ }
16338
+ }, {
16339
+ name: 'computeStyles',
16340
+ options: {
16341
+ adaptive: !moveTransition
16342
+ }
16343
+ }, tippyModifier];
16344
 
16345
+ if (getIsDefaultRenderFn() && arrow) {
16346
+ modifiers.push({
16347
+ name: 'arrow',
16348
+ options: {
16349
+ element: arrow,
16350
+ padding: 3
16351
+ }
16352
+ });
16353
  }
 
 
 
 
 
 
16354
 
16355
+ modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);
16356
+ instance.popperInstance = popper_createPopper(computedReference, popper, Object.assign({}, popperOptions, {
16357
+ placement: placement,
16358
+ onFirstUpdate: onFirstUpdate,
16359
+ modifiers: modifiers
16360
+ }));
16361
+ }
16362
 
16363
+ function destroyPopperInstance() {
16364
+ if (instance.popperInstance) {
16365
+ instance.popperInstance.destroy();
16366
+ instance.popperInstance = null;
16367
  }
16368
+ }
16369
 
16370
+ function mount() {
16371
+ var appendTo = instance.props.appendTo;
16372
+ var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so
16373
+ // it's directly after the reference element so the elements inside the
16374
+ // tippy can be tabbed to
16375
+ // If there are clipping issues, the user can specify a different appendTo
16376
+ // and ensure focus management is handled correctly manually
16377
+
16378
+ var node = getCurrentTarget();
16379
+
16380
+ if (instance.props.interactive && appendTo === tippy_esm_defaultProps.appendTo || appendTo === 'parent') {
16381
+ parentNode = node.parentNode;
16382
  } else {
16383
+ parentNode = invokeWithArgsOrReturn(appendTo, [node]);
16384
+ } // The popper element needs to exist on the DOM before its position can be
16385
+ // updated as Popper needs to read its dimensions
16386
+
16387
+
16388
+ if (!parentNode.contains(popper)) {
16389
+ parentNode.appendChild(popper);
 
 
 
 
 
 
 
 
 
16390
  }
 
16391
 
16392
+ createPopperInstance();
16393
+ /* istanbul ignore else */
16394
+
16395
+ if (false) {}
16396
  }
16397
 
16398
+ function getNestedPopperTree() {
16399
+ return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));
16400
+ }
16401
 
16402
+ function scheduleShow(event) {
16403
+ instance.clearDelayTimeouts();
16404
 
16405
+ if (event) {
16406
+ invokeHook('onTrigger', [instance, event]);
16407
  }
 
16408
 
16409
+ addDocumentPress();
16410
+ var delay = getDelay(true);
16411
+
16412
+ var _getNormalizedTouchSe = getNormalizedTouchSettings(),
16413
+ touchValue = _getNormalizedTouchSe[0],
16414
+ touchDelay = _getNormalizedTouchSe[1];
16415
+
16416
+ if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {
16417
+ delay = touchDelay;
16418
  }
16419
 
16420
+ if (delay) {
16421
+ showTimeout = setTimeout(function () {
16422
+ instance.show();
16423
+ }, delay);
16424
+ } else {
16425
+ instance.show();
16426
  }
16427
+ }
16428
 
16429
+ function scheduleHide(event) {
16430
+ instance.clearDelayTimeouts();
16431
+ invokeHook('onUntrigger', [instance, event]);
16432
+
16433
+ if (!instance.state.isVisible) {
16434
+ removeDocumentPress();
16435
+ return;
16436
+ } // For interactive tippies, scheduleHide is added to a document.body handler
16437
+ // from onMouseLeave so must intercept scheduled hides from mousemove/leave
16438
+ // events when trigger contains mouseenter and click, and the tip is
16439
+ // currently shown as a result of a click.
16440
+
16441
+
16442
+ if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {
16443
+ return;
16444
  }
 
16445
 
16446
+ var delay = getDelay(false);
16447
+
16448
+ if (delay) {
16449
+ hideTimeout = setTimeout(function () {
16450
+ if (instance.state.isVisible) {
16451
+ instance.hide();
16452
+ }
16453
+ }, delay);
16454
+ } else {
16455
+ // Fixes a `transitionend` problem when it fires 1 frame too
16456
+ // late sometimes, we don't want hide() to be called.
16457
+ scheduleHideAnimationFrame = requestAnimationFrame(function () {
16458
+ instance.hide();
16459
+ });
16460
+ }
16461
+ } // ===========================================================================
16462
+ // 🔑 Public methods
16463
+ // ===========================================================================
16464
+
16465
+
16466
+ function enable() {
16467
+ instance.state.isEnabled = true;
16468
+ }
16469
+
16470
+ function disable() {
16471
+ // Disabling the instance should also hide it
16472
+ // https://github.com/atomiks/tippy.js-react/issues/106
16473
+ instance.hide();
16474
+ instance.state.isEnabled = false;
16475
+ }
16476
+
16477
+ function clearDelayTimeouts() {
16478
+ clearTimeout(showTimeout);
16479
+ clearTimeout(hideTimeout);
16480
+ cancelAnimationFrame(scheduleHideAnimationFrame);
16481
+ }
16482
+
16483
+ function setProps(partialProps) {
16484
+ /* istanbul ignore else */
16485
+ if (false) {}
16486
+
16487
+ if (instance.state.isDestroyed) {
16488
  return;
16489
  }
16490
 
16491
+ invokeHook('onBeforeUpdate', [instance, partialProps]);
16492
+ removeListeners();
16493
+ var prevProps = instance.props;
16494
+ var nextProps = evaluateProps(reference, Object.assign({}, instance.props, {}, partialProps, {
16495
+ ignoreAttributes: true
16496
+ }));
16497
+ instance.props = nextProps;
16498
+ addListeners();
16499
+
16500
+ if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {
16501
+ cleanupInteractiveMouseListeners();
16502
+ debouncedOnMouseMove = tippy_esm_debounce(onMouseMove, nextProps.interactiveDebounce);
16503
+ } // Ensure stale aria-expanded attributes are removed
16504
+
16505
+
16506
+ if (prevProps.triggerTarget && !nextProps.triggerTarget) {
16507
+ normalizeToArray(prevProps.triggerTarget).forEach(function (node) {
16508
+ node.removeAttribute('aria-expanded');
16509
+ });
16510
+ } else if (nextProps.triggerTarget) {
16511
+ reference.removeAttribute('aria-expanded');
16512
  }
16513
 
16514
+ handleAriaExpandedAttribute();
16515
+ handleStyles();
 
16516
 
16517
+ if (onUpdate) {
16518
+ onUpdate(prevProps, nextProps);
 
16519
  }
 
16520
 
16521
+ if (instance.popperInstance) {
16522
+ createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,
16523
+ // and the nested ones get re-rendered first.
16524
+ // https://github.com/atomiks/tippyjs-react/issues/177
16525
+ // TODO: find a cleaner / more efficient solution(!)
16526
 
16527
+ getNestedPopperTree().forEach(function (nestedPopper) {
16528
+ // React (and other UI libs likely) requires a rAF wrapper as it flushes
16529
+ // its work in one
16530
+ requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);
16531
+ });
16532
+ }
16533
 
16534
+ invokeHook('onAfterUpdate', [instance, partialProps]);
16535
+ }
16536
 
16537
+ function setContent(content) {
16538
+ instance.setProps({
16539
+ content: content
16540
+ });
16541
  }
16542
 
16543
+ function show() {
16544
+ /* istanbul ignore else */
16545
+ if (false) {} // Early bail-out
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16546
 
16547
 
16548
+ var isAlreadyVisible = instance.state.isVisible;
16549
+ var isDestroyed = instance.state.isDestroyed;
16550
+ var isDisabled = !instance.state.isEnabled;
16551
+ var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;
16552
+ var duration = getValueAtIndexOrReturn(instance.props.duration, 0, tippy_esm_defaultProps.duration);
16553
 
16554
+ if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {
16555
+ return;
16556
+ } // Normalize `disabled` behavior across browsers.
16557
+ // Firefox allows events on disabled elements, but Chrome doesn't.
16558
+ // Using a wrapper element (i.e. <span>) is recommended.
16559
 
16560
 
16561
+ if (getCurrentTarget().hasAttribute('disabled')) {
16562
+ return;
16563
+ }
16564
 
16565
+ invokeHook('onShow', [instance], false);
16566
 
16567
+ if (instance.props.onShow(instance) === false) {
16568
+ return;
16569
+ }
16570
 
16571
+ instance.state.isVisible = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16572
 
16573
+ if (getIsDefaultRenderFn()) {
16574
+ popper.style.visibility = 'visible';
16575
+ }
16576
 
16577
+ handleStyles();
16578
+ addDocumentPress();
16579
 
16580
+ if (!instance.state.isMounted) {
16581
+ popper.style.transition = 'none';
16582
+ } // If flipping to the opposite side after hiding at least once, the
16583
+ // animation will use the wrong placement without resetting the duration
16584
 
 
 
 
16585
 
16586
+ if (getIsDefaultRenderFn()) {
16587
+ var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),
16588
+ box = _getDefaultTemplateCh2.box,
16589
+ content = _getDefaultTemplateCh2.content;
16590
+
16591
+ setTransitionDuration([box, content], 0);
 
 
 
 
 
 
 
16592
  }
16593
 
16594
+ onFirstUpdate = function onFirstUpdate() {
16595
+ var _instance$popperInsta2;
 
 
 
 
16596
 
16597
+ if (!instance.state.isVisible || ignoreOnFirstUpdate) {
16598
+ return;
16599
+ }
16600
 
16601
+ ignoreOnFirstUpdate = true; // reflow
 
 
 
 
16602
 
16603
+ void popper.offsetHeight;
16604
+ popper.style.transition = instance.props.moveTransition;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16605
 
16606
+ if (getIsDefaultRenderFn() && instance.props.animation) {
16607
+ var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),
16608
+ _box = _getDefaultTemplateCh3.box,
16609
+ _content = _getDefaultTemplateCh3.content;
16610
 
16611
+ setTransitionDuration([_box, _content], duration);
16612
+ setVisibilityState([_box, _content], 'visible');
16613
+ }
16614
 
16615
+ handleAriaContentAttribute();
16616
+ handleAriaExpandedAttribute();
16617
+ pushIfUnique(mountedInstances, instance); // certain modifiers (e.g. `maxSize`) require a second update after the
16618
+ // popper has been positioned for the first time
16619
 
16620
+ (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();
16621
+ instance.state.isMounted = true;
16622
+ invokeHook('onMount', [instance]);
16623
 
16624
+ if (instance.props.animation && getIsDefaultRenderFn()) {
16625
+ onTransitionedIn(duration, function () {
16626
+ instance.state.isShown = true;
16627
+ invokeHook('onShown', [instance]);
16628
+ });
 
 
 
16629
  }
16630
+ };
16631
 
16632
+ mount();
16633
+ }
16634
 
16635
+ function hide() {
16636
+ /* istanbul ignore else */
16637
+ if (false) {} // Early bail-out
16638
 
 
 
 
 
16639
 
16640
+ var isAlreadyHidden = !instance.state.isVisible;
16641
+ var isDestroyed = instance.state.isDestroyed;
16642
+ var isDisabled = !instance.state.isEnabled;
16643
+ var duration = getValueAtIndexOrReturn(instance.props.duration, 1, tippy_esm_defaultProps.duration);
16644
 
16645
+ if (isAlreadyHidden || isDestroyed || isDisabled) {
16646
+ return;
16647
  }
16648
 
16649
+ invokeHook('onHide', [instance], false);
 
 
 
 
 
16650
 
16651
+ if (instance.props.onHide(instance) === false) {
16652
+ return;
 
16653
  }
16654
 
16655
+ instance.state.isVisible = false;
16656
+ instance.state.isShown = false;
16657
+ ignoreOnFirstUpdate = false;
16658
+ isVisibleFromClick = false;
16659
 
16660
+ if (getIsDefaultRenderFn()) {
16661
+ popper.style.visibility = 'hidden';
 
 
 
 
 
 
 
16662
  }
 
16663
 
16664
+ cleanupInteractiveMouseListeners();
16665
+ removeDocumentPress();
16666
+ handleStyles();
16667
 
16668
+ if (getIsDefaultRenderFn()) {
16669
+ var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),
16670
+ box = _getDefaultTemplateCh4.box,
16671
+ content = _getDefaultTemplateCh4.content;
16672
 
16673
+ if (instance.props.animation) {
16674
+ setTransitionDuration([box, content], duration);
16675
+ setVisibilityState([box, content], 'hidden');
16676
+ }
16677
+ }
16678
 
16679
+ handleAriaContentAttribute();
16680
+ handleAriaExpandedAttribute();
 
16681
 
16682
+ if (instance.props.animation) {
16683
+ if (getIsDefaultRenderFn()) {
16684
+ onTransitionedOut(duration, instance.unmount);
16685
+ }
16686
+ } else {
16687
+ instance.unmount();
 
16688
  }
16689
+ }
16690
 
16691
+ function hideWithInteractivity(event) {
16692
+ /* istanbul ignore else */
16693
+ if (false) {}
 
 
16694
 
16695
+ getDocument().addEventListener('mousemove', debouncedOnMouseMove);
16696
+ pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);
16697
+ debouncedOnMouseMove(event);
16698
+ }
 
 
 
 
 
16699
 
16700
+ function unmount() {
16701
+ /* istanbul ignore else */
16702
+ if (false) {}
16703
 
16704
+ if (instance.state.isVisible) {
16705
+ instance.hide();
16706
+ }
16707
 
16708
+ if (!instance.state.isMounted) {
 
 
 
 
 
16709
  return;
16710
  }
16711
 
16712
+ destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper
16713
+ // tree by default. This seems mainly for interactive tippies, but we should
16714
+ // find a workaround if possible
 
 
16715
 
16716
+ getNestedPopperTree().forEach(function (nestedPopper) {
16717
+ nestedPopper._tippy.unmount();
 
 
 
 
 
16718
  });
 
16719
 
16720
+ if (popper.parentNode) {
16721
+ popper.parentNode.removeChild(popper);
 
 
16722
  }
 
16723
 
16724
+ mountedInstances = mountedInstances.filter(function (i) {
16725
+ return i !== instance;
16726
+ });
16727
+ instance.state.isMounted = false;
16728
+ invokeHook('onHidden', [instance]);
16729
+ }
 
16730
 
16731
+ function destroy() {
16732
+ /* istanbul ignore else */
16733
+ if (false) {}
16734
 
16735
+ if (instance.state.isDestroyed) {
16736
+ return;
16737
+ }
16738
 
16739
+ instance.clearDelayTimeouts();
16740
+ instance.unmount();
16741
+ removeListeners();
16742
+ delete reference._tippy;
16743
+ instance.state.isDestroyed = true;
16744
+ invokeHook('onDestroy', [instance]);
16745
+ }
16746
+ }
16747
 
16748
+ function tippy(targets, optionalProps) {
16749
+ if (optionalProps === void 0) {
16750
+ optionalProps = {};
16751
+ }
16752
 
16753
+ var plugins = tippy_esm_defaultProps.plugins.concat(optionalProps.plugins || []);
16754
+ /* istanbul ignore else */
16755
 
16756
+ if (false) {}
 
 
 
16757
 
16758
+ bindGlobalEventListeners();
16759
+ var passedProps = Object.assign({}, optionalProps, {
16760
+ plugins: plugins
16761
+ });
16762
+ var elements = getArrayOfElements(targets);
16763
+ /* istanbul ignore else */
16764
+
16765
+ if (false) { var isMoreThanOneReferenceElement, isSingleContentElement; }
16766
+
16767
+ var instances = elements.reduce(function (acc, reference) {
16768
+ var instance = reference && createTippy(reference, passedProps);
16769
+
16770
+ if (instance) {
16771
+ acc.push(instance);
16772
  }
16773
 
16774
+ return acc;
16775
+ }, []);
16776
+ return tippy_esm_isElement(targets) ? instances[0] : instances;
16777
+ }
16778
 
16779
+ tippy.defaultProps = tippy_esm_defaultProps;
16780
+ tippy.setDefaultProps = setDefaultProps;
16781
+ tippy.currentInput = currentInput;
16782
+ var hideAll = function hideAll(_temp) {
16783
+ var _ref = _temp === void 0 ? {} : _temp,
16784
+ excludedReferenceOrInstance = _ref.exclude,
16785
+ duration = _ref.duration;
16786
+
16787
+ mountedInstances.forEach(function (instance) {
16788
+ var isExcluded = false;
16789
+
16790
+ if (excludedReferenceOrInstance) {
16791
+ isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;
16792
  }
16793
 
16794
+ if (!isExcluded) {
16795
+ var originalDuration = instance.props.duration;
16796
+ instance.setProps({
16797
+ duration: duration
16798
+ });
16799
+ instance.hide();
16800
+
16801
+ if (!instance.state.isDestroyed) {
16802
+ instance.setProps({
16803
+ duration: originalDuration
16804
+ });
16805
+ }
16806
  }
16807
+ });
16808
+ };
16809
 
16810
+ // every time the popper is destroyed (i.e. a new target), removing the styles
16811
+ // and causing transitions to break for singletons when the console is open, but
16812
+ // most notably for non-transform styles being used, `gpuAcceleration: false`.
16813
 
16814
+ var applyStylesModifier = Object.assign({}, modifiers_applyStyles, {
16815
+ effect: function effect(_ref) {
16816
+ var state = _ref.state;
16817
+ var initialStyles = {
16818
+ popper: {
16819
+ position: state.options.strategy,
16820
+ left: '0',
16821
+ top: '0',
16822
+ margin: '0'
16823
+ },
16824
+ arrow: {
16825
+ position: 'absolute'
16826
+ },
16827
+ reference: {}
16828
+ };
16829
+ Object.assign(state.elements.popper.style, initialStyles.popper);
16830
+ state.styles = initialStyles;
16831
+
16832
+ if (state.elements.arrow) {
16833
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
16834
+ } // intentionally return no cleanup function
16835
+ // return () => { ... }
16836
+
16837
+ }
16838
+ });
16839
+
16840
+ var createSingleton = function createSingleton(tippyInstances, optionalProps) {
16841
+ var _optionalProps$popper;
16842
+
16843
+ if (optionalProps === void 0) {
16844
+ optionalProps = {};
16845
+ }
16846
+
16847
+ /* istanbul ignore else */
16848
+ if (false) {}
16849
+
16850
+ var individualInstances = tippyInstances;
16851
+ var references = [];
16852
+ var currentTarget;
16853
+ var overrides = optionalProps.overrides;
16854
+ var interceptSetPropsCleanups = [];
16855
+ var shownOnCreate = false;
16856
+
16857
+ function setReferences() {
16858
+ references = individualInstances.map(function (instance) {
16859
+ return instance.reference;
16860
+ });
16861
+ }
16862
+
16863
+ function enableInstances(isEnabled) {
16864
+ individualInstances.forEach(function (instance) {
16865
+ if (isEnabled) {
16866
+ instance.enable();
16867
+ } else {
16868
+ instance.disable();
16869
+ }
16870
+ });
16871
+ }
16872
+
16873
+ function interceptSetProps(singleton) {
16874
+ return individualInstances.map(function (instance) {
16875
+ var originalSetProps = instance.setProps;
16876
+
16877
+ instance.setProps = function (props) {
16878
+ originalSetProps(props);
16879
+
16880
+ if (instance.reference === currentTarget) {
16881
+ singleton.setProps(props);
16882
+ }
16883
+ };
16884
+
16885
+ return function () {
16886
+ instance.setProps = originalSetProps;
16887
+ };
16888
+ });
16889
+ } // have to pass singleton, as it maybe undefined on first call
16890
+
16891
+
16892
+ function prepareInstance(singleton, target) {
16893
+ var index = references.indexOf(target); // bail-out
16894
+
16895
+ if (target === currentTarget) {
16896
+ return;
16897
  }
16898
 
16899
+ currentTarget = target;
16900
+ var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {
16901
+ acc[prop] = individualInstances[index].props[prop];
16902
+ return acc;
16903
+ }, {});
16904
+ singleton.setProps(Object.assign({}, overrideProps, {
16905
+ getReferenceClientRect: typeof overrideProps.getReferenceClientRect === 'function' ? overrideProps.getReferenceClientRect : function () {
16906
+ return target.getBoundingClientRect();
16907
+ }
16908
+ }));
16909
+ }
 
 
 
 
 
 
 
16910
 
16911
+ enableInstances(false);
16912
+ setReferences();
16913
+ var plugin = {
16914
+ fn: function fn() {
16915
+ return {
16916
+ onDestroy: function onDestroy() {
16917
+ enableInstances(true);
16918
+ },
16919
+ onHidden: function onHidden() {
16920
+ currentTarget = null;
16921
+ },
16922
+ onClickOutside: function onClickOutside(instance) {
16923
+ if (instance.props.showOnCreate && !shownOnCreate) {
16924
+ shownOnCreate = true;
16925
+ currentTarget = null;
16926
+ }
16927
+ },
16928
+ onShow: function onShow(instance) {
16929
+ if (instance.props.showOnCreate && !shownOnCreate) {
16930
+ shownOnCreate = true;
16931
+ prepareInstance(instance, references[0]);
16932
+ }
16933
+ },
16934
+ onTrigger: function onTrigger(instance, event) {
16935
+ prepareInstance(instance, event.currentTarget);
16936
+ }
16937
+ };
16938
+ }
16939
  };
16940
+ var singleton = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {
16941
+ plugins: [plugin].concat(optionalProps.plugins || []),
16942
+ triggerTarget: references,
16943
+ popperOptions: Object.assign({}, optionalProps.popperOptions, {
16944
+ modifiers: [].concat(((_optionalProps$popper = optionalProps.popperOptions) == null ? void 0 : _optionalProps$popper.modifiers) || [], [applyStylesModifier])
16945
+ })
16946
+ }));
16947
+ var originalShow = singleton.show;
16948
 
16949
+ singleton.show = function (target) {
16950
+ originalShow(); // first time, showOnCreate or programmatic call with no params
16951
+ // default to showing first instance
16952
 
16953
+ if (!currentTarget && target == null) {
16954
+ return prepareInstance(singleton, references[0]);
16955
+ } // triggered from event (do nothing as prepareInstance already called by onTrigger)
16956
+ // programmatic call with no params when already visible (do nothing again)
16957
 
 
16958
 
16959
+ if (currentTarget && target == null) {
16960
+ return;
16961
+ } // target is index of instance
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16962
 
16963
 
16964
+ if (typeof target === 'number') {
16965
+ return references[target] && prepareInstance(singleton, references[target]);
16966
+ } // target is a child tippy instance
16967
 
 
 
16968
 
16969
+ if (individualInstances.includes(target)) {
16970
+ var ref = target.reference;
16971
+ return prepareInstance(singleton, ref);
16972
+ } // target is a ReferenceElement
16973
 
16974
+
16975
+ if (references.includes(target)) {
16976
+ return prepareInstance(singleton, target);
16977
+ }
 
 
 
 
 
 
 
 
 
16978
  };
 
 
16979
 
16980
+ singleton.showNext = function () {
16981
+ var first = references[0];
16982
 
16983
+ if (!currentTarget) {
16984
+ return singleton.show(0);
16985
+ }
16986
 
16987
+ var index = references.indexOf(currentTarget);
16988
+ singleton.show(references[index + 1] || first);
16989
+ };
16990
 
16991
+ singleton.showPrevious = function () {
16992
+ var last = references[references.length - 1];
16993
 
16994
+ if (!currentTarget) {
16995
+ return singleton.show(last);
16996
+ }
16997
 
16998
+ var index = references.indexOf(currentTarget);
16999
+ var target = references[index - 1] || last;
17000
+ singleton.show(target);
17001
+ };
17002
 
17003
+ var originalSetProps = singleton.setProps;
17004
 
17005
+ singleton.setProps = function (props) {
17006
+ overrides = props.overrides || overrides;
17007
+ originalSetProps(props);
17008
+ };
17009
 
17010
+ singleton.setInstances = function (nextInstances) {
17011
+ enableInstances(true);
17012
+ interceptSetPropsCleanups.forEach(function (fn) {
17013
+ return fn();
17014
+ });
17015
+ individualInstances = nextInstances;
17016
+ enableInstances(false);
17017
+ setReferences();
17018
+ interceptSetProps(singleton);
17019
+ singleton.setProps({
17020
+ triggerTarget: references
17021
+ });
17022
+ };
17023
 
17024
+ interceptSetPropsCleanups = interceptSetProps(singleton);
17025
+ return singleton;
 
 
 
 
 
17026
  };
17027
+
17028
+ var BUBBLING_EVENTS_MAP = {
17029
+ mouseover: 'mouseenter',
17030
+ focusin: 'focus',
17031
+ click: 'click'
17032
  };
17033
  /**
17034
+ * Creates a delegate instance that controls the creation of tippy instances
17035
+ * for child elements (`target` CSS selector).
17036
  */
17037
 
17038
+ function delegate(targets, props) {
17039
+ /* istanbul ignore else */
17040
+ if (false) {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17041
 
17042
+ var listeners = [];
17043
+ var childTippyInstances = [];
17044
+ var disabled = false;
17045
+ var target = props.target;
17046
+ var nativeProps = removeProperties(props, ['target']);
17047
+ var parentProps = Object.assign({}, nativeProps, {
17048
+ trigger: 'manual',
17049
+ touch: false
17050
+ });
17051
+ var childProps = Object.assign({}, nativeProps, {
17052
+ showOnCreate: true
17053
+ });
17054
+ var returnValue = tippy(targets, parentProps);
17055
+ var normalizedReturnValue = normalizeToArray(returnValue);
17056
 
17057
+ function onTrigger(event) {
17058
+ if (!event.target || disabled) {
17059
+ return;
17060
+ }
 
 
 
17061
 
17062
+ var targetNode = event.target.closest(target);
17063
 
17064
+ if (!targetNode) {
17065
+ return;
17066
+ } // Get relevant trigger with fallbacks:
17067
+ // 1. Check `data-tippy-trigger` attribute on target node
17068
+ // 2. Fallback to `trigger` passed to `delegate()`
17069
+ // 3. Fallback to `defaultProps.trigger`
 
 
17070
 
 
 
 
17071
 
17072
+ var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || tippy_esm_defaultProps.trigger; // @ts-ignore
 
 
 
 
 
 
 
17073
 
17074
+ if (targetNode._tippy) {
17075
+ return;
17076
  }
 
 
 
 
 
 
 
 
 
 
 
 
17077
 
17078
+ if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {
17079
+ return;
17080
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17081
 
17082
+ if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type]) < 0) {
17083
+ return;
17084
+ }
17085
 
17086
+ var instance = tippy(targetNode, childProps);
17087
 
17088
+ if (instance) {
17089
+ childTippyInstances = childTippyInstances.concat(instance);
17090
+ }
17091
+ }
17092
 
17093
+ function on(node, eventType, handler, options) {
17094
+ if (options === void 0) {
17095
+ options = false;
17096
+ }
17097
 
17098
+ node.addEventListener(eventType, handler, options);
17099
+ listeners.push({
17100
+ node: node,
17101
+ eventType: eventType,
17102
+ handler: handler,
17103
+ options: options
17104
+ });
17105
+ }
17106
 
17107
+ function addEventListeners(instance) {
17108
+ var reference = instance.reference;
17109
+ on(reference, 'touchstart', onTrigger, TOUCH_OPTIONS);
17110
+ on(reference, 'mouseover', onTrigger);
17111
+ on(reference, 'focusin', onTrigger);
17112
+ on(reference, 'click', onTrigger);
17113
+ }
 
 
 
 
 
 
 
 
 
17114
 
17115
+ function removeEventListeners() {
17116
+ listeners.forEach(function (_ref) {
17117
+ var node = _ref.node,
17118
+ eventType = _ref.eventType,
17119
+ handler = _ref.handler,
17120
+ options = _ref.options;
17121
+ node.removeEventListener(eventType, handler, options);
17122
+ });
17123
+ listeners = [];
17124
  }
 
 
 
 
 
 
 
 
 
 
 
 
17125
 
17126
+ function applyMutations(instance) {
17127
+ var originalDestroy = instance.destroy;
17128
+ var originalEnable = instance.enable;
17129
+ var originalDisable = instance.disable;
 
 
 
 
 
 
 
 
 
 
17130
 
17131
+ instance.destroy = function (shouldDestroyChildInstances) {
17132
+ if (shouldDestroyChildInstances === void 0) {
17133
+ shouldDestroyChildInstances = true;
17134
+ }
17135
 
17136
+ if (shouldDestroyChildInstances) {
17137
+ childTippyInstances.forEach(function (instance) {
17138
+ instance.destroy();
17139
+ });
17140
+ }
17141
 
17142
+ childTippyInstances = [];
17143
+ removeEventListeners();
17144
+ originalDestroy();
17145
+ };
17146
 
17147
+ instance.enable = function () {
17148
+ originalEnable();
17149
+ childTippyInstances.forEach(function (instance) {
17150
+ return instance.enable();
17151
+ });
17152
+ disabled = false;
17153
+ };
17154
 
17155
+ instance.disable = function () {
17156
+ originalDisable();
17157
+ childTippyInstances.forEach(function (instance) {
17158
+ return instance.disable();
17159
+ });
17160
+ disabled = true;
17161
+ };
17162
 
17163
+ addEventListeners(instance);
17164
+ }
17165
 
17166
+ normalizedReturnValue.forEach(applyMutations);
17167
+ return returnValue;
17168
+ }
 
 
 
 
 
 
 
 
 
 
 
17169
 
17170
+ var animateFill = {
17171
+ name: 'animateFill',
17172
+ defaultValue: false,
17173
+ fn: function fn(instance) {
17174
+ var _instance$props$rende;
17175
 
17176
+ // @ts-ignore
17177
+ if (!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy)) {
17178
+ if (false) {}
17179
+
17180
+ return {};
17181
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17182
 
17183
+ var _getChildren = getChildren(instance.popper),
17184
+ box = _getChildren.box,
17185
+ content = _getChildren.content;
 
 
 
 
 
 
 
17186
 
17187
+ var backdrop = instance.props.animateFill ? createBackdropElement() : null;
17188
+ return {
17189
+ onCreate: function onCreate() {
17190
+ if (backdrop) {
17191
+ box.insertBefore(backdrop, box.firstElementChild);
17192
+ box.setAttribute('data-animatefill', '');
17193
+ box.style.overflow = 'hidden';
17194
+ instance.setProps({
17195
+ arrow: false,
17196
+ animation: 'shift-away'
17197
+ });
17198
+ }
17199
+ },
17200
+ onMount: function onMount() {
17201
+ if (backdrop) {
17202
+ var transitionDuration = box.style.transitionDuration;
17203
+ var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the
17204
+ // tooltip element. `clip-path` is the other alternative but is not
17205
+ // well-supported and is buggy on some devices.
17206
 
17207
+ content.style.transitionDelay = Math.round(duration / 10) + "ms";
17208
+ backdrop.style.transitionDuration = transitionDuration;
17209
+ setVisibilityState([backdrop], 'visible');
17210
+ }
17211
+ },
17212
+ onShow: function onShow() {
17213
+ if (backdrop) {
17214
+ backdrop.style.transitionDuration = '0ms';
17215
+ }
17216
+ },
17217
+ onHide: function onHide() {
17218
+ if (backdrop) {
17219
+ setVisibilityState([backdrop], 'hidden');
17220
+ }
17221
+ }
17222
+ };
17223
+ }
17224
+ };
17225
 
17226
+ function createBackdropElement() {
17227
+ var backdrop = div();
17228
+ backdrop.className = BACKDROP_CLASS;
17229
+ setVisibilityState([backdrop], 'hidden');
17230
+ return backdrop;
17231
+ }
17232
 
17233
+ var mouseCoords = {
17234
+ clientX: 0,
17235
+ clientY: 0
17236
+ };
17237
+ var activeInstances = [];
17238
 
17239
+ function storeMouseCoords(_ref) {
17240
+ var clientX = _ref.clientX,
17241
+ clientY = _ref.clientY;
17242
+ mouseCoords = {
17243
+ clientX: clientX,
17244
+ clientY: clientY
17245
+ };
17246
+ }
17247
 
17248
+ function addMouseCoordsListener(doc) {
17249
+ doc.addEventListener('mousemove', storeMouseCoords);
17250
+ }
17251
 
17252
+ function removeMouseCoordsListener(doc) {
17253
+ doc.removeEventListener('mousemove', storeMouseCoords);
17254
+ }
17255
 
17256
+ var followCursor = {
17257
+ name: 'followCursor',
17258
+ defaultValue: false,
17259
+ fn: function fn(instance) {
17260
+ var reference = instance.reference;
17261
+ var doc = getOwnerDocument(instance.props.triggerTarget || reference);
17262
+ var isInternalUpdate = false;
17263
+ var wasFocusEvent = false;
17264
+ var isUnmounted = true;
17265
+ var prevProps = instance.props;
17266
 
17267
+ function getIsInitialBehavior() {
17268
+ return instance.props.followCursor === 'initial' && instance.state.isVisible;
17269
+ }
17270
 
17271
+ function addListener() {
17272
+ doc.addEventListener('mousemove', onMouseMove);
17273
+ }
17274
 
17275
+ function removeListener() {
17276
+ doc.removeEventListener('mousemove', onMouseMove);
17277
+ }
17278
 
17279
+ function unsetGetReferenceClientRect() {
17280
+ isInternalUpdate = true;
17281
+ instance.setProps({
17282
+ getReferenceClientRect: null
17283
+ });
17284
+ isInternalUpdate = false;
17285
+ }
17286
 
17287
+ function onMouseMove(event) {
17288
+ // If the instance is interactive, avoid updating the position unless it's
17289
+ // over the reference element
17290
+ var isCursorOverReference = event.target ? reference.contains(event.target) : true;
17291
+ var followCursor = instance.props.followCursor;
17292
+ var clientX = event.clientX,
17293
+ clientY = event.clientY;
17294
+ var rect = reference.getBoundingClientRect();
17295
+ var relativeX = clientX - rect.left;
17296
+ var relativeY = clientY - rect.top;
17297
+
17298
+ if (isCursorOverReference || !instance.props.interactive) {
17299
+ instance.setProps({
17300
+ getReferenceClientRect: function getReferenceClientRect() {
17301
+ var rect = reference.getBoundingClientRect();
17302
+ var x = clientX;
17303
+ var y = clientY;
17304
+
17305
+ if (followCursor === 'initial') {
17306
+ x = rect.left + relativeX;
17307
+ y = rect.top + relativeY;
17308
+ }
17309
 
17310
+ var top = followCursor === 'horizontal' ? rect.top : y;
17311
+ var right = followCursor === 'vertical' ? rect.right : x;
17312
+ var bottom = followCursor === 'horizontal' ? rect.bottom : y;
17313
+ var left = followCursor === 'vertical' ? rect.left : x;
17314
+ return {
17315
+ width: right - left,
17316
+ height: bottom - top,
17317
+ top: top,
17318
+ right: right,
17319
+ bottom: bottom,
17320
+ left: left
17321
+ };
17322
+ }
17323
+ });
17324
+ }
17325
+ }
17326
 
17327
+ function create() {
17328
+ if (instance.props.followCursor) {
17329
+ activeInstances.push({
17330
+ instance: instance,
17331
+ doc: doc
17332
+ });
17333
+ addMouseCoordsListener(doc);
 
 
 
 
17334
  }
17335
+ }
17336
 
17337
+ function destroy() {
17338
+ activeInstances = activeInstances.filter(function (data) {
17339
+ return data.instance !== instance;
17340
+ });
 
 
 
 
 
17341
 
17342
+ if (activeInstances.filter(function (data) {
17343
+ return data.doc === doc;
17344
+ }).length === 0) {
17345
+ removeMouseCoordsListener(doc);
 
 
 
 
 
17346
  }
17347
+ }
17348
 
17349
+ return {
17350
+ onCreate: create,
17351
+ onDestroy: destroy,
17352
+ onBeforeUpdate: function onBeforeUpdate() {
17353
+ prevProps = instance.props;
17354
+ },
17355
+ onAfterUpdate: function onAfterUpdate(_, _ref2) {
17356
+ var followCursor = _ref2.followCursor;
17357
 
17358
+ if (isInternalUpdate) {
17359
+ return;
17360
+ }
 
 
17361
 
17362
+ if (followCursor !== undefined && prevProps.followCursor !== followCursor) {
17363
+ destroy();
17364
 
17365
+ if (followCursor) {
17366
+ create();
 
 
17367
 
17368
+ if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {
17369
+ addListener();
17370
+ }
17371
+ } else {
17372
+ removeListener();
17373
+ unsetGetReferenceClientRect();
17374
+ }
17375
+ }
17376
+ },
17377
+ onMount: function onMount() {
17378
+ if (instance.props.followCursor && !wasFocusEvent) {
17379
+ if (isUnmounted) {
17380
+ onMouseMove(mouseCoords);
17381
+ isUnmounted = false;
17382
+ }
17383
 
17384
+ if (!getIsInitialBehavior()) {
17385
+ addListener();
17386
+ }
17387
+ }
17388
+ },
17389
+ onTrigger: function onTrigger(_, event) {
17390
+ if (isMouseEvent(event)) {
17391
+ mouseCoords = {
17392
+ clientX: event.clientX,
17393
+ clientY: event.clientY
17394
+ };
17395
+ }
17396
 
17397
+ wasFocusEvent = event.type === 'focus';
17398
+ },
17399
+ onHidden: function onHidden() {
17400
+ if (instance.props.followCursor) {
17401
+ unsetGetReferenceClientRect();
17402
+ removeListener();
17403
+ isUnmounted = true;
17404
+ }
17405
+ }
17406
+ };
17407
+ }
17408
+ };
17409
 
17410
+ function getProps(props, modifier) {
17411
+ var _props$popperOptions;
 
 
 
 
 
17412
 
17413
+ return {
17414
+ popperOptions: Object.assign({}, props.popperOptions, {
17415
+ modifiers: [].concat((((_props$popperOptions = props.popperOptions) == null ? void 0 : _props$popperOptions.modifiers) || []).filter(function (_ref) {
17416
+ var name = _ref.name;
17417
+ return name !== modifier.name;
17418
+ }), [modifier])
17419
+ })
17420
+ };
17421
+ }
17422
 
17423
+ var inlinePositioning = {
17424
+ name: 'inlinePositioning',
17425
+ defaultValue: false,
17426
+ fn: function fn(instance) {
17427
+ var reference = instance.reference;
17428
 
17429
+ function isEnabled() {
17430
+ return !!instance.props.inlinePositioning;
 
 
 
 
 
 
 
 
 
 
17431
  }
 
 
 
 
 
 
 
 
 
17432
 
17433
+ var placement;
17434
+ var cursorRectIndex = -1;
17435
+ var isInternalUpdate = false;
17436
+ var modifier = {
17437
+ name: 'tippyInlinePositioning',
17438
+ enabled: true,
17439
+ phase: 'afterWrite',
17440
+ fn: function fn(_ref2) {
17441
+ var state = _ref2.state;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17442
 
17443
+ if (isEnabled()) {
17444
+ if (placement !== state.placement) {
17445
+ instance.setProps({
17446
+ getReferenceClientRect: function getReferenceClientRect() {
17447
+ return _getReferenceClientRect(state.placement);
17448
+ }
17449
+ });
17450
+ }
17451
 
17452
+ placement = state.placement;
17453
+ }
17454
+ }
17455
+ };
17456
 
17457
+ function _getReferenceClientRect(placement) {
17458
+ return getInlineBoundingClientRect(tippy_esm_getBasePlacement(placement), reference.getBoundingClientRect(), arrayFrom(reference.getClientRects()), cursorRectIndex);
17459
+ }
 
 
 
17460
 
17461
+ function setInternalProps(partialProps) {
17462
+ isInternalUpdate = true;
17463
+ instance.setProps(partialProps);
17464
+ isInternalUpdate = false;
17465
+ }
17466
 
17467
+ function addModifier() {
17468
+ if (!isInternalUpdate) {
17469
+ setInternalProps(getProps(instance.props, modifier));
17470
+ }
17471
  }
17472
 
17473
+ return {
17474
+ onCreate: addModifier,
17475
+ onAfterUpdate: addModifier,
17476
+ onTrigger: function onTrigger(_, event) {
17477
+ if (isMouseEvent(event)) {
17478
+ var rects = arrayFrom(instance.reference.getClientRects());
17479
+ var cursorRect = rects.find(function (rect) {
17480
+ return rect.left - 2 <= event.clientX && rect.right + 2 >= event.clientX && rect.top - 2 <= event.clientY && rect.bottom + 2 >= event.clientY;
17481
+ });
17482
+ cursorRectIndex = rects.indexOf(cursorRect);
17483
+ }
17484
+ },
17485
+ onUntrigger: function onUntrigger() {
17486
+ cursorRectIndex = -1;
17487
+ }
17488
+ };
17489
+ }
17490
+ };
17491
+ function getInlineBoundingClientRect(currentBasePlacement, boundingRect, clientRects, cursorRectIndex) {
17492
+ // Not an inline element, or placement is not yet known
17493
+ if (clientRects.length < 2 || currentBasePlacement === null) {
17494
+ return boundingRect;
17495
+ } // There are two rects and they are disjoined
17496
 
 
 
 
17497
 
17498
+ if (clientRects.length === 2 && cursorRectIndex >= 0 && clientRects[0].left > clientRects[1].right) {
17499
+ return clientRects[cursorRectIndex] || boundingRect;
17500
+ }
 
17501
 
17502
+ switch (currentBasePlacement) {
17503
+ case 'top':
17504
+ case 'bottom':
17505
+ {
17506
+ var firstRect = clientRects[0];
17507
+ var lastRect = clientRects[clientRects.length - 1];
17508
+ var isTop = currentBasePlacement === 'top';
17509
+ var top = firstRect.top;
17510
+ var bottom = lastRect.bottom;
17511
+ var left = isTop ? firstRect.left : lastRect.left;
17512
+ var right = isTop ? firstRect.right : lastRect.right;
17513
+ var width = right - left;
17514
+ var height = bottom - top;
17515
+ return {
17516
+ top: top,
17517
+ bottom: bottom,
17518
+ left: left,
17519
+ right: right,
17520
+ width: width,
17521
+ height: height
17522
+ };
17523
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17524
 
17525
+ case 'left':
17526
+ case 'right':
17527
+ {
17528
+ var minLeft = Math.min.apply(Math, clientRects.map(function (rects) {
17529
+ return rects.left;
17530
+ }));
17531
+ var maxRight = Math.max.apply(Math, clientRects.map(function (rects) {
17532
+ return rects.right;
17533
+ }));
17534
+ var measureRects = clientRects.filter(function (rect) {
17535
+ return currentBasePlacement === 'left' ? rect.left === minLeft : rect.right === maxRight;
17536
+ });
17537
+ var _top = measureRects[0].top;
17538
+ var _bottom = measureRects[measureRects.length - 1].bottom;
17539
+ var _left = minLeft;
17540
+ var _right = maxRight;
17541
 
17542
+ var _width = _right - _left;
17543
 
17544
+ var _height = _bottom - _top;
17545
 
17546
+ return {
17547
+ top: _top,
17548
+ bottom: _bottom,
17549
+ left: _left,
17550
+ right: _right,
17551
+ width: _width,
17552
+ height: _height
17553
+ };
17554
+ }
17555
 
17556
+ default:
17557
+ {
17558
+ return boundingRect;
17559
+ }
17560
+ }
17561
+ }
17562
 
17563
+ var sticky = {
17564
+ name: 'sticky',
17565
+ defaultValue: false,
17566
+ fn: function fn(instance) {
17567
+ var reference = instance.reference,
17568
+ popper = instance.popper;
17569
 
17570
+ function getReference() {
17571
+ return instance.popperInstance ? instance.popperInstance.state.elements.reference : reference;
17572
+ }
 
 
 
17573
 
17574
+ function shouldCheck(value) {
17575
+ return instance.props.sticky === true || instance.props.sticky === value;
17576
+ }
17577
 
17578
+ var prevRefRect = null;
17579
+ var prevPopRect = null;
17580
 
17581
+ function updatePosition() {
17582
+ var currentRefRect = shouldCheck('reference') ? getReference().getBoundingClientRect() : null;
17583
+ var currentPopRect = shouldCheck('popper') ? popper.getBoundingClientRect() : null;
17584
 
17585
+ if (currentRefRect && areRectsDifferent(prevRefRect, currentRefRect) || currentPopRect && areRectsDifferent(prevPopRect, currentPopRect)) {
17586
+ if (instance.popperInstance) {
17587
+ instance.popperInstance.update();
17588
+ }
17589
+ }
17590
 
17591
+ prevRefRect = currentRefRect;
17592
+ prevPopRect = currentPopRect;
17593
 
17594
+ if (instance.state.isMounted) {
17595
+ requestAnimationFrame(updatePosition);
17596
+ }
17597
+ }
17598
 
17599
+ return {
17600
+ onMount: function onMount() {
17601
+ if (instance.props.sticky) {
17602
+ updatePosition();
17603
+ }
17604
+ }
17605
+ };
17606
+ }
17607
+ };
17608
 
17609
+ function areRectsDifferent(rectA, rectB) {
17610
+ if (rectA && rectB) {
17611
+ return rectA.top !== rectB.top || rectA.right !== rectB.right || rectA.bottom !== rectB.bottom || rectA.left !== rectB.left;
17612
+ }
17613
 
17614
+ return true;
17615
+ }
17616
 
17617
+ tippy.setDefaultProps({
17618
+ render: render
17619
+ });
17620
 
17621
+ /* harmony default export */ var tippy_esm = (tippy);
 
17622
 
17623
+ //# sourceMappingURL=tippy.esm.js.map
 
17624
 
17625
+ ;// CONCATENATED MODULE: ./node_modules/@tippyjs/react/dist/tippy-react.esm.js
 
17626
 
 
 
 
 
 
 
 
17627
 
 
 
 
 
17628
 
 
 
 
 
17629
 
 
 
 
 
17630
 
17631
+ function tippy_react_esm_objectWithoutPropertiesLoose(source, excluded) {
17632
+ if (source == null) return {};
17633
+ var target = {};
17634
+ var sourceKeys = Object.keys(source);
17635
+ var key, i;
17636
 
17637
+ for (i = 0; i < sourceKeys.length; i++) {
17638
+ key = sourceKeys[i];
17639
+ if (excluded.indexOf(key) >= 0) continue;
17640
+ target[key] = source[key];
17641
+ }
 
17642
 
17643
+ return target;
17644
+ }
 
 
17645
 
17646
+ var tippy_react_esm_isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
17647
+ function preserveRef(ref, node) {
17648
+ if (ref) {
17649
+ if (typeof ref === 'function') {
17650
+ ref(node);
17651
+ }
17652
 
17653
+ if ({}.hasOwnProperty.call(ref, 'current')) {
17654
+ ref.current = node;
17655
+ }
17656
+ }
17657
+ }
17658
+ function ssrSafeCreateDiv() {
17659
+ return tippy_react_esm_isBrowser && document.createElement('div');
17660
+ }
17661
+ function toDataAttributes(attrs) {
17662
+ var dataAttrs = {
17663
+ 'data-placement': attrs.placement
17664
+ };
17665
 
17666
+ if (attrs.referenceHidden) {
17667
+ dataAttrs['data-reference-hidden'] = '';
17668
+ }
 
17669
 
17670
+ if (attrs.escaped) {
17671
+ dataAttrs['data-escaped'] = '';
17672
+ }
 
17673
 
17674
+ return dataAttrs;
17675
+ }
 
 
17676
 
17677
+ function deepEqual(x, y) {
17678
+ if (x === y) {
17679
+ return true;
17680
+ } else if (typeof x === 'object' && x != null && typeof y === 'object' && y != null) {
17681
+ if (Object.keys(x).length !== Object.keys(y).length) {
17682
+ return false;
17683
+ }
17684
 
17685
+ for (var prop in x) {
17686
+ if (y.hasOwnProperty(prop)) {
17687
+ if (!deepEqual(x[prop], y[prop])) {
17688
+ return false;
17689
+ }
17690
+ } else {
17691
+ return false;
17692
+ }
17693
+ }
17694
 
17695
+ return true;
17696
+ } else {
17697
+ return false;
17698
+ }
17699
+ }
17700
 
17701
+ function uniqueByShape(arr) {
17702
+ var output = [];
17703
+ arr.forEach(function (item) {
17704
+ if (!output.find(function (outputItem) {
17705
+ return deepEqual(item, outputItem);
17706
+ })) {
17707
+ output.push(item);
17708
  }
17709
+ });
17710
+ return output;
17711
+ }
17712
+ function deepPreserveProps(instanceProps, componentProps) {
17713
+ var _instanceProps$popper, _componentProps$poppe;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17714
 
17715
+ return Object.assign({}, componentProps, {
17716
+ popperOptions: Object.assign({}, instanceProps.popperOptions, componentProps.popperOptions, {
17717
+ modifiers: uniqueByShape([].concat(((_instanceProps$popper = instanceProps.popperOptions) == null ? void 0 : _instanceProps$popper.modifiers) || [], ((_componentProps$poppe = componentProps.popperOptions) == null ? void 0 : _componentProps$poppe.modifiers) || []))
17718
+ })
17719
+ });
17720
+ }
 
 
 
 
 
17721
 
17722
+ var useIsomorphicLayoutEffect = tippy_react_esm_isBrowser ? react.useLayoutEffect : react.useEffect;
17723
+ function useMutableBox(initialValue) {
17724
+ // Using refs instead of state as it's recommended to not store imperative
17725
+ // values in state due to memory problems in React(?)
17726
+ var ref = (0,react.useRef)();
17727
 
17728
+ if (!ref.current) {
17729
+ ref.current = typeof initialValue === 'function' ? initialValue() : initialValue;
17730
+ }
17731
 
17732
+ return ref.current;
17733
+ }
17734
 
17735
+ function updateClassName(box, action, classNames) {
17736
+ classNames.split(/\s+/).forEach(function (name) {
17737
+ if (name) {
17738
+ box.classList[action](name);
17739
+ }
17740
+ });
17741
+ }
17742
 
17743
+ var classNamePlugin = {
17744
+ name: 'className',
17745
+ defaultValue: '',
17746
+ fn: function fn(instance) {
17747
+ var box = instance.popper.firstElementChild;
17748
 
17749
+ var isDefaultRenderFn = function isDefaultRenderFn() {
17750
+ var _instance$props$rende;
17751
 
17752
+ return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);
17753
+ };
17754
+
17755
+ function add() {
17756
+ if (instance.props.className && !isDefaultRenderFn()) {
17757
+ if (false) {}
17758
+
17759
+ return;
17760
+ }
17761
+
17762
+ updateClassName(box, 'add', instance.props.className);
17763
+ }
17764
+
17765
+ function remove() {
17766
+ if (isDefaultRenderFn()) {
17767
+ updateClassName(box, 'remove', instance.props.className);
17768
+ }
17769
+ }
17770
+
17771
+ return {
17772
+ onCreate: add,
17773
+ onBeforeUpdate: remove,
17774
+ onAfterUpdate: add
17775
+ };
17776
  }
17777
  };
 
 
 
 
 
 
 
17778
 
17779
+ function TippyGenerator(tippy) {
17780
+ function Tippy(_ref) {
17781
+ var children = _ref.children,
17782
+ content = _ref.content,
17783
+ visible = _ref.visible,
17784
+ singleton = _ref.singleton,
17785
+ render = _ref.render,
17786
+ reference = _ref.reference,
17787
+ _ref$disabled = _ref.disabled,
17788
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
17789
+ _ref$ignoreAttributes = _ref.ignoreAttributes,
17790
+ ignoreAttributes = _ref$ignoreAttributes === void 0 ? true : _ref$ignoreAttributes,
17791
+ __source = _ref.__source,
17792
+ __self = _ref.__self,
17793
+ restOfNativeProps = tippy_react_esm_objectWithoutPropertiesLoose(_ref, ["children", "content", "visible", "singleton", "render", "reference", "disabled", "ignoreAttributes", "__source", "__self"]);
17794
 
17795
+ var isControlledMode = visible !== undefined;
17796
+ var isSingletonMode = singleton !== undefined;
17797
 
17798
+ var _useState = (0,react.useState)(false),
17799
+ mounted = _useState[0],
17800
+ setMounted = _useState[1];
17801
 
17802
+ var _useState2 = (0,react.useState)({}),
17803
+ attrs = _useState2[0],
17804
+ setAttrs = _useState2[1];
17805
 
17806
+ var _useState3 = (0,react.useState)(),
17807
+ singletonContent = _useState3[0],
17808
+ setSingletonContent = _useState3[1];
17809
 
17810
+ var mutableBox = useMutableBox(function () {
17811
+ return {
17812
+ container: ssrSafeCreateDiv(),
17813
+ renders: 1
17814
+ };
17815
+ });
17816
+ var props = Object.assign({
17817
+ ignoreAttributes: ignoreAttributes
17818
+ }, restOfNativeProps, {
17819
+ content: mutableBox.container
17820
+ });
17821
 
17822
+ if (isControlledMode) {
17823
+ if (false) {}
 
 
 
 
 
 
 
 
 
 
 
 
17824
 
17825
+ props.trigger = 'manual';
17826
+ props.hideOnClick = false;
 
 
 
17827
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17828
 
17829
+ if (isSingletonMode) {
17830
+ disabled = true;
17831
+ }
17832
 
17833
+ var computedProps = props;
17834
+ var plugins = props.plugins || [];
17835
 
17836
+ if (render) {
17837
+ computedProps = Object.assign({}, props, {
17838
+ plugins: isSingletonMode ? [].concat(plugins, [{
17839
+ fn: function fn() {
17840
+ return {
17841
+ onTrigger: function onTrigger(_, event) {
17842
+ var _singleton$data$child = singleton.data.children.find(function (_ref2) {
17843
+ var instance = _ref2.instance;
17844
+ return instance.reference === event.currentTarget;
17845
+ }),
17846
+ content = _singleton$data$child.content;
17847
 
17848
+ setSingletonContent(content);
17849
+ }
17850
+ };
17851
+ }
17852
+ }]) : plugins,
17853
+ render: function render() {
17854
+ return {
17855
+ popper: mutableBox.container
17856
+ };
17857
+ }
17858
+ });
17859
+ }
 
 
 
 
 
 
 
17860
 
17861
+ var deps = [reference].concat(children ? [children.type] : []); // CREATE
17862
 
17863
+ useIsomorphicLayoutEffect(function () {
17864
+ var element = reference;
17865
 
17866
+ if (reference && reference.hasOwnProperty('current')) {
17867
+ element = reference.current;
17868
+ }
17869
 
17870
+ var instance = tippy(element || mutableBox.ref || ssrSafeCreateDiv(), Object.assign({}, computedProps, {
17871
+ plugins: [classNamePlugin].concat(props.plugins || [])
17872
+ }));
17873
+ mutableBox.instance = instance;
17874
 
17875
+ if (disabled) {
17876
+ instance.disable();
17877
+ }
17878
 
17879
+ if (visible) {
17880
+ instance.show();
17881
+ }
 
 
 
 
 
 
17882
 
17883
+ if (isSingletonMode) {
17884
+ singleton.hook({
17885
+ instance: instance,
17886
+ content: content,
17887
+ props: computedProps
17888
+ });
17889
+ }
 
 
 
 
 
 
17890
 
17891
+ setMounted(true);
17892
+ return function () {
17893
+ instance.destroy();
17894
+ singleton == null ? void 0 : singleton.cleanup(instance);
17895
+ };
17896
+ }, deps); // UPDATE
 
 
 
 
 
17897
 
17898
+ useIsomorphicLayoutEffect(function () {
17899
+ var _instance$popperInsta;
17900
 
17901
+ // Prevent this effect from running on 1st render
17902
+ if (mutableBox.renders === 1) {
17903
+ mutableBox.renders++;
17904
+ return;
17905
+ }
17906
 
17907
+ var instance = mutableBox.instance;
17908
+ instance.setProps(deepPreserveProps(instance.props, computedProps)); // Fixes #264
17909
 
17910
+ (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.forceUpdate();
17911
 
17912
+ if (disabled) {
17913
+ instance.disable();
17914
+ } else {
17915
+ instance.enable();
17916
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17917
 
17918
+ if (isControlledMode) {
17919
+ if (visible) {
17920
+ instance.show();
17921
+ } else {
17922
+ instance.hide();
17923
+ }
17924
+ }
17925
 
17926
+ if (isSingletonMode) {
17927
+ singleton.hook({
17928
+ instance: instance,
17929
+ content: content,
17930
+ props: computedProps
17931
+ });
17932
+ }
17933
+ });
17934
+ useIsomorphicLayoutEffect(function () {
17935
+ var _instance$props$poppe;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17936
 
17937
+ if (!render) {
17938
+ return;
17939
+ }
17940
 
17941
+ var instance = mutableBox.instance;
17942
+ instance.setProps({
17943
+ popperOptions: Object.assign({}, instance.props.popperOptions, {
17944
+ modifiers: [].concat((((_instance$props$poppe = instance.props.popperOptions) == null ? void 0 : _instance$props$poppe.modifiers) || []).filter(function (_ref3) {
17945
+ var name = _ref3.name;
17946
+ return name !== '$$tippyReact';
17947
+ }), [{
17948
+ name: '$$tippyReact',
17949
+ enabled: true,
17950
+ phase: 'beforeWrite',
17951
+ requires: ['computeStyles'],
17952
+ fn: function fn(_ref4) {
17953
+ var _state$modifiersData;
17954
+
17955
+ var state = _ref4.state;
17956
+ var hideData = (_state$modifiersData = state.modifiersData) == null ? void 0 : _state$modifiersData.hide; // WARNING: this is a high-risk path that can cause an infinite
17957
+ // loop. This expression _must_ evaluate to false when required
17958
+
17959
+ if (attrs.placement !== state.placement || attrs.referenceHidden !== (hideData == null ? void 0 : hideData.isReferenceHidden) || attrs.escaped !== (hideData == null ? void 0 : hideData.hasPopperEscaped)) {
17960
+ setAttrs({
17961
+ placement: state.placement,
17962
+ referenceHidden: hideData == null ? void 0 : hideData.isReferenceHidden,
17963
+ escaped: hideData == null ? void 0 : hideData.hasPopperEscaped
17964
+ });
17965
+ }
17966
 
17967
+ state.attributes.popper = {};
17968
+ }
17969
+ }])
17970
+ })
17971
+ });
17972
+ }, [attrs.placement, attrs.referenceHidden, attrs.escaped].concat(deps));
17973
+ return /*#__PURE__*/react.createElement(react.Fragment, null, children ? /*#__PURE__*/(0,react.cloneElement)(children, {
17974
+ ref: function ref(node) {
17975
+ mutableBox.ref = node;
17976
+ preserveRef(children.ref, node);
17977
+ }
17978
+ }) : null, mounted && /*#__PURE__*/(0,react_dom.createPortal)(render ? render(toDataAttributes(attrs), singletonContent, mutableBox.instance) : content, mutableBox.container));
17979
+ }
17980
 
17981
+ return Tippy;
17982
+ }
17983
 
17984
+ function useSingletonGenerator(createSingleton) {
17985
+ return function useSingleton(_temp) {
17986
+ var _ref = _temp === void 0 ? {} : _temp,
17987
+ _ref$disabled = _ref.disabled,
17988
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
17989
+ _ref$overrides = _ref.overrides,
17990
+ overrides = _ref$overrides === void 0 ? [] : _ref$overrides;
17991
+
17992
+ var _useState = (0,react.useState)(false),
17993
+ mounted = _useState[0],
17994
+ setMounted = _useState[1];
17995
+
17996
+ var mutableBox = useMutableBox({
17997
+ children: [],
17998
+ renders: 1
17999
+ });
18000
+ useIsomorphicLayoutEffect(function () {
18001
+ if (!mounted) {
18002
+ setMounted(true);
18003
+ return;
18004
+ }
18005
 
18006
+ var children = mutableBox.children,
18007
+ sourceData = mutableBox.sourceData;
18008
 
18009
+ if (!sourceData) {
18010
+ if (false) {}
18011
 
18012
+ return;
18013
+ }
18014
 
18015
+ var instance = createSingleton(children.map(function (child) {
18016
+ return child.instance;
18017
+ }), Object.assign({}, sourceData.props, {
18018
+ popperOptions: sourceData.instance.props.popperOptions,
18019
+ overrides: overrides,
18020
+ plugins: [classNamePlugin].concat(sourceData.props.plugins || [])
18021
+ }));
18022
+ mutableBox.instance = instance;
18023
 
18024
+ if (disabled) {
18025
+ instance.disable();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18026
  }
 
18027
 
18028
+ return function () {
18029
+ instance.destroy();
18030
+ mutableBox.children = children.filter(function (_ref2) {
18031
+ var instance = _ref2.instance;
18032
+ return !instance.state.isDestroyed;
18033
+ });
18034
+ };
18035
+ }, [mounted]);
18036
+ useIsomorphicLayoutEffect(function () {
18037
+ if (!mounted) {
18038
+ return;
18039
  }
 
18040
 
18041
+ if (mutableBox.renders === 1) {
18042
+ mutableBox.renders++;
18043
+ return;
 
 
18044
  }
 
18045
 
18046
+ var children = mutableBox.children,
18047
+ instance = mutableBox.instance,
18048
+ sourceData = mutableBox.sourceData;
 
18049
 
18050
+ if (!(instance && sourceData)) {
18051
+ return;
 
 
 
 
 
 
 
18052
  }
 
18053
 
18054
+ var _sourceData$props = sourceData.props,
18055
+ content = _sourceData$props.content,
18056
+ props = tippy_react_esm_objectWithoutPropertiesLoose(_sourceData$props, ["content"]);
 
 
 
 
 
 
 
 
18057
 
18058
+ instance.setProps(deepPreserveProps(instance.props, Object.assign({}, props, {
18059
+ overrides: overrides
18060
+ })));
18061
+ instance.setInstances(children.map(function (child) {
18062
+ return child.instance;
18063
+ }));
18064
 
18065
+ if (disabled) {
18066
+ instance.disable();
18067
+ } else {
18068
+ instance.enable();
18069
+ }
18070
+ });
18071
+ return (0,react.useMemo)(function () {
18072
+ var source = {
18073
+ data: mutableBox,
18074
+ hook: function hook(data) {
18075
+ mutableBox.sourceData = data;
18076
+ },
18077
+ cleanup: function cleanup() {
18078
+ mutableBox.sourceData = null;
18079
+ }
18080
+ };
18081
+ var target = {
18082
+ hook: function hook(data) {
18083
+ if (!mutableBox.children.find(function (_ref3) {
18084
+ var instance = _ref3.instance;
18085
+ return data.instance === instance;
18086
+ })) {
18087
+ mutableBox.children.push(data);
18088
 
18089
+ if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {
18090
+ mutableBox.instance.setInstances(mutableBox.children.map(function (child) {
18091
+ return child.instance;
18092
+ }));
18093
+ }
18094
+ }
18095
+ },
18096
+ cleanup: function cleanup(instance) {
18097
+ mutableBox.children = mutableBox.children.filter(function (data) {
18098
+ return data.instance !== instance;
18099
+ });
18100
+
18101
+ if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {
18102
+ mutableBox.instance.setInstances(mutableBox.children.map(function (child) {
18103
+ return child.instance;
18104
+ }));
18105
+ }
18106
+ }
18107
+ };
18108
+ return [source, target];
18109
+ }, []);
18110
  };
18111
+ }
 
 
 
 
18112
 
18113
+ var forwardRef = (function (Tippy, defaultProps) {
18114
+ return /*#__PURE__*/(0,react.forwardRef)(function TippyWrapper(_ref, _ref2) {
18115
+ var children = _ref.children,
18116
+ props = tippy_react_esm_objectWithoutPropertiesLoose(_ref, ["children"]);
 
 
 
 
 
 
 
 
 
 
 
18117
 
18118
+ return (
18119
+ /*#__PURE__*/
18120
+ // If I spread them separately here, Babel adds the _extends ponyfill for
18121
+ // some reason
18122
+ react.createElement(Tippy, Object.assign({}, defaultProps, props), children ? /*#__PURE__*/(0,react.cloneElement)(children, {
18123
+ ref: function ref(node) {
18124
+ preserveRef(_ref2, node);
18125
+ preserveRef(children.ref, node);
18126
+ }
18127
+ }) : null)
18128
+ );
18129
+ });
18130
  });
 
 
 
 
 
 
18131
 
18132
+ var useSingleton = /*#__PURE__*/useSingletonGenerator(createSingleton);
18133
+ var index = /*#__PURE__*/forwardRef( /*#__PURE__*/TippyGenerator(tippy_esm));
18134
 
18135
+ /* harmony default export */ var tippy_react_esm = (index);
18136
 
18137
+ //# sourceMappingURL=tippy-react.esm.js.map
18138
 
18139
+ ;// CONCATENATED MODULE: ./node_modules/tippy.js/dist/tippy.css
18140
+ // extracted by mini-css-extract-plugin
18141
 
18142
+ ;// CONCATENATED MODULE: ./node_modules/tippy.js/themes/material.css
18143
+ // extracted by mini-css-extract-plugin
18144
 
18145
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Context.js
18146
 
18147
+ var ReactReduxContext = /*#__PURE__*/react.createContext(null);
18148
 
18149
+ if (false) {}
18150
 
18151
+ /* harmony default export */ var Context = ((/* unused pure expression or super */ null && (ReactReduxContext)));
18152
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/batch.js
18153
+ // Default to a dummy "batch" implementation that just runs the callback
18154
+ function defaultNoopBatch(callback) {
18155
+ callback();
18156
+ }
18157
 
18158
+ var batch = defaultNoopBatch; // Allow injecting another batching function later
18159
 
18160
+ var setBatch = function setBatch(newBatch) {
18161
+ return batch = newBatch;
18162
+ }; // Supply a getter just to skip dealing with ESM bindings
18163
 
18164
+ var getBatch = function getBatch() {
18165
+ return batch;
18166
+ };
18167
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/Subscription.js
18168
+ // encapsulates the subscription logic for connecting a component to the redux store, as
18169
+ // well as nesting subscriptions of descendant components, so that we can ensure the
18170
+ // ancestor components re-render before descendants
18171
 
18172
+ var nullListeners = {
18173
+ notify: function notify() {}
18174
+ };
18175
 
18176
+ function createListenerCollection() {
18177
+ var batch = getBatch();
18178
+ var first = null;
18179
+ var last = null;
18180
+ return {
18181
+ clear: function clear() {
18182
+ first = null;
18183
+ last = null;
18184
+ },
18185
+ notify: function notify() {
18186
+ batch(function () {
18187
+ var listener = first;
18188
 
18189
+ while (listener) {
18190
+ listener.callback();
18191
+ listener = listener.next;
18192
+ }
18193
+ });
18194
+ },
18195
+ get: function get() {
18196
+ var listeners = [];
18197
+ var listener = first;
18198
 
18199
+ while (listener) {
18200
+ listeners.push(listener);
18201
+ listener = listener.next;
18202
+ }
18203
 
18204
+ return listeners;
18205
+ },
18206
+ subscribe: function subscribe(callback) {
18207
+ var isSubscribed = true;
18208
+ var listener = last = {
18209
+ callback: callback,
18210
+ next: null,
18211
+ prev: last
18212
+ };
18213
 
18214
+ if (listener.prev) {
18215
+ listener.prev.next = listener;
18216
+ } else {
18217
+ first = listener;
18218
+ }
 
 
18219
 
18220
+ return function unsubscribe() {
18221
+ if (!isSubscribed || first === null) return;
18222
+ isSubscribed = false;
18223
 
18224
+ if (listener.next) {
18225
+ listener.next.prev = listener.prev;
18226
+ } else {
18227
+ last = listener.prev;
18228
+ }
 
 
 
 
18229
 
18230
+ if (listener.prev) {
18231
+ listener.prev.next = listener.next;
18232
+ } else {
18233
+ first = listener.next;
18234
+ }
18235
+ };
18236
+ }
18237
+ };
18238
+ }
18239
 
18240
+ var Subscription = /*#__PURE__*/function () {
18241
+ function Subscription(store, parentSub) {
18242
+ this.store = store;
18243
+ this.parentSub = parentSub;
18244
+ this.unsubscribe = null;
18245
+ this.listeners = nullListeners;
18246
+ this.handleChangeWrapper = this.handleChangeWrapper.bind(this);
18247
+ }
18248
 
18249
+ var _proto = Subscription.prototype;
18250
 
18251
+ _proto.addNestedSub = function addNestedSub(listener) {
18252
+ this.trySubscribe();
18253
+ return this.listeners.subscribe(listener);
18254
+ };
18255
 
18256
+ _proto.notifyNestedSubs = function notifyNestedSubs() {
18257
+ this.listeners.notify();
18258
+ };
18259
+
18260
+ _proto.handleChangeWrapper = function handleChangeWrapper() {
18261
+ if (this.onStateChange) {
18262
+ this.onStateChange();
18263
  }
18264
  };
18265
 
18266
+ _proto.isSubscribed = function isSubscribed() {
18267
+ return Boolean(this.unsubscribe);
18268
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18269
 
18270
+ _proto.trySubscribe = function trySubscribe() {
18271
+ if (!this.unsubscribe) {
18272
+ this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);
18273
+ this.listeners = createListenerCollection();
18274
+ }
18275
  };
18276
+
18277
+ _proto.tryUnsubscribe = function tryUnsubscribe() {
18278
+ if (this.unsubscribe) {
18279
+ this.unsubscribe();
18280
+ this.unsubscribe = null;
18281
+ this.listeners.clear();
18282
+ this.listeners = nullListeners;
18283
+ }
18284
+ };
18285
+
18286
+ return Subscription;
18287
+ }();
18288
+
18289
+
18290
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js
18291
+ // React currently throws a warning when using useLayoutEffect on the server.
18292
+ // To get around it, we can conditionally useEffect on the server (no-op) and
18293
+ // useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
18294
+ // subscription callback always has the selector from the latest render commit
18295
+ // available, otherwise a store update may happen between render and the effect,
18296
+ // which may cause missed updates; we also must ensure the store subscription
18297
+ // is created synchronously, otherwise a store update may occur before the
18298
+ // subscription is created and an inconsistent state may be observed
18299
+
18300
+ var useIsomorphicLayoutEffect_useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react.useLayoutEffect : react.useEffect;
18301
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Provider.js
18302
+
18303
+
18304
+
18305
+
18306
+
18307
+
18308
+ function Provider(_ref) {
18309
+ var store = _ref.store,
18310
+ context = _ref.context,
18311
+ children = _ref.children;
18312
+ var contextValue = (0,react.useMemo)(function () {
18313
+ var subscription = new Subscription(store);
18314
+ subscription.onStateChange = subscription.notifyNestedSubs;
18315
+ return {
18316
+ store: store,
18317
+ subscription: subscription
18318
+ };
18319
+ }, [store]);
18320
+ var previousState = (0,react.useMemo)(function () {
18321
+ return store.getState();
18322
+ }, [store]);
18323
+ useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
18324
+ var subscription = contextValue.subscription;
18325
+ subscription.trySubscribe();
18326
+
18327
+ if (previousState !== store.getState()) {
18328
+ subscription.notifyNestedSubs();
18329
+ }
18330
+
18331
+ return function () {
18332
+ subscription.tryUnsubscribe();
18333
+ subscription.onStateChange = null;
18334
+ };
18335
+ }, [contextValue, previousState]);
18336
+ var Context = context || ReactReduxContext;
18337
+ return /*#__PURE__*/react.createElement(Context.Provider, {
18338
+ value: contextValue
18339
+ }, children);
18340
+ }
18341
+
18342
+ if (false) {}
18343
+
18344
+ /* harmony default export */ var components_Provider = (Provider);
18345
+ // EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
18346
+ var hoist_non_react_statics_cjs = __webpack_require__(8679);
18347
+ var hoist_non_react_statics_cjs_default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics_cjs);
18348
+ // EXTERNAL MODULE: ./node_modules/react-redux/node_modules/react-is/index.js
18349
+ var react_is = __webpack_require__(72973);
18350
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/connectAdvanced.js
18351
+
18352
+
18353
+
18354
+
18355
+
18356
+
18357
+
18358
+ // Define some constant arrays just to avoid re-creating these
18359
+
18360
+ var EMPTY_ARRAY = [];
18361
+ var NO_SUBSCRIPTION_ARRAY = [null, null];
18362
+
18363
+ var stringifyComponent = function stringifyComponent(Comp) {
18364
+ try {
18365
+ return JSON.stringify(Comp);
18366
+ } catch (err) {
18367
+ return String(Comp);
18368
+ }
18369
+ };
18370
+
18371
+ function storeStateUpdatesReducer(state, action) {
18372
+ var updateCount = state[1];
18373
+ return [action.payload, updateCount + 1];
18374
+ }
18375
+
18376
+ function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
18377
+ useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
18378
+ return effectFunc.apply(void 0, effectArgs);
18379
+ }, dependencies);
18380
+ }
18381
+
18382
+ function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {
18383
+ // We want to capture the wrapper props and child props we used for later comparisons
18384
+ lastWrapperProps.current = wrapperProps;
18385
+ lastChildProps.current = actualChildProps;
18386
+ renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update
18387
+
18388
+ if (childPropsFromStoreUpdate.current) {
18389
+ childPropsFromStoreUpdate.current = null;
18390
+ notifyNestedSubs();
18391
+ }
18392
+ }
18393
+
18394
+ function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {
18395
+ // If we're not subscribed to the store, nothing to do here
18396
+ if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts
18397
+
18398
+ var didUnsubscribe = false;
18399
+ var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component
18400
+
18401
+ var checkForUpdates = function checkForUpdates() {
18402
+ if (didUnsubscribe) {
18403
+ // Don't run stale listeners.
18404
+ // Redux doesn't guarantee unsubscriptions happen until next dispatch.
18405
+ return;
18406
+ }
18407
+
18408
+ var latestStoreState = store.getState();
18409
+ var newChildProps, error;
18410
+
18411
+ try {
18412
+ // Actually run the selector with the most recent store state and wrapper props
18413
+ // to determine what the child props should be
18414
+ newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);
18415
+ } catch (e) {
18416
+ error = e;
18417
+ lastThrownError = e;
18418
+ }
18419
+
18420
+ if (!error) {
18421
+ lastThrownError = null;
18422
+ } // If the child props haven't changed, nothing to do here - cascade the subscription update
18423
+
18424
+
18425
+ if (newChildProps === lastChildProps.current) {
18426
+ if (!renderIsScheduled.current) {
18427
+ notifyNestedSubs();
18428
+ }
18429
+ } else {
18430
+ // Save references to the new child props. Note that we track the "child props from store update"
18431
+ // as a ref instead of a useState/useReducer because we need a way to determine if that value has
18432
+ // been processed. If this went into useState/useReducer, we couldn't clear out the value without
18433
+ // forcing another re-render, which we don't want.
18434
+ lastChildProps.current = newChildProps;
18435
+ childPropsFromStoreUpdate.current = newChildProps;
18436
+ renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render
18437
+
18438
+ forceComponentUpdateDispatch({
18439
+ type: 'STORE_UPDATED',
18440
+ payload: {
18441
+ error: error
18442
+ }
18443
+ });
18444
+ }
18445
+ }; // Actually subscribe to the nearest connected ancestor (or store)
18446
+
18447
+
18448
+ subscription.onStateChange = checkForUpdates;
18449
+ subscription.trySubscribe(); // Pull data from the store after first render in case the store has
18450
+ // changed since we began.
18451
+
18452
+ checkForUpdates();
18453
+
18454
+ var unsubscribeWrapper = function unsubscribeWrapper() {
18455
+ didUnsubscribe = true;
18456
+ subscription.tryUnsubscribe();
18457
+ subscription.onStateChange = null;
18458
+
18459
+ if (lastThrownError) {
18460
+ // It's possible that we caught an error due to a bad mapState function, but the
18461
+ // parent re-rendered without this component and we're about to unmount.
18462
+ // This shouldn't happen as long as we do top-down subscriptions correctly, but
18463
+ // if we ever do those wrong, this throw will surface the error in our tests.
18464
+ // In that case, throw the error from here so it doesn't get lost.
18465
+ throw lastThrownError;
18466
+ }
18467
+ };
18468
+
18469
+ return unsubscribeWrapper;
18470
+ }
18471
+
18472
+ var initStateUpdates = function initStateUpdates() {
18473
+ return [null, 0];
18474
+ };
18475
+
18476
+ function connectAdvanced(
18477
+ /*
18478
+ selectorFactory is a func that is responsible for returning the selector function used to
18479
+ compute new props from state, props, and dispatch. For example:
18480
+ export default connectAdvanced((dispatch, options) => (state, props) => ({
18481
+ thing: state.things[props.thingId],
18482
+ saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),
18483
+ }))(YourComponent)
18484
+ Access to dispatch is provided to the factory so selectorFactories can bind actionCreators
18485
+ outside of their selector as an optimization. Options passed to connectAdvanced are passed to
18486
+ the selectorFactory, along with displayName and WrappedComponent, as the second argument.
18487
+ Note that selectorFactory is responsible for all caching/memoization of inbound and outbound
18488
+ props. Do not use connectAdvanced directly without memoizing results between calls to your
18489
+ selector, otherwise the Connect component will re-render on every state or props change.
18490
+ */
18491
+ selectorFactory, // options object:
18492
+ _ref) {
18493
+ if (_ref === void 0) {
18494
+ _ref = {};
18495
+ }
18496
+
18497
+ var _ref2 = _ref,
18498
+ _ref2$getDisplayName = _ref2.getDisplayName,
18499
+ getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {
18500
+ return "ConnectAdvanced(" + name + ")";
18501
+ } : _ref2$getDisplayName,
18502
+ _ref2$methodName = _ref2.methodName,
18503
+ methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,
18504
+ _ref2$renderCountProp = _ref2.renderCountProp,
18505
+ renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,
18506
+ _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,
18507
+ shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,
18508
+ _ref2$storeKey = _ref2.storeKey,
18509
+ storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,
18510
+ _ref2$withRef = _ref2.withRef,
18511
+ withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,
18512
+ _ref2$forwardRef = _ref2.forwardRef,
18513
+ forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,
18514
+ _ref2$context = _ref2.context,
18515
+ context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,
18516
+ connectOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]);
18517
+
18518
+ if (false) { var customStoreWarningMessage; }
18519
+
18520
+ var Context = context;
18521
+ return function wrapWithConnect(WrappedComponent) {
18522
+ if (false) {}
18523
+
18524
+ var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
18525
+ var displayName = getDisplayName(wrappedComponentName);
18526
+
18527
+ var selectorFactoryOptions = (0,esm_extends/* default */.Z)({}, connectOptions, {
18528
+ getDisplayName: getDisplayName,
18529
+ methodName: methodName,
18530
+ renderCountProp: renderCountProp,
18531
+ shouldHandleStateChanges: shouldHandleStateChanges,
18532
+ storeKey: storeKey,
18533
+ displayName: displayName,
18534
+ wrappedComponentName: wrappedComponentName,
18535
+ WrappedComponent: WrappedComponent
18536
+ });
18537
+
18538
+ var pure = connectOptions.pure;
18539
+
18540
+ function createChildSelector(store) {
18541
+ return selectorFactory(store.dispatch, selectorFactoryOptions);
18542
+ } // If we aren't running in "pure" mode, we don't want to memoize values.
18543
+ // To avoid conditionally calling hooks, we fall back to a tiny wrapper
18544
+ // that just executes the given callback immediately.
18545
+
18546
+
18547
+ var usePureOnlyMemo = pure ? react.useMemo : function (callback) {
18548
+ return callback();
18549
+ };
18550
+
18551
+ function ConnectFunction(props) {
18552
+ var _useMemo = (0,react.useMemo)(function () {
18553
+ // Distinguish between actual "data" props that were passed to the wrapper component,
18554
+ // and values needed to control behavior (forwarded refs, alternate context instances).
18555
+ // To maintain the wrapperProps object reference, memoize this destructuring.
18556
+ var reactReduxForwardedRef = props.reactReduxForwardedRef,
18557
+ wrapperProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ["reactReduxForwardedRef"]);
18558
+
18559
+ return [props.context, reactReduxForwardedRef, wrapperProps];
18560
+ }, [props]),
18561
+ propsContext = _useMemo[0],
18562
+ reactReduxForwardedRef = _useMemo[1],
18563
+ wrapperProps = _useMemo[2];
18564
+
18565
+ var ContextToUse = (0,react.useMemo)(function () {
18566
+ // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
18567
+ // Memoize the check that determines which context instance we should use.
18568
+ return propsContext && propsContext.Consumer && (0,react_is.isContextConsumer)( /*#__PURE__*/react.createElement(propsContext.Consumer, null)) ? propsContext : Context;
18569
+ }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available
18570
+
18571
+ var contextValue = (0,react.useContext)(ContextToUse); // The store _must_ exist as either a prop or in context.
18572
+ // We'll check to see if it _looks_ like a Redux store first.
18573
+ // This allows us to pass through a `store` prop that is just a plain value.
18574
+
18575
+ var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
18576
+ var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
18577
+
18578
+ if (false) {} // Based on the previous check, one of these must be true
18579
+
18580
+
18581
+ var store = didStoreComeFromProps ? props.store : contextValue.store;
18582
+ var childPropsSelector = (0,react.useMemo)(function () {
18583
+ // The child props selector needs the store reference as an input.
18584
+ // Re-create this selector whenever the store changes.
18585
+ return createChildSelector(store);
18586
+ }, [store]);
18587
+
18588
+ var _useMemo2 = (0,react.useMemo)(function () {
18589
+ if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component
18590
+ // connected to the store via props shouldn't use subscription from context, or vice versa.
18591
+
18592
+ var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
18593
+ // the middle of the notification loop, where `subscription` will then be null. This can
18594
+ // probably be avoided if Subscription's listeners logic is changed to not call listeners
18595
+ // that have been unsubscribed in the middle of the notification loop.
18596
+
18597
+ var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);
18598
+ return [subscription, notifyNestedSubs];
18599
+ }, [store, didStoreComeFromProps, contextValue]),
18600
+ subscription = _useMemo2[0],
18601
+ notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,
18602
+ // and memoize that value to avoid unnecessary context updates.
18603
+
18604
+
18605
+ var overriddenContextValue = (0,react.useMemo)(function () {
18606
+ if (didStoreComeFromProps) {
18607
+ // This component is directly subscribed to a store from props.
18608
+ // We don't want descendants reading from this store - pass down whatever
18609
+ // the existing context value is from the nearest connected ancestor.
18610
+ return contextValue;
18611
+ } // Otherwise, put this component's subscription instance into context, so that
18612
+ // connected descendants won't update until after this component is done
18613
+
18614
+
18615
+ return (0,esm_extends/* default */.Z)({}, contextValue, {
18616
+ subscription: subscription
18617
+ });
18618
+ }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update
18619
+ // causes a change to the calculated child component props (or we caught an error in mapState)
18620
+
18621
+ var _useReducer = (0,react.useReducer)(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),
18622
+ _useReducer$ = _useReducer[0],
18623
+ previousStateUpdateResult = _useReducer$[0],
18624
+ forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards
18625
+
18626
+
18627
+ if (previousStateUpdateResult && previousStateUpdateResult.error) {
18628
+ throw previousStateUpdateResult.error;
18629
+ } // Set up refs to coordinate values between the subscription effect and the render logic
18630
+
18631
+
18632
+ var lastChildProps = (0,react.useRef)();
18633
+ var lastWrapperProps = (0,react.useRef)(wrapperProps);
18634
+ var childPropsFromStoreUpdate = (0,react.useRef)();
18635
+ var renderIsScheduled = (0,react.useRef)(false);
18636
+ var actualChildProps = usePureOnlyMemo(function () {
18637
+ // Tricky logic here:
18638
+ // - This render may have been triggered by a Redux store update that produced new child props
18639
+ // - However, we may have gotten new wrapper props after that
18640
+ // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
18641
+ // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
18642
+ // So, we'll use the child props from store update only if the wrapper props are the same as last time.
18643
+ if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
18644
+ return childPropsFromStoreUpdate.current;
18645
+ } // TODO We're reading the store directly in render() here. Bad idea?
18646
+ // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
18647
+ // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
18648
+ // to determine what the child props should be.
18649
+
18650
+
18651
+ return childPropsSelector(store.getState(), wrapperProps);
18652
+ }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns
18653
+ // about useLayoutEffect in SSR, so we try to detect environment and fall back to
18654
+ // just useEffect instead to avoid the warning, since neither will run anyway.
18655
+
18656
+ useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes
18657
+
18658
+ useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.
18659
+ // We memoize the elements for the rendered child component as an optimization.
18660
+
18661
+ var renderedWrappedComponent = (0,react.useMemo)(function () {
18662
+ return /*#__PURE__*/react.createElement(WrappedComponent, (0,esm_extends/* default */.Z)({}, actualChildProps, {
18663
+ ref: reactReduxForwardedRef
18664
+ }));
18665
+ }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering
18666
+ // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
18667
+
18668
+ var renderedChild = (0,react.useMemo)(function () {
18669
+ if (shouldHandleStateChanges) {
18670
+ // If this component is subscribed to store updates, we need to pass its own
18671
+ // subscription instance down to our descendants. That means rendering the same
18672
+ // Context instance, and putting a different value into the context.
18673
+ return /*#__PURE__*/react.createElement(ContextToUse.Provider, {
18674
+ value: overriddenContextValue
18675
+ }, renderedWrappedComponent);
18676
+ }
18677
+
18678
+ return renderedWrappedComponent;
18679
+ }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
18680
+ return renderedChild;
18681
+ } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed.
18682
+
18683
+
18684
+ var Connect = pure ? react.memo(ConnectFunction) : ConnectFunction;
18685
+ Connect.WrappedComponent = WrappedComponent;
18686
+ Connect.displayName = displayName;
18687
+
18688
+ if (forwardRef) {
18689
+ var forwarded = react.forwardRef(function forwardConnectRef(props, ref) {
18690
+ return /*#__PURE__*/react.createElement(Connect, (0,esm_extends/* default */.Z)({}, props, {
18691
+ reactReduxForwardedRef: ref
18692
+ }));
18693
+ });
18694
+ forwarded.displayName = displayName;
18695
+ forwarded.WrappedComponent = WrappedComponent;
18696
+ return hoist_non_react_statics_cjs_default()(forwarded, WrappedComponent);
18697
+ }
18698
+
18699
+ return hoist_non_react_statics_cjs_default()(Connect, WrappedComponent);
18700
+ };
18701
+ }
18702
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/shallowEqual.js
18703
+ function is(x, y) {
18704
+ if (x === y) {
18705
+ return x !== 0 || y !== 0 || 1 / x === 1 / y;
18706
+ } else {
18707
+ return x !== x && y !== y;
18708
+ }
18709
+ }
18710
+
18711
+ function shallowEqual(objA, objB) {
18712
+ if (is(objA, objB)) return true;
18713
+
18714
+ if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
18715
+ return false;
18716
+ }
18717
+
18718
+ var keysA = Object.keys(objA);
18719
+ var keysB = Object.keys(objB);
18720
+ if (keysA.length !== keysB.length) return false;
18721
+
18722
+ for (var i = 0; i < keysA.length; i++) {
18723
+ if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
18724
+ return false;
18725
+ }
18726
+ }
18727
+
18728
+ return true;
18729
+ }
18730
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/wrapMapToProps.js
18731
+
18732
+ function wrapMapToPropsConstant(getConstant) {
18733
+ return function initConstantSelector(dispatch, options) {
18734
+ var constant = getConstant(dispatch, options);
18735
+
18736
+ function constantSelector() {
18737
+ return constant;
18738
+ }
18739
+
18740
+ constantSelector.dependsOnOwnProps = false;
18741
+ return constantSelector;
18742
+ };
18743
+ } // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
18744
+ // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
18745
+ // whether mapToProps needs to be invoked when props have changed.
18746
+ //
18747
+ // A length of one signals that mapToProps does not depend on props from the parent component.
18748
+ // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
18749
+ // therefore not reporting its length accurately..
18750
+
18751
+ function getDependsOnOwnProps(mapToProps) {
18752
+ return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
18753
+ } // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
18754
+ // this function wraps mapToProps in a proxy function which does several things:
18755
+ //
18756
+ // * Detects whether the mapToProps function being called depends on props, which
18757
+ // is used by selectorFactory to decide if it should reinvoke on props changes.
18758
+ //
18759
+ // * On first call, handles mapToProps if returns another function, and treats that
18760
+ // new function as the true mapToProps for subsequent calls.
18761
+ //
18762
+ // * On first call, verifies the first result is a plain object, in order to warn
18763
+ // the developer that their mapToProps function is not returning a valid result.
18764
+ //
18765
+
18766
+ function wrapMapToPropsFunc(mapToProps, methodName) {
18767
+ return function initProxySelector(dispatch, _ref) {
18768
+ var displayName = _ref.displayName;
18769
+
18770
+ var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
18771
+ return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);
18772
+ }; // allow detectFactoryAndVerify to get ownProps
18773
+
18774
+
18775
+ proxy.dependsOnOwnProps = true;
18776
+
18777
+ proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
18778
+ proxy.mapToProps = mapToProps;
18779
+ proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
18780
+ var props = proxy(stateOrDispatch, ownProps);
18781
+
18782
+ if (typeof props === 'function') {
18783
+ proxy.mapToProps = props;
18784
+ proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
18785
+ props = proxy(stateOrDispatch, ownProps);
18786
+ }
18787
+
18788
+ if (false) {}
18789
+ return props;
18790
+ };
18791
+
18792
+ return proxy;
18793
+ };
18794
+ }
18795
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapDispatchToProps.js
18796
+
18797
+
18798
+ function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {
18799
+ return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;
18800
+ }
18801
+ function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
18802
+ return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {
18803
+ return {
18804
+ dispatch: dispatch
18805
+ };
18806
+ }) : undefined;
18807
+ }
18808
+ function whenMapDispatchToPropsIsObject(mapDispatchToProps) {
18809
+ return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {
18810
+ return bindActionCreators(mapDispatchToProps, dispatch);
18811
+ }) : undefined;
18812
+ }
18813
+ /* harmony default export */ var mapDispatchToProps = ([whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]);
18814
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapStateToProps.js
18815
+
18816
+ function whenMapStateToPropsIsFunction(mapStateToProps) {
18817
+ return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;
18818
+ }
18819
+ function whenMapStateToPropsIsMissing(mapStateToProps) {
18820
+ return !mapStateToProps ? wrapMapToPropsConstant(function () {
18821
+ return {};
18822
+ }) : undefined;
18823
+ }
18824
+ /* harmony default export */ var mapStateToProps = ([whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]);
18825
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mergeProps.js
18826
+
18827
+
18828
+ function defaultMergeProps(stateProps, dispatchProps, ownProps) {
18829
+ return (0,esm_extends/* default */.Z)({}, ownProps, stateProps, dispatchProps);
18830
+ }
18831
+ function wrapMergePropsFunc(mergeProps) {
18832
+ return function initMergePropsProxy(dispatch, _ref) {
18833
+ var displayName = _ref.displayName,
18834
+ pure = _ref.pure,
18835
+ areMergedPropsEqual = _ref.areMergedPropsEqual;
18836
+ var hasRunOnce = false;
18837
+ var mergedProps;
18838
+ return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
18839
+ var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
18840
+
18841
+ if (hasRunOnce) {
18842
+ if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;
18843
+ } else {
18844
+ hasRunOnce = true;
18845
+ mergedProps = nextMergedProps;
18846
+ if (false) {}
18847
+ }
18848
+
18849
+ return mergedProps;
18850
+ };
18851
+ };
18852
+ }
18853
+ function whenMergePropsIsFunction(mergeProps) {
18854
+ return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;
18855
+ }
18856
+ function whenMergePropsIsOmitted(mergeProps) {
18857
+ return !mergeProps ? function () {
18858
+ return defaultMergeProps;
18859
+ } : undefined;
18860
+ }
18861
+ /* harmony default export */ var mergeProps = ([whenMergePropsIsFunction, whenMergePropsIsOmitted]);
18862
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/selectorFactory.js
18863
+
18864
+
18865
+ function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {
18866
+ return function impureFinalPropsSelector(state, ownProps) {
18867
+ return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);
18868
+ };
18869
+ }
18870
+ function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {
18871
+ var areStatesEqual = _ref.areStatesEqual,
18872
+ areOwnPropsEqual = _ref.areOwnPropsEqual,
18873
+ areStatePropsEqual = _ref.areStatePropsEqual;
18874
+ var hasRunAtLeastOnce = false;
18875
+ var state;
18876
+ var ownProps;
18877
+ var stateProps;
18878
+ var dispatchProps;
18879
+ var mergedProps;
18880
+
18881
+ function handleFirstCall(firstState, firstOwnProps) {
18882
+ state = firstState;
18883
+ ownProps = firstOwnProps;
18884
+ stateProps = mapStateToProps(state, ownProps);
18885
+ dispatchProps = mapDispatchToProps(dispatch, ownProps);
18886
+ mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
18887
+ hasRunAtLeastOnce = true;
18888
+ return mergedProps;
18889
+ }
18890
+
18891
+ function handleNewPropsAndNewState() {
18892
+ stateProps = mapStateToProps(state, ownProps);
18893
+ if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
18894
+ mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
18895
+ return mergedProps;
18896
+ }
18897
+
18898
+ function handleNewProps() {
18899
+ if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);
18900
+ if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
18901
+ mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
18902
+ return mergedProps;
18903
+ }
18904
+
18905
+ function handleNewState() {
18906
+ var nextStateProps = mapStateToProps(state, ownProps);
18907
+ var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
18908
+ stateProps = nextStateProps;
18909
+ if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
18910
+ return mergedProps;
18911
+ }
18912
+
18913
+ function handleSubsequentCalls(nextState, nextOwnProps) {
18914
+ var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
18915
+ var stateChanged = !areStatesEqual(nextState, state);
18916
+ state = nextState;
18917
+ ownProps = nextOwnProps;
18918
+ if (propsChanged && stateChanged) return handleNewPropsAndNewState();
18919
+ if (propsChanged) return handleNewProps();
18920
+ if (stateChanged) return handleNewState();
18921
+ return mergedProps;
18922
+ }
18923
+
18924
+ return function pureFinalPropsSelector(nextState, nextOwnProps) {
18925
+ return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
18926
+ };
18927
+ } // TODO: Add more comments
18928
+ // If pure is true, the selector returned by selectorFactory will memoize its results,
18929
+ // allowing connectAdvanced's shouldComponentUpdate to return false if final
18930
+ // props have not changed. If false, the selector will always return a new
18931
+ // object and shouldComponentUpdate will always return true.
18932
+
18933
+ function finalPropsSelectorFactory(dispatch, _ref2) {
18934
+ var initMapStateToProps = _ref2.initMapStateToProps,
18935
+ initMapDispatchToProps = _ref2.initMapDispatchToProps,
18936
+ initMergeProps = _ref2.initMergeProps,
18937
+ options = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]);
18938
+
18939
+ var mapStateToProps = initMapStateToProps(dispatch, options);
18940
+ var mapDispatchToProps = initMapDispatchToProps(dispatch, options);
18941
+ var mergeProps = initMergeProps(dispatch, options);
18942
+
18943
+ if (false) {}
18944
+
18945
+ var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;
18946
+ return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
18947
+ }
18948
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/connect.js
18949
+
18950
+
18951
+
18952
+
18953
+
18954
+
18955
+
18956
+
18957
+ /*
18958
+ connect is a facade over connectAdvanced. It turns its args into a compatible
18959
+ selectorFactory, which has the signature:
18960
+
18961
+ (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps
18962
+
18963
+ connect passes its args to connectAdvanced as options, which will in turn pass them to
18964
+ selectorFactory each time a Connect component instance is instantiated or hot reloaded.
18965
+
18966
+ selectorFactory returns a final props selector from its mapStateToProps,
18967
+ mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,
18968
+ mergePropsFactories, and pure args.
18969
+
18970
+ The resulting final props selector is called by the Connect component instance whenever
18971
+ it receives new props or store state.
18972
+ */
18973
+
18974
+ function match(arg, factories, name) {
18975
+ for (var i = factories.length - 1; i >= 0; i--) {
18976
+ var result = factories[i](arg);
18977
+ if (result) return result;
18978
+ }
18979
+
18980
+ return function (dispatch, options) {
18981
+ throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + ".");
18982
+ };
18983
+ }
18984
+
18985
+ function strictEqual(a, b) {
18986
+ return a === b;
18987
+ } // createConnect with default args builds the 'official' connect behavior. Calling it with
18988
+ // different options opens up some testing and extensibility scenarios
18989
+
18990
+
18991
+ function createConnect(_temp) {
18992
+ var _ref = _temp === void 0 ? {} : _temp,
18993
+ _ref$connectHOC = _ref.connectHOC,
18994
+ connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,
18995
+ _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,
18996
+ mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? mapStateToProps : _ref$mapStateToPropsF,
18997
+ _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,
18998
+ mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? mapDispatchToProps : _ref$mapDispatchToPro,
18999
+ _ref$mergePropsFactor = _ref.mergePropsFactories,
19000
+ mergePropsFactories = _ref$mergePropsFactor === void 0 ? mergeProps : _ref$mergePropsFactor,
19001
+ _ref$selectorFactory = _ref.selectorFactory,
19002
+ selectorFactory = _ref$selectorFactory === void 0 ? finalPropsSelectorFactory : _ref$selectorFactory;
19003
+
19004
+ return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {
19005
+ if (_ref2 === void 0) {
19006
+ _ref2 = {};
19007
+ }
19008
+
19009
+ var _ref3 = _ref2,
19010
+ _ref3$pure = _ref3.pure,
19011
+ pure = _ref3$pure === void 0 ? true : _ref3$pure,
19012
+ _ref3$areStatesEqual = _ref3.areStatesEqual,
19013
+ areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,
19014
+ _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,
19015
+ areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,
19016
+ _ref3$areStatePropsEq = _ref3.areStatePropsEqual,
19017
+ areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,
19018
+ _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,
19019
+ areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,
19020
+ extraOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref3, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]);
19021
+
19022
+ var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');
19023
+ var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');
19024
+ var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');
19025
+ return connectHOC(selectorFactory, (0,esm_extends/* default */.Z)({
19026
+ // used in error messages
19027
+ methodName: 'connect',
19028
+ // used to compute Connect's displayName from the wrapped component's displayName.
19029
+ getDisplayName: function getDisplayName(name) {
19030
+ return "Connect(" + name + ")";
19031
+ },
19032
+ // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes
19033
+ shouldHandleStateChanges: Boolean(mapStateToProps),
19034
+ // passed through to selectorFactory
19035
+ initMapStateToProps: initMapStateToProps,
19036
+ initMapDispatchToProps: initMapDispatchToProps,
19037
+ initMergeProps: initMergeProps,
19038
+ pure: pure,
19039
+ areStatesEqual: areStatesEqual,
19040
+ areOwnPropsEqual: areOwnPropsEqual,
19041
+ areStatePropsEqual: areStatePropsEqual,
19042
+ areMergedPropsEqual: areMergedPropsEqual
19043
+ }, extraOptions));
19044
+ };
19045
+ }
19046
+ /* harmony default export */ var connect = (/*#__PURE__*/createConnect());
19047
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useReduxContext.js
19048
+
19049
+
19050
+ /**
19051
+ * A hook to access the value of the `ReactReduxContext`. This is a low-level
19052
+ * hook that you should usually not need to call directly.
19053
+ *
19054
+ * @returns {any} the value of the `ReactReduxContext`
19055
+ *
19056
+ * @example
19057
+ *
19058
+ * import React from 'react'
19059
+ * import { useReduxContext } from 'react-redux'
19060
+ *
19061
+ * export const CounterComponent = ({ value }) => {
19062
+ * const { store } = useReduxContext()
19063
+ * return <div>{store.getState()}</div>
19064
+ * }
19065
+ */
19066
+
19067
+ function useReduxContext_useReduxContext() {
19068
+ var contextValue = (0,react.useContext)(ReactReduxContext);
19069
+
19070
+ if (false) {}
19071
+
19072
+ return contextValue;
19073
+ }
19074
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useStore.js
19075
+
19076
+
19077
+
19078
+ /**
19079
+ * Hook factory, which creates a `useStore` hook bound to a given context.
19080
+ *
19081
+ * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
19082
+ * @returns {Function} A `useStore` hook bound to the specified context.
19083
+ */
19084
+
19085
+ function createStoreHook(context) {
19086
+ if (context === void 0) {
19087
+ context = ReactReduxContext;
19088
+ }
19089
+
19090
+ var useReduxContext = context === ReactReduxContext ? useReduxContext_useReduxContext : function () {
19091
+ return (0,react.useContext)(context);
19092
+ };
19093
+ return function useStore() {
19094
+ var _useReduxContext = useReduxContext(),
19095
+ store = _useReduxContext.store;
19096
+
19097
+ return store;
19098
+ };
19099
+ }
19100
+ /**
19101
+ * A hook to access the redux store.
19102
+ *
19103
+ * @returns {any} the redux store
19104
+ *
19105
+ * @example
19106
+ *
19107
+ * import React from 'react'
19108
+ * import { useStore } from 'react-redux'
19109
+ *
19110
+ * export const ExampleComponent = () => {
19111
+ * const store = useStore()
19112
+ * return <div>{store.getState()}</div>
19113
+ * }
19114
+ */
19115
+
19116
+ var useStore_useStore = /*#__PURE__*/createStoreHook();
19117
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useDispatch.js
19118
+
19119
+
19120
+ /**
19121
+ * Hook factory, which creates a `useDispatch` hook bound to a given context.
19122
+ *
19123
+ * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
19124
+ * @returns {Function} A `useDispatch` hook bound to the specified context.
19125
+ */
19126
+
19127
+ function createDispatchHook(context) {
19128
+ if (context === void 0) {
19129
+ context = ReactReduxContext;
19130
+ }
19131
+
19132
+ var useStore = context === ReactReduxContext ? useStore_useStore : createStoreHook(context);
19133
+ return function useDispatch() {
19134
+ var store = useStore();
19135
+ return store.dispatch;
19136
+ };
19137
+ }
19138
+ /**
19139
+ * A hook to access the redux `dispatch` function.
19140
+ *
19141
+ * @returns {any|function} redux store's `dispatch` function
19142
+ *
19143
+ * @example
19144
+ *
19145
+ * import React, { useCallback } from 'react'
19146
+ * import { useDispatch } from 'react-redux'
19147
+ *
19148
+ * export const CounterComponent = ({ value }) => {
19149
+ * const dispatch = useDispatch()
19150
+ * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
19151
+ * return (
19152
+ * <div>
19153
+ * <span>{value}</span>
19154
+ * <button onClick={increaseCounter}>Increase counter</button>
19155
+ * </div>
19156
+ * )
19157
+ * }
19158
+ */
19159
+
19160
+ var useDispatch = /*#__PURE__*/createDispatchHook();
19161
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useSelector.js
19162
+
19163
+
19164
+
19165
+
19166
+
19167
+
19168
+ var refEquality = function refEquality(a, b) {
19169
+ return a === b;
19170
+ };
19171
+
19172
+ function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {
19173
+ var _useReducer = (0,react.useReducer)(function (s) {
19174
+ return s + 1;
19175
+ }, 0),
19176
+ forceRender = _useReducer[1];
19177
+
19178
+ var subscription = (0,react.useMemo)(function () {
19179
+ return new Subscription(store, contextSub);
19180
+ }, [store, contextSub]);
19181
+ var latestSubscriptionCallbackError = (0,react.useRef)();
19182
+ var latestSelector = (0,react.useRef)();
19183
+ var latestStoreState = (0,react.useRef)();
19184
+ var latestSelectedState = (0,react.useRef)();
19185
+ var storeState = store.getState();
19186
+ var selectedState;
19187
+
19188
+ try {
19189
+ if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {
19190
+ var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references
19191
+
19192
+ if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {
19193
+ selectedState = newSelectedState;
19194
+ } else {
19195
+ selectedState = latestSelectedState.current;
19196
+ }
19197
+ } else {
19198
+ selectedState = latestSelectedState.current;
19199
+ }
19200
+ } catch (err) {
19201
+ if (latestSubscriptionCallbackError.current) {
19202
+ err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n";
19203
+ }
19204
+
19205
+ throw err;
19206
+ }
19207
+
19208
+ useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
19209
+ latestSelector.current = selector;
19210
+ latestStoreState.current = storeState;
19211
+ latestSelectedState.current = selectedState;
19212
+ latestSubscriptionCallbackError.current = undefined;
19213
+ });
19214
+ useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
19215
+ function checkForUpdates() {
19216
+ try {
19217
+ var _newSelectedState = latestSelector.current(store.getState());
19218
+
19219
+ if (equalityFn(_newSelectedState, latestSelectedState.current)) {
19220
+ return;
19221
+ }
19222
+
19223
+ latestSelectedState.current = _newSelectedState;
19224
+ } catch (err) {
19225
+ // we ignore all errors here, since when the component
19226
+ // is re-rendered, the selectors are called again, and
19227
+ // will throw again, if neither props nor store state
19228
+ // changed
19229
+ latestSubscriptionCallbackError.current = err;
19230
+ }
19231
+
19232
+ forceRender();
19233
+ }
19234
+
19235
+ subscription.onStateChange = checkForUpdates;
19236
+ subscription.trySubscribe();
19237
+ checkForUpdates();
19238
+ return function () {
19239
+ return subscription.tryUnsubscribe();
19240
+ };
19241
+ }, [store, subscription]);
19242
+ return selectedState;
19243
+ }
19244
+ /**
19245
+ * Hook factory, which creates a `useSelector` hook bound to a given context.
19246
+ *
19247
+ * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
19248
+ * @returns {Function} A `useSelector` hook bound to the specified context.
19249
+ */
19250
+
19251
+
19252
+ function createSelectorHook(context) {
19253
+ if (context === void 0) {
19254
+ context = ReactReduxContext;
19255
+ }
19256
+
19257
+ var useReduxContext = context === ReactReduxContext ? useReduxContext_useReduxContext : function () {
19258
+ return (0,react.useContext)(context);
19259
+ };
19260
+ return function useSelector(selector, equalityFn) {
19261
+ if (equalityFn === void 0) {
19262
+ equalityFn = refEquality;
19263
+ }
19264
+
19265
+ if (false) {}
19266
+
19267
+ var _useReduxContext = useReduxContext(),
19268
+ store = _useReduxContext.store,
19269
+ contextSub = _useReduxContext.subscription;
19270
+
19271
+ var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
19272
+ (0,react.useDebugValue)(selectedState);
19273
+ return selectedState;
19274
+ };
19275
+ }
19276
+ /**
19277
+ * A hook to access the redux store's state. This hook takes a selector function
19278
+ * as an argument. The selector is called with the store state.
19279
+ *
19280
+ * This hook takes an optional equality comparison function as the second parameter
19281
+ * that allows you to customize the way the selected state is compared to determine
19282
+ * whether the component needs to be re-rendered.
19283
+ *
19284
+ * @param {Function} selector the selector function
19285
+ * @param {Function=} equalityFn the function that will be used to determine equality
19286
+ *
19287
+ * @returns {any} the selected state
19288
+ *
19289
+ * @example
19290
+ *
19291
+ * import React from 'react'
19292
+ * import { useSelector } from 'react-redux'
19293
+ *
19294
+ * export const CounterComponent = () => {
19295
+ * const counter = useSelector(state => state.counter)
19296
+ * return <div>{counter}</div>
19297
+ * }
19298
+ */
19299
+
19300
+ var useSelector = /*#__PURE__*/createSelectorHook();
19301
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/reactBatchedUpdates.js
19302
+ /* eslint-disable import/no-unresolved */
19303
+
19304
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/index.js
19305
+
19306
+
19307
+
19308
+
19309
+
19310
+
19311
+
19312
+
19313
+
19314
+
19315
+ setBatch(react_dom.unstable_batchedUpdates);
19316
+
19317
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Tippy/Tippy.js
19318
+
19319
+
19320
+
19321
+
19322
+
19323
+
19324
+ function Tippy(_ref) {
19325
+ var props = _ref.props,
19326
+ _ref$arrow = _ref.arrow,
19327
+ arrow = _ref$arrow === void 0 ? true : _ref$arrow,
19328
+ _ref$trigger = _ref.trigger,
19329
+ trigger = _ref$trigger === void 0 ? "manual" : _ref$trigger,
19330
+ preference = _ref.preference;
19331
+ if (!preference) return props.children;
19332
+ var test = setTimeout(function () {});
19333
+ var currentX = false;
19334
+ var currentY = false;
19335
+ return /*#__PURE__*/react.createElement(tippy_react_esm, {
19336
+ content: props.content,
19337
+ hideOnClick: props.hideOnClick,
19338
+ theme: "material" // duration={[100, 100]}
19339
+ ,
19340
+ disabled: preference ? props.disabled : true,
19341
+ trigger: trigger,
19342
+ arrow: arrow,
19343
+ onCreate: function onCreate(instance) {
19344
+ if (trigger === "manual") {
19345
+ instance.reference.addEventListener("mousemove", function (e) {
19346
+ if (currentX && currentY && (Math.abs(e.clientX - currentX) > 10 || Math.abs(e.clientY - currentY) > 10) && instance.state.isShown) instance.hide();
19347
+ clearTimeout(test);
19348
+ test = setTimeout(function () {
19349
+ instance.show();
19350
+ currentX = e.clientX;
19351
+ currentY = e.clientY;
19352
+ }, 500);
19353
+ });
19354
+ instance.reference.addEventListener("mouseleave", function () {
19355
+ clearTimeout(test);
19356
+ instance.hide();
19357
+ currentX = currentY = false;
19358
+ });
19359
+ }
19360
+ },
19361
+ onDestroy: function onDestroy() {
19362
+ clearTimeout(test);
19363
+ }
19364
+ }, props.children);
19365
+ }
19366
+
19367
+ /* harmony default export */ var Tippy_Tippy = (connect(function (state, props) {
19368
+ return {
19369
+ preference: state.settings.show_tooltips,
19370
+ props: props
19371
+ };
19372
+ })(Tippy));
19373
+ // EXTERNAL MODULE: ./node_modules/react-is/index.js
19374
+ var node_modules_react_is = __webpack_require__(59864);
19375
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js
19376
+
19377
+
19378
+
19379
+
19380
+
19381
+
19382
+
19383
+
19384
+
19385
+ // Force a side effect so we don't have any override priority issue.
19386
+ // eslint-disable-next-line no-unused-expressions
19387
+
19388
+ Button_Button.styles;
19389
+ var ButtonGroup_styles = function styles(theme) {
19390
+ return {
19391
+ /* Styles applied to the root element. */
19392
+ root: {
19393
+ display: 'inline-flex',
19394
+ borderRadius: theme.shape.borderRadius
19395
+ },
19396
+
19397
+ /* Styles applied to the root element if `variant="contained"`. */
19398
+ contained: {
19399
+ boxShadow: theme.shadows[2]
19400
+ },
19401
+
19402
+ /* Styles applied to the root element if `disableElevation={true}`. */
19403
+ disableElevation: {
19404
+ boxShadow: 'none'
19405
+ },
19406
+
19407
+ /* Pseudo-class applied to child elements if `disabled={true}`. */
19408
+ disabled: {},
19409
+
19410
+ /* Styles applied to the root element if `fullWidth={true}`. */
19411
+ fullWidth: {
19412
+ width: '100%'
19413
+ },
19414
+
19415
+ /* Styles applied to the root element if `orientation="vertical"`. */
19416
+ vertical: {
19417
+ flexDirection: 'column'
19418
+ },
19419
+
19420
+ /* Styles applied to the children. */
19421
+ grouped: {
19422
+ minWidth: 40
19423
+ },
19424
+
19425
+ /* Styles applied to the children if `orientation="horizontal"`. */
19426
+ groupedHorizontal: {
19427
+ '&:not(:first-child)': {
19428
+ borderTopLeftRadius: 0,
19429
+ borderBottomLeftRadius: 0
19430
+ },
19431
+ '&:not(:last-child)': {
19432
+ borderTopRightRadius: 0,
19433
+ borderBottomRightRadius: 0
19434
+ }
19435
+ },
19436
+
19437
+ /* Styles applied to the children if `orientation="vertical"`. */
19438
+ groupedVertical: {
19439
+ '&:not(:first-child)': {
19440
+ borderTopRightRadius: 0,
19441
+ borderTopLeftRadius: 0
19442
+ },
19443
+ '&:not(:last-child)': {
19444
+ borderBottomRightRadius: 0,
19445
+ borderBottomLeftRadius: 0
19446
+ }
19447
+ },
19448
+
19449
+ /* Styles applied to the children if `variant="text"`. */
19450
+ groupedText: {},
19451
+
19452
+ /* Styles applied to the children if `variant="text"` and `orientation="horizontal"`. */
19453
+ groupedTextHorizontal: {
19454
+ '&:not(:last-child)': {
19455
+ borderRight: "1px solid ".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')
19456
+ }
19457
+ },
19458
+
19459
+ /* Styles applied to the children if `variant="text"` and `orientation="vertical"`. */
19460
+ groupedTextVertical: {
19461
+ '&:not(:last-child)': {
19462
+ borderBottom: "1px solid ".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')
19463
+ }
19464
+ },
19465
+
19466
+ /* Styles applied to the children if `variant="text"` and `color="primary"`. */
19467
+ groupedTextPrimary: {
19468
+ '&:not(:last-child)': {
19469
+ borderColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, 0.5)
19470
+ }
19471
+ },
19472
+
19473
+ /* Styles applied to the children if `variant="text"` and `color="secondary"`. */
19474
+ groupedTextSecondary: {
19475
+ '&:not(:last-child)': {
19476
+ borderColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, 0.5)
19477
+ }
19478
+ },
19479
+
19480
+ /* Styles applied to the children if `variant="outlined"`. */
19481
+ groupedOutlined: {},
19482
+
19483
+ /* Styles applied to the children if `variant="outlined"` and `orientation="horizontal"`. */
19484
+ groupedOutlinedHorizontal: {
19485
+ '&:not(:first-child)': {
19486
+ marginLeft: -1
19487
+ },
19488
+ '&:not(:last-child)': {
19489
+ borderRightColor: 'transparent'
19490
+ }
19491
+ },
19492
+
19493
+ /* Styles applied to the children if `variant="outlined"` and `orientation="vertical"`. */
19494
+ groupedOutlinedVertical: {
19495
+ '&:not(:first-child)': {
19496
+ marginTop: -1
19497
+ },
19498
+ '&:not(:last-child)': {
19499
+ borderBottomColor: 'transparent'
19500
+ }
19501
+ },
19502
+
19503
+ /* Styles applied to the children if `variant="outlined"` and `color="primary"`. */
19504
+ groupedOutlinedPrimary: {
19505
+ '&:hover': {
19506
+ borderColor: theme.palette.primary.main
19507
+ }
19508
+ },
19509
+
19510
+ /* Styles applied to the children if `variant="outlined"` and `color="secondary"`. */
19511
+ groupedOutlinedSecondary: {
19512
+ '&:hover': {
19513
+ borderColor: theme.palette.secondary.main
19514
+ }
19515
+ },
19516
+
19517
+ /* Styles applied to the children if `variant="contained"`. */
19518
+ groupedContained: {
19519
+ boxShadow: 'none'
19520
+ },
19521
+
19522
+ /* Styles applied to the children if `variant="contained"` and `orientation="horizontal"`. */
19523
+ groupedContainedHorizontal: {
19524
+ '&:not(:last-child)': {
19525
+ borderRight: "1px solid ".concat(theme.palette.grey[400]),
19526
+ '&$disabled': {
19527
+ borderRight: "1px solid ".concat(theme.palette.action.disabled)
19528
+ }
19529
+ }
19530
+ },
19531
+
19532
+ /* Styles applied to the children if `variant="contained"` and `orientation="vertical"`. */
19533
+ groupedContainedVertical: {
19534
+ '&:not(:last-child)': {
19535
+ borderBottom: "1px solid ".concat(theme.palette.grey[400]),
19536
+ '&$disabled': {
19537
+ borderBottom: "1px solid ".concat(theme.palette.action.disabled)
19538
+ }
19539
+ }
19540
+ },
19541
+
19542
+ /* Styles applied to the children if `variant="contained"` and `color="primary"`. */
19543
+ groupedContainedPrimary: {
19544
+ '&:not(:last-child)': {
19545
+ borderColor: theme.palette.primary.dark
19546
+ }
19547
+ },
19548
+
19549
+ /* Styles applied to the children if `variant="contained"` and `color="secondary"`. */
19550
+ groupedContainedSecondary: {
19551
+ '&:not(:last-child)': {
19552
+ borderColor: theme.palette.secondary.dark
19553
+ }
19554
+ }
19555
+ };
19556
+ };
19557
+ var ButtonGroup = /*#__PURE__*/react.forwardRef(function ButtonGroup(props, ref) {
19558
+ var children = props.children,
19559
+ classes = props.classes,
19560
+ className = props.className,
19561
+ _props$color = props.color,
19562
+ color = _props$color === void 0 ? 'default' : _props$color,
19563
+ _props$component = props.component,
19564
+ Component = _props$component === void 0 ? 'div' : _props$component,
19565
+ _props$disabled = props.disabled,
19566
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
19567
+ _props$disableElevati = props.disableElevation,
19568
+ disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,
19569
+ _props$disableFocusRi = props.disableFocusRipple,
19570
+ disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
19571
+ _props$disableRipple = props.disableRipple,
19572
+ disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,
19573
+ _props$fullWidth = props.fullWidth,
19574
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
19575
+ _props$orientation = props.orientation,
19576
+ orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,
19577
+ _props$size = props.size,
19578
+ size = _props$size === void 0 ? 'medium' : _props$size,
19579
+ _props$variant = props.variant,
19580
+ variant = _props$variant === void 0 ? 'outlined' : _props$variant,
19581
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "color", "component", "disabled", "disableElevation", "disableFocusRipple", "disableRipple", "fullWidth", "orientation", "size", "variant"]);
19582
+
19583
+ var buttonClassName = (0,clsx_m/* default */.Z)(classes.grouped, classes["grouped".concat((0,capitalize/* default */.Z)(orientation))], classes["grouped".concat((0,capitalize/* default */.Z)(variant))], classes["grouped".concat((0,capitalize/* default */.Z)(variant)).concat((0,capitalize/* default */.Z)(orientation))], classes["grouped".concat((0,capitalize/* default */.Z)(variant)).concat(color !== 'default' ? (0,capitalize/* default */.Z)(color) : '')], disabled && classes.disabled);
19584
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
19585
+ role: "group",
19586
+ className: (0,clsx_m/* default */.Z)(classes.root, className, fullWidth && classes.fullWidth, disableElevation && classes.disableElevation, variant === 'contained' && classes.contained, orientation === 'vertical' && classes.vertical),
19587
+ ref: ref
19588
+ }, other), react.Children.map(children, function (child) {
19589
+ if (! /*#__PURE__*/react.isValidElement(child)) {
19590
+ return null;
19591
+ }
19592
+
19593
+ if (false) {}
19594
+
19595
+ return /*#__PURE__*/react.cloneElement(child, {
19596
+ className: (0,clsx_m/* default */.Z)(buttonClassName, child.props.className),
19597
+ color: child.props.color || color,
19598
+ disabled: child.props.disabled || disabled,
19599
+ disableElevation: child.props.disableElevation || disableElevation,
19600
+ disableFocusRipple: disableFocusRipple,
19601
+ disableRipple: disableRipple,
19602
+ fullWidth: fullWidth,
19603
+ size: child.props.size || size,
19604
+ variant: child.props.variant || variant
19605
+ });
19606
+ }));
19607
+ });
19608
+ false ? 0 : void 0;
19609
+ /* harmony default export */ var ButtonGroup_ButtonGroup = ((0,withStyles/* default */.Z)(ButtonGroup_styles, {
19610
+ name: 'MuiButtonGroup'
19611
+ })(ButtonGroup));
19612
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/DevicePreview/DevicePreview.js
19613
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || DevicePreview_unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19614
+
19615
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19616
+
19617
+ function DevicePreview_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return DevicePreview_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return DevicePreview_arrayLikeToArray(o, minLen); }
19618
+
19619
+ function DevicePreview_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19620
+
19621
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19622
+
19623
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19624
+
19625
+
19626
+
19627
+
19628
+
19629
+
19630
+
19631
+
19632
+ function DevicePreview() {
19633
+ var _useState = (0,react.useState)("desktop"),
19634
+ _useState2 = _slicedToArray(_useState, 2),
19635
+ currentDevicePreview = _useState2[0],
19636
+ setCurrentDevicePreview = _useState2[1]; // Set device
19637
+
19638
+
19639
+ function setDevice(device) {
19640
+ // Don't change anything when chosen device is already selected
19641
+ if (device !== setCurrentDevicePreview) {
19642
+ // Device
19643
+ setCurrentDevicePreview(device); // Update class
19644
+
19645
+ document.querySelector(".buttonizer-preview").className = (0,clsx_m/* default */.Z)("buttonizer-preview", device === "mobile" && "frame-size-mobile", device === "tablet" && "frame-size-tablet");
19646
+ }
19647
+ }
19648
+
19649
+ return /*#__PURE__*/react.createElement("div", {
19650
+ className: "device-preview"
19651
+ }, /*#__PURE__*/react.createElement(ButtonGroup_ButtonGroup, {
19652
+ color: "primary"
19653
+ }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
19654
+ content: translate("bar.preview.desktop")
19655
+ }, /*#__PURE__*/react.createElement(Button_Button, {
19656
+ onClick: function onClick() {
19657
+ return setDevice("desktop");
19658
+ },
19659
+ variant: currentDevicePreview === "desktop" ? "contained" : null,
19660
+ color: "primary",
19661
+ "data-testid": "desktop"
19662
+ }, /*#__PURE__*/react.createElement("i", {
19663
+ className: "fas fa-desktop"
19664
+ }))), /*#__PURE__*/react.createElement(Tippy_Tippy, {
19665
+ content: translate("bar.preview.tablet")
19666
+ }, /*#__PURE__*/react.createElement(Button_Button, {
19667
+ onClick: function onClick() {
19668
+ return setDevice("tablet");
19669
+ },
19670
+ variant: currentDevicePreview === "tablet" ? "contained" : null,
19671
+ color: "primary",
19672
+ "data-testid": "tablet"
19673
+ }, /*#__PURE__*/react.createElement("i", {
19674
+ className: "fas fa-tablet-alt"
19675
+ }))), /*#__PURE__*/react.createElement(Tippy_Tippy, {
19676
+ content: translate("bar.preview.mobile")
19677
+ }, /*#__PURE__*/react.createElement(Button_Button, {
19678
+ onClick: function onClick() {
19679
+ return setDevice("mobile");
19680
+ },
19681
+ variant: currentDevicePreview === "mobile" ? "contained" : null,
19682
+ color: "primary",
19683
+ "data-testid": "mobile"
19684
+ }, /*#__PURE__*/react.createElement("i", {
19685
+ className: "fas fa-mobile-alt"
19686
+ })))));
19687
+ }
19688
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/PublishButton/PublishButton.js
19689
+ function PublishButton_slicedToArray(arr, i) { return PublishButton_arrayWithHoles(arr) || PublishButton_iterableToArrayLimit(arr, i) || PublishButton_unsupportedIterableToArray(arr, i) || PublishButton_nonIterableRest(); }
19690
+
19691
+ function PublishButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19692
+
19693
+ function PublishButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PublishButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return PublishButton_arrayLikeToArray(o, minLen); }
19694
+
19695
+ function PublishButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19696
+
19697
+ function PublishButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19698
+
19699
+ function PublishButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19700
+
19701
+
19702
+
19703
+
19704
+
19705
+
19706
+
19707
+ function PublishButton(_ref) {
19708
+ var hasChanges = _ref.hasChanges;
19709
+
19710
+ var _useState = (0,react.useState)(false),
19711
+ _useState2 = PublishButton_slicedToArray(_useState, 2),
19712
+ isPublishing = _useState2[0],
19713
+ setIsPublishing = _useState2[1];
19714
+
19715
+ var _useState3 = (0,react.useState)(false),
19716
+ _useState4 = PublishButton_slicedToArray(_useState3, 2),
19717
+ isPublished = _useState4[0],
19718
+ setIsPublished = _useState4[1];
19719
+
19720
+ function text() {
19721
+ if (isPublishing) {
19722
+ return translate("common.publishing");
19723
+ } else if (isPublished) {
19724
+ return translate("common.published");
19725
+ } else {
19726
+ return translate("common.publish");
19727
+ }
19728
+ }
19729
+ /**
19730
+ * Publish buttons
19731
+ */
19732
+
19733
+
19734
+ function publish() {
19735
+ setIsPublishing(true);
19736
+ savingHelpers_apiRequest("/publish", {
19737
+ method: "POST",
19738
+ data: {
19739
+ nonce: buttonizer_admin.nonce
19740
+ }
19741
+ }).then(function (_ref2) {
19742
+ var status = _ref2.status,
19743
+ message = _ref2.message;
19744
+ // Done publishing
19745
+ setIsPublishing(false); // Error?
19746
+
19747
+ if (status === "error") {
19748
+ app.loader.hide();
19749
+ app.error({
19750
+ message: message
19751
+ });
19752
+ return;
19753
+ }
19754
+
19755
+ app.setHasChanges(false); // Published!
19756
+
19757
+ setIsPublished(true); // Hide published message
19758
+
19759
+ setTimeout(function () {
19760
+ setIsPublished(false);
19761
+ }, 3000);
19762
+ })["catch"](function (_ref3) {
19763
+ var code = _ref3.code;
19764
+ setIsPublishing(false); // Lost internet connection
19765
+
19766
+ if (code === 0) {
19767
+ // app.showDialog(
19768
+ // ConfirmDialog.create({
19769
+ // title: "Lost internet",
19770
+ // buttons: [
19771
+ // {
19772
+ // label: window.Buttonizer.translate("modal.close"),
19773
+ // value: "close",
19774
+ // },
19775
+ // ],
19776
+ // children: (
19777
+ // <>
19778
+ // <p>
19779
+ // You've lost your internet connection. Please try again when
19780
+ // you have your internet back!
19781
+ // </p>
19782
+ // </>
19783
+ // ),
19784
+ // })
19785
+ // );
19786
+ return;
19787
+ } // app.showDialog(
19788
+ // ConfirmDialog.create({
19789
+ // title: "Something went wrong",
19790
+ // buttons: [
19791
+ // {
19792
+ // label: window.Buttonizer.translate("modal.close"),
19793
+ // value: "close",
19794
+ // },
19795
+ // ],
19796
+ // children: (
19797
+ // <>
19798
+ // <p>Seems like something went wrong.</p>
19799
+ // </>
19800
+ // ),
19801
+ // })
19802
+ // );
19803
+
19804
+ });
19805
+ }
19806
+
19807
+ return /*#__PURE__*/react.createElement(Button_Button, {
19808
+ onClick: function onClick() {
19809
+ return publish();
19810
+ },
19811
+ disabled: isPublishing || hasChanges === false,
19812
+ variant: "contained",
19813
+ color: "primary",
19814
+ "data-testid": "publish-button",
19815
+ className: "MuiButton-Publish"
19816
+ }, text());
19817
+ }
19818
+
19819
+ /* harmony default export */ var PublishButton_PublishButton = (connect(function (state) {
19820
+ return {
19821
+ hasChanges: state.misc.hasChanges
19822
+ };
19823
+ })(PublishButton));
19824
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
19825
+ var defineProperty = __webpack_require__(96156);
19826
+ // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js
19827
+ var useTheme = __webpack_require__(159);
19828
+ // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js
19829
+ var getThemeProps = __webpack_require__(93869);
19830
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerDocument.js
19831
+ var ownerDocument = __webpack_require__(30626);
19832
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/setRef.js
19833
+ var setRef = __webpack_require__(34236);
19834
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Portal/Portal.js
19835
+
19836
+
19837
+
19838
+
19839
+
19840
+
19841
+
19842
+ function getContainer(container) {
19843
+ container = typeof container === 'function' ? container() : container; // #StrictMode ready
19844
+
19845
+ return react_dom.findDOMNode(container);
19846
+ }
19847
+
19848
+ var Portal_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
19849
+ /**
19850
+ * Portals provide a first-class way to render children into a DOM node
19851
+ * that exists outside the DOM hierarchy of the parent component.
19852
+ */
19853
+
19854
+ var Portal = /*#__PURE__*/react.forwardRef(function Portal(props, ref) {
19855
+ var children = props.children,
19856
+ container = props.container,
19857
+ _props$disablePortal = props.disablePortal,
19858
+ disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
19859
+ onRendered = props.onRendered;
19860
+
19861
+ var _React$useState = react.useState(null),
19862
+ mountNode = _React$useState[0],
19863
+ setMountNode = _React$useState[1];
19864
+
19865
+ var handleRef = (0,useForkRef/* default */.Z)( /*#__PURE__*/react.isValidElement(children) ? children.ref : null, ref);
19866
+ Portal_useEnhancedEffect(function () {
19867
+ if (!disablePortal) {
19868
+ setMountNode(getContainer(container) || document.body);
19869
+ }
19870
+ }, [container, disablePortal]);
19871
+ Portal_useEnhancedEffect(function () {
19872
+ if (mountNode && !disablePortal) {
19873
+ (0,setRef/* default */.Z)(ref, mountNode);
19874
+ return function () {
19875
+ (0,setRef/* default */.Z)(ref, null);
19876
+ };
19877
+ }
19878
+
19879
+ return undefined;
19880
+ }, [ref, mountNode, disablePortal]);
19881
+ Portal_useEnhancedEffect(function () {
19882
+ if (onRendered && (mountNode || disablePortal)) {
19883
+ onRendered();
19884
+ }
19885
+ }, [onRendered, mountNode, disablePortal]);
19886
+
19887
+ if (disablePortal) {
19888
+ if ( /*#__PURE__*/react.isValidElement(children)) {
19889
+ return /*#__PURE__*/react.cloneElement(children, {
19890
+ ref: handleRef
19891
+ });
19892
+ }
19893
+
19894
+ return children;
19895
+ }
19896
+
19897
+ return mountNode ? /*#__PURE__*/react_dom.createPortal(children, mountNode) : mountNode;
19898
+ });
19899
+ false ? 0 : void 0;
19900
+
19901
+ if (false) {}
19902
+
19903
+ /* harmony default export */ var Portal_Portal = (Portal);
19904
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js
19905
+ var createChainedFunction = __webpack_require__(82568);
19906
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/zIndex.js
19907
+ var zIndex = __webpack_require__(92781);
19908
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
19909
+ function classCallCheck_classCallCheck(instance, Constructor) {
19910
+ if (!(instance instanceof Constructor)) {
19911
+ throw new TypeError("Cannot call a class as a function");
19912
+ }
19913
+ }
19914
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
19915
+ var createClass = __webpack_require__(5991);
19916
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js
19917
+ // A change of the browser zoom change the scrollbar size.
19918
+ // Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519
19919
+ function getScrollbarSize() {
19920
+ var scrollDiv = document.createElement('div');
19921
+ scrollDiv.style.width = '99px';
19922
+ scrollDiv.style.height = '99px';
19923
+ scrollDiv.style.position = 'absolute';
19924
+ scrollDiv.style.top = '-9999px';
19925
+ scrollDiv.style.overflow = 'scroll';
19926
+ document.body.appendChild(scrollDiv);
19927
+ var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
19928
+ document.body.removeChild(scrollDiv);
19929
+ return scrollbarSize;
19930
+ }
19931
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerWindow.js
19932
+ var ownerWindow = __webpack_require__(80713);
19933
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/ModalManager.js
19934
+
19935
+
19936
+
19937
+
19938
+
19939
+ // Is a vertical scrollbar displayed?
19940
+
19941
+ function isOverflowing(container) {
19942
+ var doc = (0,ownerDocument/* default */.Z)(container);
19943
+
19944
+ if (doc.body === container) {
19945
+ return (0,ownerWindow/* default */.Z)(doc).innerWidth > doc.documentElement.clientWidth;
19946
+ }
19947
+
19948
+ return container.scrollHeight > container.clientHeight;
19949
+ }
19950
+
19951
+ function ariaHidden(node, show) {
19952
+ if (show) {
19953
+ node.setAttribute('aria-hidden', 'true');
19954
+ } else {
19955
+ node.removeAttribute('aria-hidden');
19956
+ }
19957
+ }
19958
+
19959
+ function getPaddingRight(node) {
19960
+ return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;
19961
+ }
19962
+
19963
+ function ariaHiddenSiblings(container, mountNode, currentNode) {
19964
+ var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
19965
+ var show = arguments.length > 4 ? arguments[4] : undefined;
19966
+ var blacklist = [mountNode, currentNode].concat((0,toConsumableArray/* default */.Z)(nodesToExclude));
19967
+ var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];
19968
+ [].forEach.call(container.children, function (node) {
19969
+ if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {
19970
+ ariaHidden(node, show);
19971
+ }
19972
+ });
19973
+ }
19974
+
19975
+ function findIndexOf(containerInfo, callback) {
19976
+ var idx = -1;
19977
+ containerInfo.some(function (item, index) {
19978
+ if (callback(item)) {
19979
+ idx = index;
19980
+ return true;
19981
+ }
19982
+
19983
+ return false;
19984
+ });
19985
+ return idx;
19986
+ }
19987
+
19988
+ function handleContainer(containerInfo, props) {
19989
+ var restoreStyle = [];
19990
+ var restorePaddings = [];
19991
+ var container = containerInfo.container;
19992
+ var fixedNodes;
19993
+
19994
+ if (!props.disableScrollLock) {
19995
+ if (isOverflowing(container)) {
19996
+ // Compute the size before applying overflow hidden to avoid any scroll jumps.
19997
+ var scrollbarSize = getScrollbarSize();
19998
+ restoreStyle.push({
19999
+ value: container.style.paddingRight,
20000
+ key: 'padding-right',
20001
+ el: container
20002
+ }); // Use computed style, here to get the real padding to add our scrollbar width.
20003
+
20004
+ container.style['padding-right'] = "".concat(getPaddingRight(container) + scrollbarSize, "px"); // .mui-fixed is a global helper.
20005
+
20006
+ fixedNodes = (0,ownerDocument/* default */.Z)(container).querySelectorAll('.mui-fixed');
20007
+ [].forEach.call(fixedNodes, function (node) {
20008
+ restorePaddings.push(node.style.paddingRight);
20009
+ node.style.paddingRight = "".concat(getPaddingRight(node) + scrollbarSize, "px");
20010
+ });
20011
+ } // Improve Gatsby support
20012
+ // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
20013
+
20014
+
20015
+ var parent = container.parentElement;
20016
+ var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard
20017
+ // screensize shrink.
20018
+
20019
+ restoreStyle.push({
20020
+ value: scrollContainer.style.overflow,
20021
+ key: 'overflow',
20022
+ el: scrollContainer
20023
+ });
20024
+ scrollContainer.style.overflow = 'hidden';
20025
+ }
20026
+
20027
+ var restore = function restore() {
20028
+ if (fixedNodes) {
20029
+ [].forEach.call(fixedNodes, function (node, i) {
20030
+ if (restorePaddings[i]) {
20031
+ node.style.paddingRight = restorePaddings[i];
20032
+ } else {
20033
+ node.style.removeProperty('padding-right');
20034
+ }
20035
+ });
20036
+ }
20037
+
20038
+ restoreStyle.forEach(function (_ref) {
20039
+ var value = _ref.value,
20040
+ el = _ref.el,
20041
+ key = _ref.key;
20042
+
20043
+ if (value) {
20044
+ el.style.setProperty(key, value);
20045
+ } else {
20046
+ el.style.removeProperty(key);
20047
+ }
20048
+ });
20049
+ };
20050
+
20051
+ return restore;
20052
+ }
20053
+
20054
+ function getHiddenSiblings(container) {
20055
+ var hiddenSiblings = [];
20056
+ [].forEach.call(container.children, function (node) {
20057
+ if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {
20058
+ hiddenSiblings.push(node);
20059
+ }
20060
+ });
20061
+ return hiddenSiblings;
20062
+ }
20063
+ /**
20064
+ * @ignore - do not document.
20065
+ *
20066
+ * Proper state management for containers and the modals in those containers.
20067
+ * Simplified, but inspired by react-overlay's ModalManager class.
20068
+ * Used by the Modal to ensure proper styling of containers.
20069
+ */
20070
+
20071
+
20072
+ var ModalManager = /*#__PURE__*/function () {
20073
+ function ModalManager() {
20074
+ classCallCheck_classCallCheck(this, ModalManager);
20075
+
20076
+ // this.modals[modalIndex] = modal
20077
+ this.modals = []; // this.containers[containerIndex] = {
20078
+ // modals: [],
20079
+ // container,
20080
+ // restore: null,
20081
+ // }
20082
+
20083
+ this.containers = [];
20084
+ }
20085
+
20086
+ (0,createClass/* default */.Z)(ModalManager, [{
20087
+ key: "add",
20088
+ value: function add(modal, container) {
20089
+ var modalIndex = this.modals.indexOf(modal);
20090
+
20091
+ if (modalIndex !== -1) {
20092
+ return modalIndex;
20093
+ }
20094
+
20095
+ modalIndex = this.modals.length;
20096
+ this.modals.push(modal); // If the modal we are adding is already in the DOM.
20097
+
20098
+ if (modal.modalRef) {
20099
+ ariaHidden(modal.modalRef, false);
20100
+ }
20101
+
20102
+ var hiddenSiblingNodes = getHiddenSiblings(container);
20103
+ ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);
20104
+ var containerIndex = findIndexOf(this.containers, function (item) {
20105
+ return item.container === container;
20106
+ });
20107
+
20108
+ if (containerIndex !== -1) {
20109
+ this.containers[containerIndex].modals.push(modal);
20110
+ return modalIndex;
20111
+ }
20112
+
20113
+ this.containers.push({
20114
+ modals: [modal],
20115
+ container: container,
20116
+ restore: null,
20117
+ hiddenSiblingNodes: hiddenSiblingNodes
20118
+ });
20119
+ return modalIndex;
20120
+ }
20121
+ }, {
20122
+ key: "mount",
20123
+ value: function mount(modal, props) {
20124
+ var containerIndex = findIndexOf(this.containers, function (item) {
20125
+ return item.modals.indexOf(modal) !== -1;
20126
+ });
20127
+ var containerInfo = this.containers[containerIndex];
20128
+
20129
+ if (!containerInfo.restore) {
20130
+ containerInfo.restore = handleContainer(containerInfo, props);
20131
+ }
20132
+ }
20133
+ }, {
20134
+ key: "remove",
20135
+ value: function remove(modal) {
20136
+ var modalIndex = this.modals.indexOf(modal);
20137
+
20138
+ if (modalIndex === -1) {
20139
+ return modalIndex;
20140
+ }
20141
+
20142
+ var containerIndex = findIndexOf(this.containers, function (item) {
20143
+ return item.modals.indexOf(modal) !== -1;
20144
+ });
20145
+ var containerInfo = this.containers[containerIndex];
20146
+ containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
20147
+ this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.
20148
+
20149
+ if (containerInfo.modals.length === 0) {
20150
+ // The modal might be closed before it had the chance to be mounted in the DOM.
20151
+ if (containerInfo.restore) {
20152
+ containerInfo.restore();
20153
+ }
20154
+
20155
+ if (modal.modalRef) {
20156
+ // In case the modal wasn't in the DOM yet.
20157
+ ariaHidden(modal.modalRef, true);
20158
+ }
20159
+
20160
+ ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);
20161
+ this.containers.splice(containerIndex, 1);
20162
+ } else {
20163
+ // Otherwise make sure the next top modal is visible to a screen reader.
20164
+ var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set
20165
+ // aria-hidden because the dom element doesn't exist either
20166
+ // when modal was unmounted before modalRef gets null
20167
+
20168
+ if (nextTop.modalRef) {
20169
+ ariaHidden(nextTop.modalRef, false);
20170
+ }
20171
+ }
20172
+
20173
+ return modalIndex;
20174
+ }
20175
+ }, {
20176
+ key: "isTopModal",
20177
+ value: function isTopModal(modal) {
20178
+ return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
20179
+ }
20180
+ }]);
20181
+
20182
+ return ModalManager;
20183
+ }();
20184
+
20185
+
20186
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js
20187
+ /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */
20188
+
20189
+
20190
+
20191
+
20192
+
20193
+
20194
+ /**
20195
+ * Utility component that locks focus inside the component.
20196
+ */
20197
+
20198
+ function Unstable_TrapFocus(props) {
20199
+ var children = props.children,
20200
+ _props$disableAutoFoc = props.disableAutoFocus,
20201
+ disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
20202
+ _props$disableEnforce = props.disableEnforceFocus,
20203
+ disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
20204
+ _props$disableRestore = props.disableRestoreFocus,
20205
+ disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
20206
+ getDoc = props.getDoc,
20207
+ isEnabled = props.isEnabled,
20208
+ open = props.open;
20209
+ var ignoreNextEnforceFocus = react.useRef();
20210
+ var sentinelStart = react.useRef(null);
20211
+ var sentinelEnd = react.useRef(null);
20212
+ var nodeToRestore = react.useRef();
20213
+ var rootRef = react.useRef(null); // can be removed once we drop support for non ref forwarding class components
20214
+
20215
+ var handleOwnRef = react.useCallback(function (instance) {
20216
+ // #StrictMode ready
20217
+ rootRef.current = react_dom.findDOMNode(instance);
20218
+ }, []);
20219
+ var handleRef = (0,useForkRef/* default */.Z)(children.ref, handleOwnRef);
20220
+ var prevOpenRef = react.useRef();
20221
+ react.useEffect(function () {
20222
+ prevOpenRef.current = open;
20223
+ }, [open]);
20224
+
20225
+ if (!prevOpenRef.current && open && typeof window !== 'undefined') {
20226
+ // WARNING: Potentially unsafe in concurrent mode.
20227
+ // The way the read on `nodeToRestore` is setup could make this actually safe.
20228
+ // Say we render `open={false}` -> `open={true}` but never commit.
20229
+ // We have now written a state that wasn't committed. But no committed effect
20230
+ // will read this wrong value. We only read from `nodeToRestore` in effects
20231
+ // that were committed on `open={true}`
20232
+ // WARNING: Prevents the instance from being garbage collected. Should only
20233
+ // hold a weak ref.
20234
+ nodeToRestore.current = getDoc().activeElement;
20235
+ }
20236
+
20237
+ react.useEffect(function () {
20238
+ if (!open) {
20239
+ return;
20240
+ }
20241
+
20242
+ var doc = (0,ownerDocument/* default */.Z)(rootRef.current); // We might render an empty child.
20243
+
20244
+ if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {
20245
+ if (!rootRef.current.hasAttribute('tabIndex')) {
20246
+ if (false) {}
20247
+
20248
+ rootRef.current.setAttribute('tabIndex', -1);
20249
+ }
20250
+
20251
+ rootRef.current.focus();
20252
+ }
20253
+
20254
+ var contain = function contain() {
20255
+ var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.
20256
+ // Contain can be called between the component being unmounted and its cleanup function being run.
20257
+
20258
+ if (rootElement === null) {
20259
+ return;
20260
+ }
20261
+
20262
+ if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {
20263
+ ignoreNextEnforceFocus.current = false;
20264
+ return;
20265
+ }
20266
+
20267
+ if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {
20268
+ rootRef.current.focus();
20269
+ }
20270
+ };
20271
+
20272
+ var loopFocus = function loopFocus(event) {
20273
+ // 9 = Tab
20274
+ if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {
20275
+ return;
20276
+ } // Make sure the next tab starts from the right place.
20277
+
20278
+
20279
+ if (doc.activeElement === rootRef.current) {
20280
+ // We need to ignore the next contain as
20281
+ // it will try to move the focus back to the rootRef element.
20282
+ ignoreNextEnforceFocus.current = true;
20283
+
20284
+ if (event.shiftKey) {
20285
+ sentinelEnd.current.focus();
20286
+ } else {
20287
+ sentinelStart.current.focus();
20288
+ }
20289
+ }
20290
+ };
20291
+
20292
+ doc.addEventListener('focus', contain, true);
20293
+ doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area
20294
+ // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
20295
+ //
20296
+ // The whatwg spec defines how the browser should behave but does not explicitly mention any events:
20297
+ // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.
20298
+
20299
+ var interval = setInterval(function () {
20300
+ contain();
20301
+ }, 50);
20302
+ return function () {
20303
+ clearInterval(interval);
20304
+ doc.removeEventListener('focus', contain, true);
20305
+ doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()
20306
+
20307
+ if (!disableRestoreFocus) {
20308
+ // In IE 11 it is possible for document.activeElement to be null resulting
20309
+ // in nodeToRestore.current being null.
20310
+ // Not all elements in IE 11 have a focus method.
20311
+ // Once IE 11 support is dropped the focus() call can be unconditional.
20312
+ if (nodeToRestore.current && nodeToRestore.current.focus) {
20313
+ nodeToRestore.current.focus();
20314
+ }
20315
+
20316
+ nodeToRestore.current = null;
20317
+ }
20318
+ };
20319
+ }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);
20320
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
20321
+ tabIndex: 0,
20322
+ ref: sentinelStart,
20323
+ "data-test": "sentinelStart"
20324
+ }), /*#__PURE__*/react.cloneElement(children, {
20325
+ ref: handleRef
20326
+ }), /*#__PURE__*/react.createElement("div", {
20327
+ tabIndex: 0,
20328
+ ref: sentinelEnd,
20329
+ "data-test": "sentinelEnd"
20330
+ }));
20331
+ }
20332
+
20333
+ false ? 0 : void 0;
20334
+
20335
+ if (false) {}
20336
+
20337
+ /* harmony default export */ var Unstable_TrapFocus_Unstable_TrapFocus = (Unstable_TrapFocus);
20338
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js
20339
+
20340
+
20341
+
20342
+
20343
+ var SimpleBackdrop_styles = {
20344
+ /* Styles applied to the root element. */
20345
+ root: {
20346
+ zIndex: -1,
20347
+ position: 'fixed',
20348
+ right: 0,
20349
+ bottom: 0,
20350
+ top: 0,
20351
+ left: 0,
20352
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
20353
+ WebkitTapHighlightColor: 'transparent'
20354
+ },
20355
+
20356
+ /* Styles applied to the root element if `invisible={true}`. */
20357
+ invisible: {
20358
+ backgroundColor: 'transparent'
20359
+ }
20360
+ };
20361
+ /**
20362
+ * @ignore - internal component.
20363
+ */
20364
+
20365
+ var SimpleBackdrop = /*#__PURE__*/react.forwardRef(function SimpleBackdrop(props, ref) {
20366
+ var _props$invisible = props.invisible,
20367
+ invisible = _props$invisible === void 0 ? false : _props$invisible,
20368
+ open = props.open,
20369
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["invisible", "open"]);
20370
+
20371
+ return open ? /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
20372
+ "aria-hidden": true,
20373
+ ref: ref
20374
+ }, other, {
20375
+ style: (0,esm_extends/* default */.Z)({}, SimpleBackdrop_styles.root, invisible ? SimpleBackdrop_styles.invisible : {}, other.style)
20376
+ })) : null;
20377
+ });
20378
+ false ? 0 : void 0;
20379
+ /* harmony default export */ var Modal_SimpleBackdrop = (SimpleBackdrop);
20380
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/Modal.js
20381
+
20382
+
20383
+
20384
+
20385
+
20386
+
20387
+
20388
+
20389
+
20390
+
20391
+
20392
+
20393
+
20394
+
20395
+
20396
+
20397
+
20398
+ function Modal_getContainer(container) {
20399
+ container = typeof container === 'function' ? container() : container;
20400
+ return react_dom.findDOMNode(container);
20401
+ }
20402
+
20403
+ function getHasTransition(props) {
20404
+ return props.children ? props.children.props.hasOwnProperty('in') : false;
20405
+ } // A modal manager used to track and manage the state of open Modals.
20406
+ // Modals don't open on the server so this won't conflict with concurrent requests.
20407
+
20408
+
20409
+ var defaultManager = new ModalManager();
20410
+ var Modal_styles = function styles(theme) {
20411
+ return {
20412
+ /* Styles applied to the root element. */
20413
+ root: {
20414
+ position: 'fixed',
20415
+ zIndex: theme.zIndex.modal,
20416
+ right: 0,
20417
+ bottom: 0,
20418
+ top: 0,
20419
+ left: 0
20420
+ },
20421
+
20422
+ /* Styles applied to the root element if the `Modal` has exited. */
20423
+ hidden: {
20424
+ visibility: 'hidden'
20425
+ }
20426
+ };
20427
+ };
20428
+ /**
20429
+ * Modal is a lower-level construct that is leveraged by the following components:
20430
+ *
20431
+ * - [Dialog](/api/dialog/)
20432
+ * - [Drawer](/api/drawer/)
20433
+ * - [Menu](/api/menu/)
20434
+ * - [Popover](/api/popover/)
20435
+ *
20436
+ * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component
20437
+ * rather than directly using Modal.
20438
+ *
20439
+ * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).
20440
+ */
20441
+
20442
+ var Modal = /*#__PURE__*/react.forwardRef(function Modal(inProps, ref) {
20443
+ var theme = (0,useTheme/* default */.Z)();
20444
+ var props = (0,getThemeProps/* default */.Z)({
20445
+ name: 'MuiModal',
20446
+ props: (0,esm_extends/* default */.Z)({}, inProps),
20447
+ theme: theme
20448
+ });
20449
+
20450
+ var _props$BackdropCompon = props.BackdropComponent,
20451
+ BackdropComponent = _props$BackdropCompon === void 0 ? Modal_SimpleBackdrop : _props$BackdropCompon,
20452
+ BackdropProps = props.BackdropProps,
20453
+ children = props.children,
20454
+ _props$closeAfterTran = props.closeAfterTransition,
20455
+ closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,
20456
+ container = props.container,
20457
+ _props$disableAutoFoc = props.disableAutoFocus,
20458
+ disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
20459
+ _props$disableBackdro = props.disableBackdropClick,
20460
+ disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
20461
+ _props$disableEnforce = props.disableEnforceFocus,
20462
+ disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
20463
+ _props$disableEscapeK = props.disableEscapeKeyDown,
20464
+ disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
20465
+ _props$disablePortal = props.disablePortal,
20466
+ disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
20467
+ _props$disableRestore = props.disableRestoreFocus,
20468
+ disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
20469
+ _props$disableScrollL = props.disableScrollLock,
20470
+ disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,
20471
+ _props$hideBackdrop = props.hideBackdrop,
20472
+ hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,
20473
+ _props$keepMounted = props.keepMounted,
20474
+ keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,
20475
+ _props$manager = props.manager,
20476
+ manager = _props$manager === void 0 ? defaultManager : _props$manager,
20477
+ onBackdropClick = props.onBackdropClick,
20478
+ onClose = props.onClose,
20479
+ onEscapeKeyDown = props.onEscapeKeyDown,
20480
+ onRendered = props.onRendered,
20481
+ open = props.open,
20482
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropComponent", "BackdropProps", "children", "closeAfterTransition", "container", "disableAutoFocus", "disableBackdropClick", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onEscapeKeyDown", "onRendered", "open"]);
20483
+
20484
+ var _React$useState = react.useState(true),
20485
+ exited = _React$useState[0],
20486
+ setExited = _React$useState[1];
20487
+
20488
+ var modal = react.useRef({});
20489
+ var mountNodeRef = react.useRef(null);
20490
+ var modalRef = react.useRef(null);
20491
+ var handleRef = (0,useForkRef/* default */.Z)(modalRef, ref);
20492
+ var hasTransition = getHasTransition(props);
20493
+
20494
+ var getDoc = function getDoc() {
20495
+ return (0,ownerDocument/* default */.Z)(mountNodeRef.current);
20496
+ };
20497
+
20498
+ var getModal = function getModal() {
20499
+ modal.current.modalRef = modalRef.current;
20500
+ modal.current.mountNode = mountNodeRef.current;
20501
+ return modal.current;
20502
+ };
20503
+
20504
+ var handleMounted = function handleMounted() {
20505
+ manager.mount(getModal(), {
20506
+ disableScrollLock: disableScrollLock
20507
+ }); // Fix a bug on Chrome where the scroll isn't initially 0.
20508
+
20509
+ modalRef.current.scrollTop = 0;
20510
+ };
20511
+
20512
+ var handleOpen = (0,useEventCallback/* default */.Z)(function () {
20513
+ var resolvedContainer = Modal_getContainer(container) || getDoc().body;
20514
+ manager.add(getModal(), resolvedContainer); // The element was already mounted.
20515
+
20516
+ if (modalRef.current) {
20517
+ handleMounted();
20518
+ }
20519
+ });
20520
+ var isTopModal = react.useCallback(function () {
20521
+ return manager.isTopModal(getModal());
20522
+ }, [manager]);
20523
+ var handlePortalRef = (0,useEventCallback/* default */.Z)(function (node) {
20524
+ mountNodeRef.current = node;
20525
+
20526
+ if (!node) {
20527
+ return;
20528
+ }
20529
+
20530
+ if (onRendered) {
20531
+ onRendered();
20532
+ }
20533
+
20534
+ if (open && isTopModal()) {
20535
+ handleMounted();
20536
+ } else {
20537
+ ariaHidden(modalRef.current, true);
20538
+ }
20539
+ });
20540
+ var handleClose = react.useCallback(function () {
20541
+ manager.remove(getModal());
20542
+ }, [manager]);
20543
+ react.useEffect(function () {
20544
+ return function () {
20545
+ handleClose();
20546
+ };
20547
+ }, [handleClose]);
20548
+ react.useEffect(function () {
20549
+ if (open) {
20550
+ handleOpen();
20551
+ } else if (!hasTransition || !closeAfterTransition) {
20552
+ handleClose();
20553
+ }
20554
+ }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
20555
+
20556
+ if (!keepMounted && !open && (!hasTransition || exited)) {
20557
+ return null;
20558
+ }
20559
+
20560
+ var handleEnter = function handleEnter() {
20561
+ setExited(false);
20562
+ };
20563
+
20564
+ var handleExited = function handleExited() {
20565
+ setExited(true);
20566
+
20567
+ if (closeAfterTransition) {
20568
+ handleClose();
20569
+ }
20570
+ };
20571
+
20572
+ var handleBackdropClick = function handleBackdropClick(event) {
20573
+ if (event.target !== event.currentTarget) {
20574
+ return;
20575
+ }
20576
+
20577
+ if (onBackdropClick) {
20578
+ onBackdropClick(event);
20579
+ }
20580
+
20581
+ if (!disableBackdropClick && onClose) {
20582
+ onClose(event, 'backdropClick');
20583
+ }
20584
+ };
20585
+
20586
+ var handleKeyDown = function handleKeyDown(event) {
20587
+ // The handler doesn't take event.defaultPrevented into account:
20588
+ //
20589
+ // event.preventDefault() is meant to stop default behaviours like
20590
+ // clicking a checkbox to check it, hitting a button to submit a form,
20591
+ // and hitting left arrow to move the cursor in a text input etc.
20592
+ // Only special HTML elements have these default behaviors.
20593
+ if (event.key !== 'Escape' || !isTopModal()) {
20594
+ return;
20595
+ }
20596
+
20597
+ if (onEscapeKeyDown) {
20598
+ onEscapeKeyDown(event);
20599
+ }
20600
+
20601
+ if (!disableEscapeKeyDown) {
20602
+ // Swallow the event, in case someone is listening for the escape key on the body.
20603
+ event.stopPropagation();
20604
+
20605
+ if (onClose) {
20606
+ onClose(event, 'escapeKeyDown');
20607
+ }
20608
+ }
20609
+ };
20610
+
20611
+ var inlineStyle = Modal_styles(theme || {
20612
+ zIndex: zIndex/* default */.Z
20613
+ });
20614
+ var childProps = {};
20615
+
20616
+ if (children.props.tabIndex === undefined) {
20617
+ childProps.tabIndex = children.props.tabIndex || '-1';
20618
+ } // It's a Transition like component
20619
+
20620
+
20621
+ if (hasTransition) {
20622
+ childProps.onEnter = (0,createChainedFunction/* default */.Z)(handleEnter, children.props.onEnter);
20623
+ childProps.onExited = (0,createChainedFunction/* default */.Z)(handleExited, children.props.onExited);
20624
+ }
20625
+
20626
+ return /*#__PURE__*/react.createElement(Portal_Portal, {
20627
+ ref: handlePortalRef,
20628
+ container: container,
20629
+ disablePortal: disablePortal
20630
+ }, /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
20631
+ ref: handleRef,
20632
+ onKeyDown: handleKeyDown,
20633
+ role: "presentation"
20634
+ }, other, {
20635
+ style: (0,esm_extends/* default */.Z)({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)
20636
+ }), hideBackdrop ? null : /*#__PURE__*/react.createElement(BackdropComponent, (0,esm_extends/* default */.Z)({
20637
+ open: open,
20638
+ onClick: handleBackdropClick
20639
+ }, BackdropProps)), /*#__PURE__*/react.createElement(Unstable_TrapFocus_Unstable_TrapFocus, {
20640
+ disableEnforceFocus: disableEnforceFocus,
20641
+ disableAutoFocus: disableAutoFocus,
20642
+ disableRestoreFocus: disableRestoreFocus,
20643
+ getDoc: getDoc,
20644
+ isEnabled: isTopModal,
20645
+ open: open
20646
+ }, /*#__PURE__*/react.cloneElement(children, childProps))));
20647
+ });
20648
+ false ? 0 : void 0;
20649
+ /* harmony default export */ var Modal_Modal = (Modal);
20650
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
20651
+ var slicedToArray = __webpack_require__(34699);
20652
+ ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/config.js
20653
+ /* harmony default export */ var config = ({
20654
+ disabled: false
20655
+ });
20656
+ ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/Transition.js
20657
+
20658
+
20659
+
20660
+
20661
+
20662
+
20663
+
20664
+
20665
+ var UNMOUNTED = 'unmounted';
20666
+ var EXITED = 'exited';
20667
+ var ENTERING = 'entering';
20668
+ var ENTERED = 'entered';
20669
+ var EXITING = 'exiting';
20670
+ /**
20671
+ * The Transition component lets you describe a transition from one component
20672
+ * state to another _over time_ with a simple declarative API. Most commonly
20673
+ * it's used to animate the mounting and unmounting of a component, but can also
20674
+ * be used to describe in-place transition states as well.
20675
+ *
20676
+ * ---
20677
+ *
20678
+ * **Note**: `Transition` is a platform-agnostic base component. If you're using
20679
+ * transitions in CSS, you'll probably want to use
20680
+ * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
20681
+ * instead. It inherits all the features of `Transition`, but contains
20682
+ * additional features necessary to play nice with CSS transitions (hence the
20683
+ * name of the component).
20684
+ *
20685
+ * ---
20686
+ *
20687
+ * By default the `Transition` component does not alter the behavior of the
20688
+ * component it renders, it only tracks "enter" and "exit" states for the
20689
+ * components. It's up to you to give meaning and effect to those states. For
20690
+ * example we can add styles to a component when it enters or exits:
20691
+ *
20692
+ * ```jsx
20693
+ * import { Transition } from 'react-transition-group';
20694
+ *
20695
+ * const duration = 300;
20696
+ *
20697
+ * const defaultStyle = {
20698
+ * transition: `opacity ${duration}ms ease-in-out`,
20699
+ * opacity: 0,
20700
+ * }
20701
+ *
20702
+ * const transitionStyles = {
20703
+ * entering: { opacity: 1 },
20704
+ * entered: { opacity: 1 },
20705
+ * exiting: { opacity: 0 },
20706
+ * exited: { opacity: 0 },
20707
+ * };
20708
+ *
20709
+ * const Fade = ({ in: inProp }) => (
20710
+ * <Transition in={inProp} timeout={duration}>
20711
+ * {state => (
20712
+ * <div style={{
20713
+ * ...defaultStyle,
20714
+ * ...transitionStyles[state]
20715
+ * }}>
20716
+ * I'm a fade Transition!
20717
+ * </div>
20718
+ * )}
20719
+ * </Transition>
20720
+ * );
20721
+ * ```
20722
+ *
20723
+ * There are 4 main states a Transition can be in:
20724
+ * - `'entering'`
20725
+ * - `'entered'`
20726
+ * - `'exiting'`
20727
+ * - `'exited'`
20728
+ *
20729
+ * Transition state is toggled via the `in` prop. When `true` the component
20730
+ * begins the "Enter" stage. During this stage, the component will shift from
20731
+ * its current transition state, to `'entering'` for the duration of the
20732
+ * transition and then to the `'entered'` stage once it's complete. Let's take
20733
+ * the following example (we'll use the
20734
+ * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
20735
+ *
20736
+ * ```jsx
20737
+ * function App() {
20738
+ * const [inProp, setInProp] = useState(false);
20739
+ * return (
20740
+ * <div>
20741
+ * <Transition in={inProp} timeout={500}>
20742
+ * {state => (
20743
+ * // ...
20744
+ * )}
20745
+ * </Transition>
20746
+ * <button onClick={() => setInProp(true)}>
20747
+ * Click to Enter
20748
+ * </button>
20749
+ * </div>
20750
+ * );
20751
+ * }
20752
+ * ```
20753
+ *
20754
+ * When the button is clicked the component will shift to the `'entering'` state
20755
+ * and stay there for 500ms (the value of `timeout`) before it finally switches
20756
+ * to `'entered'`.
20757
+ *
20758
+ * When `in` is `false` the same thing happens except the state moves from
20759
+ * `'exiting'` to `'exited'`.
20760
+ */
20761
+
20762
+ var Transition = /*#__PURE__*/function (_React$Component) {
20763
+ (0,inheritsLoose/* default */.Z)(Transition, _React$Component);
20764
+
20765
+ function Transition(props, context) {
20766
+ var _this;
20767
+
20768
+ _this = _React$Component.call(this, props, context) || this;
20769
+ var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
20770
+
20771
+ var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
20772
+ var initialStatus;
20773
+ _this.appearStatus = null;
20774
+
20775
+ if (props.in) {
20776
+ if (appear) {
20777
+ initialStatus = EXITED;
20778
+ _this.appearStatus = ENTERING;
20779
+ } else {
20780
+ initialStatus = ENTERED;
20781
+ }
20782
+ } else {
20783
+ if (props.unmountOnExit || props.mountOnEnter) {
20784
+ initialStatus = UNMOUNTED;
20785
+ } else {
20786
+ initialStatus = EXITED;
20787
+ }
20788
+ }
20789
+
20790
+ _this.state = {
20791
+ status: initialStatus
20792
+ };
20793
+ _this.nextCallback = null;
20794
+ return _this;
20795
+ }
20796
+
20797
+ Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
20798
+ var nextIn = _ref.in;
20799
+
20800
+ if (nextIn && prevState.status === UNMOUNTED) {
20801
+ return {
20802
+ status: EXITED
20803
+ };
20804
+ }
20805
+
20806
+ return null;
20807
+ } // getSnapshotBeforeUpdate(prevProps) {
20808
+ // let nextStatus = null
20809
+ // if (prevProps !== this.props) {
20810
+ // const { status } = this.state
20811
+ // if (this.props.in) {
20812
+ // if (status !== ENTERING && status !== ENTERED) {
20813
+ // nextStatus = ENTERING
20814
+ // }
20815
+ // } else {
20816
+ // if (status === ENTERING || status === ENTERED) {
20817
+ // nextStatus = EXITING
20818
+ // }
20819
+ // }
20820
+ // }
20821
+ // return { nextStatus }
20822
+ // }
20823
+ ;
20824
+
20825
+ var _proto = Transition.prototype;
20826
+
20827
+ _proto.componentDidMount = function componentDidMount() {
20828
+ this.updateStatus(true, this.appearStatus);
20829
+ };
20830
+
20831
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
20832
+ var nextStatus = null;
20833
+
20834
+ if (prevProps !== this.props) {
20835
+ var status = this.state.status;
20836
+
20837
+ if (this.props.in) {
20838
+ if (status !== ENTERING && status !== ENTERED) {
20839
+ nextStatus = ENTERING;
20840
+ }
20841
+ } else {
20842
+ if (status === ENTERING || status === ENTERED) {
20843
+ nextStatus = EXITING;
20844
+ }
20845
+ }
20846
+ }
20847
+
20848
+ this.updateStatus(false, nextStatus);
20849
+ };
20850
+
20851
+ _proto.componentWillUnmount = function componentWillUnmount() {
20852
+ this.cancelNextCallback();
20853
+ };
20854
+
20855
+ _proto.getTimeouts = function getTimeouts() {
20856
+ var timeout = this.props.timeout;
20857
+ var exit, enter, appear;
20858
+ exit = enter = appear = timeout;
20859
+
20860
+ if (timeout != null && typeof timeout !== 'number') {
20861
+ exit = timeout.exit;
20862
+ enter = timeout.enter; // TODO: remove fallback for next major
20863
+
20864
+ appear = timeout.appear !== undefined ? timeout.appear : enter;
20865
+ }
20866
+
20867
+ return {
20868
+ exit: exit,
20869
+ enter: enter,
20870
+ appear: appear
20871
+ };
20872
+ };
20873
+
20874
+ _proto.updateStatus = function updateStatus(mounting, nextStatus) {
20875
+ if (mounting === void 0) {
20876
+ mounting = false;
20877
+ }
20878
+
20879
+ if (nextStatus !== null) {
20880
+ // nextStatus will always be ENTERING or EXITING.
20881
+ this.cancelNextCallback();
20882
+
20883
+ if (nextStatus === ENTERING) {
20884
+ this.performEnter(mounting);
20885
+ } else {
20886
+ this.performExit();
20887
+ }
20888
+ } else if (this.props.unmountOnExit && this.state.status === EXITED) {
20889
+ this.setState({
20890
+ status: UNMOUNTED
20891
+ });
20892
+ }
20893
+ };
20894
+
20895
+ _proto.performEnter = function performEnter(mounting) {
20896
+ var _this2 = this;
20897
+
20898
+ var enter = this.props.enter;
20899
+ var appearing = this.context ? this.context.isMounting : mounting;
20900
+
20901
+ var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],
20902
+ maybeNode = _ref2[0],
20903
+ maybeAppearing = _ref2[1];
20904
+
20905
+ var timeouts = this.getTimeouts();
20906
+ var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
20907
+ // if we are mounting and running this it means appear _must_ be set
20908
+
20909
+ if (!mounting && !enter || config.disabled) {
20910
+ this.safeSetState({
20911
+ status: ENTERED
20912
+ }, function () {
20913
+ _this2.props.onEntered(maybeNode);
20914
+ });
20915
+ return;
20916
+ }
20917
+
20918
+ this.props.onEnter(maybeNode, maybeAppearing);
20919
+ this.safeSetState({
20920
+ status: ENTERING
20921
+ }, function () {
20922
+ _this2.props.onEntering(maybeNode, maybeAppearing);
20923
+
20924
+ _this2.onTransitionEnd(enterTimeout, function () {
20925
+ _this2.safeSetState({
20926
+ status: ENTERED
20927
+ }, function () {
20928
+ _this2.props.onEntered(maybeNode, maybeAppearing);
20929
+ });
20930
+ });
20931
+ });
20932
+ };
20933
+
20934
+ _proto.performExit = function performExit() {
20935
+ var _this3 = this;
20936
+
20937
+ var exit = this.props.exit;
20938
+ var timeouts = this.getTimeouts();
20939
+ var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED
20940
+
20941
+ if (!exit || config.disabled) {
20942
+ this.safeSetState({
20943
+ status: EXITED
20944
+ }, function () {
20945
+ _this3.props.onExited(maybeNode);
20946
+ });
20947
+ return;
20948
+ }
20949
+
20950
+ this.props.onExit(maybeNode);
20951
+ this.safeSetState({
20952
+ status: EXITING
20953
+ }, function () {
20954
+ _this3.props.onExiting(maybeNode);
20955
+
20956
+ _this3.onTransitionEnd(timeouts.exit, function () {
20957
+ _this3.safeSetState({
20958
+ status: EXITED
20959
+ }, function () {
20960
+ _this3.props.onExited(maybeNode);
20961
+ });
20962
+ });
20963
+ });
20964
+ };
20965
+
20966
+ _proto.cancelNextCallback = function cancelNextCallback() {
20967
+ if (this.nextCallback !== null) {
20968
+ this.nextCallback.cancel();
20969
+ this.nextCallback = null;
20970
+ }
20971
+ };
20972
+
20973
+ _proto.safeSetState = function safeSetState(nextState, callback) {
20974
+ // This shouldn't be necessary, but there are weird race conditions with
20975
+ // setState callbacks and unmounting in testing, so always make sure that
20976
+ // we can cancel any pending setState callbacks after we unmount.
20977
+ callback = this.setNextCallback(callback);
20978
+ this.setState(nextState, callback);
20979
+ };
20980
+
20981
+ _proto.setNextCallback = function setNextCallback(callback) {
20982
+ var _this4 = this;
20983
+
20984
+ var active = true;
20985
+
20986
+ this.nextCallback = function (event) {
20987
+ if (active) {
20988
+ active = false;
20989
+ _this4.nextCallback = null;
20990
+ callback(event);
20991
+ }
20992
+ };
20993
+
20994
+ this.nextCallback.cancel = function () {
20995
+ active = false;
20996
+ };
20997
+
20998
+ return this.nextCallback;
20999
+ };
21000
+
21001
+ _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
21002
+ this.setNextCallback(handler);
21003
+ var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);
21004
+ var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
21005
+
21006
+ if (!node || doesNotHaveTimeoutOrListener) {
21007
+ setTimeout(this.nextCallback, 0);
21008
+ return;
21009
+ }
21010
+
21011
+ if (this.props.addEndListener) {
21012
+ var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],
21013
+ maybeNode = _ref3[0],
21014
+ maybeNextCallback = _ref3[1];
21015
+
21016
+ this.props.addEndListener(maybeNode, maybeNextCallback);
21017
+ }
21018
+
21019
+ if (timeout != null) {
21020
+ setTimeout(this.nextCallback, timeout);
21021
+ }
21022
+ };
21023
+
21024
+ _proto.render = function render() {
21025
+ var status = this.state.status;
21026
+
21027
+ if (status === UNMOUNTED) {
21028
+ return null;
21029
+ }
21030
+
21031
+ var _this$props = this.props,
21032
+ children = _this$props.children,
21033
+ _in = _this$props.in,
21034
+ _mountOnEnter = _this$props.mountOnEnter,
21035
+ _unmountOnExit = _this$props.unmountOnExit,
21036
+ _appear = _this$props.appear,
21037
+ _enter = _this$props.enter,
21038
+ _exit = _this$props.exit,
21039
+ _timeout = _this$props.timeout,
21040
+ _addEndListener = _this$props.addEndListener,
21041
+ _onEnter = _this$props.onEnter,
21042
+ _onEntering = _this$props.onEntering,
21043
+ _onEntered = _this$props.onEntered,
21044
+ _onExit = _this$props.onExit,
21045
+ _onExiting = _this$props.onExiting,
21046
+ _onExited = _this$props.onExited,
21047
+ _nodeRef = _this$props.nodeRef,
21048
+ childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
21049
+
21050
+ return (
21051
+ /*#__PURE__*/
21052
+ // allows for nested Transitions
21053
+ react.createElement(TransitionGroupContext.Provider, {
21054
+ value: null
21055
+ }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))
21056
+ );
21057
+ };
21058
+
21059
+ return Transition;
21060
+ }(react.Component);
21061
+
21062
+ Transition.contextType = TransitionGroupContext;
21063
+ Transition.propTypes = false ? 0 : {}; // Name the function so it is clearer in the documentation
21064
+
21065
+ function noop() {}
21066
+
21067
+ Transition.defaultProps = {
21068
+ in: false,
21069
+ mountOnEnter: false,
21070
+ unmountOnExit: false,
21071
+ appear: false,
21072
+ enter: true,
21073
+ exit: true,
21074
+ onEnter: noop,
21075
+ onEntering: noop,
21076
+ onEntered: noop,
21077
+ onExit: noop,
21078
+ onExiting: noop,
21079
+ onExited: noop
21080
+ };
21081
+ Transition.UNMOUNTED = UNMOUNTED;
21082
+ Transition.EXITED = EXITED;
21083
+ Transition.ENTERING = ENTERING;
21084
+ Transition.ENTERED = ENTERED;
21085
+ Transition.EXITING = EXITING;
21086
+ /* harmony default export */ var esm_Transition = (Transition);
21087
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/transitions.js
21088
+ var transitions = __webpack_require__(43366);
21089
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/defaultTheme.js
21090
+ var defaultTheme = __webpack_require__(99700);
21091
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/styles/useTheme.js
21092
+
21093
+
21094
+
21095
+ function useTheme_useTheme() {
21096
+ var theme = (0,useTheme/* default */.Z)() || defaultTheme/* default */.Z;
21097
+
21098
+ if (false) {}
21099
+
21100
+ return theme;
21101
+ }
21102
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/transitions/utils.js
21103
+ var reflow = function reflow(node) {
21104
+ return node.scrollTop;
21105
+ };
21106
+ function getTransitionProps(props, options) {
21107
+ var timeout = props.timeout,
21108
+ _props$style = props.style,
21109
+ style = _props$style === void 0 ? {} : _props$style;
21110
+ return {
21111
+ duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,
21112
+ delay: style.transitionDelay
21113
+ };
21114
+ }
21115
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Fade/Fade.js
21116
+
21117
+
21118
+
21119
+
21120
+
21121
+
21122
+
21123
+
21124
+
21125
+
21126
+ var Fade_styles = {
21127
+ entering: {
21128
+ opacity: 1
21129
+ },
21130
+ entered: {
21131
+ opacity: 1
21132
+ }
21133
+ };
21134
+ var defaultTimeout = {
21135
+ enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
21136
+ exit: transitions/* duration.leavingScreen */.x9.leavingScreen
21137
+ };
21138
+ /**
21139
+ * The Fade transition is used by the [Modal](/components/modal/) component.
21140
+ * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
21141
+ */
21142
+
21143
+ var Fade = /*#__PURE__*/react.forwardRef(function Fade(props, ref) {
21144
+ var children = props.children,
21145
+ _props$disableStrictM = props.disableStrictModeCompat,
21146
+ disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
21147
+ inProp = props.in,
21148
+ onEnter = props.onEnter,
21149
+ onEntered = props.onEntered,
21150
+ onEntering = props.onEntering,
21151
+ onExit = props.onExit,
21152
+ onExited = props.onExited,
21153
+ onExiting = props.onExiting,
21154
+ style = props.style,
21155
+ _props$TransitionComp = props.TransitionComponent,
21156
+ TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
21157
+ _props$timeout = props.timeout,
21158
+ timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,
21159
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "TransitionComponent", "timeout"]);
21160
+
21161
+ var theme = useTheme_useTheme();
21162
+ var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
21163
+ var nodeRef = react.useRef(null);
21164
+ var foreignRef = (0,useForkRef/* default */.Z)(children.ref, ref);
21165
+ var handleRef = (0,useForkRef/* default */.Z)(enableStrictModeCompat ? nodeRef : undefined, foreignRef);
21166
+
21167
+ var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
21168
+ return function (nodeOrAppearing, maybeAppearing) {
21169
+ if (callback) {
21170
+ var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
21171
+ _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
21172
+ node = _ref2[0],
21173
+ isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
21174
+
21175
+
21176
+ if (isAppearing === undefined) {
21177
+ callback(node);
21178
+ } else {
21179
+ callback(node, isAppearing);
21180
+ }
21181
+ }
21182
+ };
21183
+ };
21184
+
21185
+ var handleEntering = normalizedTransitionCallback(onEntering);
21186
+ var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
21187
+ reflow(node); // So the animation always start from the start.
21188
+
21189
+ var transitionProps = getTransitionProps({
21190
+ style: style,
21191
+ timeout: timeout
21192
+ }, {
21193
+ mode: 'enter'
21194
+ });
21195
+ node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
21196
+ node.style.transition = theme.transitions.create('opacity', transitionProps);
21197
+
21198
+ if (onEnter) {
21199
+ onEnter(node, isAppearing);
21200
+ }
21201
+ });
21202
+ var handleEntered = normalizedTransitionCallback(onEntered);
21203
+ var handleExiting = normalizedTransitionCallback(onExiting);
21204
+ var handleExit = normalizedTransitionCallback(function (node) {
21205
+ var transitionProps = getTransitionProps({
21206
+ style: style,
21207
+ timeout: timeout
21208
+ }, {
21209
+ mode: 'exit'
21210
+ });
21211
+ node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
21212
+ node.style.transition = theme.transitions.create('opacity', transitionProps);
21213
+
21214
+ if (onExit) {
21215
+ onExit(node);
21216
+ }
21217
+ });
21218
+ var handleExited = normalizedTransitionCallback(onExited);
21219
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
21220
+ appear: true,
21221
+ in: inProp,
21222
+ nodeRef: enableStrictModeCompat ? nodeRef : undefined,
21223
+ onEnter: handleEnter,
21224
+ onEntered: handleEntered,
21225
+ onEntering: handleEntering,
21226
+ onExit: handleExit,
21227
+ onExited: handleExited,
21228
+ onExiting: handleExiting,
21229
+ timeout: timeout
21230
+ }, other), function (state, childProps) {
21231
+ return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
21232
+ style: (0,esm_extends/* default */.Z)({
21233
+ opacity: 0,
21234
+ visibility: state === 'exited' && !inProp ? 'hidden' : undefined
21235
+ }, Fade_styles[state], style, children.props.style),
21236
+ ref: handleRef
21237
+ }, childProps));
21238
+ });
21239
+ });
21240
+ false ? 0 : void 0;
21241
+ /* harmony default export */ var Fade_Fade = (Fade);
21242
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js
21243
+
21244
+
21245
+
21246
+
21247
+
21248
+
21249
+
21250
+ var Backdrop_styles = {
21251
+ /* Styles applied to the root element. */
21252
+ root: {
21253
+ // Improve scrollable dialog support.
21254
+ zIndex: -1,
21255
+ position: 'fixed',
21256
+ display: 'flex',
21257
+ alignItems: 'center',
21258
+ justifyContent: 'center',
21259
+ right: 0,
21260
+ bottom: 0,
21261
+ top: 0,
21262
+ left: 0,
21263
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
21264
+ WebkitTapHighlightColor: 'transparent'
21265
+ },
21266
+
21267
+ /* Styles applied to the root element if `invisible={true}`. */
21268
+ invisible: {
21269
+ backgroundColor: 'transparent'
21270
+ }
21271
+ };
21272
+ var Backdrop = /*#__PURE__*/react.forwardRef(function Backdrop(props, ref) {
21273
+ var children = props.children,
21274
+ classes = props.classes,
21275
+ className = props.className,
21276
+ _props$invisible = props.invisible,
21277
+ invisible = _props$invisible === void 0 ? false : _props$invisible,
21278
+ open = props.open,
21279
+ transitionDuration = props.transitionDuration,
21280
+ _props$TransitionComp = props.TransitionComponent,
21281
+ TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
21282
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "invisible", "open", "transitionDuration", "TransitionComponent"]);
21283
+
21284
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
21285
+ in: open,
21286
+ timeout: transitionDuration
21287
+ }, other), /*#__PURE__*/react.createElement("div", {
21288
+ className: (0,clsx_m/* default */.Z)(classes.root, className, invisible && classes.invisible),
21289
+ "aria-hidden": true,
21290
+ ref: ref
21291
+ }, children));
21292
+ });
21293
+ false ? 0 : void 0;
21294
+ /* harmony default export */ var Backdrop_Backdrop = ((0,withStyles/* default */.Z)(Backdrop_styles, {
21295
+ name: 'MuiBackdrop'
21296
+ })(Backdrop));
21297
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Paper/Paper.js
21298
+
21299
+
21300
+
21301
+
21302
+
21303
+
21304
+
21305
+ var Paper_styles = function styles(theme) {
21306
+ var elevations = {};
21307
+ theme.shadows.forEach(function (shadow, index) {
21308
+ elevations["elevation".concat(index)] = {
21309
+ boxShadow: shadow
21310
+ };
21311
+ });
21312
+ return (0,esm_extends/* default */.Z)({
21313
+ /* Styles applied to the root element. */
21314
+ root: {
21315
+ backgroundColor: theme.palette.background.paper,
21316
+ color: theme.palette.text.primary,
21317
+ transition: theme.transitions.create('box-shadow')
21318
+ },
21319
+
21320
+ /* Styles applied to the root element if `square={false}`. */
21321
+ rounded: {
21322
+ borderRadius: theme.shape.borderRadius
21323
+ },
21324
+
21325
+ /* Styles applied to the root element if `variant="outlined"`. */
21326
+ outlined: {
21327
+ border: "1px solid ".concat(theme.palette.divider)
21328
+ }
21329
+ }, elevations);
21330
+ };
21331
+ var Paper = /*#__PURE__*/react.forwardRef(function Paper(props, ref) {
21332
+ var classes = props.classes,
21333
+ className = props.className,
21334
+ _props$component = props.component,
21335
+ Component = _props$component === void 0 ? 'div' : _props$component,
21336
+ _props$square = props.square,
21337
+ square = _props$square === void 0 ? false : _props$square,
21338
+ _props$elevation = props.elevation,
21339
+ elevation = _props$elevation === void 0 ? 1 : _props$elevation,
21340
+ _props$variant = props.variant,
21341
+ variant = _props$variant === void 0 ? 'elevation' : _props$variant,
21342
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "component", "square", "elevation", "variant"]);
21343
+
21344
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
21345
+ className: (0,clsx_m/* default */.Z)(classes.root, className, variant === 'outlined' ? classes.outlined : classes["elevation".concat(elevation)], !square && classes.rounded),
21346
+ ref: ref
21347
+ }, other));
21348
+ });
21349
+ false ? 0 : void 0;
21350
+ /* harmony default export */ var Paper_Paper = ((0,withStyles/* default */.Z)(Paper_styles, {
21351
+ name: 'MuiPaper'
21352
+ })(Paper));
21353
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Dialog/Dialog.js
21354
+
21355
+
21356
+
21357
+
21358
+
21359
+
21360
+
21361
+
21362
+
21363
+
21364
+
21365
+
21366
+
21367
+ var Dialog_styles = function styles(theme) {
21368
+ return {
21369
+ /* Styles applied to the root element. */
21370
+ root: {
21371
+ '@media print': {
21372
+ // Use !important to override the Modal inline-style.
21373
+ position: 'absolute !important'
21374
+ }
21375
+ },
21376
+
21377
+ /* Styles applied to the container element if `scroll="paper"`. */
21378
+ scrollPaper: {
21379
+ display: 'flex',
21380
+ justifyContent: 'center',
21381
+ alignItems: 'center'
21382
+ },
21383
+
21384
+ /* Styles applied to the container element if `scroll="body"`. */
21385
+ scrollBody: {
21386
+ overflowY: 'auto',
21387
+ overflowX: 'hidden',
21388
+ textAlign: 'center',
21389
+ '&:after': {
21390
+ content: '""',
21391
+ display: 'inline-block',
21392
+ verticalAlign: 'middle',
21393
+ height: '100%',
21394
+ width: '0'
21395
+ }
21396
+ },
21397
+
21398
+ /* Styles applied to the container element. */
21399
+ container: {
21400
+ height: '100%',
21401
+ '@media print': {
21402
+ height: 'auto'
21403
+ },
21404
+ // We disable the focus ring for mouse, touch and keyboard users.
21405
+ outline: 0
21406
+ },
21407
+
21408
+ /* Styles applied to the `Paper` component. */
21409
+ paper: {
21410
+ margin: 32,
21411
+ position: 'relative',
21412
+ overflowY: 'auto',
21413
+ // Fix IE 11 issue, to remove at some point.
21414
+ '@media print': {
21415
+ overflowY: 'visible',
21416
+ boxShadow: 'none'
21417
+ }
21418
+ },
21419
+
21420
+ /* Styles applied to the `Paper` component if `scroll="paper"`. */
21421
+ paperScrollPaper: {
21422
+ display: 'flex',
21423
+ flexDirection: 'column',
21424
+ maxHeight: 'calc(100% - 64px)'
21425
+ },
21426
+
21427
+ /* Styles applied to the `Paper` component if `scroll="body"`. */
21428
+ paperScrollBody: {
21429
+ display: 'inline-block',
21430
+ verticalAlign: 'middle',
21431
+ textAlign: 'left' // 'initial' doesn't work on IE 11
21432
+
21433
+ },
21434
+
21435
+ /* Styles applied to the `Paper` component if `maxWidth=false`. */
21436
+ paperWidthFalse: {
21437
+ maxWidth: 'calc(100% - 64px)'
21438
+ },
21439
+
21440
+ /* Styles applied to the `Paper` component if `maxWidth="xs"`. */
21441
+ paperWidthXs: {
21442
+ maxWidth: Math.max(theme.breakpoints.values.xs, 444),
21443
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {
21444
+ maxWidth: 'calc(100% - 64px)'
21445
+ })
21446
+ },
21447
+
21448
+ /* Styles applied to the `Paper` component if `maxWidth="sm"`. */
21449
+ paperWidthSm: {
21450
+ maxWidth: theme.breakpoints.values.sm,
21451
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {
21452
+ maxWidth: 'calc(100% - 64px)'
21453
+ })
21454
+ },
21455
+
21456
+ /* Styles applied to the `Paper` component if `maxWidth="md"`. */
21457
+ paperWidthMd: {
21458
+ maxWidth: theme.breakpoints.values.md,
21459
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {
21460
+ maxWidth: 'calc(100% - 64px)'
21461
+ })
21462
+ },
21463
+
21464
+ /* Styles applied to the `Paper` component if `maxWidth="lg"`. */
21465
+ paperWidthLg: {
21466
+ maxWidth: theme.breakpoints.values.lg,
21467
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {
21468
+ maxWidth: 'calc(100% - 64px)'
21469
+ })
21470
+ },
21471
+
21472
+ /* Styles applied to the `Paper` component if `maxWidth="xl"`. */
21473
+ paperWidthXl: {
21474
+ maxWidth: theme.breakpoints.values.xl,
21475
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {
21476
+ maxWidth: 'calc(100% - 64px)'
21477
+ })
21478
+ },
21479
+
21480
+ /* Styles applied to the `Paper` component if `fullWidth={true}`. */
21481
+ paperFullWidth: {
21482
+ width: 'calc(100% - 64px)'
21483
+ },
21484
+
21485
+ /* Styles applied to the `Paper` component if `fullScreen={true}`. */
21486
+ paperFullScreen: {
21487
+ margin: 0,
21488
+ width: '100%',
21489
+ maxWidth: '100%',
21490
+ height: '100%',
21491
+ maxHeight: 'none',
21492
+ borderRadius: 0,
21493
+ '&$paperScrollBody': {
21494
+ margin: 0,
21495
+ maxWidth: '100%'
21496
+ }
21497
+ }
21498
+ };
21499
+ };
21500
+ var defaultTransitionDuration = {
21501
+ enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
21502
+ exit: transitions/* duration.leavingScreen */.x9.leavingScreen
21503
+ };
21504
+ /**
21505
+ * Dialogs are overlaid modal paper based components with a backdrop.
21506
+ */
21507
+
21508
+ var Dialog = /*#__PURE__*/react.forwardRef(function Dialog(props, ref) {
21509
+ var BackdropProps = props.BackdropProps,
21510
+ children = props.children,
21511
+ classes = props.classes,
21512
+ className = props.className,
21513
+ _props$disableBackdro = props.disableBackdropClick,
21514
+ disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
21515
+ _props$disableEscapeK = props.disableEscapeKeyDown,
21516
+ disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
21517
+ _props$fullScreen = props.fullScreen,
21518
+ fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,
21519
+ _props$fullWidth = props.fullWidth,
21520
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
21521
+ _props$maxWidth = props.maxWidth,
21522
+ maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,
21523
+ onBackdropClick = props.onBackdropClick,
21524
+ onClose = props.onClose,
21525
+ onEnter = props.onEnter,
21526
+ onEntered = props.onEntered,
21527
+ onEntering = props.onEntering,
21528
+ onEscapeKeyDown = props.onEscapeKeyDown,
21529
+ onExit = props.onExit,
21530
+ onExited = props.onExited,
21531
+ onExiting = props.onExiting,
21532
+ open = props.open,
21533
+ _props$PaperComponent = props.PaperComponent,
21534
+ PaperComponent = _props$PaperComponent === void 0 ? Paper_Paper : _props$PaperComponent,
21535
+ _props$PaperProps = props.PaperProps,
21536
+ PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
21537
+ _props$scroll = props.scroll,
21538
+ scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,
21539
+ _props$TransitionComp = props.TransitionComponent,
21540
+ TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
21541
+ _props$transitionDura = props.transitionDuration,
21542
+ transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,
21543
+ TransitionProps = props.TransitionProps,
21544
+ ariaDescribedby = props['aria-describedby'],
21545
+ ariaLabelledby = props['aria-labelledby'],
21546
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropProps", "children", "classes", "className", "disableBackdropClick", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClose", "onEnter", "onEntered", "onEntering", "onEscapeKeyDown", "onExit", "onExited", "onExiting", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps", "aria-describedby", "aria-labelledby"]);
21547
+
21548
+ var mouseDownTarget = react.useRef();
21549
+
21550
+ var handleMouseDown = function handleMouseDown(event) {
21551
+ mouseDownTarget.current = event.target;
21552
+ };
21553
+
21554
+ var handleBackdropClick = function handleBackdropClick(event) {
21555
+ // Ignore the events not coming from the "backdrop"
21556
+ // We don't want to close the dialog when clicking the dialog content.
21557
+ if (event.target !== event.currentTarget) {
21558
+ return;
21559
+ } // Make sure the event starts and ends on the same DOM element.
21560
+
21561
+
21562
+ if (event.target !== mouseDownTarget.current) {
21563
+ return;
21564
+ }
21565
+
21566
+ mouseDownTarget.current = null;
21567
+
21568
+ if (onBackdropClick) {
21569
+ onBackdropClick(event);
21570
+ }
21571
+
21572
+ if (!disableBackdropClick && onClose) {
21573
+ onClose(event, 'backdropClick');
21574
+ }
21575
+ };
21576
+
21577
+ return /*#__PURE__*/react.createElement(Modal_Modal, (0,esm_extends/* default */.Z)({
21578
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
21579
+ BackdropComponent: Backdrop_Backdrop,
21580
+ BackdropProps: (0,esm_extends/* default */.Z)({
21581
+ transitionDuration: transitionDuration
21582
+ }, BackdropProps),
21583
+ closeAfterTransition: true,
21584
+ disableBackdropClick: disableBackdropClick,
21585
+ disableEscapeKeyDown: disableEscapeKeyDown,
21586
+ onEscapeKeyDown: onEscapeKeyDown,
21587
+ onClose: onClose,
21588
+ open: open,
21589
+ ref: ref
21590
+ }, other), /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
21591
+ appear: true,
21592
+ in: open,
21593
+ timeout: transitionDuration,
21594
+ onEnter: onEnter,
21595
+ onEntering: onEntering,
21596
+ onEntered: onEntered,
21597
+ onExit: onExit,
21598
+ onExiting: onExiting,
21599
+ onExited: onExited,
21600
+ role: "none presentation"
21601
+ }, TransitionProps), /*#__PURE__*/react.createElement("div", {
21602
+ className: (0,clsx_m/* default */.Z)(classes.container, classes["scroll".concat((0,capitalize/* default */.Z)(scroll))]),
21603
+ onMouseUp: handleBackdropClick,
21604
+ onMouseDown: handleMouseDown
21605
+ }, /*#__PURE__*/react.createElement(PaperComponent, (0,esm_extends/* default */.Z)({
21606
+ elevation: 24,
21607
+ role: "dialog",
21608
+ "aria-describedby": ariaDescribedby,
21609
+ "aria-labelledby": ariaLabelledby
21610
+ }, PaperProps, {
21611
+ className: (0,clsx_m/* default */.Z)(classes.paper, classes["paperScroll".concat((0,capitalize/* default */.Z)(scroll))], classes["paperWidth".concat((0,capitalize/* default */.Z)(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)
21612
+ }), children))));
21613
+ });
21614
+ false ? 0 : void 0;
21615
+ /* harmony default export */ var Dialog_Dialog = ((0,withStyles/* default */.Z)(Dialog_styles, {
21616
+ name: 'MuiDialog'
21617
+ })(Dialog));
21618
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Typography/Typography.js
21619
+
21620
+
21621
+
21622
+
21623
+
21624
+
21625
+
21626
+ var Typography_styles = function styles(theme) {
21627
+ return {
21628
+ /* Styles applied to the root element. */
21629
+ root: {
21630
+ margin: 0
21631
+ },
21632
+
21633
+ /* Styles applied to the root element if `variant="body2"`. */
21634
+ body2: theme.typography.body2,
21635
+
21636
+ /* Styles applied to the root element if `variant="body1"`. */
21637
+ body1: theme.typography.body1,
21638
+
21639
+ /* Styles applied to the root element if `variant="caption"`. */
21640
+ caption: theme.typography.caption,
21641
+
21642
+ /* Styles applied to the root element if `variant="button"`. */
21643
+ button: theme.typography.button,
21644
+
21645
+ /* Styles applied to the root element if `variant="h1"`. */
21646
+ h1: theme.typography.h1,
21647
+
21648
+ /* Styles applied to the root element if `variant="h2"`. */
21649
+ h2: theme.typography.h2,
21650
+
21651
+ /* Styles applied to the root element if `variant="h3"`. */
21652
+ h3: theme.typography.h3,
21653
+
21654
+ /* Styles applied to the root element if `variant="h4"`. */
21655
+ h4: theme.typography.h4,
21656
+
21657
+ /* Styles applied to the root element if `variant="h5"`. */
21658
+ h5: theme.typography.h5,
21659
+
21660
+ /* Styles applied to the root element if `variant="h6"`. */
21661
+ h6: theme.typography.h6,
21662
+
21663
+ /* Styles applied to the root element if `variant="subtitle1"`. */
21664
+ subtitle1: theme.typography.subtitle1,
21665
+
21666
+ /* Styles applied to the root element if `variant="subtitle2"`. */
21667
+ subtitle2: theme.typography.subtitle2,
21668
+
21669
+ /* Styles applied to the root element if `variant="overline"`. */
21670
+ overline: theme.typography.overline,
21671
+
21672
+ /* Styles applied to the root element if `variant="srOnly"`. Only accessible to screen readers. */
21673
+ srOnly: {
21674
+ position: 'absolute',
21675
+ height: 1,
21676
+ width: 1,
21677
+ overflow: 'hidden'
21678
+ },
21679
+
21680
+ /* Styles applied to the root element if `align="left"`. */
21681
+ alignLeft: {
21682
+ textAlign: 'left'
21683
+ },
21684
+
21685
+ /* Styles applied to the root element if `align="center"`. */
21686
+ alignCenter: {
21687
+ textAlign: 'center'
21688
+ },
21689
+
21690
+ /* Styles applied to the root element if `align="right"`. */
21691
+ alignRight: {
21692
+ textAlign: 'right'
21693
+ },
21694
+
21695
+ /* Styles applied to the root element if `align="justify"`. */
21696
+ alignJustify: {
21697
+ textAlign: 'justify'
21698
+ },
21699
+
21700
+ /* Styles applied to the root element if `nowrap={true}`. */
21701
+ noWrap: {
21702
+ overflow: 'hidden',
21703
+ textOverflow: 'ellipsis',
21704
+ whiteSpace: 'nowrap'
21705
+ },
21706
+
21707
+ /* Styles applied to the root element if `gutterBottom={true}`. */
21708
+ gutterBottom: {
21709
+ marginBottom: '0.35em'
21710
+ },
21711
+
21712
+ /* Styles applied to the root element if `paragraph={true}`. */
21713
+ paragraph: {
21714
+ marginBottom: 16
21715
+ },
21716
+
21717
+ /* Styles applied to the root element if `color="inherit"`. */
21718
+ colorInherit: {
21719
+ color: 'inherit'
21720
+ },
21721
+
21722
+ /* Styles applied to the root element if `color="primary"`. */
21723
+ colorPrimary: {
21724
+ color: theme.palette.primary.main
21725
+ },
21726
+
21727
+ /* Styles applied to the root element if `color="secondary"`. */
21728
+ colorSecondary: {
21729
+ color: theme.palette.secondary.main
21730
+ },
21731
+
21732
+ /* Styles applied to the root element if `color="textPrimary"`. */
21733
+ colorTextPrimary: {
21734
+ color: theme.palette.text.primary
21735
+ },
21736
+
21737
+ /* Styles applied to the root element if `color="textSecondary"`. */
21738
+ colorTextSecondary: {
21739
+ color: theme.palette.text.secondary
21740
+ },
21741
+
21742
+ /* Styles applied to the root element if `color="error"`. */
21743
+ colorError: {
21744
+ color: theme.palette.error.main
21745
+ },
21746
+
21747
+ /* Styles applied to the root element if `display="inline"`. */
21748
+ displayInline: {
21749
+ display: 'inline'
21750
+ },
21751
+
21752
+ /* Styles applied to the root element if `display="block"`. */
21753
+ displayBlock: {
21754
+ display: 'block'
21755
+ }
21756
+ };
21757
+ };
21758
+ var defaultVariantMapping = {
21759
+ h1: 'h1',
21760
+ h2: 'h2',
21761
+ h3: 'h3',
21762
+ h4: 'h4',
21763
+ h5: 'h5',
21764
+ h6: 'h6',
21765
+ subtitle1: 'h6',
21766
+ subtitle2: 'h6',
21767
+ body1: 'p',
21768
+ body2: 'p'
21769
+ };
21770
+ var Typography = /*#__PURE__*/react.forwardRef(function Typography(props, ref) {
21771
+ var _props$align = props.align,
21772
+ align = _props$align === void 0 ? 'inherit' : _props$align,
21773
+ classes = props.classes,
21774
+ className = props.className,
21775
+ _props$color = props.color,
21776
+ color = _props$color === void 0 ? 'initial' : _props$color,
21777
+ component = props.component,
21778
+ _props$display = props.display,
21779
+ display = _props$display === void 0 ? 'initial' : _props$display,
21780
+ _props$gutterBottom = props.gutterBottom,
21781
+ gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,
21782
+ _props$noWrap = props.noWrap,
21783
+ noWrap = _props$noWrap === void 0 ? false : _props$noWrap,
21784
+ _props$paragraph = props.paragraph,
21785
+ paragraph = _props$paragraph === void 0 ? false : _props$paragraph,
21786
+ _props$variant = props.variant,
21787
+ variant = _props$variant === void 0 ? 'body1' : _props$variant,
21788
+ _props$variantMapping = props.variantMapping,
21789
+ variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,
21790
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["align", "classes", "className", "color", "component", "display", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]);
21791
+
21792
+ var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
21793
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
21794
+ className: (0,clsx_m/* default */.Z)(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes["color".concat((0,capitalize/* default */.Z)(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes["align".concat((0,capitalize/* default */.Z)(align))], display !== 'initial' && classes["display".concat((0,capitalize/* default */.Z)(display))]),
21795
+ ref: ref
21796
+ }, other));
21797
+ });
21798
+ false ? 0 : void 0;
21799
+ /* harmony default export */ var Typography_Typography = ((0,withStyles/* default */.Z)(Typography_styles, {
21800
+ name: 'MuiTypography'
21801
+ })(Typography));
21802
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js
21803
+
21804
+
21805
+
21806
+
21807
+
21808
+
21809
+
21810
+ var DialogTitle_styles = {
21811
+ /* Styles applied to the root element. */
21812
+ root: {
21813
+ margin: 0,
21814
+ padding: '16px 24px',
21815
+ flex: '0 0 auto'
21816
+ }
21817
+ };
21818
+ var DialogTitle = /*#__PURE__*/react.forwardRef(function DialogTitle(props, ref) {
21819
+ var children = props.children,
21820
+ classes = props.classes,
21821
+ className = props.className,
21822
+ _props$disableTypogra = props.disableTypography,
21823
+ disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
21824
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography"]);
21825
+
21826
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
21827
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
21828
+ ref: ref
21829
+ }, other), disableTypography ? children : /*#__PURE__*/react.createElement(Typography_Typography, {
21830
+ component: "h2",
21831
+ variant: "h6"
21832
+ }, children));
21833
+ });
21834
+ false ? 0 : void 0;
21835
+ /* harmony default export */ var DialogTitle_DialogTitle = ((0,withStyles/* default */.Z)(DialogTitle_styles, {
21836
+ name: 'MuiDialogTitle'
21837
+ })(DialogTitle));
21838
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js
21839
+
21840
+
21841
+
21842
+
21843
+
21844
+
21845
+ var DialogContent_styles = function styles(theme) {
21846
+ return {
21847
+ /* Styles applied to the root element. */
21848
+ root: {
21849
+ flex: '1 1 auto',
21850
+ WebkitOverflowScrolling: 'touch',
21851
+ // Add iOS momentum scrolling.
21852
+ overflowY: 'auto',
21853
+ padding: '8px 24px',
21854
+ '&:first-child': {
21855
+ // dialog without title
21856
+ paddingTop: 20
21857
+ }
21858
+ },
21859
+
21860
+ /* Styles applied to the root element if `dividers={true}`. */
21861
+ dividers: {
21862
+ padding: '16px 24px',
21863
+ borderTop: "1px solid ".concat(theme.palette.divider),
21864
+ borderBottom: "1px solid ".concat(theme.palette.divider)
21865
+ }
21866
+ };
21867
+ };
21868
+ var DialogContent = /*#__PURE__*/react.forwardRef(function DialogContent(props, ref) {
21869
+ var classes = props.classes,
21870
+ className = props.className,
21871
+ _props$dividers = props.dividers,
21872
+ dividers = _props$dividers === void 0 ? false : _props$dividers,
21873
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "dividers"]);
21874
+
21875
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
21876
+ className: (0,clsx_m/* default */.Z)(classes.root, className, dividers && classes.dividers),
21877
+ ref: ref
21878
+ }, other));
21879
+ });
21880
+ false ? 0 : void 0;
21881
+ /* harmony default export */ var DialogContent_DialogContent = ((0,withStyles/* default */.Z)(DialogContent_styles, {
21882
+ name: 'MuiDialogContent'
21883
+ })(DialogContent));
21884
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js
21885
+
21886
+
21887
+
21888
+
21889
+
21890
+ var DialogContentText_styles = {
21891
+ /* Styles applied to the root element. */
21892
+ root: {
21893
+ marginBottom: 12
21894
+ }
21895
+ };
21896
+ var DialogContentText = /*#__PURE__*/react.forwardRef(function DialogContentText(props, ref) {
21897
+ return /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
21898
+ component: "p",
21899
+ variant: "body1",
21900
+ color: "textSecondary",
21901
+ ref: ref
21902
+ }, props));
21903
+ });
21904
+ false ? 0 : void 0;
21905
+ /* harmony default export */ var DialogContentText_DialogContentText = ((0,withStyles/* default */.Z)(DialogContentText_styles, {
21906
+ name: 'MuiDialogContentText'
21907
+ })(DialogContentText));
21908
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js
21909
+
21910
+
21911
+
21912
+
21913
+
21914
+
21915
+ var DialogActions_styles = {
21916
+ /* Styles applied to the root element. */
21917
+ root: {
21918
+ display: 'flex',
21919
+ alignItems: 'center',
21920
+ padding: 8,
21921
+ justifyContent: 'flex-end',
21922
+ flex: '0 0 auto'
21923
+ },
21924
+
21925
+ /* Styles applied to the root element if `disableSpacing={false}`. */
21926
+ spacing: {
21927
+ '& > :not(:first-child)': {
21928
+ marginLeft: 8
21929
+ }
21930
+ }
21931
+ };
21932
+ var DialogActions = /*#__PURE__*/react.forwardRef(function DialogActions(props, ref) {
21933
+ var _props$disableSpacing = props.disableSpacing,
21934
+ disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,
21935
+ classes = props.classes,
21936
+ className = props.className,
21937
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["disableSpacing", "classes", "className"]);
21938
+
21939
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
21940
+ className: (0,clsx_m/* default */.Z)(classes.root, className, !disableSpacing && classes.spacing),
21941
+ ref: ref
21942
+ }, other));
21943
+ });
21944
+ false ? 0 : void 0;
21945
+ /* harmony default export */ var DialogActions_DialogActions = ((0,withStyles/* default */.Z)(DialogActions_styles, {
21946
+ name: 'MuiDialogActions'
21947
+ })(DialogActions));
21948
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/ConfirmDialog/index.js
21949
+ function ConfirmDialog_extends() { ConfirmDialog_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ConfirmDialog_extends.apply(this, arguments); }
21950
+
21951
+
21952
+
21953
+
21954
+
21955
+ var defaultButtons = [{
21956
+ value: "cancel",
21957
+ text: translate("modal.cancel")
21958
+ }, {
21959
+ value: "confirm",
21960
+ text: translate("common.confirm")
21961
+ }];
21962
+ function ConfirmDialog(_ref) {
21963
+ var onClose = _ref.onClose,
21964
+ _ref$icon = _ref.icon,
21965
+ icon = _ref$icon === void 0 ? null : _ref$icon,
21966
+ _ref$open = _ref.open,
21967
+ open = _ref$open === void 0 ? false : _ref$open,
21968
+ _ref$title = _ref.title,
21969
+ title = _ref$title === void 0 ? "Confirm" : _ref$title,
21970
+ _ref$children = _ref.children,
21971
+ children = _ref$children === void 0 ? null : _ref$children,
21972
+ _ref$buttons = _ref.buttons,
21973
+ buttons = _ref$buttons === void 0 ? null : _ref$buttons,
21974
+ _ref$maxWidth = _ref.maxWidth,
21975
+ maxWidth = _ref$maxWidth === void 0 ? "xs" : _ref$maxWidth,
21976
+ _ref$fullWidth = _ref.fullWidth,
21977
+ fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
21978
+ className = _ref.className,
21979
+ _ref$testId = _ref.testId,
21980
+ testId = _ref$testId === void 0 ? null : _ref$testId;
21981
+
21982
+ var handleClose = function handleClose(status) {
21983
+ onClose(status);
21984
+ };
21985
+
21986
+ if (!buttons) buttons = defaultButtons;
21987
+ return /*#__PURE__*/react.createElement(Dialog_Dialog, {
21988
+ open: open,
21989
+ onClose: handleClose,
21990
+ maxWidth: maxWidth,
21991
+ fullWidth: fullWidth,
21992
+ "aria-labelledby": "alert-dialog-title",
21993
+ "aria-describedby": "alert-dialog-description",
21994
+ className: className,
21995
+ "data-testid": testId ? "dialog:".concat(testId) : null
21996
+ }, /*#__PURE__*/react.createElement(DialogTitle_DialogTitle, {
21997
+ id: "alert-dialog-title"
21998
+ }, icon, title), /*#__PURE__*/react.createElement(DialogContent_DialogContent, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
21999
+ id: "alert-dialog-description",
22000
+ component: "div"
22001
+ }, children)), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, buttons.map(function (button, key) {
22002
+ return /*#__PURE__*/react.createElement(Button_Button, ConfirmDialog_extends({
22003
+ onClick: function onClick() {
22004
+ return handleClose(button.value);
22005
+ },
22006
+ color: "primary",
22007
+ key: key,
22008
+ variant: button.variant,
22009
+ "data-testid": testId ? "dialog:".concat(testId, ":button:").concat(button.value) : null
22010
+ }, button.props), button.text);
22011
+ })));
22012
+ }
22013
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/IconButton/IconButton.js
22014
+
22015
+
22016
+
22017
+
22018
+
22019
+
22020
+
22021
+
22022
+
22023
+
22024
+ var IconButton_styles = function styles(theme) {
22025
+ return {
22026
+ /* Styles applied to the root element. */
22027
+ root: {
22028
+ textAlign: 'center',
22029
+ flex: '0 0 auto',
22030
+ fontSize: theme.typography.pxToRem(24),
22031
+ padding: 12,
22032
+ borderRadius: '50%',
22033
+ overflow: 'visible',
22034
+ // Explicitly set the default value to solve a bug on IE 11.
22035
+ color: theme.palette.action.active,
22036
+ transition: theme.transitions.create('background-color', {
22037
+ duration: theme.transitions.duration.shortest
22038
+ }),
22039
+ '&:hover': {
22040
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.action.active, theme.palette.action.hoverOpacity),
22041
+ // Reset on touch devices, it doesn't add specificity
22042
+ '@media (hover: none)': {
22043
+ backgroundColor: 'transparent'
22044
+ }
22045
+ },
22046
+ '&$disabled': {
22047
+ backgroundColor: 'transparent',
22048
+ color: theme.palette.action.disabled
22049
+ }
22050
+ },
22051
+
22052
+ /* Styles applied to the root element if `edge="start"`. */
22053
+ edgeStart: {
22054
+ marginLeft: -12,
22055
+ '$sizeSmall&': {
22056
+ marginLeft: -3
22057
+ }
22058
+ },
22059
+
22060
+ /* Styles applied to the root element if `edge="end"`. */
22061
+ edgeEnd: {
22062
+ marginRight: -12,
22063
+ '$sizeSmall&': {
22064
+ marginRight: -3
22065
+ }
22066
+ },
22067
+
22068
+ /* Styles applied to the root element if `color="inherit"`. */
22069
+ colorInherit: {
22070
+ color: 'inherit'
22071
+ },
22072
+
22073
+ /* Styles applied to the root element if `color="primary"`. */
22074
+ colorPrimary: {
22075
+ color: theme.palette.primary.main,
22076
+ '&:hover': {
22077
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, theme.palette.action.hoverOpacity),
22078
+ // Reset on touch devices, it doesn't add specificity
22079
+ '@media (hover: none)': {
22080
+ backgroundColor: 'transparent'
22081
+ }
22082
+ }
22083
+ },
22084
+
22085
+ /* Styles applied to the root element if `color="secondary"`. */
22086
+ colorSecondary: {
22087
+ color: theme.palette.secondary.main,
22088
+ '&:hover': {
22089
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),
22090
+ // Reset on touch devices, it doesn't add specificity
22091
+ '@media (hover: none)': {
22092
+ backgroundColor: 'transparent'
22093
+ }
22094
+ }
22095
+ },
22096
+
22097
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
22098
+ disabled: {},
22099
+
22100
+ /* Styles applied to the root element if `size="small"`. */
22101
+ sizeSmall: {
22102
+ padding: 3,
22103
+ fontSize: theme.typography.pxToRem(18)
22104
+ },
22105
+
22106
+ /* Styles applied to the children container element. */
22107
+ label: {
22108
+ width: '100%',
22109
+ display: 'flex',
22110
+ alignItems: 'inherit',
22111
+ justifyContent: 'inherit'
22112
+ }
22113
+ };
22114
+ };
22115
+ /**
22116
+ * Refer to the [Icons](/components/icons/) section of the documentation
22117
+ * regarding the available icon options.
22118
+ */
22119
+
22120
+ var IconButton = /*#__PURE__*/react.forwardRef(function IconButton(props, ref) {
22121
+ var _props$edge = props.edge,
22122
+ edge = _props$edge === void 0 ? false : _props$edge,
22123
+ children = props.children,
22124
+ classes = props.classes,
22125
+ className = props.className,
22126
+ _props$color = props.color,
22127
+ color = _props$color === void 0 ? 'default' : _props$color,
22128
+ _props$disabled = props.disabled,
22129
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
22130
+ _props$disableFocusRi = props.disableFocusRipple,
22131
+ disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
22132
+ _props$size = props.size,
22133
+ size = _props$size === void 0 ? 'medium' : _props$size,
22134
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["edge", "children", "classes", "className", "color", "disabled", "disableFocusRipple", "size"]);
22135
+
22136
+ return /*#__PURE__*/react.createElement(ButtonBase_ButtonBase, (0,esm_extends/* default */.Z)({
22137
+ className: (0,clsx_m/* default */.Z)(classes.root, className, color !== 'default' && classes["color".concat((0,capitalize/* default */.Z)(color))], disabled && classes.disabled, size === "small" && classes["size".concat((0,capitalize/* default */.Z)(size))], {
22138
+ 'start': classes.edgeStart,
22139
+ 'end': classes.edgeEnd
22140
+ }[edge]),
22141
+ centerRipple: true,
22142
+ focusRipple: !disableFocusRipple,
22143
+ disabled: disabled,
22144
+ ref: ref
22145
+ }, other), /*#__PURE__*/react.createElement("span", {
22146
+ className: classes.label
22147
+ }, children));
22148
+ });
22149
+ false ? 0 : void 0;
22150
+ /* harmony default export */ var IconButton_IconButton = ((0,withStyles/* default */.Z)(IconButton_styles, {
22151
+ name: 'MuiIconButton'
22152
+ })(IconButton));
22153
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/RevertButton/RevertButton.js
22154
+ function RevertButton_slicedToArray(arr, i) { return RevertButton_arrayWithHoles(arr) || RevertButton_iterableToArrayLimit(arr, i) || RevertButton_unsupportedIterableToArray(arr, i) || RevertButton_nonIterableRest(); }
22155
+
22156
+ function RevertButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
22157
+
22158
+ function RevertButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return RevertButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return RevertButton_arrayLikeToArray(o, minLen); }
22159
+
22160
+ function RevertButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
22161
+
22162
+ function RevertButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
22163
+
22164
+ function RevertButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22165
+
22166
+
22167
+
22168
+
22169
+
22170
+
22171
+
22172
+
22173
+
22174
+
22175
+
22176
+ function RevertButton(_ref) {
22177
+ var hasChanges = _ref.hasChanges;
22178
+
22179
+ var _useState = (0,react.useState)(false),
22180
+ _useState2 = RevertButton_slicedToArray(_useState, 2),
22181
+ dialogOpened = _useState2[0],
22182
+ setDialogOpened = _useState2[1];
22183
+
22184
+ var _useState3 = (0,react.useState)(false),
22185
+ _useState4 = RevertButton_slicedToArray(_useState3, 2),
22186
+ startRotate = _useState4[0],
22187
+ setStartRotate = _useState4[1];
22188
+ /**
22189
+ * Revert buttons
22190
+ */
22191
+
22192
+
22193
+ function startReverting() {
22194
+ savingHelpers_apiRequest("/revert", {
22195
+ method: "POST",
22196
+ data: {
22197
+ nonce: buttonizer_admin.nonce
22198
+ }
22199
+ }).then(function (_ref2) {
22200
+ var status = _ref2.status,
22201
+ message = _ref2.message;
22202
+
22203
+ if (status === "error") {
22204
+ app.loader.hide();
22205
+ app.error({
22206
+ message: message
22207
+ });
22208
+ return;
22209
+ }
22210
+
22211
+ window.location.reload();
22212
+ });
22213
+ } // Handle close button
22214
+
22215
+
22216
+ var handleClose = function handleClose(why) {
22217
+ setDialogOpened(false);
22218
+
22219
+ if (why === "revert") {
22220
+ setStartRotate(true);
22221
+ startReverting();
22222
+ }
22223
+ };
22224
+
22225
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Tippy_Tippy, {
22226
+ content: translate("revert.revert_changes")
22227
+ }, /*#__PURE__*/react.createElement(IconButton_IconButton, {
22228
+ onClick: function onClick() {
22229
+ return setDialogOpened(true);
22230
+ },
22231
+ className: "revert-button",
22232
+ color: "secondary",
22233
+ disabled: !hasChanges || startRotate,
22234
+ "data-testid": "revert-button"
22235
+ }, /*#__PURE__*/react.createElement("i", {
22236
+ className: (0,clsx_m/* default */.Z)("fas fa-history", startRotate && "spin")
22237
+ }))), /*#__PURE__*/react.createElement(ConfirmDialog, {
22238
+ open: dialogOpened,
22239
+ title: translate("revert.revert_changes"),
22240
+ buttons: [{
22241
+ text: translate("modal.cancel"),
22242
+ value: "close"
22243
+ }, {
22244
+ text: translate("revert.revert_changes"),
22245
+ value: "revert"
22246
+ }],
22247
+ onClose: handleClose,
22248
+ testId: "revert-dialog"
22249
+ }, /*#__PURE__*/react.createElement("p", null, translate("revert.modal.intro")), /*#__PURE__*/react.createElement("p", null, translate("revert.modal.action"))));
22250
+ }
22251
+
22252
+ /* harmony default export */ var RevertButton_RevertButton = (connect(function (state) {
22253
+ return {
22254
+ hasChanges: state.misc.hasChanges
22255
+ };
22256
+ })(RevertButton));
22257
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
22258
+ var es_array_filter = __webpack_require__(57327);
22259
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js
22260
+ var es_array_for_each = __webpack_require__(89554);
22261
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
22262
+ var es_array_iterator = __webpack_require__(66992);
22263
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
22264
+ var es_object_assign = __webpack_require__(19601);
22265
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
22266
+ var es_object_to_string = __webpack_require__(41539);
22267
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.parse-int.js
22268
+ var es_parse_int = __webpack_require__(91058);
22269
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
22270
+ var es_string_iterator = __webpack_require__(78783);
22271
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.js
22272
+ var es_weak_map = __webpack_require__(4129);
22273
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
22274
+ var web_dom_collections_iterator = __webpack_require__(33948);
22275
  // EXTERNAL MODULE: ./node_modules/lodash.throttle/index.js
22276
  var lodash_throttle = __webpack_require__(93096);
22277
  var lodash_throttle_default = /*#__PURE__*/__webpack_require__.n(lodash_throttle);
22391
  /**
22392
  * Detects whether window and document objects are available in current environment.
22393
  */
22394
+ var ResizeObserver_es_isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
22395
 
22396
  // Returns global object of a current environment.
22397
  var global$1 = (function () {
22610
  ResizeObserverController.prototype.connect_ = function () {
22611
  // Do nothing if running in a non-browser environment or if listeners
22612
  // have been already added.
22613
+ if (!ResizeObserver_es_isBrowser || this.connected_) {
22614
  return;
22615
  }
22616
  // Subscription to the "Transitionend" event is used as a workaround for
22642
  ResizeObserverController.prototype.disconnect_ = function () {
22643
  // Do nothing if running in a non-browser environment or if listeners
22644
  // have been already removed.
22645
+ if (!ResizeObserver_es_isBrowser || !this.connected_) {
22646
  return;
22647
  }
22648
  document.removeEventListener('transitionend', this.onTransitionEnd_);
22890
  * @returns {DOMRectInit}
22891
  */
22892
  function getContentRect(target) {
22893
+ if (!ResizeObserver_es_isBrowser) {
22894
  return emptyRect;
22895
  }
22896
  if (isSVGGraphicsElement(target)) {
23201
  };
23202
  });
23203
 
23204
+ var ResizeObserver_es_index = (function () {
23205
  // Export existing implementation if available.
23206
  if (typeof global$1.ResizeObserver !== 'undefined') {
23207
  return global$1.ResizeObserver;
23209
  return ResizeObserver;
23210
  })();
23211
 
23212
+ /* harmony default export */ var ResizeObserver_es = (ResizeObserver_es_index);
23213
 
23214
  // EXTERNAL MODULE: ./node_modules/can-use-dom/index.js
23215
  var can_use_dom = __webpack_require__(31807);
26181
  return hoist_non_react_statics_cjs_default()(C, Component);
26182
  }
26183
 
26184
+ var useContext = react.useContext;
26185
  function useHistory() {
26186
  if (false) {}
26187
 
26188
+ return useContext(historyContext);
26189
  }
26190
  function useLocation() {
26191
  if (false) {}
26192
 
26193
+ return useContext(context).location;
26194
  }
26195
  function useParams() {
26196
  if (false) {}
26197
 
26198
+ var match = useContext(context).match;
26199
  return match ? match.params : {};
26200
  }
26201
  function useRouteMatch(path) {
26202
  if (false) {}
26203
 
26204
  var location = useLocation();
26205
+ var match = useContext(context).match;
26206
  return path ? matchPath(location.pathname, path) : match;
26207
  }
26208
 
26232
 
26233
  function RandomTip(_ref) {
26234
  var settings = _ref.settings;
26235
+ var tips = [translate("random_tips.tip_1"), translate("random_tips.tip_2"), translate("random_tips.tip_3"), translate("random_tips.tip_4"), translate("random_tips.tip_5"), translate("random_tips.tip_6"), translate("random_tips.tip_7"), translate("random_tips.tip_8"), translate("random_tips.tip_9"), translate("random_tips.tip_10"), translate("random_tips.tip_11"), translate("random_tips.tip_12"), translate("random_tips.tip_13"), translate("random_tips.tip_14"), translate("random_tips.tip_15"), translate("random_tips.tip_16"), translate("random_tips.tip_17"), translate("random_tips.tip_18"), translate("random_tips.tip_19"), translate("random_tips.tip_20"), translate("random_tips.tip_21"), translate("random_tips.tip_22"), translate("random_tips.tip_23")];
26236
 
26237
  var _useState = (0,react.useState)(0),
26238
  _useState2 = RandomTip_slicedToArray(_useState, 2),
26442
 
26443
  save();
26444
  }
26445
+ function importGroup() {
26446
+ var groupAttr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
26447
+ var buttons = arguments.length > 1 ? arguments[1] : undefined;
26448
+ var index = arguments.length > 2 ? arguments[2] : undefined;
26449
+ var dispatch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : dashboard_store.dispatch;
26450
+ var groupAttrDef = {
26451
+ name: translate("utils.new_group"),
26452
+ show_mobile: true,
26453
+ show_desktop: true,
26454
+ children: []
26455
+ };
26456
+ var group_id = dispatch(dataActions_addRecord(groupAttr ? groupAttr : groupAttrDef, "groups", index)).payload.record.id;
26457
+ buttons.map(function (button) {
26458
+ // Do not import
26459
+ if (Object.keys(button).length === 0) return false;
26460
+ GroupActions_addButton(button, group_id, false, dispatch);
26461
+ });
26462
+ }
26463
+ function replaceGroup(currentGroupId, groupAttr, buttons) {
26464
+ var dispatch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : dashboard_store.dispatch;
26465
+ var state = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : dashboard_store.getState();
26466
+
26467
+ if (state.groups[currentGroupId]) {
26468
+ // Remove current group
26469
+ GroupActions_removeGroup(currentGroupId, state, dispatch); // Create new group with same index
26470
+
26471
+ var index = Object.values(state.groups).reduce(function (acc, item, index) {
26472
+ return item.id === currentGroupId ? index : acc;
26473
+ }, "");
26474
+ var group_id = dispatch(dataActions_addRecord(groupAttr, "groups", index)).payload.record.id;
26475
+ buttons.map(function (button) {
26476
+ // Do not import
26477
+ if (Object.keys(button).length === 0) return false;
26478
+ GroupActions_addButton(button, group_id, false, dispatch);
26479
+ });
26480
+ } else {
26481
+ console.error(state.groups, state.groups[currentGroupId]);
26482
+ }
26483
+
26484
+ save();
26485
+ }
26486
  ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/ButtonActions.js
26487
  function ButtonActions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26488
 
26492
 
26493
 
26494
 
26495
+
26496
  function ButtonActions_removeButton(id) {
26497
  var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
26498
  var dispatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.store.dispatch;
26510
  id: undefined
26511
  }, payload);
26512
 
26513
+ switch (state.buttons[id].type) {
26514
+ case "popup_maker":
26515
+ attr.action = "popupMaker" + uniqueCharset() + "Pv2";
26516
+ break;
26517
+
26518
+ case "elementor_popup":
26519
+ attr.action = "elementor" + uniqueCharset() + "Ev2";
26520
+ break;
26521
+ }
26522
+
26523
  delete attr.id;
26524
  GroupActions_addButton(attr, group_id, Object.values(state.buttons).reduce(function (acc, item, index) {
26525
  return item.id === id ? index + 1 : acc;
26924
 
26925
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Tippy_Tippy, {
26926
  content: translate("modal.remove.".concat(model, ".cannot_delete")),
 
26927
  disabled: !deleteDisabled,
26928
+ trigger: "click"
26929
+ }, !inDropdown ? /*#__PURE__*/react.createElement("span", {
26930
+ tabIndex: 0
26931
+ }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
26932
  content: translate("utils.delete"),
26933
  disabled: deleteDisabled,
26934
  style: {
26951
  overflow: "unset"
26952
  },
26953
  className: "fas fa-times"
26954
+ })))) : /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
26955
  onClick: function onClick() {
26956
  return !deleteDisabled && setDialogOpened(true);
26957
  },
27008
  }
27009
  /* harmony default export */ var FormControl_FormControlContext = (FormControlContext);
27010
  // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/debounce.js
27011
+ var utils_debounce = __webpack_require__(79437);
27012
  ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js
27013
 
27014
 
27116
  });
27117
  }, [rowsMax, rowsMin, props.placeholder]);
27118
  react.useEffect(function () {
27119
+ var handleResize = (0,utils_debounce/* default */.Z)(function () {
27120
  renders.current = 0;
27121
  syncHeight();
27122
  });
29037
  } // Sum the scrollTop between two elements.
29038
 
29039
 
29040
+ function Popover_getScrollParent(parent, child) {
29041
  var element = child;
29042
  var scrollTop = 0;
29043
 
29145
  var contentAnchorEl = getContentAnchorEl(element);
29146
 
29147
  if (contentAnchorEl && element.contains(contentAnchorEl)) {
29148
+ var scrollTop = Popover_getScrollParent(element, contentAnchorEl);
29149
  contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;
29150
  } // != the default value
29151
 
29276
  return undefined;
29277
  }
29278
 
29279
+ var handleResize = (0,utils_debounce/* default */.Z)(function () {
29280
  setPositioningStyles();
29281
  });
29282
  window.addEventListener('resize', handleResize);
30706
  /* harmony default export */ var TextField_TextField = ((0,withStyles/* default */.Z)(TextField_styles, {
30707
  name: 'MuiTextField'
30708
  })(TextField));
30709
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/KnowledgeBaseLink/KnowledgeBaseLink.js
30710
+
30711
+
30712
+
30713
+
30714
+ function KnowledgeBaseLink(_ref) {
30715
+ var articleId = _ref.articleId,
30716
+ setting = _ref.setting,
30717
+ _ref$size = _ref.size,
30718
+ size = _ref$size === void 0 ? "medium" : _ref$size,
30719
+ _ref$tiny = _ref.tiny,
30720
+ tiny = _ref$tiny === void 0 ? false : _ref$tiny,
30721
+ style = _ref.style;
30722
+ if (tiny) return /*#__PURE__*/react.createElement("a", {
30723
+ href: "https://community.buttonizer.pro/knowledgebase/".concat(articleId),
30724
+ target: "_blank",
30725
+ style: style
30726
+ }, /*#__PURE__*/react.createElement("i", {
30727
+ className: (0,clsx_m/* default */.Z)("knowledgebase-icon", size, "fas fa-question-circle")
30728
+ }));
30729
+ return /*#__PURE__*/react.createElement("a", {
30730
+ href: "https://community.buttonizer.pro/knowledgebase/".concat(articleId),
30731
+ target: "_blank",
30732
+ className: (0,clsx_m/* default */.Z)("knowledgebase-link", size),
30733
+ dangerouslySetInnerHTML: {
30734
+ __html: translate("utils.knowledge_link", setting)
30735
+ }
30736
+ });
30737
+ }
30738
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/FormDialog.js
30739
  function FormDialog_extends() { FormDialog_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return FormDialog_extends.apply(this, arguments); }
30740
 
30763
 
30764
 
30765
 
30766
+
30767
  var FormDialog_defaultButtons = [{
30768
  value: "cancel",
30769
  text: translate("modal.cancel")
30789
  cancelIfSameAsFirstValue = _ref$cancelIfSameAsFi === void 0 ? false : _ref$cancelIfSameAsFi,
30790
  _ref$clearOnConfirm = _ref.clearOnConfirm,
30791
  clearOnConfirm = _ref$clearOnConfirm === void 0 ? false : _ref$clearOnConfirm,
30792
+ _ref$kbLink = _ref.kbLink,
30793
+ kbLink = _ref$kbLink === void 0 ? null : _ref$kbLink,
30794
+ props = FormDialog_objectWithoutProperties(_ref, ["open", "buttons", "onClose", "text", "title", "defaultValue", "canBeEmpty", "maxWidth", "fullWidth", "cancelIfSameAsFirstValue", "clearOnConfirm", "kbLink"]);
30795
 
30796
  var _React$useState = react.useState(defaultValue === "" ? "" : defaultValue || " "),
30797
  _React$useState2 = FormDialog_slicedToArray(_React$useState, 2),
30854
  }
30855
  }
30856
  }
30857
+ })), /*#__PURE__*/react.createElement("div", {
30858
+ style: kbLink && {
30859
+ display: "flex",
30860
+ justifyContent: "space-between",
30861
+ alignItems: "center ",
30862
+ paddingLeft: "24px"
30863
+ }
30864
+ }, kbLink && /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
30865
+ articleId: kbLink,
30866
+ tiny: true
30867
+ }), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, generateButtons())));
30868
  }
30869
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/DuplicateButton.js
30870
  function DuplicateButton_extends() { DuplicateButton_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return DuplicateButton_extends.apply(this, arguments); }
31139
 
31140
 
31141
 
31142
+ /**
31143
+ * Generate JSON group object for exporting data
31144
+ *
31145
+ * @param {*} groupId
31146
  */
31147
 
31148
  function generateJSONGroupObject(groupId) {
31149
+ var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
31150
  // No groups, nothing to export
31151
+ if (Object.keys(state.groups).length === 0) return null; // Find group object
31152
 
31153
+ var groupObject = dlv_umd_default()(state.groups, groupId, null); // Group object not found
31154
 
31155
  if (!groupObject) {
31156
  return null;
31182
  buttons: tempButtons
31183
  };
31184
  }
31185
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js
31186
+
31187
+
31188
+
31189
+
31190
+
31191
+
31192
+
31193
+
31194
+ var ListItemText_styles = {
31195
+ /* Styles applied to the root element. */
31196
+ root: {
31197
+ flex: '1 1 auto',
31198
+ minWidth: 0,
31199
+ marginTop: 4,
31200
+ marginBottom: 4
31201
+ },
31202
+
31203
+ /* Styles applied to the `Typography` components if primary and secondary are set. */
31204
+ multiline: {
31205
+ marginTop: 6,
31206
+ marginBottom: 6
31207
+ },
31208
+
31209
+ /* Styles applied to the `Typography` components if dense. */
31210
+ dense: {},
31211
+
31212
+ /* Styles applied to the root element if `inset={true}`. */
31213
+ inset: {
31214
+ paddingLeft: 56
31215
+ },
31216
+
31217
+ /* Styles applied to the primary `Typography` component. */
31218
+ primary: {},
31219
+
31220
+ /* Styles applied to the secondary `Typography` component. */
31221
+ secondary: {}
31222
+ };
31223
+ var ListItemText = /*#__PURE__*/react.forwardRef(function ListItemText(props, ref) {
31224
+ var children = props.children,
31225
+ classes = props.classes,
31226
+ className = props.className,
31227
+ _props$disableTypogra = props.disableTypography,
31228
+ disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
31229
+ _props$inset = props.inset,
31230
+ inset = _props$inset === void 0 ? false : _props$inset,
31231
+ primaryProp = props.primary,
31232
+ primaryTypographyProps = props.primaryTypographyProps,
31233
+ secondaryProp = props.secondary,
31234
+ secondaryTypographyProps = props.secondaryTypographyProps,
31235
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography", "inset", "primary", "primaryTypographyProps", "secondary", "secondaryTypographyProps"]);
31236
+
31237
+ var _React$useContext = react.useContext(List_ListContext),
31238
+ dense = _React$useContext.dense;
31239
+
31240
+ var primary = primaryProp != null ? primaryProp : children;
31241
+
31242
+ if (primary != null && primary.type !== Typography_Typography && !disableTypography) {
31243
+ primary = /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
31244
+ variant: dense ? 'body2' : 'body1',
31245
+ className: classes.primary,
31246
+ component: "span",
31247
+ display: "block"
31248
+ }, primaryTypographyProps), primary);
31249
+ }
31250
+
31251
+ var secondary = secondaryProp;
31252
+
31253
+ if (secondary != null && secondary.type !== Typography_Typography && !disableTypography) {
31254
+ secondary = /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
31255
+ variant: "body2",
31256
+ className: classes.secondary,
31257
+ color: "textSecondary",
31258
+ display: "block"
31259
+ }, secondaryTypographyProps), secondary);
31260
+ }
31261
+
31262
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
31263
+ className: (0,clsx_m/* default */.Z)(classes.root, className, dense && classes.dense, inset && classes.inset, primary && secondary && classes.multiline),
31264
+ ref: ref
31265
+ }, other), primary, secondary);
31266
+ });
31267
+ false ? 0 : void 0;
31268
+ /* harmony default export */ var ListItemText_ListItemText = ((0,withStyles/* default */.Z)(ListItemText_styles, {
31269
+ name: 'MuiListItemText'
31270
+ })(ListItemText));
31271
+ // EXTERNAL MODULE: ./node_modules/lodash/lodash.js
31272
+ var lodash = __webpack_require__(96486);
31273
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/PropertyList.js
31274
+ function PropertyList_slicedToArray(arr, i) { return PropertyList_arrayWithHoles(arr) || PropertyList_iterableToArrayLimit(arr, i) || PropertyList_unsupportedIterableToArray(arr, i) || PropertyList_nonIterableRest(); }
31275
+
31276
+ function PropertyList_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31277
+
31278
+ function PropertyList_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PropertyList_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return PropertyList_arrayLikeToArray(o, minLen); }
31279
+
31280
+ function PropertyList_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31281
+
31282
+ function PropertyList_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
31283
+
31284
+ function PropertyList_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31285
+
31286
+
31287
+
31288
+
31289
+
31290
+
31291
+ function PropertyList(_ref) {
31292
+ var properties = _ref.properties,
31293
+ _ref$type = _ref.type,
31294
+ type = _ref$type === void 0 ? "Button" : _ref$type;
31295
+
31296
+ var _React$useState = react.useState(null),
31297
+ _React$useState2 = PropertyList_slicedToArray(_React$useState, 2),
31298
+ anchorEl = _React$useState2[0],
31299
+ setAnchorEl = _React$useState2[1];
31300
+
31301
+ var open = Boolean(anchorEl);
31302
+
31303
+ var handleClick = function handleClick(event) {
31304
+ setAnchorEl(event.currentTarget);
31305
+ };
31306
+
31307
+ var handleClose = function handleClose() {
31308
+ setAnchorEl(null);
31309
+ };
31310
+
31311
+ var menuEl = function menuEl() {
31312
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Button_Button, {
31313
+ onClick: handleClick,
31314
+ "aria-label": "more",
31315
+ "aria-controls": "long-menu",
31316
+ "aria-haspopup": "true",
31317
+ color: "primary",
31318
+ variant: "text",
31319
+ endIcon: /*#__PURE__*/react.createElement(Icon_Icon, {
31320
+ className: "fas fa-caret-down"
31321
+ })
31322
+ }, Object.keys(properties).length, " ", translate("import_export.properties"), " "), /*#__PURE__*/react.createElement(Menu_Menu, {
31323
+ id: "long-menu",
31324
+ anchorEl: anchorEl,
31325
+ keepMounted: true,
31326
+ open: open,
31327
+ onClose: handleClose,
31328
+ PaperProps: {
31329
+ style: {
31330
+ maxHeight: 430,
31331
+ width: "410px"
31332
+ }
31333
+ },
31334
+ anchorOrigin: {
31335
+ vertical: "bottom",
31336
+ horizontal: "center"
31337
+ },
31338
+ transformOrigin: {
31339
+ vertical: "top",
31340
+ horizontal: "center"
31341
+ },
31342
+ getContentAnchorEl: null
31343
+ }, /*#__PURE__*/react.createElement(List_List, {
31344
+ subheader: /*#__PURE__*/react.createElement("li", null),
31345
+ onClick: handleClose
31346
+ }, Object.entries(properties).map(function (_ref2, id) {
31347
+ var _ref3 = PropertyList_slicedToArray(_ref2, 2),
31348
+ name = _ref3[0],
31349
+ value = _ref3[1];
31350
+
31351
+ var values = (0,lodash.merge)([null, null], typeof value === "string" ? value.split(";") : JSON.stringify(value).split(";"));
31352
+ return /*#__PURE__*/react.createElement(ListItem_ListItem, {
31353
+ key: id,
31354
+ style: {
31355
+ display: "flex",
31356
+ flexWrap: "wrap"
31357
+ }
31358
+ }, /*#__PURE__*/react.createElement(ListItemText_ListItemText, {
31359
+ primary: name.replaceAll("_", " ") + " :",
31360
+ style: {
31361
+ minWidth: "fit-content",
31362
+ marginRight: "5px",
31363
+ textTransform: "capitalize",
31364
+ flex: "unset",
31365
+ margin: "unset"
31366
+ }
31367
+ }), /*#__PURE__*/react.createElement(ListItemText_ListItemText, {
31368
+ primary: values[0],
31369
+ style: {
31370
+ margin: "0 5px",
31371
+ whiteSpace: "nowrap",
31372
+ flex: 1,
31373
+ overflow: "hidden",
31374
+ borderRight: values[1] !== null && "2px solid rgb(0 0 0 / 30%)"
31375
+ },
31376
+ primaryTypographyProps: {
31377
+ style: {
31378
+ overflow: "hidden",
31379
+ textOverflow: "ellipsis"
31380
+ }
31381
+ },
31382
+ secondary: values[1] !== null && "Normal"
31383
+ }), values[1] !== null && /*#__PURE__*/react.createElement(ListItemText_ListItemText, {
31384
+ primary: values[1],
31385
+ style: {
31386
+ margin: "0 5px",
31387
+ whiteSpace: "nowrap",
31388
+ flex: 1,
31389
+ overflow: "hidden"
31390
+ },
31391
+ primaryTypographyProps: {
31392
+ style: {
31393
+ overflow: "hidden",
31394
+ textOverflow: "ellipsis"
31395
+ }
31396
+ },
31397
+ secondary: "Hover"
31398
+ }));
31399
+ }))));
31400
+ };
31401
+
31402
+ return /*#__PURE__*/react.createElement(react.Fragment, null, Object.keys(properties).length > 0 ? menuEl() : /*#__PURE__*/react.createElement("span", {
31403
+ style: {
31404
+ color: "red"
31405
+ }
31406
+ }, "- ", type, " is empty. It will not be imported"));
31407
+ }
31408
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/ExportButton.js
31409
  function ExportButton_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
31410
 
31412
 
31413
  function ExportButton_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31414
 
31415
+ function ExportButton_slicedToArray(arr, i) { return ExportButton_arrayWithHoles(arr) || ExportButton_iterableToArrayLimit(arr, i) || ExportButton_unsupportedIterableToArray(arr, i) || ExportButton_nonIterableRest(); }
31416
+
31417
+ function ExportButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31418
+
31419
+ function ExportButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return ExportButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return ExportButton_arrayLikeToArray(o, minLen); }
31420
+
31421
+ function ExportButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31422
+
31423
+ function ExportButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
31424
+
31425
+ function ExportButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31426
+
31427
+
31428
+
31429
+
31430
+
31431
+
31432
 
31433
 
31434
 
31437
  function ExportButton(_ref) {
31438
  var _ref$type = _ref.type,
31439
  type = _ref$type === void 0 ? "group" : _ref$type,
31440
+ object = _ref.object,
31441
+ _ref$group_data = _ref.group_data,
31442
+ group_data = _ref$group_data === void 0 ? false : _ref$group_data;
31443
+
31444
+ var _useState = (0,react.useState)(false),
31445
+ _useState2 = ExportButton_slicedToArray(_useState, 2),
31446
+ dialogOpened = _useState2[0],
31447
+ setDialogOpened = _useState2[1];
31448
+
31449
+ var _useState3 = (0,react.useState)(false),
31450
+ _useState4 = ExportButton_slicedToArray(_useState3, 2),
31451
+ foundButtons = _useState4[0],
31452
+ setFoundButtons = _useState4[1];
31453
+
31454
+ var _useState5 = (0,react.useState)(false),
31455
+ _useState6 = ExportButton_slicedToArray(_useState5, 2),
31456
+ foundGroup = _useState6[0],
31457
+ setFoundGroup = _useState6[1];
31458
+
31459
+ var foundParenData = (0,lodash.pick)(group_data, import_export.groupStyling) || false;
31460
+ var state = useSelector(function (state) {
31461
+ return state;
31462
+ });
31463
+
31464
+ var createExportData = function createExportData() {
31465
+ var data = type === "group" ? generateJSONGroupObject(object.id, state) : ExportButton_objectSpread({}, object);
31466
+ (0,lodash.omit)(data, import_export.propertiesToOmit);
31467
+
31468
+ if (type === "group") {
31469
+ if (data.buttons.length === 0) return alert(translate("import_export.export.warning.no_buttons"));
31470
+ setFoundGroup((0,lodash.omit)(data.data, import_export.propertiesToOmit));
31471
+ setFoundButtons(data.buttons.map(function (button) {
31472
+ return (0,lodash.omit)(button, import_export.propertiesToOmit);
31473
+ }));
31474
+ } else if (type === "button") {
31475
+ if (data.length === 0) return alert(translate("import_export.export.warning.no_data"));
31476
+ setFoundGroup(false);
31477
+ setFoundButtons([(0,lodash.omit)(data, import_export.propertiesToOmit)]);
31478
+ }
31479
+
31480
+ setDialogOpened(true);
31481
+ };
31482
 
31483
+ var onExport = function onExport() {
31484
  // Generate export name
31485
+ var downloadName = "".concat(type === "group" ? "Group" : "Button", " - ").concat(object.name);
31486
+ var exportData = type === "button" ? foundButtons[0] : {
31487
+ data: foundGroup,
31488
+ buttons: foundButtons
31489
+ };
31490
+ exportData.export_type = type;
31491
+ downloadObjectAsJson(exportData, downloadName);
31492
+ setDialogOpened(false);
31493
+ setFoundGroup(false);
31494
+ setFoundButtons(false);
31495
+ };
31496
 
31497
+ var mergeGroupData = function mergeGroupData() {
31498
+ var merged = (0,lodash.merge)({}, foundParenData, foundButtons[0]);
31499
+ setFoundButtons([merged]);
 
 
31500
  };
31501
 
31502
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
31503
+ onClick: createExportData,
31504
+ "data-testid": "export-button"
31505
  }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(Icon_Icon, {
31506
  className: "fas fa-file-export"
31507
  })), /*#__PURE__*/react.createElement(Typography_Typography, {
31508
  variant: "inherit"
31509
+ }, translate("import_export.export.export_".concat(type)))), /*#__PURE__*/react.createElement(Dialog_Dialog, {
31510
+ open: dialogOpened,
31511
+ onClose: function onClose() {
31512
+ return setDialogOpened(false);
31513
+ },
31514
+ maxWidth: "xs",
31515
+ fullWidth: true,
31516
+ "aria-labelledby": "import-button-dialog-title",
31517
+ "aria-describedby": "import-button-dialog-description" // className={className}
31518
+ ,
31519
+ "data-testid": "dialog:export-dialog"
31520
+ }, /*#__PURE__*/react.createElement(DialogTitle_DialogTitle, {
31521
+ id: "import-button-dialog-title"
31522
+ }, translate("import_export.export.export_".concat(type))), /*#__PURE__*/react.createElement(DialogContent_DialogContent, null, (foundGroup || foundButtons) && /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
31523
+ component: "div"
31524
+ }, translate("import_export.export.warning.preview")), foundGroup && /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
31525
+ component: "div",
31526
+ key: foundGroup.id
31527
+ }, /*#__PURE__*/react.createElement("i", null, translate("common.group"), " "), ":", " ", dlv_umd_default()(foundGroup, "name", "Unnamed"), ".", " ", /*#__PURE__*/react.createElement(PropertyList, {
31528
+ properties: foundGroup,
31529
+ type: "Group"
31530
+ })), foundButtons && foundButtons.map(function (button, key) {
31531
+ return /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
31532
+ component: "div",
31533
+ key: key
31534
+ }, /*#__PURE__*/react.createElement("i", null, translate("common.button"), " ", key + 1, " "), ": ", dlv_umd_default()(button, "name", "Unnamed"), ".", /*#__PURE__*/react.createElement(PropertyList, {
31535
+ properties: button
31536
+ }));
31537
+ }))), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, group_data && type === "button" && /*#__PURE__*/react.createElement(Button_Button, {
31538
+ onClick: function onClick() {
31539
+ return mergeGroupData();
31540
+ },
31541
+ "data-testid": "export-merge",
31542
+ style: {
31543
+ marginRight: "auto"
31544
+ }
31545
+ }, translate("import_export.export.merge")), /*#__PURE__*/react.createElement(Button_Button, {
31546
+ onClick: function onClick() {
31547
+ return setDialogOpened(false);
31548
+ } // variant={""}
31549
+
31550
+ }, translate("modal.cancel")), /*#__PURE__*/react.createElement(Button_Button, {
31551
+ onClick: function onClick() {
31552
+ return onExport();
31553
+ },
31554
+ color: "primary",
31555
+ disabled: type === "button" ? !foundButtons : !foundGroup,
31556
+ "data-testid": "export-commence"
31557
+ }, translate("import_export.export.title")))));
31558
  }
31559
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ButtonContainer/ButtonContainer.js
31560
  function ButtonContainer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
31650
  "data-testid": "rename",
31651
  inDropdown: true
31652
  }), /*#__PURE__*/react.createElement(ExportButton, {
31653
+ group_data: groups[groupId],
31654
  object: button,
31655
  type: "button"
31656
  }), /*#__PURE__*/react.createElement(ContainerActions_DeleteButton, {
31782
  return callback;
31783
  }, inputs);
31784
  }
31785
+ var useMemo = useMemoOne;
31786
  var useCallback = useCallbackOne;
31787
 
31788
 
31880
  return result;
31881
  };
31882
 
31883
+ var css_box_model_esm_getWindowScroll = function getWindowScroll() {
31884
  return {
31885
  x: window.pageXOffset,
31886
  y: window.pageYOffset
31887
  };
31888
  };
31889
 
31890
+ var css_box_model_esm_offset = function offset(original, change) {
31891
  var borderBox = original.borderBox,
31892
  border = original.border,
31893
  margin = original.margin,
31902
  };
31903
  var withScroll = function withScroll(original, scroll) {
31904
  if (scroll === void 0) {
31905
+ scroll = css_box_model_esm_getWindowScroll();
31906
  }
31907
 
31908
+ return css_box_model_esm_offset(original, scroll);
31909
  };
31910
  var calculateBox = function calculateBox(borderBox, styles) {
31911
  var margin = {
32045
  var spacesAndTabs = /[ \t]{2,}/g;
32046
  var lineStartWithSpaces = /^[ \t]*/gm;
32047
 
32048
+ var react_beautiful_dnd_esm_clean = function clean(value) {
32049
  return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();
32050
  };
32051
 
32052
+ var react_beautiful_dnd_esm_getDevMessage = function getDevMessage(message) {
32053
+ return react_beautiful_dnd_esm_clean("\n %creact-beautiful-dnd\n\n %c" + react_beautiful_dnd_esm_clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development only message. It will be removed in production builds.\n");
32054
  };
32055
 
32056
+ var react_beautiful_dnd_esm_getFormattedMessage = function getFormattedMessage(message) {
32057
+ return [react_beautiful_dnd_esm_getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];
32058
  };
32059
  var isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';
32060
  function log(type, message) {
32068
  return;
32069
  }
32070
 
32071
+ (_console = console)[type].apply(_console, react_beautiful_dnd_esm_getFormattedMessage(message));
32072
  }
32073
  var react_beautiful_dnd_esm_warning = log.bind(null, 'warn');
32074
  var error = log.bind(null, 'error');
33115
  });
33116
  }
33117
 
33118
+ var withDisplacement = css_box_model_esm_offset(closest.page, displacedBy.point);
33119
  return goBefore({
33120
  axis: axis,
33121
  moveRelativeTo: withDisplacement,
33130
  }
33131
 
33132
  if (didStartAfterCritical(last.descriptor.id, afterCritical)) {
33133
+ var page = css_box_model_esm_offset(last.page, negate(afterCritical.displacedBy.point));
33134
  return goAfter({
33135
  axis: axis,
33136
  moveRelativeTo: page,
34394
  };
34395
  });
34396
 
34397
+ var react_beautiful_dnd_esm_start = function start(key) {
34398
  if (false) {}
34399
  };
34400
  var finish = function finish(key) {
34405
  var draggable = _ref.draggable,
34406
  offset$1 = _ref.offset,
34407
  initialWindowScroll = _ref.initialWindowScroll;
34408
+ var client = css_box_model_esm_offset(draggable.client, offset$1);
34409
  var page = withScroll(client, initialWindowScroll);
34410
 
34411
  var moved = (0,esm_extends/* default */.Z)({}, draggable, {
34448
  var publishWhileDraggingInVirtual = (function (_ref) {
34449
  var state = _ref.state,
34450
  published = _ref.published;
34451
+ react_beautiful_dnd_esm_start();
34452
  var withScrollChange = published.modified.map(function (update) {
34453
  var existing = state.dimensions.droppables[update.droppableId];
34454
  var scrolled = scrollDroppable(existing, update.scroll);
35516
  };
35517
 
35518
  var withTimings = function withTimings(key, fn) {
35519
+ react_beautiful_dnd_esm_start();
35520
  fn();
35521
  finish();
35522
  };
35924
  callbacks.collectionStarting();
35925
  frameId = requestAnimationFrame(function () {
35926
  frameId = null;
35927
+ react_beautiful_dnd_esm_start();
35928
  var _staging = staging,
35929
  additions = _staging.additions,
35930
  removals = _staging.removals,
36013
  return adjustedMaxScroll;
36014
  });
36015
 
36016
+ var react_beautiful_dnd_esm_getDocumentElement = (function () {
36017
  var doc = document.documentElement;
36018
  !doc ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
36019
  return doc;
36020
  });
36021
 
36022
  var getMaxWindowScroll = (function () {
36023
+ var doc = react_beautiful_dnd_esm_getDocumentElement();
36024
  var maxScroll = getMaxScroll({
36025
  scrollHeight: doc.scrollHeight,
36026
  scrollWidth: doc.scrollWidth,
36035
  var maxScroll = getMaxWindowScroll();
36036
  var top = scroll.y;
36037
  var left = scroll.x;
36038
+ var doc = react_beautiful_dnd_esm_getDocumentElement();
36039
  var width = doc.clientWidth;
36040
  var height = doc.clientHeight;
36041
  var right = left + width;
36065
  var critical = _ref.critical,
36066
  scrollOptions = _ref.scrollOptions,
36067
  registry = _ref.registry;
36068
+ react_beautiful_dnd_esm_start();
36069
  var viewport = getViewport();
36070
  var windowScroll = viewport.scroll.current;
36071
  var home = critical.droppable;
36717
  };
36718
 
36719
  var start$1 = function start$1(state) {
36720
+ react_beautiful_dnd_esm_start();
36721
  !!dragging ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
36722
  var dragStartTime = Date.now();
36723
  var wasScrollNeeded = false;
36998
  };
36999
 
37000
  function useStyleMarshal(contextId, nonce) {
37001
+ var styles = useMemo(function () {
37002
  return getStyles$1(contextId);
37003
  }, [contextId]);
37004
  var alwaysRef = (0,react.useRef)(null);
37055
 
37056
  setDynamicStyle(styles.resting);
37057
  }, [setDynamicStyle, styles.resting]);
37058
+ var marshal = useMemo(function () {
37059
  return {
37060
  dragging: dragging,
37061
  dropping: dropping,
37174
  }
37175
  };
37176
  }, []);
37177
+ var marshal = useMemo(function () {
37178
  return {
37179
  register: register,
37180
  tryRecordFocus: tryRecordFocus,
37329
  }
37330
 
37331
  function useRegistry() {
37332
+ var registry = useMemo(createRegistry, []);
37333
  (0,react.useEffect)(function () {
37334
  return function unmount() {
37335
  requestAnimationFrame(registry.clean);
37362
  return "rbd-announcement-" + contextId;
37363
  };
37364
  function useAnnouncer(contextId) {
37365
+ var id = useMemo(function () {
37366
  return getId(contextId);
37367
  }, [contextId]);
37368
  var ref = (0,react.useRef)(null);
37404
  }
37405
 
37406
  var count = 0;
37407
+ var defaults = {
37408
  separator: '::'
37409
  };
37410
  function react_beautiful_dnd_esm_reset() {
37412
  }
37413
  function useUniqueId(prefix, options) {
37414
  if (options === void 0) {
37415
+ options = defaults;
37416
  }
37417
 
37418
+ return useMemo(function () {
37419
  return "" + prefix + options.separator + count++;
37420
  }, [options.separator, prefix]);
37421
  }
37431
  var uniqueId = useUniqueId('hidden-text', {
37432
  separator: '-'
37433
  });
37434
+ var id = useMemo(function () {
37435
  return getElementId({
37436
  contextId: contextId,
37437
  uniqueId: uniqueId
37604
  var space = 32;
37605
  var pageUp = 33;
37606
  var pageDown = 34;
37607
+ var react_beautiful_dnd_esm_end = 35;
37608
  var home = 36;
37609
  var arrowLeft = 37;
37610
  var arrowUp = 38;
37765
  function useMouseSensor(api) {
37766
  var phaseRef = (0,react.useRef)(idle$1);
37767
  var unbindEventsRef = (0,react.useRef)(react_beautiful_dnd_esm_noop);
37768
+ var startCaptureBinding = useMemo(function () {
37769
  return {
37770
  eventName: 'mousedown',
37771
  fn: function onMouseDown(event) {
37805
  }
37806
  };
37807
  }, [api]);
37808
+ var preventForcePressBinding = useMemo(function () {
37809
  return {
37810
  eventName: 'webkitmouseforcewillbegin',
37811
  fn: function fn(event) {
37907
 
37908
  function noop$1() {}
37909
 
37910
+ var scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[react_beautiful_dnd_esm_end] = true, _scrollJumpKeys);
37911
 
37912
  function getDraggingBindings(actions, stop) {
37913
  function cancel() {
37995
 
37996
  function useKeyboardSensor(api) {
37997
  var unbindEventsRef = (0,react.useRef)(noop$1);
37998
+ var startCaptureBinding = useMemo(function () {
37999
  return {
38000
  eventName: 'keydown',
38001
  fn: function onKeyDown(event) {
38204
  var setPhase = useCallback(function setPhase(phase) {
38205
  phaseRef.current = phase;
38206
  }, []);
38207
+ var startCaptureBinding = useMemo(function () {
38208
  return {
38209
  eventName: 'touchstart',
38210
  fn: function onTouchStart(event) {
38811
  }
38812
  }, [lockAPI, store]);
38813
  var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]);
38814
+ var api = useMemo(function () {
38815
  return {
38816
  canGetLock: canGetLock,
38817
  tryGetLock: tryGetLock,
38864
  var lazyDispatch = useCallback(function (action) {
38865
  getStore(lazyStoreRef).dispatch(action);
38866
  }, []);
38867
+ var marshalCallbacks = useMemo(function () {
38868
  return bindActionCreators({
38869
  publishWhileDragging: publishWhileDragging,
38870
  updateDroppableScroll: updateDroppableScroll,
38874
  }, lazyDispatch);
38875
  }, [lazyDispatch]);
38876
  var registry = useRegistry();
38877
+ var dimensionMarshal = useMemo(function () {
38878
  return createDimensionMarshal(registry, marshalCallbacks);
38879
  }, [registry, marshalCallbacks]);
38880
+ var autoScroller = useMemo(function () {
38881
  return createAutoScroller((0,esm_extends/* default */.Z)({
38882
  scrollWindow: scrollWindow,
38883
  scrollDroppable: dimensionMarshal.scrollDroppable
38886
  }, lazyDispatch)));
38887
  }, [dimensionMarshal.scrollDroppable, lazyDispatch]);
38888
  var focusMarshal = useFocusMarshal(contextId);
38889
+ var store = useMemo(function () {
38890
  return react_beautiful_dnd_esm_createStore({
38891
  announce: announce,
38892
  autoScroller: autoScroller,
38912
  var state = getStore(lazyStoreRef).getState();
38913
  return state.isDragging || state.phase === 'DROP_ANIMATING';
38914
  }, []);
38915
+ var appCallbacks = useMemo(function () {
38916
  return {
38917
  isDragging: isDragging,
38918
  tryAbort: tryResetStore
38925
  var getIsMovementAllowed = useCallback(function () {
38926
  return isMovementAllowed(getStore(lazyStoreRef).getState());
38927
  }, []);
38928
+ var appContext = useMemo(function () {
38929
  return {
38930
  marshal: dimensionMarshal,
38931
  focus: focusMarshal,
38959
  count$1 = 0;
38960
  }
38961
  function useInstanceCount() {
38962
+ return useMemo(function () {
38963
  return "" + count$1++;
38964
  }, []);
38965
  }
39270
  var registry = appContext.registry,
39271
  marshal = appContext.marshal;
39272
  var previousRef = usePrevious(args);
39273
+ var descriptor = useMemo(function () {
39274
  return {
39275
  id: args.droppableId,
39276
  type: args.type,
39278
  };
39279
  }, [args.droppableId, args.mode, args.type]);
39280
  var publishedDescriptorRef = (0,react.useRef)(descriptor);
39281
+ var memoizedUpdateScroll = useMemo(function () {
39282
  return memoize_one_esm(function (x, y) {
39283
  !whileDraggingRef.current ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
39284
  var scroll = {
39301
  var scroll = getClosestScroll();
39302
  memoizedUpdateScroll(scroll.x, scroll.y);
39303
  }, [getClosestScroll, memoizedUpdateScroll]);
39304
+ var scheduleScrollUpdate = useMemo(function () {
39305
  return raf_schd_esm(updateScroll);
39306
  }, [updateScroll]);
39307
  var onClosestScroll = useCallback(function () {
39379
  closest.scrollTop += change.y;
39380
  closest.scrollLeft += change.x;
39381
  }, []);
39382
+ var callbacks = useMemo(function () {
39383
  return {
39384
  getDimensionAndWatchScroll: getDimensionAndWatchScroll,
39385
  getScrollWhileDragging: getScrollWhileDragging,
39387
  scroll: scroll
39388
  };
39389
  }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);
39390
+ var entry = useMemo(function () {
39391
  return {
39392
  uniqueId: uniqueId,
39393
  descriptor: descriptor,
39793
  canDragInteractiveElements = args.canDragInteractiveElements,
39794
  shouldRespectForcePress = args.shouldRespectForcePress,
39795
  isEnabled = args.isEnabled;
39796
+ var options = useMemo(function () {
39797
  return {
39798
  canDragInteractiveElements: canDragInteractiveElements,
39799
  shouldRespectForcePress: shouldRespectForcePress,
39805
  !el ? false ? 0 : react_beautiful_dnd_esm_invariant(false) : void 0;
39806
  return getDimension$1(descriptor, el, windowScroll);
39807
  }, [descriptor, getDraggableRef]);
39808
+ var entry = useMemo(function () {
39809
  return {
39810
  uniqueId: uniqueId,
39811
  descriptor: descriptor,
39886
  type = _useRequiredContext2.type,
39887
  droppableId = _useRequiredContext2.droppableId;
39888
 
39889
+ var descriptor = useMemo(function () {
39890
  return {
39891
  id: props.draggableId,
39892
  index: props.index,
39906
  useClonePropValidation(isClone);
39907
 
39908
  if (!isClone) {
39909
+ var forPublisher = useMemo(function () {
39910
  return {
39911
  descriptor: descriptor,
39912
  registry: registry,
39919
  useDraggablePublisher(forPublisher);
39920
  }
39921
 
39922
+ var dragHandleProps = useMemo(function () {
39923
  return isEnabled ? {
39924
  tabIndex: 0,
39925
  role: 'button',
39945
 
39946
  dropAnimationFinishedAction();
39947
  }, [dropAnimationFinishedAction, mapped]);
39948
+ var provided = useMemo(function () {
39949
  var style = getStyle$1(mapped);
39950
  var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;
39951
  var result = {
39960
  };
39961
  return result;
39962
  }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);
39963
+ var rubric = useMemo(function () {
39964
  return {
39965
  draggableId: descriptor.id,
39966
  type: descriptor.type,
40311
  onTransitionEnd: onPlaceholderTransitionEnd
40312
  });
40313
  });
40314
+ var provided = useMemo(function () {
40315
  return {
40316
  innerRef: setDroppableRef,
40317
  placeholder: placeholder,
40322
  };
40323
  }, [contextId, droppableId, placeholder, setDroppableRef]);
40324
  var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;
40325
+ var droppableContext = useMemo(function () {
40326
  return {
40327
  droppableId: droppableId,
40328
  type: type,
40521
 
40522
 
40523
  ;// CONCATENATED MODULE: ./src/js/utils/cookies.js
40524
+ /**
40525
+ * Get cookie util
40526
+ *
40527
+ * @param {string} cname
40528
  */
40529
  // Get cookie
40530
  function getCookie(name) {
40537
  function setCookie(cname, value) {
40538
  document.cookie = cname + "=" + value;
40539
  }
40540
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/FileDragAndDrop/FileDragAndDrop.js
40541
+ function FileDragAndDrop_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { FileDragAndDrop_typeof = function _typeof(obj) { return typeof obj; }; } else { FileDragAndDrop_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return FileDragAndDrop_typeof(obj); }
40542
 
40543
+ function FileDragAndDrop_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
40544
 
40545
+ function FileDragAndDrop_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
40546
 
40547
+ function FileDragAndDrop_createClass(Constructor, protoProps, staticProps) { if (protoProps) FileDragAndDrop_defineProperties(Constructor.prototype, protoProps); if (staticProps) FileDragAndDrop_defineProperties(Constructor, staticProps); return Constructor; }
40548
 
40549
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
40550
+
40551
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
40552
+
40553
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
40554
+
40555
+ function _possibleConstructorReturn(self, call) { if (call && (FileDragAndDrop_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
40556
+
40557
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
40558
+
40559
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
40560
+
40561
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
40562
+
40563
+ function FileDragAndDrop_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
40564
+
40565
+
40566
+
40567
+
40568
+
40569
+ var syles = function syles(theme) {
40570
+ return {
40571
+ border: {
40572
+ border: "dashed ".concat(theme.palette.primary.main, " 3px"),
40573
+ backgroundColor: "rgba(255,255,255,.8)",
40574
+ position: "absolute",
40575
+ top: 0,
40576
+ bottom: 0,
40577
+ left: 0,
40578
+ right: 0,
40579
+ zIndex: 9999,
40580
+ display: "flex",
40581
+ alignItems: "center",
40582
+ justifyContent: "center"
40583
+ },
40584
+ text: {
40585
+ fontSize: "35px",
40586
+ color: theme.palette.primary.main
40587
  }
40588
+ };
40589
+ };
40590
+
40591
+ var FileDragAndDrop = /*#__PURE__*/function (_Component) {
40592
+ _inherits(FileDragAndDrop, _Component);
40593
+
40594
+ var _super = _createSuper(FileDragAndDrop);
40595
+
40596
+ function FileDragAndDrop() {
40597
+ var _this;
40598
+
40599
+ FileDragAndDrop_classCallCheck(this, FileDragAndDrop);
40600
+
40601
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
40602
+ args[_key] = arguments[_key];
40603
+ }
40604
+
40605
+ _this = _super.call.apply(_super, [this].concat(args));
40606
+
40607
+ FileDragAndDrop_defineProperty(_assertThisInitialized(_this), "state", {
40608
+ drag: false
40609
+ });
40610
+
40611
+ FileDragAndDrop_defineProperty(_assertThisInitialized(_this), "dropRef", /*#__PURE__*/react.createRef());
40612
+
40613
+ FileDragAndDrop_defineProperty(_assertThisInitialized(_this), "handleDrag", function (e) {
40614
+ e.preventDefault();
40615
+ e.stopPropagation();
40616
+ });
40617
+
40618
+ FileDragAndDrop_defineProperty(_assertThisInitialized(_this), "handleDragIn", function (e) {
40619
+ e.preventDefault();
40620
+ e.stopPropagation();
40621
+ _this.dragCounter++;
40622
+
40623
+ if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
40624
+ _this.setState({
40625
+ drag: true
40626
+ });
40627
+ }
40628
+ });
40629
+
40630
+ FileDragAndDrop_defineProperty(_assertThisInitialized(_this), "handleDragOut", function (e) {
40631
+ e.preventDefault();
40632
+ e.stopPropagation();
40633
+ _this.dragCounter--;
40634
+
40635
+ if (_this.dragCounter === 0) {
40636
+ _this.setState({
40637
+ drag: false
40638
+ });
40639
+ }
40640
+ });
40641
+
40642
+ FileDragAndDrop_defineProperty(_assertThisInitialized(_this), "handleDrop", function (e) {
40643
+ e.preventDefault();
40644
+ e.stopPropagation();
40645
+
40646
+ _this.setState({
40647
+ drag: false
40648
+ });
40649
+
40650
+ if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
40651
+ _this.props.handleDrop(e.dataTransfer.files);
40652
+
40653
+ e.dataTransfer.clearData();
40654
+ _this.dragCounter = 0;
40655
+ }
40656
+ });
40657
 
40658
+ return _this;
40659
+ }
40660
+
40661
+ FileDragAndDrop_createClass(FileDragAndDrop, [{
40662
+ key: "componentDidMount",
40663
+ value: function componentDidMount() {
40664
+ var div = this.dropRef.current;
40665
+ div.addEventListener("dragenter", this.handleDragIn);
40666
+ div.addEventListener("dragleave", this.handleDragOut);
40667
+ div.addEventListener("dragover", this.handleDrag);
40668
+ div.addEventListener("drop", this.handleDrop);
40669
+ }
40670
+ }, {
40671
+ key: "componentWillUnmount",
40672
+ value: function componentWillUnmount() {
40673
+ var div = this.dropRef.current;
40674
+ div.removeEventListener("dragenter", this.handleDragIn);
40675
+ div.removeEventListener("dragleave", this.handleDragOut);
40676
+ div.removeEventListener("dragover", this.handleDrag);
40677
+ div.removeEventListener("drop", this.handleDrop);
40678
+ }
40679
+ }, {
40680
+ key: "render",
40681
+ value: function render() {
40682
+ var classes = this.props.classes;
40683
+ return /*#__PURE__*/react.createElement("div", {
40684
+ style: {
40685
+ display: "inline-block",
40686
+ position: "relative"
40687
+ },
40688
+ ref: this.dropRef
40689
+ }, this.state.drag && /*#__PURE__*/react.createElement("div", {
40690
+ className: classes.border
40691
+ }, /*#__PURE__*/react.createElement("span", {
40692
+ className: classes.text
40693
+ }, translate("import_export.import.drag_drop"))), this.props.children);
40694
+ }
40695
+ }]);
40696
 
40697
+ return FileDragAndDrop;
40698
+ }(react.Component);
40699
 
40700
+ /* harmony default export */ var FileDragAndDrop_FileDragAndDrop = ((0,withStyles/* default */.Z)(syles)(FileDragAndDrop));
40701
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/ImportButton.js
40702
  function ImportButton_slicedToArray(arr, i) { return ImportButton_arrayWithHoles(arr) || ImportButton_iterableToArrayLimit(arr, i) || ImportButton_unsupportedIterableToArray(arr, i) || ImportButton_nonIterableRest(); }
40703
 
40704
  function ImportButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
40718
 
40719
 
40720
 
40721
+
40722
+
40723
+
40724
+
40725
+ function ImportButton(_ref) {
40726
  var _ref$isGroup = _ref.isGroup,
40727
  isGroup = _ref$isGroup === void 0 ? true : _ref$isGroup,
40728
  _ref$currentGroup = _ref.currentGroup,
40729
+ currentGroup = _ref$currentGroup === void 0 ? null : _ref$currentGroup,
40730
+ _ref$label = _ref.label,
40731
+ label = _ref$label === void 0 ? "Import Group" : _ref$label,
40732
+ index = _ref.index;
40733
 
40734
  var _useState = (0,react.useState)(false),
40735
  _useState2 = ImportButton_slicedToArray(_useState, 2),
40741
  fileSelected = _useState4[0],
40742
  setFileSelected = _useState4[1];
40743
 
40744
+ var _useState5 = (0,react.useState)(false),
40745
  _useState6 = ImportButton_slicedToArray(_useState5, 2),
40746
  foundButtons = _useState6[0],
40747
  setFoundButtons = _useState6[1];
40748
 
40749
+ var _useState7 = (0,react.useState)(false),
40750
+ _useState8 = ImportButton_slicedToArray(_useState7, 2),
40751
+ foundGroup = _useState8[0],
40752
+ setFoundGroup = _useState8[1];
40753
+
40754
  var importFileUploader = (0,react.useRef)(null);
40755
  var dispatch = useDispatch();
40756
+ var state = useSelector(function (state) {
40757
+ return state;
40758
+ });
40759
 
40760
+ var onFileSelect = function onFileSelect(files) {
40761
+ // Get file
40762
+ var file = files[0]; // Read the file
 
 
40763
 
40764
  var readFile = new FileReader(); // After reading the file
40765
 
40770
  var fileResult = JSON.parse(result); // Malformed data
40771
 
40772
  if (!fileResult.export_type || fileResult.export_type === "group" && !fileResult.buttons) {
40773
+ throw new Error(translate("import_export.import.warning.invalid"));
40774
  } // Import a group
40775
 
40776
 
40777
+ if (isGroup) {
40778
+ if (!currentGroup && fileResult.export_type === "button") {
40779
+ setFoundButtons([(0,lodash.omit)(fileResult, import_export.propertiesToOmit)]);
 
40780
  }
40781
 
40782
+ if (fileResult.export_type === "group") {
40783
+ if (fileResult.buttons.length === 0) {
40784
+ alert(translate("import_export.import.warning.no_buttons"));
40785
+ return;
40786
+ }
40787
+
40788
+ setFoundGroup((0,lodash.omit)(fileResult.data, import_export.propertiesToOmit));
40789
+ setFoundButtons(fileResult.buttons.map(function (button) {
40790
+ return (0,lodash.omit)(button, import_export.propertiesToOmit);
40791
+ }));
40792
+ } // Import a button into group
40793
+ else if (fileResult.export_type === "button") {
40794
+ setFoundGroup(false);
40795
+ setFoundButtons([(0,lodash.omit)(fileResult, import_export.propertiesToOmit)]);
40796
+ }
40797
+ }
40798
 
40799
  setFileSelected(fileResult);
40800
  } catch (e) {
40801
+ alert(translate("import_export.import.warning.malformed"));
40802
  }
40803
  });
40804
  readFile.readAsText(file);
40806
 
40807
 
40808
  var onImport = function onImport() {
40809
+ if (isGroup) {
40810
+ // Should import into a group
40811
+ if (currentGroup) {
40812
+ if (foundGroup && foundButtons) {
40813
+ // Replace Current Group
40814
+ console.log("Replace current group"); // addGroup(foundGroup);
40815
+
40816
+ replaceGroup(currentGroup.id, foundGroup, foundButtons, dispatch, state);
40817
+ }
40818
+
40819
+ if (foundButtons && !foundGroup) {
40820
+ // Add Buttons into current group
40821
+ console.log("Add Buttons into current group");
40822
+ foundButtons.map(function (button) {
40823
+ // Do not import
40824
+ if (Object.keys(button).length === 0) return false;
40825
+ GroupActions_addButton(button, currentGroup.id, currentGroup.children.length, dispatch);
40826
+ });
40827
+ }
40828
+ } // Should create a new group
40829
+ else if (foundGroup && !currentGroup) {
40830
+ console.log("Should create a new group");
40831
+ importGroup(foundGroup, foundButtons, index, dispatch);
40832
+ } else if (foundButtons && !foundGroup && !currentGroup) {
40833
+ console.log("Should create a new group with imported button");
40834
+ importGroup(foundGroup, foundButtons, index, dispatch);
40835
+ }
40836
+ } // Reset
40837
 
 
 
40838
 
40839
  setDialogOpened(false);
40840
  setFileSelected(null);
40841
+ setFoundButtons(false);
40842
+ setFoundGroup(false);
40843
  };
40844
 
40845
+ return /*#__PURE__*/react.createElement(react.Fragment, null, currentGroup ? /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
40846
  onClick: function onClick() {
40847
  return setDialogOpened(true);
40848
  },
40849
+ "data-testid": "import-into-group"
40850
  }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(Icon_Icon, {
40851
  className: "fas fa-file-import"
40852
  })), /*#__PURE__*/react.createElement(Typography_Typography, {
40853
  variant: "inherit"
40854
+ }, label)) : /*#__PURE__*/react.createElement(Button_Button, {
40855
+ onClick: function onClick() {
40856
+ setDialogOpened(true);
40857
+ },
40858
+ color: "primary",
40859
+ variant: "text",
40860
+ size: "small",
40861
+ startIcon: /*#__PURE__*/react.createElement(Icon_Icon, {
40862
+ className: "fas fa-file-import"
40863
+ }),
40864
+ "data-testid": "import-new-group"
40865
+ }, label), /*#__PURE__*/react.createElement(Dialog_Dialog, {
40866
  open: dialogOpened,
40867
  onClose: function onClose() {
40868
  return setDialogOpened(false);
40873
  "aria-describedby": "import-button-dialog-description" // className={className}
40874
  ,
40875
  "data-testid": "dialog:import-dialog"
40876
+ }, /*#__PURE__*/react.createElement(FileDragAndDrop_FileDragAndDrop, {
40877
+ handleDrop: function handleDrop(files) {
40878
+ if (files.length === 0) return;
40879
+ onFileSelect(files);
40880
+ }
40881
  }, /*#__PURE__*/react.createElement(DialogTitle_DialogTitle, {
40882
  id: "import-button-dialog-title"
40883
+ }, "BETA: ", translate("import_export.import.title")), /*#__PURE__*/react.createElement(DialogContent_DialogContent, null, !fileSelected && /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
40884
  id: "import-button-dialog-description",
40885
  component: "div"
40886
+ }, currentGroup ? translate("import_export.import.into_group.text") : translate("import_export.import.new_group.text"), " ", translate("import_export.import.select_please")), /*#__PURE__*/react.createElement(Button_Button, {
40887
  variant: "contained",
40888
  fullWidth: true,
40889
  startIcon: /*#__PURE__*/react.createElement(Icon_Icon, {
40899
  onClick: function onClick() {
40900
  return importFileUploader.current.click();
40901
  }
40902
+ }, translate("import_export.import.select_click")), /*#__PURE__*/react.createElement("input", {
40903
  type: "file",
40904
  id: "input",
40905
+ "data-testid": "import-input",
40906
  ref: importFileUploader,
40907
  accept: "application/JSON",
40908
+ onChange: function onChange(e) {
40909
+ if (e.target.files.length === 0) return;
40910
+ onFileSelect(e.target.files);
40911
+ },
40912
  style: {
40913
  overflow: "hidden",
40914
  width: 0,
40919
  component: "div"
40920
  }, /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
40921
  articleId: 653,
40922
+ setting: translate("import_export.import_export")
40923
  }))), fileSelected && /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
40924
  component: "div"
40925
+ }, currentGroup && isGroup && foundGroup ? /*#__PURE__*/react.createElement("span", {
40926
+ dangerouslySetInnerHTML: {
40927
+ __html: translate("import_export.import.warning.replace")
40928
+ }
40929
+ }) : !currentGroup && isGroup && !foundGroup && foundButtons ? "Create a new group including this button:" : translate("import_export.import.warning.preview")), foundGroup && /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
40930
+ "data-testid": "import-found-group",
40931
+ component: "div",
40932
+ key: foundGroup.id
40933
+ }, /*#__PURE__*/react.createElement("i", null, translate("common.group"), " "), ":", " ", dlv_umd_default()(foundGroup, "name", "Unnamed"), ".", " ", /*#__PURE__*/react.createElement(PropertyList, {
40934
+ properties: foundGroup,
40935
+ type: "Group"
40936
+ }), /*#__PURE__*/react.createElement(TrashButton, {
40937
+ onClick: function onClick() {
40938
+ return setFoundGroup(false);
40939
+ }
40940
+ })), foundButtons && foundButtons.map(function (button, key) {
40941
+ console.log(foundButtons);
40942
  return /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
40943
+ "data-testid": "import-found-buttons",
40944
  component: "div",
40945
  key: key
40946
+ }, /*#__PURE__*/react.createElement("i", null, translate("common.button"), " ", key + 1, " "), ": ", dlv_umd_default()(button, "name", "Unnamed"), ".", /*#__PURE__*/react.createElement(PropertyList, {
40947
+ properties: button
40948
+ }), /*#__PURE__*/react.createElement(TrashButton, {
40949
+ disabled: foundButtons.length === 1,
40950
+ onClick: function onClick() {
40951
+ var currentButtons = (0,lodash.cloneDeep)(foundButtons);
40952
+ currentButtons.splice(key, 1);
40953
+ setFoundButtons(currentButtons);
40954
  }
40955
+ }));
40956
  }))), /*#__PURE__*/react.createElement(DialogActions_DialogActions, null, /*#__PURE__*/react.createElement(Button_Button, {
40957
  onClick: function onClick() {
40958
  return setDialogOpened(false);
40959
  } // variant={""}
40960
 
40961
+ }, translate("modal.cancel")), fileSelected && /*#__PURE__*/react.createElement(Button_Button, {
40962
  onClick: function onClick() {
40963
  return setFileSelected(null);
40964
  }
40965
+ }, translate("import_export.import.reupload")), /*#__PURE__*/react.createElement(Button_Button, {
40966
  onClick: function onClick() {
40967
  return onImport();
40968
  },
40969
  color: "primary",
40970
+ disabled: !fileSelected || !foundGroup && !foundButtons,
40971
+ "data-testid": "import-commence"
40972
+ }, translate("import_export.import.title"))))));
40973
+ }
40974
+
40975
+ function TrashButton(_ref2) {
40976
+ var _onClick = _ref2.onClick,
40977
+ _ref2$disabled = _ref2.disabled,
40978
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled;
40979
+ return /*#__PURE__*/react.createElement(IconButton_IconButton, {
40980
+ color: "primary",
40981
+ onClick: function onClick() {
40982
+ _onClick();
40983
+ },
40984
+ disabled: disabled // size={"small"}
40985
+ ,
40986
+ "data-testid": "import-delete"
40987
+ }, /*#__PURE__*/react.createElement("i", {
40988
+ style: {
40989
+ fontSize: "initial"
40990
+ },
40991
+ className: "fas fa-trash"
40992
+ }));
40993
+ }
40994
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ButtonGroupContainer/ButtonGroupContainer.js
40995
  function ButtonGroupContainer_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = ButtonGroupContainer_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
40996
 
41103
  var duplicateButton = function duplicateButton() {
41104
  /* webpack-strip-block:removed */
41105
  return /*#__PURE__*/react.createElement(Tippy_Tippy, {
 
41106
  content: translate("premium.warning_duplicate"),
41107
+ trigger: "click"
41108
+ }, /*#__PURE__*/react.createElement("span", {
41109
+ tabIndex: 0
41110
  }, /*#__PURE__*/react.createElement(DuplicateButton, {
41111
  name: group.name,
41112
  disabled: true
41113
+ })));
41114
  };
41115
 
41116
  return /*#__PURE__*/react.createElement("div", {
41132
  className: "group-action-spacer"
41133
  }), /*#__PURE__*/react.createElement("div", {
41134
  className: "group-actions"
 
 
 
 
 
 
41135
  }, /*#__PURE__*/react.createElement(EditButton, {
41136
  onClick: function onClick() {
41137
  return document.location.hash = "#/group/" + group.id;
41138
  },
41139
  "data-testid": "edit-button-group"
41140
+ }), duplicateButton(), /*#__PURE__*/react.createElement(ContainerActionsDropdown, null, /*#__PURE__*/react.createElement(ContainerActions_RenameButton, {
41141
  name: group.name,
41142
  onChange: function onChange(val) {
41143
  return set("groups", group.id, "name", val);
41146
  }), /*#__PURE__*/react.createElement(ExportButton, {
41147
  object: group,
41148
  type: "group"
41149
+ }), /*#__PURE__*/react.createElement(ImportButton, {
41150
+ currentGroup: group,
41151
+ label: translate("import_export.import.into_group.button")
41152
  }), /*#__PURE__*/react.createElement(ContainerActions_DeleteButton, {
41153
  model: "group",
41154
  "data-testid": "delete-button-group",
41195
  name: buttonName
41196
  }, group.id, newButtonDialogOpened);
41197
  }
41198
+ },
41199
+ kbLink: 177
41200
  }))));
41201
  }
41202
 
41273
 
41274
 
41275
 
41276
+
41277
  function Overview(_ref) {
41278
  var _ref$groups = _ref.groups,
41279
  groups = _ref$groups === void 0 ? null : _ref$groups,
41748
  };
41749
 
41750
  react.useEffect(function () {
41751
+ var handleResize = (0,utils_debounce/* default */.Z)(function () {
41752
  var prevHeight = scrollbarHeight.current;
41753
  setMeasurements();
41754
 
42243
  }
42244
  });
42245
  react.useEffect(function () {
42246
+ var handleResize = (0,utils_debounce/* default */.Z)(function () {
42247
  updateIndicatorState();
42248
  updateScrollButtonState();
42249
  });
42254
  win.removeEventListener('resize', handleResize);
42255
  };
42256
  }, [updateIndicatorState, updateScrollButtonState]);
42257
+ var handleTabsScroll = react.useCallback((0,utils_debounce/* default */.Z)(function () {
42258
  updateScrollButtonState();
42259
  }));
42260
  react.useEffect(function () {
42567
  }, /*#__PURE__*/react.createElement("div", {
42568
  className: "breadcrumb"
42569
  }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
42570
+ content: translate("bar.breadcrumb.tippy_home"),
42571
+ arrow: false
42572
  }, /*#__PURE__*/react.createElement(Button_Button, {
42573
  onClick: function onClick() {
42574
  history.push("/");
42580
  }, translate("bar.breadcrumb.home")), /*#__PURE__*/react.createElement("i", {
42581
  className: "fas fa-chevron-right"
42582
  }))), /*#__PURE__*/react.createElement(Tippy_Tippy, {
42583
+ content: translate("bar.breadcrumb.tippy_group"),
42584
+ arrow: false
42585
  }, /*#__PURE__*/react.createElement(Button_Button, {
42586
  onClick: function onClick() {
42587
  history.push("/group/".concat(group.id));
43811
  return /*#__PURE__*/react.createElement("div", {
43812
  className: "button-action-value"
43813
  }, /*#__PURE__*/react.createElement(TextField_TextField, {
 
43814
  variant: "outlined",
43815
  fullWidth: true,
43816
  value: value,
43818
  helperText: !check.test(value) && value !== "" ? "Invalid account ID." : null,
43819
  error: !check.test(value) && value !== "",
43820
  onChange: function onChange(obj) {
43821
+ _onChange(obj.target.value.replace(/[^0-9]/gm, ""));
43822
  },
43823
  inputProps: {
43824
  "data-testid": "action:field"
43848
 
43849
 
43850
 
43851
+
43852
+
43853
  function ElementorPopup(_ref) {
43854
  var _ref$value = _ref.value,
43855
  value = _ref$value === void 0 ? "" : _ref$value,
43861
  if (value.substring(value.length - 3) !== "Ev2") onChange("elementor" + uniqueCharset() + "Ev2");
43862
  }
43863
  }, []);
43864
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("p", {
43865
+ dangerouslySetInnerHTML: {
43866
+ __html: translate("settings.popups.elementor_guide")
43867
+ }
43868
+ }), /*#__PURE__*/react.createElement("pre", {
43869
  style: {
43870
  display: "flex"
43871
  }
43872
  }, /*#__PURE__*/react.createElement("code", {
43873
  style: {
43874
+ fontSize: "11px",
43875
  padding: "5.5px"
43876
  }
43877
+ }, "a[", value.substring(value.length - 3) === "Ev2" ? "buttonizer-popup" : "href", "=\"#", value, "\"]"), /*#__PURE__*/react.createElement(Tippy_Tippy, {
43878
+ content: translate("settings.popups.generate")
43879
+ }, /*#__PURE__*/react.createElement(IconButton_IconButton, {
43880
  onClick: function onClick() {
43881
  onChange("elementor" + uniqueCharset() + "Ev2");
43882
  },
43890
  style: {
43891
  fontSize: "14px"
43892
  }
43893
+ })))), /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
43894
  articleId: 76,
43895
  setting: "Elementor Popup"
43896
  }));
43901
 
43902
 
43903
 
43904
+
43905
+
43906
  function PopupMaker(_ref) {
43907
  var _ref$value = _ref.value,
43908
  value = _ref$value === void 0 ? "" : _ref$value,
43914
  if (value.substring(value.length - 3) !== "Pv2") onChange("popupMaker" + uniqueCharset() + "Pv2");
43915
  }
43916
  }, []);
43917
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("p", {
43918
+ dangerouslySetInnerHTML: {
43919
+ __html: translate("settings.popups.popup_maker_guide")
43920
+ }
43921
+ }), /*#__PURE__*/react.createElement("pre", {
43922
  style: {
43923
  display: "flex"
43924
  }
43925
  }, /*#__PURE__*/react.createElement("code", {
43926
  style: {
43927
+ fontSize: "11px",
43928
  padding: "5.5px"
43929
  }
43930
+ }, "a[", value.substring(value.length - 3) === "Pv2" ? "buttonizer-popup" : "href", "=\"#", value, "\"]"), /*#__PURE__*/react.createElement(Tippy_Tippy, {
43931
+ content: translate("settings.popups.generate")
43932
+ }, /*#__PURE__*/react.createElement(IconButton_IconButton, {
43933
  onClick: function onClick() {
43934
  onChange("popupMaker" + uniqueCharset() + "Pv2");
43935
  },
43943
  style: {
43944
  fontSize: "14px"
43945
  }
43946
+ })))), /*#__PURE__*/react.createElement(KnowledgeBaseLink, {
43947
  articleId: 77,
43948
  setting: "Popup Maker"
43949
  }));
43950
  }
43951
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/ButtonAction/ButtonActionValue/ButtonActionNewTab/ButtonActionNewTab.js
43952
+ function ButtonActionNewTab_slicedToArray(arr, i) { return ButtonActionNewTab_arrayWithHoles(arr) || ButtonActionNewTab_iterableToArrayLimit(arr, i) || ButtonActionNewTab_unsupportedIterableToArray(arr, i) || ButtonActionNewTab_nonIterableRest(); }
 
 
 
43953
 
43954
+ function ButtonActionNewTab_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
43955
 
43956
+ function ButtonActionNewTab_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return ButtonActionNewTab_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return ButtonActionNewTab_arrayLikeToArray(o, minLen); }
43957
 
43958
+ function ButtonActionNewTab_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
43959
 
43960
+ function ButtonActionNewTab_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
43961
 
43962
+ function ButtonActionNewTab_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43963
 
43964
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43965
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43966
 
43967
+ function ButtonActionNewTab(_ref) {
43968
+ var value = _ref.value,
43969
+ onChange = _ref.onChange;
43970
+ var useStyles = styles_makeStyles(function (theme) {
43971
+ return {
43972
+ formControl: {
43973
+ margin: theme.spacing(0),
43974
+ marginTop: 10,
43975
+ paddingBottom: 20
43976
+ }
43977
+ };
43978
+ });
43979
+ var classes = useStyles();
43980
+ var inputLabel = (0,react.useRef)(null);
43981
 
43982
+ var _useState = (0,react.useState)(0),
43983
+ _useState2 = ButtonActionNewTab_slicedToArray(_useState, 2),
43984
+ labelWidth = _useState2[0],
43985
+ setLabelWidth = _useState2[1];
43986
 
43987
+ var new_tab = "_self";
 
 
 
43988
 
43989
+ if (value) {
43990
+ if (value === true) new_tab = "_blank";else if (typeof value === "string") new_tab = value;
43991
+ }
 
43992
 
43993
+ (0,react.useEffect)(function () {
43994
+ setLabelWidth(inputLabel.current.offsetWidth);
43995
+ }, []);
 
43996
 
43997
+ var handleChange = function handleChange(e) {
43998
+ if (e.target.value) {
43999
+ onChange(e.target.value);
44000
  }
 
 
 
 
 
44001
 
44002
+ if (e.target.value === null) {
44003
+ onChange("_blank");
 
44004
  }
44005
  };
44006
 
44007
+ return /*#__PURE__*/react.createElement(FormControl_FormControl, {
44008
+ variant: "outlined",
44009
+ className: classes.formControl,
44010
+ fullWidth: true,
44011
+ size: "small"
44012
+ }, /*#__PURE__*/react.createElement(InputLabel_InputLabel, {
44013
+ ref: inputLabel
44014
+ }, translate("settings.button_action.open_url.title")), /*#__PURE__*/react.createElement(Select_Select, {
44015
+ onChange: handleChange,
44016
+ labelWidth: labelWidth,
44017
+ value: new_tab,
44018
+ MenuProps: {
44019
+ anchorOrigin: {
44020
+ vertical: "bottom",
44021
+ horizontal: "center"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44022
  },
44023
+ transformOrigin: {
44024
+ vertical: "top",
44025
+ horizontal: "center"
 
 
 
 
 
 
 
 
 
 
44026
  },
44027
+ getContentAnchorEl: null
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44028
  }
44029
+ }, /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
44030
+ value: "_self"
44031
+ }, "Current window"), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
44032
+ value: "_blank"
44033
+ }, "New tab"), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
44034
+ value: "_newWindow"
44035
+ }, "New window"), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
44036
+ value: "_popupWindow"
44037
+ }, "Pop-up window")));
44038
  }
44039
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/ButtonAction/ButtonActionValue/DefaultTextField/DefaultTextField.js
44040
 
44041
 
44042
 
44043
 
44044
+ /**
44045
+ * DefaultTextField
44046
+ * Create a textfield that changes placeholder and such
44047
+ *
44048
+ * @param type string: Specify textfield type
44049
+ * @param placeholder string: Add a placholder in textfield
44050
+ * @param newTab bool: Add open in new tab toggle
44051
+ * @param paragraph string: Add paragraph under textfield
44052
+ * @param knowledge permalink, name: Add knowledgebase link under textfield
44053
+ * @param object object: Button object
44054
  */
44055
 
44056
  function DefaultTextField(_ref) {
44132
 
44133
 
44134
 
 
44135
  function MessengerChat(_ref) {
44136
  var data = _ref.data,
44137
  _onChange = _ref.onChange,
44229
  },
44230
  getContentAnchorEl: null
44231
  }
44232
+ }, messengerLanguages()))), /*#__PURE__*/react.createElement(ConfirmDialog, {
 
 
 
 
 
 
 
 
44233
  open: dialogOpened,
44234
  title: "This is getting out of hand. Now, there are two of them!",
44235
  buttons: [{
44369
  * @argument {Element} element
44370
  * @returns {Element} parent
44371
  */
44372
+ function popper_getParentNode(element) {
44373
  if (element.nodeName === 'HTML') {
44374
  return element;
44375
  }
44408
  return element;
44409
  }
44410
 
44411
+ return popper_getScrollParent(popper_getParentNode(element));
44412
  }
44413
 
44414
  /**
44432
  * @param {Number} version to check
44433
  * @returns {Boolean} isIE
44434
  */
44435
+ function popper_isIE(version) {
44436
  if (version === 11) {
44437
  return isIE11;
44438
  }
44449
  * @argument {Element} element
44450
  * @returns {Element} offset parent
44451
  */
44452
+ function popper_getOffsetParent(element) {
44453
  if (!element) {
44454
  return document.documentElement;
44455
  }
44456
 
44457
+ var noOffsetParent = popper_isIE(10) ? document.body : null;
44458
 
44459
  // NOTE: 1 DOM access here
44460
  var offsetParent = element.offsetParent || null;
44472
  // .offsetParent will return the closest TH, TD or TABLE in case
44473
  // no offsetParent is present, I hate this job...
44474
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
44475
+ return popper_getOffsetParent(offsetParent);
44476
  }
44477
 
44478
  return offsetParent;
44484
  if (nodeName === 'BODY') {
44485
  return false;
44486
  }
44487
+ return nodeName === 'HTML' || popper_getOffsetParent(element.firstElementChild) === element;
44488
  }
44489
 
44490
  /**
44534
  return commonAncestorContainer;
44535
  }
44536
 
44537
+ return popper_getOffsetParent(commonAncestorContainer);
44538
  }
44539
 
44540
  // one of the nodes is inside shadowDOM, find which one
44609
  }
44610
 
44611
  function popper_getSize(axis, body, html, computedStyle) {
44612
+ return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], popper_isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
44613
  }
44614
 
44615
  function getWindowSizes(document) {
44616
  var body = document.body;
44617
  var html = document.documentElement;
44618
+ var computedStyle = popper_isIE(10) && getComputedStyle(html);
44619
 
44620
  return {
44621
  height: popper_getSize('Height', body, html, computedStyle),
44701
  * @param {HTMLElement} element
44702
  * @return {Object} client rect
44703
  */
44704
+ function popper_getBoundingClientRect(element) {
44705
  var rect = {};
44706
 
44707
  // IE10 10 FIX: Please, don't ask, the element isn't
44708
  // considered in DOM in some circumstances...
44709
  // This isn't reproducible in IE10 compatibility mode of IE11
44710
  try {
44711
+ if (popper_isIE(10)) {
44712
  rect = element.getBoundingClientRect();
44713
  var scrollTop = popper_getScroll(element, 'top');
44714
  var scrollLeft = popper_getScroll(element, 'left');
44753
  function getOffsetRectRelativeToArbitraryNode(children, parent) {
44754
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
44755
 
44756
+ var isIE10 = popper_isIE(10);
44757
  var isHTML = parent.nodeName === 'HTML';
44758
+ var childrenRect = popper_getBoundingClientRect(children);
44759
+ var parentRect = popper_getBoundingClientRect(parent);
44760
  var scrollParent = popper_getScrollParent(children);
44761
 
44762
  var styles = getStyleComputedProperty(parent);
44839
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
44840
  return true;
44841
  }
44842
+ var parentNode = popper_getParentNode(element);
44843
  if (!parentNode) {
44844
  return false;
44845
  }
44856
 
44857
  function getFixedPositionOffsetParent(element) {
44858
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
44859
+ if (!element || !element.parentElement || popper_isIE()) {
44860
  return document.documentElement;
44861
  }
44862
  var el = element.parentElement;
44892
  // Handle other cases based on DOM element used as boundaries
44893
  var boundariesNode = void 0;
44894
  if (boundariesElement === 'scrollParent') {
44895
+ boundariesNode = popper_getScrollParent(popper_getParentNode(reference));
44896
  if (boundariesNode.nodeName === 'BODY') {
44897
  boundariesNode = popper.ownerDocument.documentElement;
44898
  }
44947
  * @argument {Object} options - Modifiers configuration and options
44948
  * @returns {Object} The data object, properly modified
44949
  */
44950
+ function popper_computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
44951
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
44952
 
44953
  if (placement.indexOf('auto') === -1) {
45041
  * @argument {String} placement
45042
  * @returns {String} flipped placement
45043
  */
45044
+ function popper_getOppositePlacement(placement) {
45045
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
45046
  return placement.replace(/left|right|bottom|top/g, function (matched) {
45047
  return hash[matched];
45081
  if (placement === secondarySide) {
45082
  popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
45083
  } else {
45084
+ popperOffsets[secondarySide] = referenceOffsets[popper_getOppositePlacement(secondarySide)];
45085
  }
45086
 
45087
  return popperOffsets;
45191
  // compute auto placement, store placement inside the data object,
45192
  // modifiers will be able to edit `placement` if needed
45193
  // and refer to originalPlacement to know the original value
45194
+ data.placement = popper_computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
45195
 
45196
  // store the computed placement inside `originalPlacement`
45197
  data.originalPlacement = data.placement;
45286
  * @argument {Element} element
45287
  * @returns {Window}
45288
  */
45289
+ function popper_getWindow(element) {
45290
  var ownerDocument = element.ownerDocument;
45291
  return ownerDocument ? ownerDocument.defaultView : window;
45292
  }
45311
  function setupEventListeners(reference, options, state, updateBound) {
45312
  // Resize event listener on window
45313
  state.updateBound = updateBound;
45314
+ popper_getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
45315
 
45316
  // Scroll event listener on scroll parents
45317
  var scrollElement = popper_getScrollParent(reference);
45342
  */
45343
  function removeEventListeners(reference, state) {
45344
  // Remove resize event listener on window
45345
+ popper_getWindow(reference).removeEventListener('resize', state.updateBound);
45346
 
45347
  // Remove scroll event listener on scroll parents
45348
  state.scrollParents.forEach(function (target) {
45465
  // compute auto placement, store placement inside the data object,
45466
  // modifiers will be able to edit `placement` if needed
45467
  // and refer to originalPlacement to know the original value
45468
+ var placement = popper_computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
45469
 
45470
  popper.setAttribute('x-placement', placement);
45471
 
45549
  }
45550
  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
45551
 
45552
+ var offsetParent = popper_getOffsetParent(data.instance.popper);
45553
+ var offsetParentRect = popper_getBoundingClientRect(offsetParent);
45554
 
45555
  // Styles
45556
  var styles = {
45660
  * @argument {Object} options - Modifiers configuration and options
45661
  * @returns {Object} The data object, properly modified
45662
  */
45663
+ function popper_arrow(data, options) {
45664
  var _data$offsets$arrow;
45665
 
45666
  // arrow depends on keepTogether in order to work
45818
  * @argument {Object} options - Modifiers configuration and options
45819
  * @returns {Object} The data object, properly modified
45820
  */
45821
+ function popper_flip(data, options) {
45822
  // if `inner` modifier is enabled, we can't use the `flip` modifier
45823
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
45824
  return data;
45832
  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
45833
 
45834
  var placement = data.placement.split('-')[0];
45835
+ var placementOpposite = popper_getOppositePlacement(placement);
45836
  var variation = data.placement.split('-')[1] || '';
45837
 
45838
  var flipOrder = [];
45857
  }
45858
 
45859
  placement = data.placement.split('-')[0];
45860
+ placementOpposite = popper_getOppositePlacement(placement);
45861
 
45862
  var popperOffsets = data.offsets.popper;
45863
  var refOffsets = data.offsets.reference;
46118
  * @argument {Object} options - Modifiers configuration and options
46119
  * @returns {Object} The data object, properly modified
46120
  */
46121
+ function popper_preventOverflow(data, options) {
46122
+ var boundariesElement = options.boundariesElement || popper_getOffsetParent(data.instance.popper);
46123
 
46124
  // If offsetParent is the reference element, we really want to
46125
  // go one step up and use the next offsetParent as reference to
46126
  // avoid to make this modifier completely useless and look like broken
46127
  if (data.instance.reference === boundariesElement) {
46128
+ boundariesElement = popper_getOffsetParent(boundariesElement);
46129
  }
46130
 
46131
  // NOTE: DOM access here
46222
  * @argument {Object} options - Modifiers configuration and options
46223
  * @returns {Object} The data object, properly modified
46224
  */
46225
+ function popper_hide(data) {
46226
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
46227
  return data;
46228
  }
46273
 
46274
  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
46275
 
46276
+ data.placement = popper_getOppositePlacement(placement);
46277
  data.offsets.popper = getClientRect(popper);
46278
 
46279
  return data;
46392
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
46393
  enabled: true,
46394
  /** @prop {ModifierFn} */
46395
+ fn: popper_preventOverflow,
46396
  /**
46397
  * @prop {Array} [priority=['left','right','top','bottom']]
46398
  * Popper will try to prevent overflow following these priorities by default,
46448
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
46449
  enabled: true,
46450
  /** @prop {ModifierFn} */
46451
+ fn: popper_arrow,
46452
  /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
46453
  element: '[x-arrow]'
46454
  },
46470
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
46471
  enabled: true,
46472
  /** @prop {ModifierFn} */
46473
+ fn: popper_flip,
46474
  /**
46475
  * @prop {String|Array} behavior='flip'
46476
  * The behavior used to change the popper's placement. It can be one of
46540
  /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
46541
  enabled: true,
46542
  /** @prop {ModifierFn} */
46543
+ fn: popper_hide
46544
  },
46545
 
46546
  /**
49849
  }
49850
  })));
49851
  }
49852
+ // EXTERNAL MODULE: ./src/js/utils/buttonizer-defaults/index.js
49853
+ var buttonizer_defaults = __webpack_require__(59528);
49854
+ var buttonizer_defaults_default = /*#__PURE__*/__webpack_require__.n(buttonizer_defaults);
49855
+ // EXTERNAL MODULE: ./node_modules/lodash/defaults.js
49856
+ var lodash_defaults = __webpack_require__(91747);
49857
+ var defaults_default = /*#__PURE__*/__webpack_require__.n(lodash_defaults);
49858
+ ;// CONCATENATED MODULE: ./src/js/utils/GetDefaults.js
49859
+ /* global process */
49860
+
49861
+
49862
+
49863
+
49864
+ /**
49865
+ * Get value with format. combine with connect function to remove record arg.
49866
+ * @param {string} key to be getted key
49867
+ * @param {obj} record object to get key out of
49868
+ * @param {string} model (optional) when filled with (button|group), returns default if value not present. when defaults is left blank, returns "" when there is no value.
49869
+ * @param {object} options options to apply
49870
+ */
49871
+
49872
+ function _get(key, record) {
49873
+ var menu_style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "default";
49874
+ var model = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
49875
+ var parent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
49876
+ var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
49877
+ excludeSelf: false
49878
+ };
49879
+
49880
+ if (typeof record === "undefined" || typeof key === "undefined") {
49881
+ console.log("record: " + record);
49882
+ console.log("key: " + key);
49883
+ throw TypeError("'record' argument or 'key' argument of type undefined");
49884
+ }
49885
+
49886
+ var value = record[key]; // When not in formatted list, don't format.
49887
+
49888
+ if (!buttonizer_defaults_default().formatted.includes(key)) {
49889
+ // value == null will be true also if value == undefined, because undefined == null
49890
+ if (value == null) {
49891
+ // Get default
49892
+ return !model ? "" : _def(model, key, menu_style, parent[key]);
49893
+ }
49894
+
49895
+ return value;
49896
+ }
49897
+
49898
+ var parentValue = parent ? formats.normal_hover.parse(parent[key]) : []; // def returns formatted value
49899
+
49900
+ if (value == null) return !model ? ["", ""] : _defs(model, key, menu_style, [], parentValue);
49901
+ var result = formats.normal_hover.parse(value);
49902
+ return model ? _defs(model, key, menu_style, result, parentValue, options) : merge_default()(["", ""], result);
49903
+ }
49904
+ function _def(model, key) {
49905
+ var menu_style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "default";
49906
+ var fallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
49907
+ var def = merge_default()({}, (buttonizer_defaults_default()), (buttonizer_defaults_default()).menuStyle[menu_style]);
49908
+
49909
+ if (!Object.keys(def).includes(model)) {
49910
+ console.error("model ".concat(model, " not familiar"));
49911
+ return;
49912
+ }
49913
+
49914
+ if (!Object.keys(def[model]).includes(key)) {
49915
+ if (false) {}
49916
+ return "";
49917
+ }
49918
+
49919
+ return def[model][key] == null ? fallback : def[model][key];
49920
+ }
49921
+ function _defs(model, key) {
49922
+ var menu_style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "default";
49923
+ var self = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
49924
+ var parent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
49925
+ var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
49926
+ var def = merge_default()({}, (buttonizer_defaults_default()), (buttonizer_defaults_default()).menuStyle[menu_style]);
49927
+
49928
+ if (!Object.keys(def).includes(model)) {
49929
+ console.error("model ".concat(model, " not familiar"));
49930
+ return;
49931
+ }
49932
+
49933
+ if (!Object.keys(def[model]).includes(key)) {
49934
+ if (false) {}
49935
+ return ["", ""];
49936
+ }
49937
+
49938
+ var result = def[model][key];
49939
+ if (model === "group") return mergeGroupDefaults(self, result, options);
49940
+ if (model === "button") return mergeButtonDefaults(self, parent, result, options);
49941
+ }
49942
+
49943
+ function mergeGroupDefaults() {
49944
+ var self = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
49945
+ var def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
49946
+
49947
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
49948
+ _ref$excludeSelf = _ref.excludeSelf,
49949
+ excludeSelf = _ref$excludeSelf === void 0 ? false : _ref$excludeSelf;
49950
+
49951
+ var arr = [self, def, [self[0], self[0]], [def[0], def[0]]];
49952
+ if (excludeSelf) arr.shift(); // exclude 'self'
49953
+
49954
+ return defaults_default().apply(void 0, arr);
49955
+ }
49956
+
49957
+ function mergeButtonDefaults() {
49958
+ var self = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
49959
+ var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
49960
+ var def = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
49961
+
49962
+ var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
49963
+ _ref2$excludeSelf = _ref2.excludeSelf,
49964
+ excludeSelf = _ref2$excludeSelf === void 0 ? false : _ref2$excludeSelf;
49965
+
49966
+ var arr = [self, parent, [undefined, self[0]], def, [undefined, parent[0]], [undefined, def[0]]];
49967
+ if (excludeSelf) arr.shift(); // remove 'self'
49968
+
49969
+ return defaults_default().apply(void 0, arr);
49970
+ }
49971
  ;// CONCATENATED MODULE: ./src/js/dashboard/Pages/Button/Tabs/Options.js
49972
  function Options_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
49973
 
50004
 
50005
  function Options(_ref) {
50006
  var set = _ref.set,
50007
+ get = _ref.get;
 
50008
 
50009
  var _useState = (0,react.useState)("general"),
50010
  _useState2 = Options_slicedToArray(_useState, 2),
50011
  openedGroup = _useState2[0],
50012
  setOpenedGroup = _useState2[1];
50013
 
 
50014
  return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(CollapsibleGroup, {
50015
  title: translate("settings.setting_categories.general"),
50016
  opened: openedGroup === "general",
50046
  }, translate("settings.setting_categories.label")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(Label, {
50047
  value: get("label"),
50048
  onChange: function onChange(val) {
50049
+ if (val === "") return set("label", "unset");
50050
+ set("label", val);
50051
  },
50052
+ placeholder: ""
50053
  })));
50054
  }
50055
 
50083
  },
50084
  get: function get(key) {
50085
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
50086
+ return _get(key, button, group.menu_style, returnValue ? "button" : false);
 
 
 
 
50087
  }
50088
  }, props);
50089
  })(Options));
52093
  setImportedIcons = _useState4[1];
52094
 
52095
  var iconList = (0,react.useMemo)(function () {
52096
+ return keywordSearch(keyword.toLowerCase(), importedIcons);
52097
  }, [keyword, importedIcons]);
52098
  (0,react.useEffect)(function () {
52099
  importIcons(icon_library, icon_library_version).then(function (result) {
52291
 
52292
  function DemoFrame_createClass(Constructor, protoProps, staticProps) { if (protoProps) DemoFrame_defineProperties(Constructor.prototype, protoProps); if (staticProps) DemoFrame_defineProperties(Constructor, staticProps); return Constructor; }
52293
 
52294
+ function DemoFrame_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) DemoFrame_setPrototypeOf(subClass, superClass); }
52295
 
52296
+ function DemoFrame_setPrototypeOf(o, p) { DemoFrame_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return DemoFrame_setPrototypeOf(o, p); }
52297
 
52298
+ function DemoFrame_createSuper(Derived) { var hasNativeReflectConstruct = DemoFrame_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = DemoFrame_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = DemoFrame_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return DemoFrame_possibleConstructorReturn(this, result); }; }
52299
 
52300
+ function DemoFrame_possibleConstructorReturn(self, call) { if (call && (DemoFrame_typeof(call) === "object" || typeof call === "function")) { return call; } return DemoFrame_assertThisInitialized(self); }
52301
 
52302
+ function DemoFrame_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
52303
 
52304
+ function DemoFrame_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
52305
 
52306
+ function DemoFrame_getPrototypeOf(o) { DemoFrame_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return DemoFrame_getPrototypeOf(o); }
52307
 
52308
  function DemoFrame_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
52309
 
52329
  };
52330
 
52331
  var DemoFrame = /*#__PURE__*/function (_React$Component) {
52332
+ DemoFrame_inherits(DemoFrame, _React$Component);
52333
 
52334
+ var _super = DemoFrame_createSuper(DemoFrame);
52335
 
52336
  function DemoFrame() {
52337
  var _this;
52344
 
52345
  _this = _super.call.apply(_super, [this].concat(args));
52346
 
52347
+ DemoFrame_defineProperty(DemoFrame_assertThisInitialized(_this), "state", {
52348
  ready: false
52349
  });
52350
 
52351
+ DemoFrame_defineProperty(DemoFrame_assertThisInitialized(_this), "handleRef", function (ref) {
52352
  _this.contentDocument = ref ? ref.node.contentDocument : null;
52353
  _this.contentWindow = ref ? ref.node.contentWindow : null;
52354
  });
52355
 
52356
+ DemoFrame_defineProperty(DemoFrame_assertThisInitialized(_this), "onContentDidMount", function () {
52357
  _this.setState({
52358
  ready: true,
52359
  jss: (0,jss_esm/* create */.Ue)({
52365
  });
52366
  });
52367
 
52368
+ DemoFrame_defineProperty(DemoFrame_assertThisInitialized(_this), "onContentDidUpdate", function () {
52369
  _this.contentDocument.body.dir = _this.props.theme.direction;
52370
  });
52371
 
52681
  ;// CONCATENATED MODULE: ./node_modules/react-color/es/helpers/checkboard.js
52682
  var checkboardCache = {};
52683
 
52684
+ var checkboard_render = function render(c1, c2, size, serverCanvas) {
52685
  if (typeof document === 'undefined' && !serverCanvas) {
52686
  return null;
52687
  }
52708
  return checkboardCache[key];
52709
  }
52710
 
52711
+ var checkboard = checkboard_render(c1, c2, size, serverCanvas);
52712
  checkboardCache[key] = checkboard;
52713
  return checkboard;
52714
  };
52917
  return Number(String(value).replace(/%/g, ''));
52918
  };
52919
 
52920
+ var EditableInput_idCounter = 1;
52921
 
52922
  var EditableInput = function (_ref) {
52923
  EditableInput_inherits(EditableInput, _ref);
52982
  blurValue: String(props.value).toUpperCase()
52983
  };
52984
 
52985
+ _this.inputId = 'rc-editable-input-' + EditableInput_idCounter++;
52986
  return _this;
52987
  }
52988
 
62883
 
62884
  return /*#__PURE__*/react.createElement(Tippy_Tippy, {
62885
  disabled: title == null,
62886
+ content: title,
62887
+ arrow: false
62888
  }, /*#__PURE__*/react.createElement("div", ColorSwatches_extends({
62889
  style: styles.swatch,
62890
  onContextMenu: handleContextMenu
63243
  trashButton = _ref$trashButton === void 0 ? true : _ref$trashButton,
63244
  _ref$noGradient = _ref.noGradient,
63245
  noGradient = _ref$noGradient === void 0 ? false : _ref$noGradient;
 
63246
 
63247
+ // console.log("reloading components");
63248
  var _useState = (0,react.useState)(null),
63249
  _useState2 = ColorPicker_slicedToArray(_useState, 2),
63250
  currentRef = _useState2[0],
64537
 
64538
 
64539
  var handleInputChange = function handleInputChange(event) {
64540
+ var val = event.target.value.replace(/^0+(\.?\d+)/, "$1").replace(/[^0-9.]/gm, "").replace(/(^\d*\.?(\d*)?).*/, "$1");
64541
 
64542
  if (val === "") {
64543
  setSliderValue("");
64553
  setSliderValue(min);
64554
  onChange(Number(val));
64555
  return;
64556
+ }
 
 
 
 
 
64557
 
64558
  setSliderValue(val);
64559
  onChange(Number(val));
64595
  if (premium) app.showPremiumDialog("More hover settings!");
64596
  },
64597
  placeholder: sliderDisabled ? "".concat(defaultValue) : "",
 
 
 
 
 
 
 
64598
  endAdornment: inputText ? /*#__PURE__*/react.createElement(InputAdornment_InputAdornment, {
64599
  position: "end"
64600
  }, inputText) : null,
64602
  min: min,
64603
  max: max,
64604
  "data-testid": "slider-input",
 
64605
  "aria-labelledby": "input-slider"
64606
  }
64607
  }), trashButton ? /*#__PURE__*/react.createElement(IconButton_IconButton, {
64816
 
64817
  var settings = function settings() {
64818
  var color = get("icon_color");
64819
+ var icon = get("icon", true, false);
64820
  /* webpack-strip-block:removed */
64821
 
64822
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(DisableSetting, {
64919
  get: function get(key) {
64920
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
64921
  var defToGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
64922
+ return _get(key, button, group.menu_style, returnValue && "button", returnValue && defToGroup ? group : false);
64923
  },
64924
  getParent: function getParent(key) {
64925
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
64926
+ return _get(key, group, group.menu_style, returnValue ? "group" : false);
64927
  }
64928
  }, props);
64929
  })(IconGroup));
65039
  app.showPremiumDialog(translate("premium.font_family"));
65040
  }
65041
  }, /*#__PURE__*/react.createElement(Autocomplete_Autocomplete, {
65042
+ style: {
65043
+ marginBottom: 15
65044
+ },
65045
  multiple: true,
65046
  disabled: true,
65047
  size: "medium",
65203
  }).join(" "));
65204
  };
65205
 
65206
+ (0,react.useEffect)(function () {
65207
+ var arrayValues;
65208
+ if (!value) arrayValues = ["", "", "", ""];else if (typeof value === "number") arrayValues = ["".concat(value), "".concat(value), "".concat(value), "".concat(value)];else arrayValues = value.match(numberPattern) || ["", "", "", ""];
65209
+ if (arrayValues.length === 1) arrayValues = [arrayValues[0], arrayValues[0], arrayValues[0], arrayValues[0]];
65210
+ setLinked(arrayValues.every(function (val) {
65211
+ return val === arrayValues[0];
65212
+ }));
65213
+ setValues(arrayValues);
65214
+ setUnit(value ? value.toString().includes("px") ? "px" : "%" : defaultValue.toString().includes("px") ? "px" : "%");
65215
+ }, [value]);
65216
+
65217
+ var unitButtons = function unitButtons() {
65218
+ /* webpack-strip-block:removed */
65219
+ return /*#__PURE__*/react.createElement("div", {
65220
+ style: {
65221
+ transform: "translateY(-10px)",
65222
+ textAlign: "center"
65223
+ }
65224
+ }, /*#__PURE__*/react.createElement(IconButton_IconButton, {
65225
+ color: "primary",
65226
+ className: classes.iconButton,
65227
+ "data-testid": "textfield-corners-pixel",
65228
+ disabled: true
65229
+ }, "PX"), /*#__PURE__*/react.createElement(IconButton_IconButton, {
65230
+ color: "primary",
65231
+ className: classes.iconButton,
65232
+ "data-testid": "textfield-corners-percent",
65233
+ disabled: true
65234
+ }, "%"));
65235
+ };
65236
+
65237
+ return /*#__PURE__*/react.createElement("div", {
65238
+ onClick: function onClick() {
65239
+ if (disabled) {
65240
+ _onClick();
65241
+ }
65242
+
65243
+ return;
65244
+ }
65245
+ }, /*#__PURE__*/react.createElement(SettingsContainer, {
65246
+ className: className,
65247
+ title: title,
65248
+ fullWidth: true
65249
+ }, values.map(function (val, key) {
65250
+ return /*#__PURE__*/react.createElement(TextField_TextField, TextFieldCorners_extends({
65251
+ value: val,
65252
+ className: "textfield-corners-input",
65253
+ margin: "dense",
65254
+ placeholder: !value ? defaultArray[key] : arrayValues[key],
65255
+ variant: "outlined",
65256
+ disabled: disabled,
65257
+ key: key,
65258
+ onChange: function onChange(e) {
65259
+ return handleChange(key, e.target.value.replace(/^0+(\.?\d+)/, "$1").replace(/[^0-9]/gm, ""));
65260
+ }
65261
+ }, arrayProps[key]));
65262
+ }), /*#__PURE__*/react.createElement(Button_Button, {
65263
+ color: "primary",
65264
+ variant: linked ? "contained" : "outlined",
65265
+ className: classes.button,
65266
+ disabled: disabled || !value,
65267
+ "data-testid": "textfield-corners-link",
65268
+ onClick: function onClick() {
65269
+ setLinked(!linked);
65270
+ }
65271
+ }, /*#__PURE__*/react.createElement("i", {
65272
+ className: "fas fa-link"
65273
+ })), unitButtons()));
65274
+ }
65275
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/BorderRadius/BorderRadius.js
65276
+ function BorderRadius_extends() { BorderRadius_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return BorderRadius_extends.apply(this, arguments); }
65277
+
65278
+
65279
+
65280
+
65281
+ function BorderRadius(props) {
65282
+ return /*#__PURE__*/react.createElement(TextFieldCorners, BorderRadius_extends({
65283
+ title: translate("settings.border_radius.title"),
65284
+ type: "corners"
65285
+ }, props));
65286
+ }
65287
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/LabelVisibility/LabelVisibility.js
65288
+
65289
+
65290
+
65291
+
65292
+
65293
+
65294
+ function LabelVisibility(_ref) {
65295
+ var _onChange = _ref.onChange,
65296
+ value = _ref.value,
65297
+ _ref$title = _ref.title,
65298
+ title = _ref$title === void 0 ? "" : _ref$title,
65299
+ _ref$device = _ref.device,
65300
+ device = _ref$device === void 0 ? "" : _ref$device,
65301
+ trashButton = _ref.trashButton;
65302
+ return /*#__PURE__*/react.createElement(SettingsContainer, {
65303
+ title: title
65304
+ }, /*#__PURE__*/react.createElement(FormControl_FormControl, {
65305
+ variant: "outlined",
65306
+ fullWidth: true
65307
+ }, /*#__PURE__*/react.createElement(Select_Select, {
65308
+ id: "label-visibility",
65309
+ value: value || "",
65310
+ onChange: function onChange(e) {
65311
+ _onChange(e.target.value);
65312
+ },
65313
+ className: "MuiSelect-small",
65314
+ inputProps: {
65315
+ "data-testid": "setting:".concat(device, "-visibility")
65316
+ },
65317
+ displayEmpty: true
65318
+ }, trashButton && /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
65319
+ value: "",
65320
+ key: "group-default",
65321
+ disabled: true,
65322
+ style: {
65323
+ display: "none"
65324
+ }
65325
+ }, translate("settings.label_styles.group_default")), device === "desktop" ? [/*#__PURE__*/react.createElement(MenuItem_MenuItem, {
65326
+ value: "always",
65327
+ key: "always"
65328
+ }, translate("settings.label_styles.always")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
65329
+ value: "hover",
65330
+ key: "hover"
65331
+ }, translate("settings.label_styles.hover")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
65332
+ value: "hide",
65333
+ key: "hide"
65334
+ }, translate("settings.label_styles.hide"))] : [/*#__PURE__*/react.createElement(MenuItem_MenuItem, {
65335
+ value: "always",
65336
+ key: "always"
65337
+ }, translate("settings.label_styles.always")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
65338
+ value: "hide",
65339
+ key: "hide"
65340
+ }, translate("settings.label_styles.hide"))])), trashButton ? /*#__PURE__*/react.createElement(IconButton_IconButton, {
65341
+ onClick: function onClick() {
65342
+ _onChange("unset");
65343
+ },
65344
+ disabled: !value,
65345
+ size: "small",
65346
+ style: {
65347
+ fontSize: "1rem",
65348
+ marginLeft: "5px"
65349
+ },
65350
+ color: "primary"
65351
+ }, /*#__PURE__*/react.createElement(Icon_Icon, {
65352
+ fontSize: "inherit",
65353
+ className: "fas fa-trash"
65354
+ })) : null);
65355
+ }
65356
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Grid/Grid.js
65357
+
65358
+
65359
+ // A grid component using the following libs as inspiration.
65360
+ //
65361
+ // For the implementation:
65362
+ // - https://getbootstrap.com/docs/4.3/layout/grid/
65363
+ // - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css
65364
+ // - https://github.com/roylee0704/react-flexbox-grid
65365
+ // - https://material.angularjs.org/latest/layout/introduction
65366
+ //
65367
+ // Follow this flexbox Guide to better understand the underlying model:
65368
+ // - https://css-tricks.com/snippets/css/a-guide-to-flexbox/
65369
+
65370
+
65371
+
65372
+
65373
+
65374
+ var SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
65375
+ var GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
65376
+
65377
+ function generateGrid(globalStyles, theme, breakpoint) {
65378
+ var styles = {};
65379
+ GRID_SIZES.forEach(function (size) {
65380
+ var key = "grid-".concat(breakpoint, "-").concat(size);
65381
+
65382
+ if (size === true) {
65383
+ // For the auto layouting
65384
+ styles[key] = {
65385
+ flexBasis: 0,
65386
+ flexGrow: 1,
65387
+ maxWidth: '100%'
65388
+ };
65389
+ return;
65390
+ }
65391
+
65392
+ if (size === 'auto') {
65393
+ styles[key] = {
65394
+ flexBasis: 'auto',
65395
+ flexGrow: 0,
65396
+ maxWidth: 'none'
65397
+ };
65398
+ return;
65399
+ } // Keep 7 significant numbers.
65400
+
65401
+
65402
+ var width = "".concat(Math.round(size / 12 * 10e7) / 10e5, "%"); // Close to the bootstrap implementation:
65403
+ // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41
65404
+
65405
+ styles[key] = {
65406
+ flexBasis: width,
65407
+ flexGrow: 0,
65408
+ maxWidth: width
65409
+ };
65410
+ }); // No need for a media query for the first size.
65411
+
65412
+ if (breakpoint === 'xs') {
65413
+ (0,esm_extends/* default */.Z)(globalStyles, styles);
65414
+ } else {
65415
+ globalStyles[theme.breakpoints.up(breakpoint)] = styles;
65416
+ }
65417
+ }
65418
+
65419
+ function getOffset(val) {
65420
+ var div = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
65421
+ var parse = parseFloat(val);
65422
+ return "".concat(parse / div).concat(String(val).replace(String(parse), '') || 'px');
65423
+ }
65424
+
65425
+ function generateGutter(theme, breakpoint) {
65426
+ var styles = {};
65427
+ SPACINGS.forEach(function (spacing) {
65428
+ var themeSpacing = theme.spacing(spacing);
65429
+
65430
+ if (themeSpacing === 0) {
65431
+ return;
65432
+ }
65433
+
65434
+ styles["spacing-".concat(breakpoint, "-").concat(spacing)] = {
65435
+ margin: "-".concat(getOffset(themeSpacing, 2)),
65436
+ width: "calc(100% + ".concat(getOffset(themeSpacing), ")"),
65437
+ '& > $item': {
65438
+ padding: getOffset(themeSpacing, 2)
65439
+ }
65440
+ };
65441
+ });
65442
+ return styles;
65443
+ } // Default CSS values
65444
+ // flex: '0 1 auto',
65445
+ // flexDirection: 'row',
65446
+ // alignItems: 'flex-start',
65447
+ // flexWrap: 'nowrap',
65448
+ // justifyContent: 'flex-start',
65449
+
65450
+
65451
+ var Grid_styles = function styles(theme) {
65452
+ return (0,esm_extends/* default */.Z)({
65453
+ /* Styles applied to the root element. */
65454
+ root: {},
65455
+
65456
+ /* Styles applied to the root element if `container={true}`. */
65457
+ container: {
65458
+ boxSizing: 'border-box',
65459
+ display: 'flex',
65460
+ flexWrap: 'wrap',
65461
+ width: '100%'
65462
+ },
65463
+
65464
+ /* Styles applied to the root element if `item={true}`. */
65465
+ item: {
65466
+ boxSizing: 'border-box',
65467
+ margin: '0' // For instance, it's useful when used with a `figure` element.
65468
+
65469
+ },
65470
+
65471
+ /* Styles applied to the root element if `zeroMinWidth={true}`. */
65472
+ zeroMinWidth: {
65473
+ minWidth: 0
65474
+ },
65475
+
65476
+ /* Styles applied to the root element if `direction="column"`. */
65477
+ 'direction-xs-column': {
65478
+ flexDirection: 'column'
65479
+ },
65480
+
65481
+ /* Styles applied to the root element if `direction="column-reverse"`. */
65482
+ 'direction-xs-column-reverse': {
65483
+ flexDirection: 'column-reverse'
65484
+ },
65485
+
65486
+ /* Styles applied to the root element if `direction="row-reverse"`. */
65487
+ 'direction-xs-row-reverse': {
65488
+ flexDirection: 'row-reverse'
65489
+ },
65490
+
65491
+ /* Styles applied to the root element if `wrap="nowrap"`. */
65492
+ 'wrap-xs-nowrap': {
65493
+ flexWrap: 'nowrap'
65494
+ },
65495
+
65496
+ /* Styles applied to the root element if `wrap="reverse"`. */
65497
+ 'wrap-xs-wrap-reverse': {
65498
+ flexWrap: 'wrap-reverse'
65499
+ },
65500
+
65501
+ /* Styles applied to the root element if `alignItems="center"`. */
65502
+ 'align-items-xs-center': {
65503
+ alignItems: 'center'
65504
+ },
65505
+
65506
+ /* Styles applied to the root element if `alignItems="flex-start"`. */
65507
+ 'align-items-xs-flex-start': {
65508
+ alignItems: 'flex-start'
65509
+ },
65510
+
65511
+ /* Styles applied to the root element if `alignItems="flex-end"`. */
65512
+ 'align-items-xs-flex-end': {
65513
+ alignItems: 'flex-end'
65514
+ },
65515
+
65516
+ /* Styles applied to the root element if `alignItems="baseline"`. */
65517
+ 'align-items-xs-baseline': {
65518
+ alignItems: 'baseline'
65519
+ },
65520
+
65521
+ /* Styles applied to the root element if `alignContent="center"`. */
65522
+ 'align-content-xs-center': {
65523
+ alignContent: 'center'
65524
+ },
65525
+
65526
+ /* Styles applied to the root element if `alignContent="flex-start"`. */
65527
+ 'align-content-xs-flex-start': {
65528
+ alignContent: 'flex-start'
65529
+ },
65530
+
65531
+ /* Styles applied to the root element if `alignContent="flex-end"`. */
65532
+ 'align-content-xs-flex-end': {
65533
+ alignContent: 'flex-end'
65534
+ },
65535
+
65536
+ /* Styles applied to the root element if `alignContent="space-between"`. */
65537
+ 'align-content-xs-space-between': {
65538
+ alignContent: 'space-between'
65539
+ },
65540
+
65541
+ /* Styles applied to the root element if `alignContent="space-around"`. */
65542
+ 'align-content-xs-space-around': {
65543
+ alignContent: 'space-around'
65544
+ },
65545
+
65546
+ /* Styles applied to the root element if `justify="center"`. */
65547
+ 'justify-xs-center': {
65548
+ justifyContent: 'center'
65549
+ },
65550
+
65551
+ /* Styles applied to the root element if `justify="flex-end"`. */
65552
+ 'justify-xs-flex-end': {
65553
+ justifyContent: 'flex-end'
65554
+ },
65555
+
65556
+ /* Styles applied to the root element if `justify="space-between"`. */
65557
+ 'justify-xs-space-between': {
65558
+ justifyContent: 'space-between'
65559
+ },
65560
+
65561
+ /* Styles applied to the root element if `justify="space-around"`. */
65562
+ 'justify-xs-space-around': {
65563
+ justifyContent: 'space-around'
65564
+ },
65565
+
65566
+ /* Styles applied to the root element if `justify="space-evenly"`. */
65567
+ 'justify-xs-space-evenly': {
65568
+ justifyContent: 'space-evenly'
65569
+ }
65570
+ }, generateGutter(theme, 'xs'), theme.breakpoints.keys.reduce(function (accumulator, key) {
65571
+ // Use side effect over immutability for better performance.
65572
+ generateGrid(accumulator, theme, key);
65573
+ return accumulator;
65574
+ }, {}));
65575
+ };
65576
+ var Grid = /*#__PURE__*/react.forwardRef(function Grid(props, ref) {
65577
+ var _props$alignContent = props.alignContent,
65578
+ alignContent = _props$alignContent === void 0 ? 'stretch' : _props$alignContent,
65579
+ _props$alignItems = props.alignItems,
65580
+ alignItems = _props$alignItems === void 0 ? 'stretch' : _props$alignItems,
65581
+ classes = props.classes,
65582
+ classNameProp = props.className,
65583
+ _props$component = props.component,
65584
+ Component = _props$component === void 0 ? 'div' : _props$component,
65585
+ _props$container = props.container,
65586
+ container = _props$container === void 0 ? false : _props$container,
65587
+ _props$direction = props.direction,
65588
+ direction = _props$direction === void 0 ? 'row' : _props$direction,
65589
+ _props$item = props.item,
65590
+ item = _props$item === void 0 ? false : _props$item,
65591
+ _props$justify = props.justify,
65592
+ justify = _props$justify === void 0 ? 'flex-start' : _props$justify,
65593
+ _props$lg = props.lg,
65594
+ lg = _props$lg === void 0 ? false : _props$lg,
65595
+ _props$md = props.md,
65596
+ md = _props$md === void 0 ? false : _props$md,
65597
+ _props$sm = props.sm,
65598
+ sm = _props$sm === void 0 ? false : _props$sm,
65599
+ _props$spacing = props.spacing,
65600
+ spacing = _props$spacing === void 0 ? 0 : _props$spacing,
65601
+ _props$wrap = props.wrap,
65602
+ wrap = _props$wrap === void 0 ? 'wrap' : _props$wrap,
65603
+ _props$xl = props.xl,
65604
+ xl = _props$xl === void 0 ? false : _props$xl,
65605
+ _props$xs = props.xs,
65606
+ xs = _props$xs === void 0 ? false : _props$xs,
65607
+ _props$zeroMinWidth = props.zeroMinWidth,
65608
+ zeroMinWidth = _props$zeroMinWidth === void 0 ? false : _props$zeroMinWidth,
65609
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["alignContent", "alignItems", "classes", "className", "component", "container", "direction", "item", "justify", "lg", "md", "sm", "spacing", "wrap", "xl", "xs", "zeroMinWidth"]);
65610
+
65611
+ var className = (0,clsx_m/* default */.Z)(classes.root, classNameProp, container && [classes.container, spacing !== 0 && classes["spacing-xs-".concat(String(spacing))]], item && classes.item, zeroMinWidth && classes.zeroMinWidth, direction !== 'row' && classes["direction-xs-".concat(String(direction))], wrap !== 'wrap' && classes["wrap-xs-".concat(String(wrap))], alignItems !== 'stretch' && classes["align-items-xs-".concat(String(alignItems))], alignContent !== 'stretch' && classes["align-content-xs-".concat(String(alignContent))], justify !== 'flex-start' && classes["justify-xs-".concat(String(justify))], xs !== false && classes["grid-xs-".concat(String(xs))], sm !== false && classes["grid-sm-".concat(String(sm))], md !== false && classes["grid-md-".concat(String(md))], lg !== false && classes["grid-lg-".concat(String(lg))], xl !== false && classes["grid-xl-".concat(String(xl))]);
65612
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
65613
+ className: className,
65614
+ ref: ref
65615
+ }, other));
65616
+ });
65617
+ false ? 0 : void 0;
65618
+ var StyledGrid = (0,withStyles/* default */.Z)(Grid_styles, {
65619
+ name: 'MuiGrid'
65620
+ })(Grid);
65621
 
65622
+ if (false) { var requireProp; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65623
 
65624
+ /* harmony default export */ var Grid_Grid = (StyledGrid);
65625
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Pages/Group/Tabs/Styling/LabelPosition.js
65626
+ function LabelPosition_slicedToArray(arr, i) { return LabelPosition_arrayWithHoles(arr) || LabelPosition_iterableToArrayLimit(arr, i) || LabelPosition_unsupportedIterableToArray(arr, i) || LabelPosition_nonIterableRest(); }
 
 
65627
 
65628
+ function LabelPosition_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65629
 
65630
+ function LabelPosition_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return LabelPosition_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return LabelPosition_arrayLikeToArray(o, minLen); }
65631
 
65632
+ function LabelPosition_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
65633
 
65634
+ function LabelPosition_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
65635
 
65636
+ function LabelPosition_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
 
 
 
 
 
65637
 
65638
 
65639
 
65640
 
65641
 
65642
 
65643
+ var LabelPosition = function LabelPosition(_ref) {
65644
+ var onChange = _ref.onChange,
 
65645
  _ref$title = _ref.title,
65646
  title = _ref$title === void 0 ? "" : _ref$title,
65647
+ value = _ref.value,
65648
+ defaultValue = _ref.defaultValue,
65649
+ _ref$trashButton = _ref.trashButton,
65650
+ trashButton = _ref$trashButton === void 0 ? true : _ref$trashButton;
65651
+
65652
+ var _useState = (0,react.useState)(value || defaultValue),
65653
+ _useState2 = LabelPosition_slicedToArray(_useState, 2),
65654
+ labelPosition = _useState2[0],
65655
+ setLabelPosition = _useState2[1];
65656
+
65657
+ (0,react.useEffect)(function () {
65658
+ setLabelPosition(value || defaultValue);
65659
+ }, [value]);
65660
+ return /*#__PURE__*/react.createElement("div", {
65661
+ "data-testid": "labelPosition:free"
65662
+ }, /*#__PURE__*/react.createElement(SettingsContainer, {
65663
  title: title
65664
+ }, /*#__PURE__*/react.createElement(Grid_Grid, {
65665
+ container: true,
65666
+ alignItems: "center",
65667
+ spacing: 1
65668
+ }, /*#__PURE__*/react.createElement(Grid_Grid, {
65669
+ item: true,
65670
+ xs: 10,
65671
+ component: ButtonGroup_ButtonGroup,
65672
+ color: "primary",
65673
+ className: (0,clsx_m/* default */.Z)("position-buttons position-horizontal")
65674
+ }, /*#__PURE__*/react.createElement(Button_Button, {
65675
+ color: "primary",
65676
+ variant: labelPosition === "right" ? "contained" : "outlined",
65677
+ onClick: function onClick() {
65678
+ setLabelPosition("right");
65679
+ onChange("right");
65680
  },
65681
+ "data-testid": "setting:position-label-left",
65682
+ size: "small"
65683
+ }, translate("settings.label_position.directions.left")), /*#__PURE__*/react.createElement(Button_Button, {
65684
+ color: "primary",
65685
+ variant: labelPosition === "auto" || !labelPosition ? "contained" : "outlined",
65686
+ onClick: function onClick() {
65687
+ setLabelPosition("auto");
65688
+ onChange("auto");
65689
  },
65690
+ "data-testid": "setting:position-label-auto",
65691
+ size: "small"
65692
+ }, translate("settings.label_position.directions.auto")), /*#__PURE__*/react.createElement(Button_Button, {
65693
+ color: "primary",
65694
+ variant: labelPosition === "left" ? "contained" : "outlined",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65695
  onClick: function onClick() {
65696
+ setLabelPosition("left");
65697
+ onChange("left");
65698
+ },
65699
+ "data-testid": "setting:position-label-right",
65700
+ size: "small"
65701
+ }, translate("settings.label_position.directions.right")))), trashButton ? /*#__PURE__*/react.createElement(IconButton_IconButton, {
65702
+ "data-testid": "delete-label-position-value",
65703
+ onClick: function onClick() {
65704
+ onChange("unset");
65705
  },
65706
  disabled: !value,
65707
  size: "small",
65713
  }, /*#__PURE__*/react.createElement(Icon_Icon, {
65714
  fontSize: "inherit",
65715
  className: "fas fa-trash"
65716
+ })) : null));
65717
+ };
65718
  ;// CONCATENATED MODULE: ./src/js/dashboard/Pages/Button/Tabs/Styling/LabelGroup.js
65719
  function LabelGroup_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
65720
 
65756
 
65757
 
65758
 
65759
+
65760
  function _LabelGroup(_ref) {
65761
  var set = _ref.set,
65762
  get = _ref.get,
65872
  return set("show_label_mobile", val);
65873
  },
65874
  trashButton: true
65875
+ })), /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
65876
+ className: "setting-group-title"
65877
+ }, translate("settings.label_position.title")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(LabelPosition, {
65878
+ title: translate("settings.label_position.description"),
65879
+ value: get("horizontal_position_label"),
65880
+ defaultValue: getParent("horizontal_position_label"),
65881
+ onChange: function onChange(val) {
65882
+ set("horizontal_position_label", val);
65883
+ },
65884
+ trashButton: true
65885
  })), /*#__PURE__*/react.createElement(Tabs_Tabs, {
65886
  onChange: function onChange(_, val) {
65887
  return setHoverSettings(val);
65953
  get: function get(key) {
65954
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
65955
  var defToGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
65956
+ return _get(key, button, group.menu_style, returnValue && "button", returnValue && defToGroup ? group : []);
65957
  },
65958
  getParent: function getParent(key) {
65959
  var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
65960
+ return _get(key, group, group.menu_style, returnValue ? "group" : false);
65961
  }
65962
  }, props);
65963
  })(_LabelGroup));
65964
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/internal/SwitchBase.js
65965
+
65966
+
65967
+
65968
+
65969
+
65970
+
65971
+
65972
+
65973
+
65974
+
65975
+
65976
+ var SwitchBase_styles = {
65977
+ root: {
65978
+ padding: 9
65979
+ },
65980
+ checked: {},
65981
+ disabled: {},
65982
+ input: {
65983
+ cursor: 'inherit',
65984
+ position: 'absolute',
65985
+ opacity: 0,
65986
+ width: '100%',
65987
+ height: '100%',
65988
+ top: 0,
65989
+ left: 0,
65990
+ margin: 0,
65991
+ padding: 0,
65992
+ zIndex: 1
65993
+ }
65994
+ };
65995
+ /**
65996
+ * @ignore - internal component.
65997
+ */
65998
+
65999
+ var SwitchBase = /*#__PURE__*/react.forwardRef(function SwitchBase(props, ref) {
66000
+ var autoFocus = props.autoFocus,
66001
+ checkedProp = props.checked,
66002
+ checkedIcon = props.checkedIcon,
66003
+ classes = props.classes,
66004
+ className = props.className,
66005
+ defaultChecked = props.defaultChecked,
66006
+ disabledProp = props.disabled,
66007
+ icon = props.icon,
66008
+ id = props.id,
66009
+ inputProps = props.inputProps,
66010
+ inputRef = props.inputRef,
66011
+ name = props.name,
66012
+ onBlur = props.onBlur,
66013
+ onChange = props.onChange,
66014
+ onFocus = props.onFocus,
66015
+ readOnly = props.readOnly,
66016
+ required = props.required,
66017
+ tabIndex = props.tabIndex,
66018
+ type = props.type,
66019
+ value = props.value,
66020
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["autoFocus", "checked", "checkedIcon", "classes", "className", "defaultChecked", "disabled", "icon", "id", "inputProps", "inputRef", "name", "onBlur", "onChange", "onFocus", "readOnly", "required", "tabIndex", "type", "value"]);
66021
+
66022
+ var _useControlled = (0,useControlled/* default */.Z)({
66023
+ controlled: checkedProp,
66024
+ default: Boolean(defaultChecked),
66025
+ name: 'SwitchBase',
66026
+ state: 'checked'
66027
+ }),
66028
+ _useControlled2 = (0,slicedToArray/* default */.Z)(_useControlled, 2),
66029
+ checked = _useControlled2[0],
66030
+ setCheckedState = _useControlled2[1];
66031
+
66032
+ var muiFormControl = useFormControl_useFormControl();
66033
+
66034
+ var handleFocus = function handleFocus(event) {
66035
+ if (onFocus) {
66036
+ onFocus(event);
66037
+ }
66038
+
66039
+ if (muiFormControl && muiFormControl.onFocus) {
66040
+ muiFormControl.onFocus(event);
66041
+ }
66042
+ };
66043
+
66044
+ var handleBlur = function handleBlur(event) {
66045
+ if (onBlur) {
66046
+ onBlur(event);
66047
+ }
66048
+
66049
+ if (muiFormControl && muiFormControl.onBlur) {
66050
+ muiFormControl.onBlur(event);
66051
+ }
66052
+ };
66053
+
66054
+ var handleInputChange = function handleInputChange(event) {
66055
+ var newChecked = event.target.checked;
66056
+ setCheckedState(newChecked);
66057
+
66058
+ if (onChange) {
66059
+ // TODO v5: remove the second argument.
66060
+ onChange(event, newChecked);
66061
+ }
66062
+ };
66063
+
66064
+ var disabled = disabledProp;
66065
+
66066
+ if (muiFormControl) {
66067
+ if (typeof disabled === 'undefined') {
66068
+ disabled = muiFormControl.disabled;
66069
+ }
66070
+ }
66071
+
66072
+ var hasLabelFor = type === 'checkbox' || type === 'radio';
66073
+ return /*#__PURE__*/react.createElement(IconButton_IconButton, (0,esm_extends/* default */.Z)({
66074
+ component: "span",
66075
+ className: (0,clsx_m/* default */.Z)(classes.root, className, checked && classes.checked, disabled && classes.disabled),
66076
+ disabled: disabled,
66077
+ tabIndex: null,
66078
+ role: undefined,
66079
+ onFocus: handleFocus,
66080
+ onBlur: handleBlur,
66081
+ ref: ref
66082
+ }, other), /*#__PURE__*/react.createElement("input", (0,esm_extends/* default */.Z)({
66083
+ autoFocus: autoFocus,
66084
+ checked: checkedProp,
66085
+ defaultChecked: defaultChecked,
66086
+ className: classes.input,
66087
+ disabled: disabled,
66088
+ id: hasLabelFor && id,
66089
+ name: name,
66090
+ onChange: handleInputChange,
66091
+ readOnly: readOnly,
66092
+ ref: inputRef,
66093
+ required: required,
66094
+ tabIndex: tabIndex,
66095
+ type: type,
66096
+ value: value
66097
+ }, inputProps)), checked ? checkedIcon : icon);
66098
+ }); // NB: If changed, please update Checkbox, Switch and Radio
66099
+ // so that the API documentation is updated.
66100
+
66101
+ false ? 0 : void 0;
66102
+ /* harmony default export */ var internal_SwitchBase = ((0,withStyles/* default */.Z)(SwitchBase_styles, {
66103
+ name: 'PrivateSwitchBase'
66104
+ })(SwitchBase));
66105
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Switch/Switch.js
66106
+
66107
+
66108
+ // @inheritedComponent IconButton
66109
+
66110
+
66111
+
66112
+
66113
+
66114
+
66115
+
66116
+
66117
+ var Switch_styles = function styles(theme) {
66118
+ return {
66119
+ /* Styles applied to the root element. */
66120
+ root: {
66121
+ display: 'inline-flex',
66122
+ width: 34 + 12 * 2,
66123
+ height: 14 + 12 * 2,
66124
+ overflow: 'hidden',
66125
+ padding: 12,
66126
+ boxSizing: 'border-box',
66127
+ position: 'relative',
66128
+ flexShrink: 0,
66129
+ zIndex: 0,
66130
+ // Reset the stacking context.
66131
+ verticalAlign: 'middle',
66132
+ // For correct alignment with the text.
66133
+ '@media print': {
66134
+ colorAdjust: 'exact'
66135
+ }
66136
+ },
66137
+
66138
+ /* Styles applied to the root element if `edge="start"`. */
66139
+ edgeStart: {
66140
+ marginLeft: -8
66141
+ },
66142
+
66143
+ /* Styles applied to the root element if `edge="end"`. */
66144
+ edgeEnd: {
66145
+ marginRight: -8
66146
+ },
66147
+
66148
+ /* Styles applied to the internal `SwitchBase` component's `root` class. */
66149
+ switchBase: {
66150
+ position: 'absolute',
66151
+ top: 0,
66152
+ left: 0,
66153
+ zIndex: 1,
66154
+ // Render above the focus ripple.
66155
+ color: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[400],
66156
+ transition: theme.transitions.create(['left', 'transform'], {
66157
+ duration: theme.transitions.duration.shortest
66158
+ }),
66159
+ '&$checked': {
66160
+ transform: 'translateX(20px)'
66161
+ },
66162
+ '&$disabled': {
66163
+ color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]
66164
+ },
66165
+ '&$checked + $track': {
66166
+ opacity: 0.5
66167
+ },
66168
+ '&$disabled + $track': {
66169
+ opacity: theme.palette.type === 'light' ? 0.12 : 0.1
66170
+ }
66171
+ },
66172
+
66173
+ /* Styles applied to the internal SwitchBase component's root element if `color="primary"`. */
66174
+ colorPrimary: {
66175
+ '&$checked': {
66176
+ color: theme.palette.primary.main,
66177
+ '&:hover': {
66178
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, theme.palette.action.hoverOpacity),
66179
+ '@media (hover: none)': {
66180
+ backgroundColor: 'transparent'
66181
+ }
66182
+ }
66183
+ },
66184
+ '&$disabled': {
66185
+ color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]
66186
+ },
66187
+ '&$checked + $track': {
66188
+ backgroundColor: theme.palette.primary.main
66189
+ },
66190
+ '&$disabled + $track': {
66191
+ backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white
66192
+ }
66193
+ },
66194
+
66195
+ /* Styles applied to the internal SwitchBase component's root element if `color="secondary"`. */
66196
+ colorSecondary: {
66197
+ '&$checked': {
66198
+ color: theme.palette.secondary.main,
66199
+ '&:hover': {
66200
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),
66201
+ '@media (hover: none)': {
66202
+ backgroundColor: 'transparent'
66203
+ }
66204
+ }
66205
+ },
66206
+ '&$disabled': {
66207
+ color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]
66208
+ },
66209
+ '&$checked + $track': {
66210
+ backgroundColor: theme.palette.secondary.main
66211
+ },
66212
+ '&$disabled + $track': {
66213
+ backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white
66214
+ }
66215
+ },
66216
+
66217
+ /* Styles applied to the root element if `size="small"`. */
66218
+ sizeSmall: {
66219
+ width: 40,
66220
+ height: 24,
66221
+ padding: 7,
66222
+ '& $thumb': {
66223
+ width: 16,
66224
+ height: 16
66225
+ },
66226
+ '& $switchBase': {
66227
+ padding: 4,
66228
+ '&$checked': {
66229
+ transform: 'translateX(16px)'
66230
+ }
66231
+ }
66232
+ },
66233
+
66234
+ /* Pseudo-class applied to the internal `SwitchBase` component's `checked` class. */
66235
+ checked: {},
66236
+
66237
+ /* Pseudo-class applied to the internal SwitchBase component's disabled class. */
66238
+ disabled: {},
66239
+
66240
+ /* Styles applied to the internal SwitchBase component's input element. */
66241
+ input: {
66242
+ left: '-100%',
66243
+ width: '300%'
66244
+ },
66245
+
66246
+ /* Styles used to create the thumb passed to the internal `SwitchBase` component `icon` prop. */
66247
+ thumb: {
66248
+ boxShadow: theme.shadows[1],
66249
+ backgroundColor: 'currentColor',
66250
+ width: 20,
66251
+ height: 20,
66252
+ borderRadius: '50%'
66253
+ },
66254
+
66255
+ /* Styles applied to the track element. */
66256
+ track: {
66257
+ height: '100%',
66258
+ width: '100%',
66259
+ borderRadius: 14 / 2,
66260
+ zIndex: -1,
66261
+ transition: theme.transitions.create(['opacity', 'background-color'], {
66262
+ duration: theme.transitions.duration.shortest
66263
+ }),
66264
+ backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white,
66265
+ opacity: theme.palette.type === 'light' ? 0.38 : 0.3
66266
+ }
66267
+ };
66268
+ };
66269
+ var Switch_Switch = /*#__PURE__*/react.forwardRef(function Switch(props, ref) {
66270
+ var classes = props.classes,
66271
+ className = props.className,
66272
+ _props$color = props.color,
66273
+ color = _props$color === void 0 ? 'secondary' : _props$color,
66274
+ _props$edge = props.edge,
66275
+ edge = _props$edge === void 0 ? false : _props$edge,
66276
+ _props$size = props.size,
66277
+ size = _props$size === void 0 ? 'medium' : _props$size,
66278
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "color", "edge", "size"]);
66279
+
66280
+ var icon = /*#__PURE__*/react.createElement("span", {
66281
+ className: classes.thumb
66282
+ });
66283
+ return /*#__PURE__*/react.createElement("span", {
66284
+ className: (0,clsx_m/* default */.Z)(classes.root, className, {
66285
+ 'start': classes.edgeStart,
66286
+ 'end': classes.edgeEnd
66287
+ }[edge], size === "small" && classes["size".concat((0,capitalize/* default */.Z)(size))])
66288
+ }, /*#__PURE__*/react.createElement(internal_SwitchBase, (0,esm_extends/* default */.Z)({
66289
+ type: "checkbox",
66290
+ icon: icon,
66291
+ checkedIcon: icon,
66292
+ classes: {
66293
+ root: (0,clsx_m/* default */.Z)(classes.switchBase, classes["color".concat((0,capitalize/* default */.Z)(color))]),
66294
+ input: classes.input,
66295
+ checked: classes.checked,
66296
+ disabled: classes.disabled
66297
+ },
66298
+ ref: ref
66299
+ }, other)), /*#__PURE__*/react.createElement("span", {
66300
+ className: classes.track
66301
+ }));
66302
+ });
66303
+ false ? 0 : void 0;
66304
+ /* harmony default export */ var esm_Switch_Switch = ((0,withStyles/* default */.Z)(Switch_styles, {
66305
+ name: 'MuiSwitch'
66306
+ })(Switch_Switch));
66307
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/UseBackgroundImage/index.js
66308
 
66309
 
66504
  getParent = _ref5$getParent === void 0 ? false : _ref5$getParent,
66505
  _ref5$returnValue = _ref5.returnValue,
66506
  returnValue = _ref5$returnValue === void 0 ? false : _ref5$returnValue,
66507
+ _ref5$defToGroup = _ref5.defToGroup,
66508
+ defToGroup = _ref5$defToGroup === void 0 ? false : _ref5$defToGroup,
66509
+ options = ButtonGroup_objectWithoutProperties(_ref5, ["getParent", "returnValue", "defToGroup"]);
66510
 
66511
+ return _get(key, getParent ? group : button, group.menu_style, returnValue && "button", returnValue && defToGroup ? group : false, options);
 
66512
  },
66513
  disableBorderRadius: group.menu_style === "square" || group.menu_style === "rectangle"
66514
  }, props);
66982
  checked: opened
66983
  }));
66984
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66985
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Settings/Position/Position.js
66986
  function Position_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
66987
 
67208
  variant: "outlined",
67209
  onChange: function onChange(e) {
67210
  updatePosition({
67211
+ value: e.target.value.replace(/^0+(\.?\d+)/, "$1").replace(/[^0-9.]/gm, "").replace(/(^\d*\.?(\d*)?).*/, "$1")
67212
  });
67213
  },
67214
  onBlur: function onBlur() {
67218
  },
67219
  size: "small",
67220
  inputProps: {
 
67221
  "aria-labelledby": "input-slider",
67222
  "data-testid": "setting:position-".concat(position, "-field")
67223
  },
67468
  openedGroup = _useState2[0],
67469
  setOpenedGroup = _useState2[1];
67470
 
 
67471
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(CollapsibleGroup, {
67472
  title: translate("settings.setting_categories.general"),
67473
  opened: openedGroup === "general",
67479
  className: "setting-group-title"
67480
  }, translate("settings.label.title")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(Label, {
67481
  value: get("label"),
67482
+ placeholder: "",
67483
  onChange: function onChange(val) {
67484
+ if (val === "") return set("label", "unset");
67485
+ set("label", val);
67486
  }
67487
  }), /*#__PURE__*/react.createElement("div", {
67488
  className: "setting-group-title"
67534
  }, translate("settings.menu_style.title_short")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(MenuStyle, {
67535
  value: get("menu_style", "default"),
67536
  onChange: function onChange(val) {
 
 
 
 
67537
  set("menu_style", val);
67538
  }
67539
  }), /*#__PURE__*/react.createElement(OpeningAnimation, {
67636
  }, /*#__PURE__*/react.createElement("div", {
67637
  className: "breadcrumb"
67638
  }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
67639
+ content: translate("bar.breadcrumb.tippy_home"),
67640
+ arrow: false
67641
  }, /*#__PURE__*/react.createElement(Button_Button, {
67642
  onClick: function onClick() {
67643
  history.push("/");
67868
  var group = _groups[groupId];
67869
  return Styling_IconGroup_objectSpread({
67870
  defs: function defs(key) {
67871
+ return _defs("group", key, group.menu_style, formats.normal_hover.parse(group[key]).map(function (val) {
67872
  return val === "" ? undefined : val;
67873
  }));
67874
  },
67877
  },
67878
  get: function get(key) {
67879
  var alwaysValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
67880
+ return _get(key, group, group.menu_style, alwaysValue ? "group" : false);
67881
  }
67882
  }, ownProps);
67883
  })(_IconGroup));
68018
  },
68019
  defs: function defs(key) {
68020
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
68021
+ return _defs("group", key, group.menu_style, formats.normal_hover.parse(group[key]).map(function (val) {
68022
  return val === "" ? undefined : val;
68023
  }), [], options);
68024
  },
68027
  _ref5$returnValue = _ref5.returnValue,
68028
  returnValue = _ref5$returnValue === void 0 ? false : _ref5$returnValue;
68029
 
68030
+ return _get(key, group, group.menu_style, returnValue ? typeof returnValue === "string" ? returnValue : "group" : false);
68031
  }
68032
  }, ownProps);
68033
  })(Tabs_Styling_ButtonGroup_ButtonGroup));
68073
 
68074
 
68075
 
68076
+
68077
  function LabelGroup_LabelGroup(_ref) {
68078
  var defs = _ref.defs,
68079
  set = _ref.set,
68080
  get = _ref.get,
68081
+ getParent = _ref.getParent,
68082
+ groupProps = Styling_LabelGroup_objectWithoutProperties(_ref, ["defs", "set", "get", "getParent"]);
68083
 
68084
  var _useState = (0,react.useState)(0),
68085
  _useState2 = Styling_LabelGroup_slicedToArray(_useState, 2),
68187
  onChange: function onChange(val) {
68188
  return set("show_label_mobile", val);
68189
  }
68190
+ })), /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
68191
+ className: "setting-group-title"
68192
+ }, translate("settings.label_position.title")), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(LabelPosition, {
68193
+ title: translate("settings.label_position.description"),
68194
+ value: get("horizontal_position_label"),
68195
+ defaultValue: getParent("horizontal_position_label"),
68196
+ onChange: function onChange(val) {
68197
+ set("horizontal_position_label", val);
68198
+ },
68199
+ trashButton: true
68200
  })), /*#__PURE__*/react.createElement(Tabs_Tabs, {
68201
  onChange: function onChange(_, val) {
68202
  return setHoverSettings(val);
68260
  var group = _groups[groupId];
68261
  return Styling_LabelGroup_objectSpread({
68262
  defs: function defs(key) {
68263
+ return _defs("group", key, group.menu_style, formats.normal_hover.parse(group[key]).map(function (val) {
68264
  return val === "" ? undefined : val;
68265
  }));
68266
  },
68269
  },
68270
  get: function get(key) {
68271
  var alwaysValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
68272
+ return _get(key, group, group.menu_style, alwaysValue ? "group" : false);
68273
+ },
68274
+ getParent: function getParent(key) {
68275
+ var returnValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
68276
+ return _get(key, group, group.menu_style, returnValue ? "group" : false);
68277
  }
68278
  }, ownProps);
68279
  })(LabelGroup_LabelGroup));
69048
  variant: "outlined",
69049
  label: translate("settings.timeout_scroll.timeout.milliseconds"),
69050
  helperText: translate("settings.timeout_scroll.timeout.info", "0"),
 
69051
  fullWidth: true,
69052
  disabled: true,
69053
  InputProps: {
69054
  "data-testid": "setting:timeout-field",
69055
  endAdornment: /*#__PURE__*/react.createElement(PremiumTag, null)
69056
  }
69057
+ })), /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(SettingsContainer, {
69058
+ title: translate("settings.timeout_scroll.timeout.trigger_once"),
69059
+ fullWidth: false
69060
+ }, /*#__PURE__*/react.createElement(esm_Switch_Switch, {
69061
+ checked: true,
69062
+ disabled: true
69063
+ })))), /*#__PURE__*/react.createElement("hr", null), /*#__PURE__*/react.createElement(DisableSetting, {
69064
  onClick: function onClick() {
69065
  openDialogDelay("scroll");
69066
  }
69084
  }), /*#__PURE__*/react.createElement(TextField_TextField, {
69085
  variant: "outlined",
69086
  label: translate("settings.timeout_scroll.scroll.from_top"),
 
69087
  FormHelperTextProps: {
69088
  component: "span"
69089
  },
69105
  variant: "outlined",
69106
  color: "primary",
69107
  "data-testid": "setting:scroll-px"
69108
+ }, "px"))), /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(SettingsContainer, {
 
 
 
 
 
 
69109
  title: translate("settings.timeout_scroll.scroll.visibility"),
69110
+ fullWidth: false
69111
+ }, /*#__PURE__*/react.createElement(esm_Switch_Switch, {
69112
+ checked: true,
69113
+ disabled: true
69114
+ }))))));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69115
  }
69116
  };
69117
  return /*#__PURE__*/react.createElement(react.Fragment, null, settings.timeoutScroll());
69693
  /* harmony default export */ var Badge_Badge = ((0,withStyles/* default */.Z)(Badge_styles, {
69694
  name: 'MuiBadge'
69695
  })(Badge));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69696
  ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/EventsButton/EventsButton.js
69697
  function EventsButton_slicedToArray(arr, i) { return EventsButton_arrayWithHoles(arr) || EventsButton_iterableToArrayLimit(arr, i) || EventsButton_unsupportedIterableToArray(arr, i) || EventsButton_nonIterableRest(); }
69698
 
70569
  return undefined;
70570
  }
70571
 
70572
+ var handleResize = (0,utils_debounce/* default */.Z)(function () {
70573
  if (childrenRef.current) {
70574
  setTranslateValue(direction, childrenRef.current);
70575
  }
72513
  return C;
72514
  };
72515
 
72516
+ var react_router_dom_forwardRef = react.forwardRef;
72517
 
72518
+ if (typeof react_router_dom_forwardRef === "undefined") {
72519
+ react_router_dom_forwardRef = forwardRefShim;
72520
  }
72521
 
72522
  function isModifiedEvent(event) {
72523
  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
72524
  }
72525
 
72526
+ var LinkAnchor = react_router_dom_forwardRef(function (_ref, forwardedRef) {
72527
  var innerRef = _ref.innerRef,
72528
  navigate = _ref.navigate,
72529
  _onClick = _ref.onClick,
72552
  }); // React 15 compat
72553
 
72554
 
72555
+ if (forwardRefShim !== react_router_dom_forwardRef) {
72556
  props.ref = forwardedRef || innerRef;
72557
  } else {
72558
  props.ref = innerRef;
72569
  */
72570
 
72571
 
72572
+ var react_router_dom_Link = react_router_dom_forwardRef(function (_ref2, forwardedRef) {
72573
  var _ref2$component = _ref2.component,
72574
  component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,
72575
  replace = _ref2.replace,
72593
  }); // React 15 compat
72594
 
72595
 
72596
+ if (forwardRefShim !== react_router_dom_forwardRef) {
72597
  props.ref = forwardedRef || innerRef;
72598
  } else {
72599
  props.innerRef = innerRef;
72886
  }
72887
  }, false);
72888
  }
72889
+ /**
72890
+ * Buttonizer
72891
+ * @returns {*}
72892
  */
72893
 
72894
  }, {
72990
  fontAwesome.setAttribute("crossorigin", "anonymous");
72991
  document.getElementsByTagName("head")[0].appendChild(fontAwesome);
72992
  }
72993
+ /**
72994
+ * Does this user have premium?
72995
+ * @returns {boolean|*}
72996
  */
72997
 
72998
  }, {
73001
  if (window.free === true) return false;
73002
  return this.props._premium; // return false;
73003
  }
73004
+ /**
73005
+ * Does this user have any changes?
73006
+ *
73007
+ * @returns {boolean}
73008
  */
73009
 
73010
  }, {
73012
  value: function hasChanges() {
73013
  return this.props.hasChanges;
73014
  }
73015
+ /**
73016
+ * Update if the user has any changes
73017
+ *
73018
+ * @param status
73019
+ * @returns {boolean}
73020
  */
73021
 
73022
  }, {
73026
  dashboard_store.dispatch(changeHasChanges(status));
73027
  return status;
73028
  }
73029
+ /**
73030
+ * Buttonizer fully loaded?
73031
+ * @returns {boolean}
73032
  */
73033
 
73034
  }, {
73036
  value: function isLoaded() {
73037
  return this.props.loading.loaded;
73038
  }
73039
+ /**
73040
+ * Return button saver (discontinued)
73041
+ * @returns {ButtonSaver}
73042
  */
73043
 
73044
  }, {
73072
  }
73073
  });
73074
  }
73075
+ /**
73076
+ * Open a page on the dashboard when clicking on a button/group
73077
+ * @param {*} action
73078
  */
73079
 
73080
  }, {
77221
  });
77222
  return null; // Future: custom crash report window, requires manual API calls to sentry
77223
 
77224
+ /*return (
77225
+ <Dialog
77226
+ open={true}
77227
+ maxWidth={"sm"}
77228
+ fullWidth={true}
77229
+ aria-labelledby="max-width-dialog-title"
77230
+ >
77231
+ <DialogTitle id="max-width-dialog-title">
77232
+ Buttonizer has crashed!
77233
+ </DialogTitle>
77234
+ <DialogContent>
77235
+ <DialogContentText>
77236
+ Buttonizer has crashed. Our development team has been notified. If
77237
+ you'd like to help, tell us what happened below.
77238
+ </DialogContentText>
77239
+ <Divider />
77240
+ <form noValidate>
77241
+ <TextField
77242
+ placeholder="Thomas Anderson"
77243
+ variant="outlined"
77244
+ label="Name"
77245
+ />
77246
+ <TextField
77247
+ placeholder="neo@example.com"
77248
+ variant="outlined"
77249
+ label="Email"
77250
+ />
77251
+ <TextField
77252
+ multiline
77253
+ placeholder="I clicked on 'X', added a button, then hit 'Confirm'"
77254
+ variant="outlined"
77255
+ rows="4"
77256
+ rowsMax="6"
77257
+ label="What happened?"
77258
+ />
77259
+ </form>
77260
+ </DialogContent>
77261
+ <DialogActions>
77262
+ <Button
77263
+ href="https://community.buttonizer.pro/"
77264
+ color="secondary"
77265
+ variant="contained"
77266
+ target="_blank"
77267
+ >
77268
+ Submit
77269
+ </Button>
77270
+ </DialogActions>
77271
+ </Dialog>
77272
  );*/
77273
  }
77274
 
77464
 
77465
  /***/ }),
77466
 
77467
+ /***/ 13211:
77468
+ /***/ (function(module) {
77469
 
77470
+ /* global module */
77471
+ module.exports = {
77472
+ group: {
77473
+ height: "56px",
77474
+ width: "56px",
77475
+ space: "0px"
77476
+ },
77477
+ button: {}
77478
+ };
77479
 
77480
+ /***/ }),
77481
 
77482
+ /***/ 87787:
77483
+ /***/ (function(module) {
77484
 
77485
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
77486
 
77487
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
77488
 
77489
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
77490
 
77491
+ /* global module */
77492
+ var button = {
77493
+ width: "56px",
77494
+ height: "56px",
77495
+ box_shadow_disabled: true,
77496
+ border_radius_override: "0px",
77497
+ space: "0px",
77498
+ border_radius: ["0px", "0px"],
77499
+ label_position: "56px",
77500
+ label_border_radius: ["0px", "0px"],
77501
+ label_margin: ["0px", "0px"],
77502
+ label_padding: ["0 20px", "0 20px"]
77503
+ };
77504
+ module.exports = {
77505
+ button: _objectSpread({}, button),
77506
+ group: _objectSpread(_objectSpread({}, button), {}, {
77507
+ label_same_width: true
77508
+ }),
77509
+ extraJSS: {
77510
+ label: {
77511
+ height: "56px",
77512
+ "line-height": "56px"
77513
+ }
77514
+ }
77515
+ };
77516
 
77517
+ /***/ }),
77518
 
77519
+ /***/ 39575:
77520
+ /***/ (function(module) {
77521
+
77522
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
77523
+
77524
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
77525
+
77526
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
77527
+
77528
+ /* global module */
77529
+ var button = {
77530
+ width: "56px",
77531
+ height: "56px",
77532
+ box_shadow_disabled: true,
77533
+ border_radius_override: "0px",
77534
+ space: "0px",
77535
+ border_radius: ["0px", "0px"],
77536
+ label_position: "56px",
77537
+ label_border_radius: ["0px", "0px"],
77538
+ label_margin: ["0px", "0px"],
77539
+ label_padding: ["0 20px", "0 20px"]
77540
+ };
77541
  module.exports = {
77542
+ button: _objectSpread({}, button),
77543
+ group: _objectSpread(_objectSpread({}, button), {}, {
77544
+ show_label_desktop: "hover",
77545
+ show_label_mobile: "hide"
77546
+ }),
77547
+ extraJSS: {
77548
+ label: {
77549
+ height: "56px",
77550
+ "line-height": "56px"
77551
+ }
77552
+ }
77553
+ };
77554
 
77555
+ /***/ }),
 
 
77556
 
77557
+ /***/ 80211:
77558
+ /***/ (function(module) {
77559
+
77560
+ /* global module */
77561
+ module.exports = {
77562
+ group: {
77563
+ width: "fit-content",
77564
+ label_background_color: ["transparent", "transparent"],
77565
+ label_padding: ["0 20px", "0 20px"],
77566
+ label_position: "0px",
77567
+ border_radius: ["10px"],
77568
+ label: "Group Label"
77569
+ },
77570
+ button: {
77571
+ width: "fit-content",
77572
+ label_background_color: ["transparent", "transparent"],
77573
+ label_padding: ["0 20px", "0 20px"],
77574
+ label_position: "0px",
77575
+ border_radius: ["10px"],
77576
+ label: "Button Label"
77577
+ },
77578
+ extraJSS: {
77579
+ position: {
77580
+ horizontal: "right: 5%",
77581
+ vertical: "bottom: 5%"
77582
  },
 
 
 
 
77583
 
77584
+ get group() {
77585
+ return {
77586
+ "align-items": this.position.horizontal[0] === "right" ? "flex-end" : "flex-start"
77587
+ };
77588
+ },
77589
 
77590
+ icon: {
77591
+ display: "none"
77592
+ },
77593
+ image: {
77594
+ display: "none"
77595
+ },
77596
+ button: {
77597
+ margin: "0 0 10px",
77598
+ "min-width": "42px"
77599
+ },
77600
+ label: {
77601
+ display: "block",
77602
+ opacity: "1 !important",
77603
+ visibility: "visible !important",
77604
+ position: "inherit",
77605
+ height: "56px",
77606
+ "line-height": "56px"
77607
+ },
77608
 
77609
+ set setPosition(pos) {
77610
+ this.position = pos;
77611
+ }
77612
 
77613
+ }
77614
+ };
 
77615
 
77616
+ /***/ }),
77617
+
77618
+ /***/ 42837:
77619
+ /***/ (function(module) {
77620
+
77621
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
77622
+
77623
+ /* global module */
77624
+ module.exports = {
77625
+ button: {
77626
+ width: "fit-content",
77627
+ label_background_color: ["transparent", "transparent"],
77628
+ label_padding: ["0 20px", "0 20px"],
77629
+ label_position: "0px",
77630
+ border_radius: ["10px"],
77631
+ label: "Button Label"
77632
  },
77633
+ group: {
77634
+ width: "fit-content",
77635
+ label_background_color: ["transparent", "transparent"],
77636
+ label_padding: ["0 20px", "0 20px"],
77637
+ label_position: "0px",
77638
+ border_radius: ["10px"],
77639
+ label: "Group Label"
77640
+ },
77641
+ extraJSS: {
77642
+ position: {
77643
+ horizontal: "right: 5%",
77644
+ vertical: "bottom: 5%"
77645
  },
77646
 
77647
  get group() {
77648
+ return {
77649
+ "align-items": this.position.horizontal[0] === "right" ? "flex-end" : "flex-start"
77650
+ };
77651
  },
77652
 
77653
+ get button() {
77654
+ return {
77655
+ "align-items": "center",
77656
+ display: "flex",
77657
+ margin: "0 0 10px",
77658
+ "flex-direction": this.position.horizontal[0] === "right" ? "row-reverse" : "row",
77659
+ "min-width": "42px"
77660
+ };
77661
+ },
77662
 
77663
+ get icon() {
77664
+ return _defineProperty({
77665
+ top: 0,
77666
+ position: "initial",
77667
+ transform: "initial !important",
77668
+ margin: "0"
77669
+ }, "margin-".concat(this.position.horizontal[0]), "15px");
77670
+ },
77671
+
77672
+ get image() {
77673
+ return _defineProperty({
77674
+ top: 0,
77675
+ position: "initial",
77676
+ transform: "initial !important",
77677
+ margin: "0"
77678
+ }, "margin-".concat(this.position.horizontal[0]), "15px");
77679
+ },
77680
+
77681
+ label: {
77682
+ display: "inline-block",
77683
+ opacity: "1 !important",
77684
+ visibility: "visible !important",
77685
+ position: "initial",
77686
+ height: "56px",
77687
+ "line-height": "56px",
77688
+ top: 0,
77689
+ transform: "initial"
77690
+ },
77691
+
77692
+ set setPosition(pos) {
77693
+ this.position = pos;
77694
  }
77695
 
77696
  }
77698
 
77699
  /***/ }),
77700
 
77701
+ /***/ 54645:
77702
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
77703
+
77704
+ /* global module, require */
77705
+ var Default = __webpack_require__(13211);
77706
+
77707
+ var Square = __webpack_require__(39575);
77708
+
77709
+ var Rectangle = __webpack_require__(87787);
77710
+
77711
+ var TextIcon = __webpack_require__(42837);
77712
+
77713
+ var Text = __webpack_require__(80211);
77714
+
77715
+ module.exports = {
77716
+ "default": Default,
77717
+ square: Square,
77718
+ rectangle: Rectangle,
77719
+ "text-icon": TextIcon,
77720
+ text: Text
77721
+ };
77722
+
77723
+ /***/ }),
77724
+
77725
+ /***/ 59528:
77726
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
77727
+
77728
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
77729
+
77730
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
77731
+
77732
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
77733
+
77734
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
77735
+
77736
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
77737
+
77738
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
77739
+
77740
+ /* global module, require */
77741
+ var defaults = __webpack_require__(46314);
77742
+
77743
+ var menuStyles = __webpack_require__(54645);
77744
+
77745
+ var merge = __webpack_require__(82492);
77746
+
77747
+ module.exports = {
77748
+ get button() {
77749
+ return merge({}, defaults.button);
77750
+ },
77751
+
77752
+ get group() {
77753
+ return merge({}, defaults.button, defaults.group);
77754
+ },
77755
+
77756
+ get formatted() {
77757
+ return Object.entries(merge({}, defaults.group, defaults.button)).filter(function (entry) {
77758
+ return Array.isArray(entry[1]);
77759
+ }).map(function (_ref) {
77760
+ var _ref2 = _slicedToArray(_ref, 1),
77761
+ key = _ref2[0];
77762
+
77763
+ return key;
77764
+ });
77765
+ },
77766
+
77767
+ get menuStyle() {
77768
+ return menuStyles;
77769
+ }
77770
+
77771
+ };
77772
+
77773
+ /***/ }),
77774
+
77775
  /***/ 76124:
77776
  /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
77777
 
101120
  * @memberOf _
101121
  * @since 4.3.0
101122
  * @category Lang
101123
+ * @param {*} value The value to check.
101124
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101125
  * @example
101126
  *
101127
+ * _.isSet(new Set);
101128
+ * // => true
 
 
101129
  *
101130
+ * _.isSet(new WeakSet);
101131
  * // => false
101132
  */
101133
+ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
 
 
101134
 
101135
+ module.exports = isSet;
101136
 
101137
 
101138
  /***/ }),
101139
 
101140
+ /***/ 47037:
101141
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
101142
+
101143
+ var baseGetTag = __webpack_require__(44239),
101144
+ isArray = __webpack_require__(1469),
101145
+ isObjectLike = __webpack_require__(37005);
101146
+
101147
+ /** `Object#toString` result references. */
101148
+ var stringTag = '[object String]';
101149
 
101150
  /**
101151
+ * Checks if `value` is classified as a `String` primitive or object.
101152
  *
101153
  * @static
101154
+ * @since 0.1.0
101155
  * @memberOf _
101156
+ * @category Lang
101157
+ * @param {*} value The value to check.
101158
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
101159
  * @example
101160
  *
101161
+ * _.isString('abc');
101162
+ * // => true
101163
+ *
101164
+ * _.isString(1);
101165
+ * // => false
101166
  */
101167
+ function isString(value) {
101168
+ return typeof value == 'string' ||
101169
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
101170
  }
101171
 
101172
+ module.exports = isString;
101173
 
101174
 
101175
  /***/ }),
101176
 
101177
+ /***/ 33448:
101178
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
101179
 
101180
+ var baseGetTag = __webpack_require__(44239),
101181
+ isObjectLike = __webpack_require__(37005);
101182
 
101183
+ /** `Object#toString` result references. */
101184
+ var symbolTag = '[object Symbol]';
101185
 
101186
  /**
101187
+ * Checks if `value` is classified as a `Symbol` primitive or object.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101188
  *
101189
  * @static
101190
  * @memberOf _
101191
+ * @since 4.0.0
101192
+ * @category Lang
101193
+ * @param {*} value The value to check.
101194
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 
 
 
 
 
 
101195
  * @example
101196
  *
101197
+ * _.isSymbol(Symbol.iterator);
101198
+ * // => true
 
 
 
 
101199
  *
101200
+ * _.isSymbol('abc');
101201
+ * // => false
101202
  */
101203
+ function isSymbol(value) {
101204
+ return typeof value == 'symbol' ||
101205
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
 
 
 
 
 
 
 
 
 
 
 
 
 
101206
  }
101207
 
101208
+ module.exports = isSymbol;
101209
 
101210
 
101211
  /***/ }),
101212
 
101213
+ /***/ 36719:
101214
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
101215
 
101216
+ var baseIsTypedArray = __webpack_require__(38749),
101217
+ baseUnary = __webpack_require__(7518),
101218
+ nodeUtil = __webpack_require__(31167);
 
 
 
 
 
 
 
 
 
 
 
 
101219
 
101220
+ /* Node.js helper references. */
101221
+ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
101222
 
101223
  /**
101224
+ * Checks if `value` is classified as a typed array.
101225
  *
101226
  * @static
101227
  * @memberOf _
101228
+ * @since 3.0.0
101229
  * @category Lang
101230
+ * @param {*} value The value to check.
101231
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
101232
  * @example
101233
  *
101234
+ * _.isTypedArray(new Uint8Array);
101235
+ * // => true
 
 
 
 
 
 
101236
  *
101237
+ * _.isTypedArray([]);
101238
+ * // => false
101239
  */
101240
+ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101241
 
101242
+ module.exports = isTypedArray;
101243
 
101244
 
101245
  /***/ }),
101246
 
101247
+ /***/ 3674:
101248
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
101249
 
101250
+ var arrayLikeKeys = __webpack_require__(14636),
101251
+ baseKeys = __webpack_require__(280),
101252
+ isArrayLike = __webpack_require__(98612);
101253
 
101254
  /**
101255
+ * Creates an array of the own enumerable property names of `object`.
101256
+ *
101257
+ * **Note:** Non-object values are coerced to objects. See the
101258
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
101259
+ * for more details.
101260
  *
101261
  * @static
101262
+ * @since 0.1.0
101263
  * @memberOf _
101264
+ * @category Object
101265
+ * @param {Object} object The object to query.
101266
+ * @returns {Array} Returns the array of property names.
 
101267
  * @example
101268
  *
101269
  * function Foo() {
101270
+ * this.a = 1;
101271
  * this.b = 2;
101272
  * }
101273
  *
101274
  * Foo.prototype.c = 3;
101275
  *
101276
+ * _.keys(new Foo);
101277
+ * // => ['a', 'b'] (iteration order is not guaranteed)
101278
  *
101279
+ * _.keys('hi');
101280
+ * // => ['0', '1']
101281
  */
101282
+ function keys(object) {
101283
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
101284
  }
101285
 
101286
+ module.exports = keys;
101287
 
101288
 
101289
  /***/ }),
101290
 
101291
+ /***/ 81704:
101292
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
101293
 
101294
+ var arrayLikeKeys = __webpack_require__(14636),
101295
+ baseKeysIn = __webpack_require__(10313),
101296
+ isArrayLike = __webpack_require__(98612);
101297
 
101298
  /**
101299
+ * Creates an array of the own and inherited enumerable property names of `object`.
101300
+ *
101301
+ * **Note:** Non-object values are coerced to objects.
101302
  *
101303
  * @static
101304
  * @memberOf _
101305
+ * @since 3.0.0
101306
+ * @category Object
101307
+ * @param {Object} object The object to query.
101308
+ * @returns {Array} Returns the array of property names.
101309
  * @example
101310
  *
101311
+ * function Foo() {
101312
+ * this.a = 1;
101313
+ * this.b = 2;
101314
+ * }
101315
  *
101316
+ * Foo.prototype.c = 3;
 
101317
  *
101318
+ * _.keysIn(new Foo);
101319
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
101320
  */
101321
+ function keysIn(object) {
101322
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
101323
  }
101324
 
101325
+ module.exports = keysIn;
101326
 
101327
 
101328
  /***/ }),
101329
 
101330
+ /***/ 96486:
101331
+ /***/ (function(module, exports, __webpack_require__) {
101332
 
101333
+ /* module decorator */ module = __webpack_require__.nmd(module);
101334
+ var __WEBPACK_AMD_DEFINE_RESULT__;/**
101335
+ * @license
101336
+ * Lodash <https://lodash.com/>
101337
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
101338
+ * Released under MIT license <https://lodash.com/license>
101339
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
101340
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
101341
+ */
101342
+ ;(function() {
101343
+
101344
+ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
101345
+ var undefined;
101346
+
101347
+ /** Used as the semantic version number. */
101348
+ var VERSION = '4.17.21';
101349
+
101350
+ /** Used as the size to enable large array optimizations. */
101351
+ var LARGE_ARRAY_SIZE = 200;
101352
+
101353
+ /** Error message constants. */
101354
+ var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
101355
+ FUNC_ERROR_TEXT = 'Expected a function',
101356
+ INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
101357
+
101358
+ /** Used to stand-in for `undefined` hash values. */
101359
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
101360
+
101361
+ /** Used as the maximum memoize cache size. */
101362
+ var MAX_MEMOIZE_SIZE = 500;
101363
+
101364
+ /** Used as the internal argument placeholder. */
101365
+ var PLACEHOLDER = '__lodash_placeholder__';
101366
+
101367
+ /** Used to compose bitmasks for cloning. */
101368
+ var CLONE_DEEP_FLAG = 1,
101369
+ CLONE_FLAT_FLAG = 2,
101370
+ CLONE_SYMBOLS_FLAG = 4;
101371
+
101372
+ /** Used to compose bitmasks for value comparisons. */
101373
+ var COMPARE_PARTIAL_FLAG = 1,
101374
+ COMPARE_UNORDERED_FLAG = 2;
101375
+
101376
+ /** Used to compose bitmasks for function metadata. */
101377
+ var WRAP_BIND_FLAG = 1,
101378
+ WRAP_BIND_KEY_FLAG = 2,
101379
+ WRAP_CURRY_BOUND_FLAG = 4,
101380
+ WRAP_CURRY_FLAG = 8,
101381
+ WRAP_CURRY_RIGHT_FLAG = 16,
101382
+ WRAP_PARTIAL_FLAG = 32,
101383
+ WRAP_PARTIAL_RIGHT_FLAG = 64,
101384
+ WRAP_ARY_FLAG = 128,
101385
+ WRAP_REARG_FLAG = 256,
101386
+ WRAP_FLIP_FLAG = 512;
101387
+
101388
+ /** Used as default options for `_.truncate`. */
101389
+ var DEFAULT_TRUNC_LENGTH = 30,
101390
+ DEFAULT_TRUNC_OMISSION = '...';
101391
+
101392
+ /** Used to detect hot functions by number of calls within a span of milliseconds. */
101393
+ var HOT_COUNT = 800,
101394
+ HOT_SPAN = 16;
101395
+
101396
+ /** Used to indicate the type of lazy iteratees. */
101397
+ var LAZY_FILTER_FLAG = 1,
101398
+ LAZY_MAP_FLAG = 2,
101399
+ LAZY_WHILE_FLAG = 3;
101400
+
101401
+ /** Used as references for various `Number` constants. */
101402
+ var INFINITY = 1 / 0,
101403
+ MAX_SAFE_INTEGER = 9007199254740991,
101404
+ MAX_INTEGER = 1.7976931348623157e+308,
101405
+ NAN = 0 / 0;
101406
+
101407
+ /** Used as references for the maximum length and index of an array. */
101408
+ var MAX_ARRAY_LENGTH = 4294967295,
101409
+ MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
101410
+ HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
101411
+
101412
+ /** Used to associate wrap methods with their bit flags. */
101413
+ var wrapFlags = [
101414
+ ['ary', WRAP_ARY_FLAG],
101415
+ ['bind', WRAP_BIND_FLAG],
101416
+ ['bindKey', WRAP_BIND_KEY_FLAG],
101417
+ ['curry', WRAP_CURRY_FLAG],
101418
+ ['curryRight', WRAP_CURRY_RIGHT_FLAG],
101419
+ ['flip', WRAP_FLIP_FLAG],
101420
+ ['partial', WRAP_PARTIAL_FLAG],
101421
+ ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
101422
+ ['rearg', WRAP_REARG_FLAG]
101423
+ ];
101424
 
101425
+ /** `Object#toString` result references. */
101426
+ var argsTag = '[object Arguments]',
101427
+ arrayTag = '[object Array]',
101428
+ asyncTag = '[object AsyncFunction]',
101429
+ boolTag = '[object Boolean]',
101430
+ dateTag = '[object Date]',
101431
+ domExcTag = '[object DOMException]',
101432
+ errorTag = '[object Error]',
101433
+ funcTag = '[object Function]',
101434
+ genTag = '[object GeneratorFunction]',
101435
+ mapTag = '[object Map]',
101436
+ numberTag = '[object Number]',
101437
+ nullTag = '[object Null]',
101438
+ objectTag = '[object Object]',
101439
+ promiseTag = '[object Promise]',
101440
+ proxyTag = '[object Proxy]',
101441
+ regexpTag = '[object RegExp]',
101442
+ setTag = '[object Set]',
101443
+ stringTag = '[object String]',
101444
+ symbolTag = '[object Symbol]',
101445
+ undefinedTag = '[object Undefined]',
101446
+ weakMapTag = '[object WeakMap]',
101447
+ weakSetTag = '[object WeakSet]';
101448
+
101449
+ var arrayBufferTag = '[object ArrayBuffer]',
101450
+ dataViewTag = '[object DataView]',
101451
+ float32Tag = '[object Float32Array]',
101452
+ float64Tag = '[object Float64Array]',
101453
+ int8Tag = '[object Int8Array]',
101454
+ int16Tag = '[object Int16Array]',
101455
+ int32Tag = '[object Int32Array]',
101456
+ uint8Tag = '[object Uint8Array]',
101457
+ uint8ClampedTag = '[object Uint8ClampedArray]',
101458
+ uint16Tag = '[object Uint16Array]',
101459
+ uint32Tag = '[object Uint32Array]';
101460
+
101461
+ /** Used to match empty string literals in compiled template source. */
101462
+ var reEmptyStringLeading = /\b__p \+= '';/g,
101463
+ reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
101464
+ reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
101465
+
101466
+ /** Used to match HTML entities and HTML characters. */
101467
+ var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,
101468
+ reUnescapedHtml = /[&<>"']/g,
101469
+ reHasEscapedHtml = RegExp(reEscapedHtml.source),
101470
+ reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
101471
+
101472
+ /** Used to match template delimiters. */
101473
+ var reEscape = /<%-([\s\S]+?)%>/g,
101474
+ reEvaluate = /<%([\s\S]+?)%>/g,
101475
+ reInterpolate = /<%=([\s\S]+?)%>/g;
101476
+
101477
+ /** Used to match property names within property paths. */
101478
+ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
101479
+ reIsPlainProp = /^\w*$/,
101480
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
101481
 
101482
+ /**
101483
+ * Used to match `RegExp`
101484
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
101485
+ */
101486
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
101487
+ reHasRegExpChar = RegExp(reRegExpChar.source);
101488
 
101489
+ /** Used to match leading whitespace. */
101490
+ var reTrimStart = /^\s+/;
 
 
101491
 
101492
+ /** Used to match a single whitespace character. */
101493
+ var reWhitespace = /\s/;
101494
 
101495
+ /** Used to match wrap detail comments. */
101496
+ var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
101497
+ reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/,
101498
+ reSplitDetails = /,? & /;
 
101499
 
101500
+ /** Used to match words composed of alphanumeric characters. */
101501
+ var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
101502
 
101503
+ /**
101504
+ * Used to validate the `validate` option in `_.template` variable.
101505
+ *
101506
+ * Forbids characters which could potentially change the meaning of the function argument definition:
101507
+ * - "()," (modification of function parameters)
101508
+ * - "=" (default value)
101509
+ * - "[]{}" (destructuring of function parameters)
101510
+ * - "/" (beginning of a comment)
101511
+ * - whitespace
101512
+ */
101513
+ var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
101514
 
101515
+ /** Used to match backslashes in property paths. */
101516
+ var reEscapeChar = /\\(\\)?/g;
 
 
 
 
 
 
 
 
 
101517
 
101518
+ /**
101519
+ * Used to match
101520
+ * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
101521
+ */
101522
+ var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
101523
+
101524
+ /** Used to match `RegExp` flags from their coerced string values. */
101525
+ var reFlags = /\w*$/;
101526
+
101527
+ /** Used to detect bad signed hexadecimal string values. */
101528
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
101529
+
101530
+ /** Used to detect binary string values. */
101531
+ var reIsBinary = /^0b[01]+$/i;
101532
+
101533
+ /** Used to detect host constructors (Safari). */
101534
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
101535
+
101536
+ /** Used to detect octal string values. */
101537
+ var reIsOctal = /^0o[0-7]+$/i;
101538
+
101539
+ /** Used to detect unsigned integer values. */
101540
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
101541
+
101542
+ /** Used to match Latin Unicode letters (excluding mathematical operators). */
101543
+ var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
101544
+
101545
+ /** Used to ensure capturing order of template delimiters. */
101546
+ var reNoMatch = /($^)/;
101547
+
101548
+ /** Used to match unescaped characters in compiled string literals. */
101549
+ var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
101550
+
101551
+ /** Used to compose unicode character classes. */
101552
+ var rsAstralRange = '\\ud800-\\udfff',
101553
+ rsComboMarksRange = '\\u0300-\\u036f',
101554
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
101555
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
101556
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
101557
+ rsDingbatRange = '\\u2700-\\u27bf',
101558
+ rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
101559
+ rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
101560
+ rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
101561
+ rsPunctuationRange = '\\u2000-\\u206f',
101562
+ rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',
101563
+ rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
101564
+ rsVarRange = '\\ufe0e\\ufe0f',
101565
+ rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
101566
+
101567
+ /** Used to compose unicode capture groups. */
101568
+ var rsApos = "['\u2019]",
101569
+ rsAstral = '[' + rsAstralRange + ']',
101570
+ rsBreak = '[' + rsBreakRange + ']',
101571
+ rsCombo = '[' + rsComboRange + ']',
101572
+ rsDigits = '\\d+',
101573
+ rsDingbat = '[' + rsDingbatRange + ']',
101574
+ rsLower = '[' + rsLowerRange + ']',
101575
+ rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
101576
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
101577
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
101578
+ rsNonAstral = '[^' + rsAstralRange + ']',
101579
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
101580
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
101581
+ rsUpper = '[' + rsUpperRange + ']',
101582
+ rsZWJ = '\\u200d';
101583
+
101584
+ /** Used to compose unicode regexes. */
101585
+ var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
101586
+ rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
101587
+ rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
101588
+ rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
101589
+ reOptMod = rsModifier + '?',
101590
+ rsOptVar = '[' + rsVarRange + ']?',
101591
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
101592
+ rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',
101593
+ rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',
101594
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
101595
+ rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
101596
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
101597
+
101598
+ /** Used to match apostrophes. */
101599
+ var reApos = RegExp(rsApos, 'g');
101600
 
101601
+ /**
101602
+ * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
101603
+ * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
101604
+ */
101605
+ var reComboMark = RegExp(rsCombo, 'g');
101606
+
101607
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
101608
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
101609
+
101610
+ /** Used to match complex or compound words. */
101611
+ var reUnicodeWord = RegExp([
101612
+ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
101613
+ rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
101614
+ rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
101615
+ rsUpper + '+' + rsOptContrUpper,
101616
+ rsOrdUpper,
101617
+ rsOrdLower,
101618
+ rsDigits,
101619
+ rsEmoji
101620
+ ].join('|'), 'g');
101621
+
101622
+ /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
101623
+ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
101624
+
101625
+ /** Used to detect strings that need a more robust regexp to match words. */
101626
+ var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
101627
+
101628
+ /** Used to assign default `context` object properties. */
101629
+ var contextProps = [
101630
+ 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
101631
+ 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
101632
+ 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
101633
+ 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
101634
+ '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
101635
+ ];
101636
 
101637
+ /** Used to make template sourceURLs easier to identify. */
101638
+ var templateCounter = -1;
101639
+
101640
+ /** Used to identify `toStringTag` values of typed arrays. */
101641
+ var typedArrayTags = {};
101642
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
101643
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
101644
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
101645
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
101646
+ typedArrayTags[uint32Tag] = true;
101647
+ typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
101648
+ typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
101649
+ typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
101650
+ typedArrayTags[errorTag] = typedArrayTags[funcTag] =
101651
+ typedArrayTags[mapTag] = typedArrayTags[numberTag] =
101652
+ typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
101653
+ typedArrayTags[setTag] = typedArrayTags[stringTag] =
101654
+ typedArrayTags[weakMapTag] = false;
101655
+
101656
+ /** Used to identify `toStringTag` values supported by `_.clone`. */
101657
+ var cloneableTags = {};
101658
+ cloneableTags[argsTag] = cloneableTags[arrayTag] =
101659
+ cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
101660
+ cloneableTags[boolTag] = cloneableTags[dateTag] =
101661
+ cloneableTags[float32Tag] = cloneableTags[float64Tag] =
101662
+ cloneableTags[int8Tag] = cloneableTags[int16Tag] =
101663
+ cloneableTags[int32Tag] = cloneableTags[mapTag] =
101664
+ cloneableTags[numberTag] = cloneableTags[objectTag] =
101665
+ cloneableTags[regexpTag] = cloneableTags[setTag] =
101666
+ cloneableTags[stringTag] = cloneableTags[symbolTag] =
101667
+ cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
101668
+ cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
101669
+ cloneableTags[errorTag] = cloneableTags[funcTag] =
101670
+ cloneableTags[weakMapTag] = false;
101671
+
101672
+ /** Used to map Latin Unicode letters to basic Latin letters. */
101673
+ var deburredLetters = {
101674
+ // Latin-1 Supplement block.
101675
+ '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
101676
+ '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
101677
+ '\xc7': 'C', '\xe7': 'c',
101678
+ '\xd0': 'D', '\xf0': 'd',
101679
+ '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
101680
+ '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
101681
+ '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
101682
+ '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
101683
+ '\xd1': 'N', '\xf1': 'n',
101684
+ '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
101685
+ '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
101686
+ '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
101687
+ '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
101688
+ '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
101689
+ '\xc6': 'Ae', '\xe6': 'ae',
101690
+ '\xde': 'Th', '\xfe': 'th',
101691
+ '\xdf': 'ss',
101692
+ // Latin Extended-A block.
101693
+ '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
101694
+ '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
101695
+ '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
101696
+ '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
101697
+ '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
101698
+ '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
101699
+ '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
101700
+ '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
101701
+ '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
101702
+ '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
101703
+ '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
101704
+ '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
101705
+ '\u0134': 'J', '\u0135': 'j',
101706
+ '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
101707
+ '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
101708
+ '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
101709
+ '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
101710
+ '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
101711
+ '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
101712
+ '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
101713
+ '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
101714
+ '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
101715
+ '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
101716
+ '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
101717
+ '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
101718
+ '\u0163': 't', '\u0165': 't', '\u0167': 't',
101719
+ '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
101720
+ '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
101721
+ '\u0174': 'W', '\u0175': 'w',
101722
+ '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
101723
+ '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
101724
+ '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
101725
+ '\u0132': 'IJ', '\u0133': 'ij',
101726
+ '\u0152': 'Oe', '\u0153': 'oe',
101727
+ '\u0149': "'n", '\u017f': 's'
101728
+ };
101729
+
101730
+ /** Used to map characters to HTML entities. */
101731
+ var htmlEscapes = {
101732
+ '&': '&amp;',
101733
+ '<': '&lt;',
101734
+ '>': '&gt;',
101735
+ '"': '&quot;',
101736
+ "'": '&#39;'
101737
+ };
101738
+
101739
+ /** Used to map HTML entities to characters. */
101740
+ var htmlUnescapes = {
101741
+ '&amp;': '&',
101742
+ '&lt;': '<',
101743
+ '&gt;': '>',
101744
+ '&quot;': '"',
101745
+ '&#39;': "'"
101746
+ };
101747
+
101748
+ /** Used to escape characters for inclusion in compiled string literals. */
101749
+ var stringEscapes = {
101750
+ '\\': '\\',
101751
+ "'": "'",
101752
+ '\n': 'n',
101753
+ '\r': 'r',
101754
+ '\u2028': 'u2028',
101755
+ '\u2029': 'u2029'
101756
+ };
101757
+
101758
+ /** Built-in method references without a dependency on `root`. */
101759
+ var freeParseFloat = parseFloat,
101760
+ freeParseInt = parseInt;
101761
+
101762
+ /** Detect free variable `global` from Node.js. */
101763
+ var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
101764
+
101765
+ /** Detect free variable `self`. */
101766
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
101767
+
101768
+ /** Used as a reference to the global object. */
101769
+ var root = freeGlobal || freeSelf || Function('return this')();
101770
+
101771
+ /** Detect free variable `exports`. */
101772
+ var freeExports = true && exports && !exports.nodeType && exports;
101773
+
101774
+ /** Detect free variable `module`. */
101775
+ var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;
101776
+
101777
+ /** Detect the popular CommonJS extension `module.exports`. */
101778
+ var moduleExports = freeModule && freeModule.exports === freeExports;
101779
+
101780
+ /** Detect free variable `process` from Node.js. */
101781
+ var freeProcess = moduleExports && freeGlobal.process;
101782
+
101783
+ /** Used to access faster Node.js helpers. */
101784
+ var nodeUtil = (function() {
101785
+ try {
101786
+ // Use `util.types` for Node.js 10+.
101787
+ var types = freeModule && freeModule.require && freeModule.require('util').types;
101788
 
101789
+ if (types) {
101790
+ return types;
101791
+ }
101792
 
101793
+ // Legacy `process.binding('util')` for Node.js < 10.
101794
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
101795
+ } catch (e) {}
101796
+ }());
 
101797
 
101798
+ /* Node.js helper references. */
101799
+ var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,
101800
+ nodeIsDate = nodeUtil && nodeUtil.isDate,
101801
+ nodeIsMap = nodeUtil && nodeUtil.isMap,
101802
+ nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,
101803
+ nodeIsSet = nodeUtil && nodeUtil.isSet,
101804
+ nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
 
 
101805
 
101806
+ /*--------------------------------------------------------------------------*/
 
101807
 
101808
+ /**
101809
+ * A faster alternative to `Function#apply`, this function invokes `func`
101810
+ * with the `this` binding of `thisArg` and the arguments of `args`.
101811
+ *
101812
+ * @private
101813
+ * @param {Function} func The function to invoke.
101814
+ * @param {*} thisArg The `this` binding of `func`.
101815
+ * @param {Array} args The arguments to invoke `func` with.
101816
+ * @returns {*} Returns the result of `func`.
101817
+ */
101818
+ function apply(func, thisArg, args) {
101819
+ switch (args.length) {
101820
+ case 0: return func.call(thisArg);
101821
+ case 1: return func.call(thisArg, args[0]);
101822
+ case 2: return func.call(thisArg, args[0], args[1]);
101823
+ case 3: return func.call(thisArg, args[0], args[1], args[2]);
101824
+ }
101825
+ return func.apply(thisArg, args);
101826
+ }
101827
 
101828
+ /**
101829
+ * A specialized version of `baseAggregator` for arrays.
101830
+ *
101831
+ * @private
101832
+ * @param {Array} [array] The array to iterate over.
101833
+ * @param {Function} setter The function to set `accumulator` values.
101834
+ * @param {Function} iteratee The iteratee to transform keys.
101835
+ * @param {Object} accumulator The initial aggregated object.
101836
+ * @returns {Function} Returns `accumulator`.
101837
+ */
101838
+ function arrayAggregator(array, setter, iteratee, accumulator) {
101839
+ var index = -1,
101840
+ length = array == null ? 0 : array.length;
101841
 
101842
+ while (++index < length) {
101843
+ var value = array[index];
101844
+ setter(accumulator, value, iteratee(value), array);
101845
+ }
101846
+ return accumulator;
101847
+ }
101848
 
101849
+ /**
101850
+ * A specialized version of `_.forEach` for arrays without support for
101851
+ * iteratee shorthands.
101852
+ *
101853
+ * @private
101854
+ * @param {Array} [array] The array to iterate over.
101855
+ * @param {Function} iteratee The function invoked per iteration.
101856
+ * @returns {Array} Returns `array`.
101857
+ */
101858
+ function arrayEach(array, iteratee) {
101859
+ var index = -1,
101860
+ length = array == null ? 0 : array.length;
101861
+
101862
+ while (++index < length) {
101863
+ if (iteratee(array[index], index, array) === false) {
101864
+ break;
101865
+ }
101866
+ }
101867
+ return array;
101868
+ }
101869
+
101870
+ /**
101871
+ * A specialized version of `_.forEachRight` for arrays without support for
101872
+ * iteratee shorthands.
101873
+ *
101874
+ * @private
101875
+ * @param {Array} [array] The array to iterate over.
101876
+ * @param {Function} iteratee The function invoked per iteration.
101877
+ * @returns {Array} Returns `array`.
101878
+ */
101879
+ function arrayEachRight(array, iteratee) {
101880
+ var length = array == null ? 0 : array.length;
101881
+
101882
+ while (length--) {
101883
+ if (iteratee(array[length], length, array) === false) {
101884
+ break;
101885
+ }
101886
+ }
101887
+ return array;
101888
+ }
101889
+
101890
+ /**
101891
+ * A specialized version of `_.every` for arrays without support for
101892
+ * iteratee shorthands.
101893
+ *
101894
+ * @private
101895
+ * @param {Array} [array] The array to iterate over.
101896
+ * @param {Function} predicate The function invoked per iteration.
101897
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
101898
+ * else `false`.
101899
+ */
101900
+ function arrayEvery(array, predicate) {
101901
+ var index = -1,
101902
+ length = array == null ? 0 : array.length;
101903
+
101904
+ while (++index < length) {
101905
+ if (!predicate(array[index], index, array)) {
101906
+ return false;
101907
+ }
101908
+ }
101909
+ return true;
101910
+ }
101911
+
101912
+ /**
101913
+ * A specialized version of `_.filter` for arrays without support for
101914
+ * iteratee shorthands.
101915
+ *
101916
+ * @private
101917
+ * @param {Array} [array] The array to iterate over.
101918
+ * @param {Function} predicate The function invoked per iteration.
101919
+ * @returns {Array} Returns the new filtered array.
101920
+ */
101921
+ function arrayFilter(array, predicate) {
101922
+ var index = -1,
101923
+ length = array == null ? 0 : array.length,
101924
+ resIndex = 0,
101925
+ result = [];
101926
+
101927
+ while (++index < length) {
101928
+ var value = array[index];
101929
+ if (predicate(value, index, array)) {
101930
+ result[resIndex++] = value;
101931
+ }
101932
+ }
101933
+ return result;
101934
+ }
101935
+
101936
+ /**
101937
+ * A specialized version of `_.includes` for arrays without support for
101938
+ * specifying an index to search from.
101939
+ *
101940
+ * @private
101941
+ * @param {Array} [array] The array to inspect.
101942
+ * @param {*} target The value to search for.
101943
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
101944
+ */
101945
+ function arrayIncludes(array, value) {
101946
+ var length = array == null ? 0 : array.length;
101947
+ return !!length && baseIndexOf(array, value, 0) > -1;
101948
+ }
101949
+
101950
+ /**
101951
+ * This function is like `arrayIncludes` except that it accepts a comparator.
101952
+ *
101953
+ * @private
101954
+ * @param {Array} [array] The array to inspect.
101955
+ * @param {*} target The value to search for.
101956
+ * @param {Function} comparator The comparator invoked per element.
101957
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
101958
+ */
101959
+ function arrayIncludesWith(array, value, comparator) {
101960
+ var index = -1,
101961
+ length = array == null ? 0 : array.length;
101962
+
101963
+ while (++index < length) {
101964
+ if (comparator(value, array[index])) {
101965
+ return true;
101966
+ }
101967
+ }
101968
+ return false;
101969
+ }
101970
+
101971
+ /**
101972
+ * A specialized version of `_.map` for arrays without support for iteratee
101973
+ * shorthands.
101974
+ *
101975
+ * @private
101976
+ * @param {Array} [array] The array to iterate over.
101977
+ * @param {Function} iteratee The function invoked per iteration.
101978
+ * @returns {Array} Returns the new mapped array.
101979
+ */
101980
+ function arrayMap(array, iteratee) {
101981
+ var index = -1,
101982
+ length = array == null ? 0 : array.length,
101983
+ result = Array(length);
101984
+
101985
+ while (++index < length) {
101986
+ result[index] = iteratee(array[index], index, array);
101987
+ }
101988
+ return result;
101989
+ }
101990
+
101991
+ /**
101992
+ * Appends the elements of `values` to `array`.
101993
+ *
101994
+ * @private
101995
+ * @param {Array} array The array to modify.
101996
+ * @param {Array} values The values to append.
101997
+ * @returns {Array} Returns `array`.
101998
+ */
101999
+ function arrayPush(array, values) {
102000
+ var index = -1,
102001
+ length = values.length,
102002
+ offset = array.length;
102003
+
102004
+ while (++index < length) {
102005
+ array[offset + index] = values[index];
102006
+ }
102007
+ return array;
102008
+ }
102009
+
102010
+ /**
102011
+ * A specialized version of `_.reduce` for arrays without support for
102012
+ * iteratee shorthands.
102013
+ *
102014
+ * @private
102015
+ * @param {Array} [array] The array to iterate over.
102016
+ * @param {Function} iteratee The function invoked per iteration.
102017
+ * @param {*} [accumulator] The initial value.
102018
+ * @param {boolean} [initAccum] Specify using the first element of `array` as
102019
+ * the initial value.
102020
+ * @returns {*} Returns the accumulated value.
102021
+ */
102022
+ function arrayReduce(array, iteratee, accumulator, initAccum) {
102023
+ var index = -1,
102024
+ length = array == null ? 0 : array.length;
102025
+
102026
+ if (initAccum && length) {
102027
+ accumulator = array[++index];
102028
+ }
102029
+ while (++index < length) {
102030
+ accumulator = iteratee(accumulator, array[index], index, array);
102031
+ }
102032
+ return accumulator;
102033
+ }
102034
+
102035
+ /**
102036
+ * A specialized version of `_.reduceRight` for arrays without support for
102037
+ * iteratee shorthands.
102038
+ *
102039
+ * @private
102040
+ * @param {Array} [array] The array to iterate over.
102041
+ * @param {Function} iteratee The function invoked per iteration.
102042
+ * @param {*} [accumulator] The initial value.
102043
+ * @param {boolean} [initAccum] Specify using the last element of `array` as
102044
+ * the initial value.
102045
+ * @returns {*} Returns the accumulated value.
102046
+ */
102047
+ function arrayReduceRight(array, iteratee, accumulator, initAccum) {
102048
+ var length = array == null ? 0 : array.length;
102049
+ if (initAccum && length) {
102050
+ accumulator = array[--length];
102051
+ }
102052
+ while (length--) {
102053
+ accumulator = iteratee(accumulator, array[length], length, array);
102054
+ }
102055
+ return accumulator;
102056
+ }
102057
+
102058
+ /**
102059
+ * A specialized version of `_.some` for arrays without support for iteratee
102060
+ * shorthands.
102061
+ *
102062
+ * @private
102063
+ * @param {Array} [array] The array to iterate over.
102064
+ * @param {Function} predicate The function invoked per iteration.
102065
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
102066
+ * else `false`.
102067
+ */
102068
+ function arraySome(array, predicate) {
102069
+ var index = -1,
102070
+ length = array == null ? 0 : array.length;
102071
 
102072
+ while (++index < length) {
102073
+ if (predicate(array[index], index, array)) {
102074
+ return true;
102075
+ }
102076
+ }
102077
+ return false;
102078
+ }
102079
+
102080
+ /**
102081
+ * Gets the size of an ASCII `string`.
102082
+ *
102083
+ * @private
102084
+ * @param {string} string The string inspect.
102085
+ * @returns {number} Returns the string size.
102086
+ */
102087
+ var asciiSize = baseProperty('length');
102088
+
102089
+ /**
102090
+ * Converts an ASCII `string` to an array.
102091
+ *
102092
+ * @private
102093
+ * @param {string} string The string to convert.
102094
+ * @returns {Array} Returns the converted array.
102095
+ */
102096
+ function asciiToArray(string) {
102097
+ return string.split('');
102098
+ }
102099
 
102100
+ /**
102101
+ * Splits an ASCII `string` into an array of its words.
102102
+ *
102103
+ * @private
102104
+ * @param {string} The string to inspect.
102105
+ * @returns {Array} Returns the words of `string`.
102106
+ */
102107
+ function asciiWords(string) {
102108
+ return string.match(reAsciiWord) || [];
102109
+ }
102110
 
102111
+ /**
102112
+ * The base implementation of methods like `_.findKey` and `_.findLastKey`,
102113
+ * without support for iteratee shorthands, which iterates over `collection`
102114
+ * using `eachFunc`.
102115
+ *
102116
+ * @private
102117
+ * @param {Array|Object} collection The collection to inspect.
102118
+ * @param {Function} predicate The function invoked per iteration.
102119
+ * @param {Function} eachFunc The function to iterate over `collection`.
102120
+ * @returns {*} Returns the found element or its key, else `undefined`.
102121
+ */
102122
+ function baseFindKey(collection, predicate, eachFunc) {
102123
+ var result;
102124
+ eachFunc(collection, function(value, key, collection) {
102125
+ if (predicate(value, key, collection)) {
102126
+ result = key;
102127
+ return false;
102128
+ }
102129
+ });
102130
+ return result;
102131
+ }
102132
 
102133
+ /**
102134
+ * The base implementation of `_.findIndex` and `_.findLastIndex` without
102135
+ * support for iteratee shorthands.
102136
+ *
102137
+ * @private
102138
+ * @param {Array} array The array to inspect.
102139
+ * @param {Function} predicate The function invoked per iteration.
102140
+ * @param {number} fromIndex The index to search from.
102141
+ * @param {boolean} [fromRight] Specify iterating from right to left.
102142
+ * @returns {number} Returns the index of the matched value, else `-1`.
102143
+ */
102144
+ function baseFindIndex(array, predicate, fromIndex, fromRight) {
102145
+ var length = array.length,
102146
+ index = fromIndex + (fromRight ? 1 : -1);
102147
 
102148
+ while ((fromRight ? index-- : ++index < length)) {
102149
+ if (predicate(array[index], index, array)) {
102150
+ return index;
102151
+ }
 
102152
  }
102153
+ return -1;
102154
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102155
 
102156
+ /**
102157
+ * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
102158
+ *
102159
+ * @private
102160
+ * @param {Array} array The array to inspect.
102161
+ * @param {*} value The value to search for.
102162
+ * @param {number} fromIndex The index to search from.
102163
+ * @returns {number} Returns the index of the matched value, else `-1`.
102164
+ */
102165
+ function baseIndexOf(array, value, fromIndex) {
102166
+ return value === value
102167
+ ? strictIndexOf(array, value, fromIndex)
102168
+ : baseFindIndex(array, baseIsNaN, fromIndex);
102169
+ }
102170
 
102171
+ /**
102172
+ * This function is like `baseIndexOf` except that it accepts a comparator.
102173
+ *
102174
+ * @private
102175
+ * @param {Array} array The array to inspect.
102176
+ * @param {*} value The value to search for.
102177
+ * @param {number} fromIndex The index to search from.
102178
+ * @param {Function} comparator The comparator invoked per element.
102179
+ * @returns {number} Returns the index of the matched value, else `-1`.
102180
+ */
102181
+ function baseIndexOfWith(array, value, fromIndex, comparator) {
102182
+ var index = fromIndex - 1,
102183
+ length = array.length;
102184
 
102185
+ while (++index < length) {
102186
+ if (comparator(array[index], value)) {
102187
+ return index;
102188
+ }
102189
+ }
102190
+ return -1;
102191
+ }
102192
 
102193
+ /**
102194
+ * The base implementation of `_.isNaN` without support for number objects.
102195
+ *
102196
+ * @private
102197
+ * @param {*} value The value to check.
102198
+ * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
102199
+ */
102200
+ function baseIsNaN(value) {
102201
+ return value !== value;
102202
+ }
102203
 
102204
+ /**
102205
+ * The base implementation of `_.mean` and `_.meanBy` without support for
102206
+ * iteratee shorthands.
102207
+ *
102208
+ * @private
102209
+ * @param {Array} array The array to iterate over.
102210
+ * @param {Function} iteratee The function invoked per iteration.
102211
+ * @returns {number} Returns the mean.
102212
+ */
102213
+ function baseMean(array, iteratee) {
102214
+ var length = array == null ? 0 : array.length;
102215
+ return length ? (baseSum(array, iteratee) / length) : NAN;
102216
+ }
102217
 
102218
+ /**
102219
+ * The base implementation of `_.property` without support for deep paths.
102220
+ *
102221
+ * @private
102222
+ * @param {string} key The key of the property to get.
102223
+ * @returns {Function} Returns the new accessor function.
102224
+ */
102225
+ function baseProperty(key) {
102226
+ return function(object) {
102227
+ return object == null ? undefined : object[key];
102228
+ };
102229
+ }
102230
 
102231
+ /**
102232
+ * The base implementation of `_.propertyOf` without support for deep paths.
102233
+ *
102234
+ * @private
102235
+ * @param {Object} object The object to query.
102236
+ * @returns {Function} Returns the new accessor function.
102237
+ */
102238
+ function basePropertyOf(object) {
102239
+ return function(key) {
102240
+ return object == null ? undefined : object[key];
102241
+ };
102242
+ }
102243
 
102244
+ /**
102245
+ * The base implementation of `_.reduce` and `_.reduceRight`, without support
102246
+ * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
102247
+ *
102248
+ * @private
102249
+ * @param {Array|Object} collection The collection to iterate over.
102250
+ * @param {Function} iteratee The function invoked per iteration.
102251
+ * @param {*} accumulator The initial value.
102252
+ * @param {boolean} initAccum Specify using the first or last element of
102253
+ * `collection` as the initial value.
102254
+ * @param {Function} eachFunc The function to iterate over `collection`.
102255
+ * @returns {*} Returns the accumulated value.
102256
+ */
102257
+ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
102258
+ eachFunc(collection, function(value, index, collection) {
102259
+ accumulator = initAccum
102260
+ ? (initAccum = false, value)
102261
+ : iteratee(accumulator, value, index, collection);
102262
+ });
102263
+ return accumulator;
102264
+ }
102265
 
102266
+ /**
102267
+ * The base implementation of `_.sortBy` which uses `comparer` to define the
102268
+ * sort order of `array` and replaces criteria objects with their corresponding
102269
+ * values.
102270
+ *
102271
+ * @private
102272
+ * @param {Array} array The array to sort.
102273
+ * @param {Function} comparer The function to define sort order.
102274
+ * @returns {Array} Returns `array`.
102275
+ */
102276
+ function baseSortBy(array, comparer) {
102277
+ var length = array.length;
102278
 
102279
+ array.sort(comparer);
102280
+ while (length--) {
102281
+ array[length] = array[length].value;
102282
+ }
102283
+ return array;
102284
+ }
102285
 
102286
+ /**
102287
+ * The base implementation of `_.sum` and `_.sumBy` without support for
102288
+ * iteratee shorthands.
102289
+ *
102290
+ * @private
102291
+ * @param {Array} array The array to iterate over.
102292
+ * @param {Function} iteratee The function invoked per iteration.
102293
+ * @returns {number} Returns the sum.
102294
+ */
102295
+ function baseSum(array, iteratee) {
102296
+ var result,
102297
+ index = -1,
102298
+ length = array.length;
102299
 
102300
+ while (++index < length) {
102301
+ var current = iteratee(array[index]);
102302
+ if (current !== undefined) {
102303
+ result = result === undefined ? current : (result + current);
102304
+ }
102305
+ }
102306
+ return result;
102307
+ }
102308
 
102309
+ /**
102310
+ * The base implementation of `_.times` without support for iteratee shorthands
102311
+ * or max array length checks.
102312
+ *
102313
+ * @private
102314
+ * @param {number} n The number of times to invoke `iteratee`.
102315
+ * @param {Function} iteratee The function invoked per iteration.
102316
+ * @returns {Array} Returns the array of results.
102317
+ */
102318
+ function baseTimes(n, iteratee) {
102319
+ var index = -1,
102320
+ result = Array(n);
102321
 
102322
+ while (++index < n) {
102323
+ result[index] = iteratee(index);
102324
+ }
102325
+ return result;
102326
+ }
102327
 
102328
+ /**
102329
+ * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
102330
+ * of key-value pairs for `object` corresponding to the property names of `props`.
102331
+ *
102332
+ * @private
102333
+ * @param {Object} object The object to query.
102334
+ * @param {Array} props The property names to get values for.
102335
+ * @returns {Object} Returns the key-value pairs.
102336
+ */
102337
+ function baseToPairs(object, props) {
102338
+ return arrayMap(props, function(key) {
102339
+ return [key, object[key]];
102340
+ });
102341
+ }
102342
 
102343
+ /**
102344
+ * The base implementation of `_.trim`.
102345
+ *
102346
+ * @private
102347
+ * @param {string} string The string to trim.
102348
+ * @returns {string} Returns the trimmed string.
102349
+ */
102350
+ function baseTrim(string) {
102351
+ return string
102352
+ ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
102353
+ : string;
102354
+ }
102355
 
102356
+ /**
102357
+ * The base implementation of `_.unary` without support for storing metadata.
102358
+ *
102359
+ * @private
102360
+ * @param {Function} func The function to cap arguments for.
102361
+ * @returns {Function} Returns the new capped function.
102362
+ */
102363
+ function baseUnary(func) {
102364
+ return function(value) {
102365
+ return func(value);
102366
+ };
102367
+ }
102368
 
102369
+ /**
102370
+ * The base implementation of `_.values` and `_.valuesIn` which creates an
102371
+ * array of `object` property values corresponding to the property names
102372
+ * of `props`.
102373
+ *
102374
+ * @private
102375
+ * @param {Object} object The object to query.
102376
+ * @param {Array} props The property names to get values for.
102377
+ * @returns {Object} Returns the array of property values.
102378
+ */
102379
+ function baseValues(object, props) {
102380
+ return arrayMap(props, function(key) {
102381
+ return object[key];
102382
+ });
102383
+ }
102384
 
102385
+ /**
102386
+ * Checks if a `cache` value for `key` exists.
102387
+ *
102388
+ * @private
102389
+ * @param {Object} cache The cache to query.
102390
+ * @param {string} key The key of the entry to check.
102391
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
102392
+ */
102393
+ function cacheHas(cache, key) {
102394
+ return cache.has(key);
102395
+ }
102396
 
102397
+ /**
102398
+ * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol
102399
+ * that is not found in the character symbols.
102400
+ *
102401
+ * @private
102402
+ * @param {Array} strSymbols The string symbols to inspect.
102403
+ * @param {Array} chrSymbols The character symbols to find.
102404
+ * @returns {number} Returns the index of the first unmatched string symbol.
102405
+ */
102406
+ function charsStartIndex(strSymbols, chrSymbols) {
102407
+ var index = -1,
102408
+ length = strSymbols.length;
102409
 
102410
+ while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
102411
+ return index;
102412
+ }
102413
 
102414
+ /**
102415
+ * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol
102416
+ * that is not found in the character symbols.
102417
+ *
102418
+ * @private
102419
+ * @param {Array} strSymbols The string symbols to inspect.
102420
+ * @param {Array} chrSymbols The character symbols to find.
102421
+ * @returns {number} Returns the index of the last unmatched string symbol.
102422
+ */
102423
+ function charsEndIndex(strSymbols, chrSymbols) {
102424
+ var index = strSymbols.length;
102425
 
102426
+ while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
102427
+ return index;
102428
+ }
 
102429
 
102430
+ /**
102431
+ * Gets the number of `placeholder` occurrences in `array`.
102432
+ *
102433
+ * @private
102434
+ * @param {Array} array The array to inspect.
102435
+ * @param {*} placeholder The placeholder to search for.
102436
+ * @returns {number} Returns the placeholder count.
102437
+ */
102438
+ function countHolders(array, placeholder) {
102439
+ var length = array.length,
102440
+ result = 0;
102441
 
102442
+ while (length--) {
102443
+ if (array[length] === placeholder) {
102444
+ ++result;
102445
+ }
102446
+ }
102447
+ return result;
102448
+ }
102449
 
102450
+ /**
102451
+ * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
102452
+ * letters to basic Latin letters.
102453
+ *
102454
+ * @private
102455
+ * @param {string} letter The matched letter to deburr.
102456
+ * @returns {string} Returns the deburred letter.
102457
+ */
102458
+ var deburrLetter = basePropertyOf(deburredLetters);
102459
 
102460
+ /**
102461
+ * Used by `_.escape` to convert characters to HTML entities.
102462
+ *
102463
+ * @private
102464
+ * @param {string} chr The matched character to escape.
102465
+ * @returns {string} Returns the escaped character.
102466
+ */
102467
+ var escapeHtmlChar = basePropertyOf(htmlEscapes);
102468
 
102469
+ /**
102470
+ * Used by `_.template` to escape characters for inclusion in compiled string literals.
102471
+ *
102472
+ * @private
102473
+ * @param {string} chr The matched character to escape.
102474
+ * @returns {string} Returns the escaped character.
102475
+ */
102476
+ function escapeStringChar(chr) {
102477
+ return '\\' + stringEscapes[chr];
102478
+ }
102479
 
102480
+ /**
102481
+ * Gets the value at `key` of `object`.
102482
+ *
102483
+ * @private
102484
+ * @param {Object} [object] The object to query.
102485
+ * @param {string} key The key of the property to get.
102486
+ * @returns {*} Returns the property value.
102487
+ */
102488
+ function getValue(object, key) {
102489
+ return object == null ? undefined : object[key];
102490
+ }
102491
 
102492
+ /**
102493
+ * Checks if `string` contains Unicode symbols.
102494
+ *
102495
+ * @private
102496
+ * @param {string} string The string to inspect.
102497
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
102498
+ */
102499
+ function hasUnicode(string) {
102500
+ return reHasUnicode.test(string);
102501
+ }
102502
 
102503
+ /**
102504
+ * Checks if `string` contains a word composed of Unicode symbols.
102505
+ *
102506
+ * @private
102507
+ * @param {string} string The string to inspect.
102508
+ * @returns {boolean} Returns `true` if a word is found, else `false`.
102509
+ */
102510
+ function hasUnicodeWord(string) {
102511
+ return reHasUnicodeWord.test(string);
102512
+ }
102513
 
102514
+ /**
102515
+ * Converts `iterator` to an array.
102516
+ *
102517
+ * @private
102518
+ * @param {Object} iterator The iterator to convert.
102519
+ * @returns {Array} Returns the converted array.
102520
+ */
102521
+ function iteratorToArray(iterator) {
102522
+ var data,
102523
+ result = [];
102524
 
102525
+ while (!(data = iterator.next()).done) {
102526
+ result.push(data.value);
102527
+ }
102528
+ return result;
102529
+ }
102530
 
102531
+ /**
102532
+ * Converts `map` to its key-value pairs.
102533
+ *
102534
+ * @private
102535
+ * @param {Object} map The map to convert.
102536
+ * @returns {Array} Returns the key-value pairs.
102537
+ */
102538
+ function mapToArray(map) {
102539
+ var index = -1,
102540
+ result = Array(map.size);
102541
 
102542
+ map.forEach(function(value, key) {
102543
+ result[++index] = [key, value];
102544
+ });
102545
+ return result;
102546
+ }
102547
 
102548
+ /**
102549
+ * Creates a unary function that invokes `func` with its argument transformed.
102550
+ *
102551
+ * @private
102552
+ * @param {Function} func The function to wrap.
102553
+ * @param {Function} transform The argument transform.
102554
+ * @returns {Function} Returns the new function.
102555
+ */
102556
+ function overArg(func, transform) {
102557
+ return function(arg) {
102558
+ return func(transform(arg));
102559
+ };
102560
+ }
102561
 
102562
+ /**
102563
+ * Replaces all `placeholder` elements in `array` with an internal placeholder
102564
+ * and returns an array of their indexes.
102565
+ *
102566
+ * @private
102567
+ * @param {Array} array The array to modify.
102568
+ * @param {*} placeholder The placeholder to replace.
102569
+ * @returns {Array} Returns the new array of placeholder indexes.
102570
+ */
102571
+ function replaceHolders(array, placeholder) {
102572
+ var index = -1,
102573
+ length = array.length,
102574
+ resIndex = 0,
102575
+ result = [];
102576
 
102577
+ while (++index < length) {
102578
+ var value = array[index];
102579
+ if (value === placeholder || value === PLACEHOLDER) {
102580
+ array[index] = PLACEHOLDER;
102581
+ result[resIndex++] = index;
102582
+ }
102583
+ }
102584
+ return result;
102585
+ }
102586
 
102587
+ /**
102588
+ * Converts `set` to an array of its values.
102589
+ *
102590
+ * @private
102591
+ * @param {Object} set The set to convert.
102592
+ * @returns {Array} Returns the values.
102593
+ */
102594
+ function setToArray(set) {
102595
+ var index = -1,
102596
+ result = Array(set.size);
102597
 
102598
+ set.forEach(function(value) {
102599
+ result[++index] = value;
102600
+ });
102601
+ return result;
102602
+ }
102603
 
102604
+ /**
102605
+ * Converts `set` to its value-value pairs.
102606
+ *
102607
+ * @private
102608
+ * @param {Object} set The set to convert.
102609
+ * @returns {Array} Returns the value-value pairs.
102610
+ */
102611
+ function setToPairs(set) {
102612
+ var index = -1,
102613
+ result = Array(set.size);
102614
 
102615
+ set.forEach(function(value) {
102616
+ result[++index] = [value, value];
102617
+ });
102618
+ return result;
102619
+ }
102620
 
102621
+ /**
102622
+ * A specialized version of `_.indexOf` which performs strict equality
102623
+ * comparisons of values, i.e. `===`.
102624
+ *
102625
+ * @private
102626
+ * @param {Array} array The array to inspect.
102627
+ * @param {*} value The value to search for.
102628
+ * @param {number} fromIndex The index to search from.
102629
+ * @returns {number} Returns the index of the matched value, else `-1`.
102630
+ */
102631
+ function strictIndexOf(array, value, fromIndex) {
102632
+ var index = fromIndex - 1,
102633
+ length = array.length;
102634
 
102635
+ while (++index < length) {
102636
+ if (array[index] === value) {
102637
+ return index;
102638
+ }
102639
+ }
102640
+ return -1;
 
 
 
 
 
 
 
102641
  }
102642
 
102643
+ /**
102644
+ * A specialized version of `_.lastIndexOf` which performs strict equality
102645
+ * comparisons of values, i.e. `===`.
102646
+ *
102647
+ * @private
102648
+ * @param {Array} array The array to inspect.
102649
+ * @param {*} value The value to search for.
102650
+ * @param {number} fromIndex The index to search from.
102651
+ * @returns {number} Returns the index of the matched value, else `-1`.
102652
+ */
102653
+ function strictLastIndexOf(array, value, fromIndex) {
102654
+ var index = fromIndex + 1;
102655
+ while (index--) {
102656
+ if (array[index] === value) {
102657
+ return index;
102658
+ }
102659
  }
102660
+ return index;
102661
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102662
 
102663
+ /**
102664
+ * Gets the number of symbols in `string`.
102665
+ *
102666
+ * @private
102667
+ * @param {string} string The string to inspect.
102668
+ * @returns {number} Returns the string size.
102669
+ */
102670
+ function stringSize(string) {
102671
+ return hasUnicode(string)
102672
+ ? unicodeSize(string)
102673
+ : asciiSize(string);
102674
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102675
 
102676
+ /**
102677
+ * Converts `string` to an array.
102678
+ *
102679
+ * @private
102680
+ * @param {string} string The string to convert.
102681
+ * @returns {Array} Returns the converted array.
102682
+ */
102683
+ function stringToArray(string) {
102684
+ return hasUnicode(string)
102685
+ ? unicodeToArray(string)
102686
+ : asciiToArray(string);
102687
+ }
102688
 
102689
+ /**
102690
+ * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
102691
+ * character of `string`.
102692
+ *
102693
+ * @private
102694
+ * @param {string} string The string to inspect.
102695
+ * @returns {number} Returns the index of the last non-whitespace character.
102696
+ */
102697
+ function trimmedEndIndex(string) {
102698
+ var index = string.length;
102699
 
102700
+ while (index-- && reWhitespace.test(string.charAt(index))) {}
102701
+ return index;
102702
+ }
102703
 
102704
+ /**
102705
+ * Used by `_.unescape` to convert HTML entities to characters.
102706
+ *
102707
+ * @private
102708
+ * @param {string} chr The matched character to unescape.
102709
+ * @returns {string} Returns the unescaped character.
102710
+ */
102711
+ var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
102712
 
102713
+ /**
102714
+ * Gets the size of a Unicode `string`.
102715
+ *
102716
+ * @private
102717
+ * @param {string} string The string inspect.
102718
+ * @returns {number} Returns the string size.
102719
+ */
102720
+ function unicodeSize(string) {
102721
+ var result = reUnicode.lastIndex = 0;
102722
+ while (reUnicode.test(string)) {
102723
+ ++result;
102724
+ }
102725
+ return result;
102726
+ }
102727
 
102728
+ /**
102729
+ * Converts a Unicode `string` to an array.
102730
+ *
102731
+ * @private
102732
+ * @param {string} string The string to convert.
102733
+ * @returns {Array} Returns the converted array.
102734
+ */
102735
+ function unicodeToArray(string) {
102736
+ return string.match(reUnicode) || [];
102737
+ }
102738
 
102739
+ /**
102740
+ * Splits a Unicode `string` into an array of its words.
102741
+ *
102742
+ * @private
102743
+ * @param {string} The string to inspect.
102744
+ * @returns {Array} Returns the words of `string`.
102745
+ */
102746
+ function unicodeWords(string) {
102747
+ return string.match(reUnicodeWord) || [];
102748
+ }
102749
 
102750
+ /*--------------------------------------------------------------------------*/
102751
 
102752
+ /**
102753
+ * Create a new pristine `lodash` function using the `context` object.
102754
+ *
102755
+ * @static
102756
+ * @memberOf _
102757
+ * @since 1.1.0
102758
+ * @category Util
102759
+ * @param {Object} [context=root] The context object.
102760
+ * @returns {Function} Returns a new `lodash` function.
102761
+ * @example
102762
+ *
102763
+ * _.mixin({ 'foo': _.constant('foo') });
102764
+ *
102765
+ * var lodash = _.runInContext();
102766
+ * lodash.mixin({ 'bar': lodash.constant('bar') });
102767
+ *
102768
+ * _.isFunction(_.foo);
102769
+ * // => true
102770
+ * _.isFunction(_.bar);
102771
+ * // => false
102772
+ *
102773
+ * lodash.isFunction(lodash.foo);
102774
+ * // => false
102775
+ * lodash.isFunction(lodash.bar);
102776
+ * // => true
102777
+ *
102778
+ * // Create a suped-up `defer` in Node.js.
102779
+ * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
102780
+ */
102781
+ var runInContext = (function runInContext(context) {
102782
+ context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
102783
+
102784
+ /** Built-in constructor references. */
102785
+ var Array = context.Array,
102786
+ Date = context.Date,
102787
+ Error = context.Error,
102788
+ Function = context.Function,
102789
+ Math = context.Math,
102790
+ Object = context.Object,
102791
+ RegExp = context.RegExp,
102792
+ String = context.String,
102793
+ TypeError = context.TypeError;
102794
+
102795
+ /** Used for built-in method references. */
102796
+ var arrayProto = Array.prototype,
102797
+ funcProto = Function.prototype,
102798
+ objectProto = Object.prototype;
102799
+
102800
+ /** Used to detect overreaching core-js shims. */
102801
+ var coreJsData = context['__core-js_shared__'];
102802
+
102803
+ /** Used to resolve the decompiled source of functions. */
102804
+ var funcToString = funcProto.toString;
102805
+
102806
+ /** Used to check objects for own properties. */
102807
+ var hasOwnProperty = objectProto.hasOwnProperty;
102808
+
102809
+ /** Used to generate unique IDs. */
102810
+ var idCounter = 0;
102811
+
102812
+ /** Used to detect methods masquerading as native. */
102813
+ var maskSrcKey = (function() {
102814
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
102815
+ return uid ? ('Symbol(src)_1.' + uid) : '';
102816
+ }());
102817
 
102818
+ /**
102819
+ * Used to resolve the
102820
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
102821
+ * of values.
102822
+ */
102823
+ var nativeObjectToString = objectProto.toString;
102824
 
102825
+ /** Used to infer the `Object` constructor. */
102826
+ var objectCtorString = funcToString.call(Object);
102827
 
102828
+ /** Used to restore the original `_` reference in `_.noConflict`. */
102829
+ var oldDash = root._;
102830
 
102831
+ /** Used to detect if a method is native. */
102832
+ var reIsNative = RegExp('^' +
102833
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
102834
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
102835
+ );
102836
 
102837
+ /** Built-in value references. */
102838
+ var Buffer = moduleExports ? context.Buffer : undefined,
102839
+ Symbol = context.Symbol,
102840
+ Uint8Array = context.Uint8Array,
102841
+ allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
102842
+ getPrototype = overArg(Object.getPrototypeOf, Object),
102843
+ objectCreate = Object.create,
102844
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
102845
+ splice = arrayProto.splice,
102846
+ spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
102847
+ symIterator = Symbol ? Symbol.iterator : undefined,
102848
+ symToStringTag = Symbol ? Symbol.toStringTag : undefined;
102849
+
102850
+ var defineProperty = (function() {
102851
+ try {
102852
+ var func = getNative(Object, 'defineProperty');
102853
+ func({}, '', {});
102854
+ return func;
102855
+ } catch (e) {}
102856
+ }());
102857
+
102858
+ /** Mocked built-ins. */
102859
+ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
102860
+ ctxNow = Date && Date.now !== root.Date.now && Date.now,
102861
+ ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
102862
+
102863
+ /* Built-in method references for those with the same name as other `lodash` methods. */
102864
+ var nativeCeil = Math.ceil,
102865
+ nativeFloor = Math.floor,
102866
+ nativeGetSymbols = Object.getOwnPropertySymbols,
102867
+ nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
102868
+ nativeIsFinite = context.isFinite,
102869
+ nativeJoin = arrayProto.join,
102870
+ nativeKeys = overArg(Object.keys, Object),
102871
+ nativeMax = Math.max,
102872
+ nativeMin = Math.min,
102873
+ nativeNow = Date.now,
102874
+ nativeParseInt = context.parseInt,
102875
+ nativeRandom = Math.random,
102876
+ nativeReverse = arrayProto.reverse;
102877
+
102878
+ /* Built-in method references that are verified to be native. */
102879
+ var DataView = getNative(context, 'DataView'),
102880
+ Map = getNative(context, 'Map'),
102881
+ Promise = getNative(context, 'Promise'),
102882
+ Set = getNative(context, 'Set'),
102883
+ WeakMap = getNative(context, 'WeakMap'),
102884
+ nativeCreate = getNative(Object, 'create');
102885
+
102886
+ /** Used to store function metadata. */
102887
+ var metaMap = WeakMap && new WeakMap;
102888
+
102889
+ /** Used to lookup unminified function names. */
102890
+ var realNames = {};
102891
+
102892
+ /** Used to detect maps, sets, and weakmaps. */
102893
+ var dataViewCtorString = toSource(DataView),
102894
+ mapCtorString = toSource(Map),
102895
+ promiseCtorString = toSource(Promise),
102896
+ setCtorString = toSource(Set),
102897
+ weakMapCtorString = toSource(WeakMap);
102898
+
102899
+ /** Used to convert symbols to primitives and strings. */
102900
+ var symbolProto = Symbol ? Symbol.prototype : undefined,
102901
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
102902
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
102903
+
102904
+ /*------------------------------------------------------------------------*/
102905
 
102906
+ /**
102907
+ * Creates a `lodash` object which wraps `value` to enable implicit method
102908
+ * chain sequences. Methods that operate on and return arrays, collections,
102909
+ * and functions can be chained together. Methods that retrieve a single value
102910
+ * or may return a primitive value will automatically end the chain sequence
102911
+ * and return the unwrapped value. Otherwise, the value must be unwrapped
102912
+ * with `_#value`.
102913
+ *
102914
+ * Explicit chain sequences, which must be unwrapped with `_#value`, may be
102915
+ * enabled using `_.chain`.
102916
+ *
102917
+ * The execution of chained methods is lazy, that is, it's deferred until
102918
+ * `_#value` is implicitly or explicitly called.
102919
+ *
102920
+ * Lazy evaluation allows several methods to support shortcut fusion.
102921
+ * Shortcut fusion is an optimization to merge iteratee calls; this avoids
102922
+ * the creation of intermediate arrays and can greatly reduce the number of
102923
+ * iteratee executions. Sections of a chain sequence qualify for shortcut
102924
+ * fusion if the section is applied to an array and iteratees accept only
102925
+ * one argument. The heuristic for whether a section qualifies for shortcut
102926
+ * fusion is subject to change.
102927
+ *
102928
+ * Chaining is supported in custom builds as long as the `_#value` method is
102929
+ * directly or indirectly included in the build.
102930
+ *
102931
+ * In addition to lodash methods, wrappers have `Array` and `String` methods.
102932
+ *
102933
+ * The wrapper `Array` methods are:
102934
+ * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`
102935
+ *
102936
+ * The wrapper `String` methods are:
102937
+ * `replace` and `split`
102938
+ *
102939
+ * The wrapper methods that support shortcut fusion are:
102940
+ * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,
102941
+ * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,
102942
+ * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`
102943
+ *
102944
+ * The chainable wrapper methods are:
102945
+ * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
102946
+ * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
102947
+ * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
102948
+ * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
102949
+ * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
102950
+ * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
102951
+ * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,
102952
+ * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,
102953
+ * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,
102954
+ * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,
102955
+ * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
102956
+ * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,
102957
+ * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,
102958
+ * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,
102959
+ * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,
102960
+ * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,
102961
+ * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,
102962
+ * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,
102963
+ * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,
102964
+ * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,
102965
+ * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,
102966
+ * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,
102967
+ * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,
102968
+ * `zipObject`, `zipObjectDeep`, and `zipWith`
102969
+ *
102970
+ * The wrapper methods that are **not** chainable by default are:
102971
+ * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
102972
+ * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,
102973
+ * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,
102974
+ * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
102975
+ * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,
102976
+ * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,
102977
+ * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,
102978
+ * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,
102979
+ * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,
102980
+ * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,
102981
+ * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
102982
+ * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
102983
+ * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
102984
+ * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
102985
+ * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
102986
+ * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
102987
+ * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
102988
+ * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
102989
+ * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
102990
+ * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
102991
+ * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
102992
+ * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
102993
+ * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
102994
+ * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
102995
+ * `upperFirst`, `value`, and `words`
102996
+ *
102997
+ * @name _
102998
+ * @constructor
102999
+ * @category Seq
103000
+ * @param {*} value The value to wrap in a `lodash` instance.
103001
+ * @returns {Object} Returns the new `lodash` wrapper instance.
103002
+ * @example
103003
+ *
103004
+ * function square(n) {
103005
+ * return n * n;
103006
+ * }
103007
+ *
103008
+ * var wrapped = _([1, 2, 3]);
103009
+ *
103010
+ * // Returns an unwrapped value.
103011
+ * wrapped.reduce(_.add);
103012
+ * // => 6
103013
+ *
103014
+ * // Returns a wrapped value.
103015
+ * var squares = wrapped.map(square);
103016
+ *
103017
+ * _.isArray(squares);
103018
+ * // => false
103019
+ *
103020
+ * _.isArray(squares.value());
103021
+ * // => true
103022
+ */
103023
+ function lodash(value) {
103024
+ if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
103025
+ if (value instanceof LodashWrapper) {
103026
+ return value;
103027
+ }
103028
+ if (hasOwnProperty.call(value, '__wrapped__')) {
103029
+ return wrapperClone(value);
103030
+ }
103031
+ }
103032
+ return new LodashWrapper(value);
103033
+ }
103034
 
103035
+ /**
103036
+ * The base implementation of `_.create` without support for assigning
103037
+ * properties to the created object.
103038
+ *
103039
+ * @private
103040
+ * @param {Object} proto The object to inherit from.
103041
+ * @returns {Object} Returns the new object.
103042
+ */
103043
+ var baseCreate = (function() {
103044
+ function object() {}
103045
+ return function(proto) {
103046
+ if (!isObject(proto)) {
103047
+ return {};
103048
+ }
103049
+ if (objectCreate) {
103050
+ return objectCreate(proto);
103051
+ }
103052
+ object.prototype = proto;
103053
+ var result = new object;
103054
+ object.prototype = undefined;
103055
+ return result;
103056
+ };
103057
+ }());
103058
 
103059
+ /**
103060
+ * The function whose prototype chain sequence wrappers inherit from.
103061
+ *
103062
+ * @private
103063
+ */
103064
+ function baseLodash() {
103065
+ // No operation performed.
103066
+ }
103067
 
103068
+ /**
103069
+ * The base constructor for creating `lodash` wrapper objects.
103070
+ *
103071
+ * @private
103072
+ * @param {*} value The value to wrap.
103073
+ * @param {boolean} [chainAll] Enable explicit method chain sequences.
103074
+ */
103075
+ function LodashWrapper(value, chainAll) {
103076
+ this.__wrapped__ = value;
103077
+ this.__actions__ = [];
103078
+ this.__chain__ = !!chainAll;
103079
+ this.__index__ = 0;
103080
+ this.__values__ = undefined;
103081
  }
 
 
 
103082
 
103083
+ /**
103084
+ * By default, the template delimiters used by lodash are like those in
103085
+ * embedded Ruby (ERB) as well as ES2015 template strings. Change the
103086
+ * following template settings to use alternative delimiters.
103087
+ *
103088
+ * @static
103089
+ * @memberOf _
103090
+ * @type {Object}
103091
+ */
103092
+ lodash.templateSettings = {
103093
 
103094
+ /**
103095
+ * Used to detect `data` property values to be HTML-escaped.
103096
+ *
103097
+ * @memberOf _.templateSettings
103098
+ * @type {RegExp}
103099
+ */
103100
+ 'escape': reEscape,
103101
 
103102
+ /**
103103
+ * Used to detect code to be evaluated.
103104
+ *
103105
+ * @memberOf _.templateSettings
103106
+ * @type {RegExp}
103107
+ */
103108
+ 'evaluate': reEvaluate,
103109
 
103110
+ /**
103111
+ * Used to detect `data` property values to inject.
103112
+ *
103113
+ * @memberOf _.templateSettings
103114
+ * @type {RegExp}
103115
+ */
103116
+ 'interpolate': reInterpolate,
103117
 
103118
+ /**
103119
+ * Used to reference the data object in the template text.
103120
+ *
103121
+ * @memberOf _.templateSettings
103122
+ * @type {string}
103123
+ */
103124
+ 'variable': '',
103125
 
103126
+ /**
103127
+ * Used to import variables into the compiled template.
103128
+ *
103129
+ * @memberOf _.templateSettings
103130
+ * @type {Object}
103131
+ */
103132
+ 'imports': {
103133
 
103134
+ /**
103135
+ * A reference to the `lodash` function.
103136
+ *
103137
+ * @memberOf _.templateSettings.imports
103138
+ * @type {Function}
103139
+ */
103140
+ '_': lodash
103141
+ }
103142
+ };
103143
 
103144
+ // Ensure wrappers are instances of `baseLodash`.
103145
+ lodash.prototype = baseLodash.prototype;
103146
+ lodash.prototype.constructor = lodash;
103147
 
103148
+ LodashWrapper.prototype = baseCreate(baseLodash.prototype);
103149
+ LodashWrapper.prototype.constructor = LodashWrapper;
103150
 
103151
+ /*------------------------------------------------------------------------*/
103152
 
103153
+ /**
103154
+ * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
103155
+ *
103156
+ * @private
103157
+ * @constructor
103158
+ * @param {*} value The value to wrap.
103159
+ */
103160
+ function LazyWrapper(value) {
103161
+ this.__wrapped__ = value;
103162
+ this.__actions__ = [];
103163
+ this.__dir__ = 1;
103164
+ this.__filtered__ = false;
103165
+ this.__iteratees__ = [];
103166
+ this.__takeCount__ = MAX_ARRAY_LENGTH;
103167
+ this.__views__ = [];
103168
+ }
103169
 
103170
+ /**
103171
+ * Creates a clone of the lazy wrapper object.
103172
+ *
103173
+ * @private
103174
+ * @name clone
103175
+ * @memberOf LazyWrapper
103176
+ * @returns {Object} Returns the cloned `LazyWrapper` object.
103177
+ */
103178
+ function lazyClone() {
103179
+ var result = new LazyWrapper(this.__wrapped__);
103180
+ result.__actions__ = copyArray(this.__actions__);
103181
+ result.__dir__ = this.__dir__;
103182
+ result.__filtered__ = this.__filtered__;
103183
+ result.__iteratees__ = copyArray(this.__iteratees__);
103184
+ result.__takeCount__ = this.__takeCount__;
103185
+ result.__views__ = copyArray(this.__views__);
103186
+ return result;
103187
+ }
103188
 
103189
+ /**
103190
+ * Reverses the direction of lazy iteration.
103191
+ *
103192
+ * @private
103193
+ * @name reverse
103194
+ * @memberOf LazyWrapper
103195
+ * @returns {Object} Returns the new reversed `LazyWrapper` object.
103196
+ */
103197
+ function lazyReverse() {
103198
+ if (this.__filtered__) {
103199
+ var result = new LazyWrapper(this);
103200
+ result.__dir__ = -1;
103201
+ result.__filtered__ = true;
103202
+ } else {
103203
+ result = this.clone();
103204
+ result.__dir__ *= -1;
103205
+ }
103206
+ return result;
103207
+ }
103208
 
103209
+ /**
103210
+ * Extracts the unwrapped value from its lazy wrapper.
103211
+ *
103212
+ * @private
103213
+ * @name value
103214
+ * @memberOf LazyWrapper
103215
+ * @returns {*} Returns the unwrapped value.
103216
+ */
103217
+ function lazyValue() {
103218
+ var array = this.__wrapped__.value(),
103219
+ dir = this.__dir__,
103220
+ isArr = isArray(array),
103221
+ isRight = dir < 0,
103222
+ arrLength = isArr ? array.length : 0,
103223
+ view = getView(0, arrLength, this.__views__),
103224
+ start = view.start,
103225
+ end = view.end,
103226
+ length = end - start,
103227
+ index = isRight ? end : (start - 1),
103228
+ iteratees = this.__iteratees__,
103229
+ iterLength = iteratees.length,
103230
+ resIndex = 0,
103231
+ takeCount = nativeMin(length, this.__takeCount__);
103232
+
103233
+ if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
103234
+ return baseWrapperValue(array, this.__actions__);
103235
+ }
103236
+ var result = [];
103237
+
103238
+ outer:
103239
+ while (length-- && resIndex < takeCount) {
103240
+ index += dir;
103241
+
103242
+ var iterIndex = -1,
103243
+ value = array[index];
103244
+
103245
+ while (++iterIndex < iterLength) {
103246
+ var data = iteratees[iterIndex],
103247
+ iteratee = data.iteratee,
103248
+ type = data.type,
103249
+ computed = iteratee(value);
103250
+
103251
+ if (type == LAZY_MAP_FLAG) {
103252
+ value = computed;
103253
+ } else if (!computed) {
103254
+ if (type == LAZY_FILTER_FLAG) {
103255
+ continue outer;
103256
+ } else {
103257
+ break outer;
103258
+ }
103259
+ }
103260
+ }
103261
+ result[resIndex++] = value;
103262
+ }
103263
+ return result;
103264
+ }
103265
 
103266
+ // Ensure `LazyWrapper` is an instance of `baseLodash`.
103267
+ LazyWrapper.prototype = baseCreate(baseLodash.prototype);
103268
+ LazyWrapper.prototype.constructor = LazyWrapper;
103269
 
103270
+ /*------------------------------------------------------------------------*/
103271
 
103272
+ /**
103273
+ * Creates a hash object.
103274
+ *
103275
+ * @private
103276
+ * @constructor
103277
+ * @param {Array} [entries] The key-value pairs to cache.
103278
+ */
103279
+ function Hash(entries) {
103280
+ var index = -1,
103281
+ length = entries == null ? 0 : entries.length;
103282
 
103283
+ this.clear();
103284
+ while (++index < length) {
103285
+ var entry = entries[index];
103286
+ this.set(entry[0], entry[1]);
103287
+ }
103288
+ }
103289
 
103290
+ /**
103291
+ * Removes all key-value entries from the hash.
103292
+ *
103293
+ * @private
103294
+ * @name clear
103295
+ * @memberOf Hash
103296
+ */
103297
+ function hashClear() {
103298
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
103299
+ this.size = 0;
103300
+ }
103301
 
103302
+ /**
103303
+ * Removes `key` and its value from the hash.
103304
+ *
103305
+ * @private
103306
+ * @name delete
103307
+ * @memberOf Hash
103308
+ * @param {Object} hash The hash to modify.
103309
+ * @param {string} key The key of the value to remove.
103310
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
103311
+ */
103312
+ function hashDelete(key) {
103313
+ var result = this.has(key) && delete this.__data__[key];
103314
+ this.size -= result ? 1 : 0;
103315
+ return result;
103316
+ }
103317
 
103318
+ /**
103319
+ * Gets the hash value for `key`.
103320
+ *
103321
+ * @private
103322
+ * @name get
103323
+ * @memberOf Hash
103324
+ * @param {string} key The key of the value to get.
103325
+ * @returns {*} Returns the entry value.
103326
+ */
103327
+ function hashGet(key) {
103328
+ var data = this.__data__;
103329
+ if (nativeCreate) {
103330
+ var result = data[key];
103331
+ return result === HASH_UNDEFINED ? undefined : result;
103332
+ }
103333
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
103334
+ }
103335
 
103336
+ /**
103337
+ * Checks if a hash value for `key` exists.
103338
+ *
103339
+ * @private
103340
+ * @name has
103341
+ * @memberOf Hash
103342
+ * @param {string} key The key of the entry to check.
103343
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
103344
+ */
103345
+ function hashHas(key) {
103346
+ var data = this.__data__;
103347
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
103348
+ }
103349
 
103350
+ /**
103351
+ * Sets the hash `key` to `value`.
103352
+ *
103353
+ * @private
103354
+ * @name set
103355
+ * @memberOf Hash
103356
+ * @param {string} key The key of the value to set.
103357
+ * @param {*} value The value to set.
103358
+ * @returns {Object} Returns the hash instance.
103359
+ */
103360
+ function hashSet(key, value) {
103361
+ var data = this.__data__;
103362
+ this.size += this.has(key) ? 0 : 1;
103363
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
103364
+ return this;
103365
+ }
103366
 
103367
+ // Add methods to `Hash`.
103368
+ Hash.prototype.clear = hashClear;
103369
+ Hash.prototype['delete'] = hashDelete;
103370
+ Hash.prototype.get = hashGet;
103371
+ Hash.prototype.has = hashHas;
103372
+ Hash.prototype.set = hashSet;
 
 
 
103373
 
103374
+ /*------------------------------------------------------------------------*/
 
 
 
 
 
 
103375
 
103376
+ /**
103377
+ * Creates an list cache object.
103378
+ *
103379
+ * @private
103380
+ * @constructor
103381
+ * @param {Array} [entries] The key-value pairs to cache.
103382
+ */
103383
+ function ListCache(entries) {
103384
+ var index = -1,
103385
+ length = entries == null ? 0 : entries.length;
103386
 
103387
+ this.clear();
103388
+ while (++index < length) {
103389
+ var entry = entries[index];
103390
+ this.set(entry[0], entry[1]);
103391
+ }
103392
  }
103393
 
103394
+ /**
103395
+ * Removes all key-value entries from the list cache.
103396
+ *
103397
+ * @private
103398
+ * @name clear
103399
+ * @memberOf ListCache
103400
+ */
103401
+ function listCacheClear() {
103402
+ this.__data__ = [];
103403
+ this.size = 0;
103404
+ }
103405
 
103406
+ /**
103407
+ * Removes `key` and its value from the list cache.
103408
+ *
103409
+ * @private
103410
+ * @name delete
103411
+ * @memberOf ListCache
103412
+ * @param {string} key The key of the value to remove.
103413
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
103414
+ */
103415
+ function listCacheDelete(key) {
103416
+ var data = this.__data__,
103417
+ index = assocIndexOf(data, key);
103418
+
103419
+ if (index < 0) {
103420
+ return false;
103421
  }
103422
+ var lastIndex = data.length - 1;
103423
+ if (index == lastIndex) {
103424
+ data.pop();
103425
+ } else {
103426
+ splice.call(data, index, 1);
103427
  }
103428
+ --this.size;
103429
+ return true;
 
 
 
 
 
 
 
 
 
 
 
103430
  }
 
 
 
 
103431
 
103432
+ /**
103433
+ * Gets the list cache value for `key`.
103434
+ *
103435
+ * @private
103436
+ * @name get
103437
+ * @memberOf ListCache
103438
+ * @param {string} key The key of the value to get.
103439
+ * @returns {*} Returns the entry value.
103440
+ */
103441
+ function listCacheGet(key) {
103442
+ var data = this.__data__,
103443
+ index = assocIndexOf(data, key);
103444
 
103445
+ return index < 0 ? undefined : data[index][1];
103446
+ }
103447
 
103448
+ /**
103449
+ * Checks if a list cache value for `key` exists.
103450
+ *
103451
+ * @private
103452
+ * @name has
103453
+ * @memberOf ListCache
103454
+ * @param {string} key The key of the entry to check.
103455
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
103456
+ */
103457
+ function listCacheHas(key) {
103458
+ return assocIndexOf(this.__data__, key) > -1;
103459
+ }
103460
 
103461
+ /**
103462
+ * Sets the list cache `key` to `value`.
103463
+ *
103464
+ * @private
103465
+ * @name set
103466
+ * @memberOf ListCache
103467
+ * @param {string} key The key of the value to set.
103468
+ * @param {*} value The value to set.
103469
+ * @returns {Object} Returns the list cache instance.
103470
+ */
103471
+ function listCacheSet(key, value) {
103472
+ var data = this.__data__,
103473
+ index = assocIndexOf(data, key);
103474
 
103475
+ if (index < 0) {
103476
+ ++this.size;
103477
+ data.push([key, value]);
103478
+ } else {
103479
+ data[index][1] = value;
103480
+ }
103481
+ return this;
103482
+ }
103483
 
103484
+ // Add methods to `ListCache`.
103485
+ ListCache.prototype.clear = listCacheClear;
103486
+ ListCache.prototype['delete'] = listCacheDelete;
103487
+ ListCache.prototype.get = listCacheGet;
103488
+ ListCache.prototype.has = listCacheHas;
103489
+ ListCache.prototype.set = listCacheSet;
103490
 
103491
+ /*------------------------------------------------------------------------*/
103492
 
103493
+ /**
103494
+ * Creates a map cache object to store key-value pairs.
103495
+ *
103496
+ * @private
103497
+ * @constructor
103498
+ * @param {Array} [entries] The key-value pairs to cache.
103499
+ */
103500
+ function MapCache(entries) {
103501
+ var index = -1,
103502
+ length = entries == null ? 0 : entries.length;
103503
 
103504
+ this.clear();
103505
+ while (++index < length) {
103506
+ var entry = entries[index];
103507
+ this.set(entry[0], entry[1]);
103508
+ }
103509
+ }
103510
 
103511
+ /**
103512
+ * Removes all key-value entries from the map.
103513
+ *
103514
+ * @private
103515
+ * @name clear
103516
+ * @memberOf MapCache
103517
+ */
103518
+ function mapCacheClear() {
103519
+ this.size = 0;
103520
+ this.__data__ = {
103521
+ 'hash': new Hash,
103522
+ 'map': new (Map || ListCache),
103523
+ 'string': new Hash
103524
+ };
103525
+ }
103526
 
103527
+ /**
103528
+ * Removes `key` and its value from the map.
103529
+ *
103530
+ * @private
103531
+ * @name delete
103532
+ * @memberOf MapCache
103533
+ * @param {string} key The key of the value to remove.
103534
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
103535
+ */
103536
+ function mapCacheDelete(key) {
103537
+ var result = getMapData(this, key)['delete'](key);
103538
+ this.size -= result ? 1 : 0;
103539
+ return result;
103540
+ }
103541
 
103542
+ /**
103543
+ * Gets the map value for `key`.
103544
+ *
103545
+ * @private
103546
+ * @name get
103547
+ * @memberOf MapCache
103548
+ * @param {string} key The key of the value to get.
103549
+ * @returns {*} Returns the entry value.
103550
+ */
103551
+ function mapCacheGet(key) {
103552
+ return getMapData(this, key).get(key);
103553
+ }
103554
 
103555
+ /**
103556
+ * Checks if a map value for `key` exists.
103557
+ *
103558
+ * @private
103559
+ * @name has
103560
+ * @memberOf MapCache
103561
+ * @param {string} key The key of the entry to check.
103562
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
103563
+ */
103564
+ function mapCacheHas(key) {
103565
+ return getMapData(this, key).has(key);
103566
+ }
103567
 
103568
+ /**
103569
+ * Sets the map `key` to `value`.
103570
+ *
103571
+ * @private
103572
+ * @name set
103573
+ * @memberOf MapCache
103574
+ * @param {string} key The key of the value to set.
103575
+ * @param {*} value The value to set.
103576
+ * @returns {Object} Returns the map cache instance.
103577
+ */
103578
+ function mapCacheSet(key, value) {
103579
+ var data = getMapData(this, key),
103580
+ size = data.size;
103581
 
103582
+ data.set(key, value);
103583
+ this.size += data.size == size ? 0 : 1;
103584
+ return this;
103585
+ }
103586
 
103587
+ // Add methods to `MapCache`.
103588
+ MapCache.prototype.clear = mapCacheClear;
103589
+ MapCache.prototype['delete'] = mapCacheDelete;
103590
+ MapCache.prototype.get = mapCacheGet;
103591
+ MapCache.prototype.has = mapCacheHas;
103592
+ MapCache.prototype.set = mapCacheSet;
103593
 
103594
+ /*------------------------------------------------------------------------*/
103595
 
103596
+ /**
103597
+ *
103598
+ * Creates an array cache object to store unique values.
103599
+ *
103600
+ * @private
103601
+ * @constructor
103602
+ * @param {Array} [values] The values to cache.
103603
+ */
103604
+ function SetCache(values) {
103605
+ var index = -1,
103606
+ length = values == null ? 0 : values.length;
103607
 
103608
+ this.__data__ = new MapCache;
103609
+ while (++index < length) {
103610
+ this.add(values[index]);
103611
+ }
103612
+ }
103613
 
103614
+ /**
103615
+ * Adds `value` to the array cache.
103616
+ *
103617
+ * @private
103618
+ * @name add
103619
+ * @memberOf SetCache
103620
+ * @alias push
103621
+ * @param {*} value The value to cache.
103622
+ * @returns {Object} Returns the cache instance.
103623
+ */
103624
+ function setCacheAdd(value) {
103625
+ this.__data__.set(value, HASH_UNDEFINED);
103626
+ return this;
103627
+ }
103628
 
103629
+ /**
103630
+ * Checks if `value` is in the array cache.
103631
+ *
103632
+ * @private
103633
+ * @name has
103634
+ * @memberOf SetCache
103635
+ * @param {*} value The value to search for.
103636
+ * @returns {number} Returns `true` if `value` is found, else `false`.
103637
+ */
103638
+ function setCacheHas(value) {
103639
+ return this.__data__.has(value);
103640
+ }
103641
 
103642
+ // Add methods to `SetCache`.
103643
+ SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
103644
+ SetCache.prototype.has = setCacheHas;
103645
 
103646
+ /*------------------------------------------------------------------------*/
 
 
 
 
103647
 
103648
+ /**
103649
+ * Creates a stack cache object to store key-value pairs.
103650
+ *
103651
+ * @private
103652
+ * @constructor
103653
+ * @param {Array} [entries] The key-value pairs to cache.
103654
+ */
103655
+ function Stack(entries) {
103656
+ var data = this.__data__ = new ListCache(entries);
103657
+ this.size = data.size;
103658
+ }
103659
 
103660
+ /**
103661
+ * Removes all key-value entries from the stack.
103662
+ *
103663
+ * @private
103664
+ * @name clear
103665
+ * @memberOf Stack
103666
+ */
103667
+ function stackClear() {
103668
+ this.__data__ = new ListCache;
103669
+ this.size = 0;
103670
+ }
103671
 
103672
+ /**
103673
+ * Removes `key` and its value from the stack.
103674
+ *
103675
+ * @private
103676
+ * @name delete
103677
+ * @memberOf Stack
103678
+ * @param {string} key The key of the value to remove.
103679
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
103680
+ */
103681
+ function stackDelete(key) {
103682
+ var data = this.__data__,
103683
+ result = data['delete'](key);
103684
 
103685
+ this.size = data.size;
103686
+ return result;
103687
+ }
 
 
 
 
 
103688
 
103689
+ /**
103690
+ * Gets the stack value for `key`.
103691
+ *
103692
+ * @private
103693
+ * @name get
103694
+ * @memberOf Stack
103695
+ * @param {string} key The key of the value to get.
103696
+ * @returns {*} Returns the entry value.
103697
+ */
103698
+ function stackGet(key) {
103699
+ return this.__data__.get(key);
103700
+ }
103701
 
103702
+ /**
103703
+ * Checks if a stack value for `key` exists.
103704
+ *
103705
+ * @private
103706
+ * @name has
103707
+ * @memberOf Stack
103708
+ * @param {string} key The key of the entry to check.
103709
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
103710
+ */
103711
+ function stackHas(key) {
103712
+ return this.__data__.has(key);
103713
+ }
103714
 
103715
+ /**
103716
+ * Sets the stack `key` to `value`.
103717
+ *
103718
+ * @private
103719
+ * @name set
103720
+ * @memberOf Stack
103721
+ * @param {string} key The key of the value to set.
103722
+ * @param {*} value The value to set.
103723
+ * @returns {Object} Returns the stack cache instance.
103724
+ */
103725
+ function stackSet(key, value) {
103726
+ var data = this.__data__;
103727
+ if (data instanceof ListCache) {
103728
+ var pairs = data.__data__;
103729
+ if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
103730
+ pairs.push([key, value]);
103731
+ this.size = ++data.size;
103732
+ return this;
103733
+ }
103734
+ data = this.__data__ = new MapCache(pairs);
103735
+ }
103736
+ data.set(key, value);
103737
+ this.size = data.size;
103738
+ return this;
103739
+ }
103740
 
103741
+ // Add methods to `Stack`.
103742
+ Stack.prototype.clear = stackClear;
103743
+ Stack.prototype['delete'] = stackDelete;
103744
+ Stack.prototype.get = stackGet;
103745
+ Stack.prototype.has = stackHas;
103746
+ Stack.prototype.set = stackSet;
103747
 
103748
+ /*------------------------------------------------------------------------*/
 
 
103749
 
103750
+ /**
103751
+ * Creates an array of the enumerable property names of the array-like `value`.
103752
+ *
103753
+ * @private
103754
+ * @param {*} value The value to query.
103755
+ * @param {boolean} inherited Specify returning inherited property names.
103756
+ * @returns {Array} Returns the array of property names.
103757
+ */
103758
+ function arrayLikeKeys(value, inherited) {
103759
+ var isArr = isArray(value),
103760
+ isArg = !isArr && isArguments(value),
103761
+ isBuff = !isArr && !isArg && isBuffer(value),
103762
+ isType = !isArr && !isArg && !isBuff && isTypedArray(value),
103763
+ skipIndexes = isArr || isArg || isBuff || isType,
103764
+ result = skipIndexes ? baseTimes(value.length, String) : [],
103765
+ length = result.length;
103766
+
103767
+ for (var key in value) {
103768
+ if ((inherited || hasOwnProperty.call(value, key)) &&
103769
+ !(skipIndexes && (
103770
+ // Safari 9 has enumerable `arguments.length` in strict mode.
103771
+ key == 'length' ||
103772
+ // Node.js 0.10 has enumerable non-index properties on buffers.
103773
+ (isBuff && (key == 'offset' || key == 'parent')) ||
103774
+ // PhantomJS 2 has enumerable non-index properties on typed arrays.
103775
+ (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
103776
+ // Skip index properties.
103777
+ isIndex(key, length)
103778
+ ))) {
103779
+ result.push(key);
103780
  }
103781
  }
103782
+ return result;
103783
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103784
 
103785
+ /**
103786
+ * A specialized version of `_.sample` for arrays.
103787
+ *
103788
+ * @private
103789
+ * @param {Array} array The array to sample.
103790
+ * @returns {*} Returns the random element.
103791
+ */
103792
+ function arraySample(array) {
103793
+ var length = array.length;
103794
+ return length ? array[baseRandom(0, length - 1)] : undefined;
103795
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103796
 
103797
+ /**
103798
+ * A specialized version of `_.sampleSize` for arrays.
103799
+ *
103800
+ * @private
103801
+ * @param {Array} array The array to sample.
103802
+ * @param {number} n The number of elements to sample.
103803
+ * @returns {Array} Returns the random elements.
103804
+ */
103805
+ function arraySampleSize(array, n) {
103806
+ return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103807
  }
 
 
 
 
 
 
 
 
 
 
 
103808
 
103809
+ /**
103810
+ * A specialized version of `_.shuffle` for arrays.
103811
+ *
103812
+ * @private
103813
+ * @param {Array} array The array to shuffle.
103814
+ * @returns {Array} Returns the new shuffled array.
103815
+ */
103816
+ function arrayShuffle(array) {
103817
+ return shuffleSelf(copyArray(array));
103818
+ }
103819
 
103820
+ /**
103821
+ * This function is like `assignValue` except that it doesn't assign
103822
+ * `undefined` values.
103823
+ *
103824
+ * @private
103825
+ * @param {Object} object The object to modify.
103826
+ * @param {string} key The key of the property to assign.
103827
+ * @param {*} value The value to assign.
103828
+ */
103829
+ function assignMergeValue(object, key, value) {
103830
+ if ((value !== undefined && !eq(object[key], value)) ||
103831
+ (value === undefined && !(key in object))) {
103832
+ baseAssignValue(object, key, value);
103833
+ }
103834
+ }
103835
 
103836
+ /**
103837
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
103838
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
103839
+ * for equality comparisons.
103840
+ *
103841
+ * @private
103842
+ * @param {Object} object The object to modify.
103843
+ * @param {string} key The key of the property to assign.
103844
+ * @param {*} value The value to assign.
103845
+ */
103846
+ function assignValue(object, key, value) {
103847
+ var objValue = object[key];
103848
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
103849
+ (value === undefined && !(key in object))) {
103850
+ baseAssignValue(object, key, value);
103851
+ }
103852
+ }
103853
 
103854
+ /**
103855
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
103856
+ *
103857
+ * @private
103858
+ * @param {Array} array The array to inspect.
103859
+ * @param {*} key The key to search for.
103860
+ * @returns {number} Returns the index of the matched value, else `-1`.
103861
+ */
103862
+ function assocIndexOf(array, key) {
103863
+ var length = array.length;
103864
+ while (length--) {
103865
+ if (eq(array[length][0], key)) {
103866
+ return length;
103867
+ }
103868
+ }
103869
+ return -1;
103870
+ }
103871
 
103872
+ /**
103873
+ * Aggregates elements of `collection` on `accumulator` with keys transformed
103874
+ * by `iteratee` and values set by `setter`.
103875
+ *
103876
+ * @private
103877
+ * @param {Array|Object} collection The collection to iterate over.
103878
+ * @param {Function} setter The function to set `accumulator` values.
103879
+ * @param {Function} iteratee The iteratee to transform keys.
103880
+ * @param {Object} accumulator The initial aggregated object.
103881
+ * @returns {Function} Returns `accumulator`.
103882
+ */
103883
+ function baseAggregator(collection, setter, iteratee, accumulator) {
103884
+ baseEach(collection, function(value, key, collection) {
103885
+ setter(accumulator, value, iteratee(value), collection);
103886
+ });
103887
+ return accumulator;
103888
+ }
103889
 
103890
+ /**
103891
+ * The base implementation of `_.assign` without support for multiple sources
103892
+ * or `customizer` functions.
103893
+ *
103894
+ * @private
103895
+ * @param {Object} object The destination object.
103896
+ * @param {Object} source The source object.
103897
+ * @returns {Object} Returns `object`.
103898
+ */
103899
+ function baseAssign(object, source) {
103900
+ return object && copyObject(source, keys(source), object);
103901
+ }
103902
 
103903
+ /**
103904
+ * The base implementation of `_.assignIn` without support for multiple sources
103905
+ * or `customizer` functions.
103906
+ *
103907
+ * @private
103908
+ * @param {Object} object The destination object.
103909
+ * @param {Object} source The source object.
103910
+ * @returns {Object} Returns `object`.
103911
+ */
103912
+ function baseAssignIn(object, source) {
103913
+ return object && copyObject(source, keysIn(source), object);
103914
+ }
103915
 
103916
+ /**
103917
+ * The base implementation of `assignValue` and `assignMergeValue` without
103918
+ * value checks.
103919
+ *
103920
+ * @private
103921
+ * @param {Object} object The object to modify.
103922
+ * @param {string} key The key of the property to assign.
103923
+ * @param {*} value The value to assign.
103924
+ */
103925
+ function baseAssignValue(object, key, value) {
103926
+ if (key == '__proto__' && defineProperty) {
103927
+ defineProperty(object, key, {
103928
+ 'configurable': true,
103929
+ 'enumerable': true,
103930
+ 'value': value,
103931
+ 'writable': true
103932
+ });
103933
+ } else {
103934
+ object[key] = value;
103935
+ }
103936
+ }
103937
 
103938
+ /**
103939
+ * The base implementation of `_.at` without support for individual paths.
103940
+ *
103941
+ * @private
103942
+ * @param {Object} object The object to iterate over.
103943
+ * @param {string[]} paths The property paths to pick.
103944
+ * @returns {Array} Returns the picked elements.
103945
+ */
103946
+ function baseAt(object, paths) {
103947
+ var index = -1,
103948
+ length = paths.length,
103949
+ result = Array(length),
103950
+ skip = object == null;
103951
 
103952
+ while (++index < length) {
103953
+ result[index] = skip ? undefined : get(object, paths[index]);
103954
+ }
103955
+ return result;
103956
+ }
103957
 
103958
+ /**
103959
+ * The base implementation of `_.clamp` which doesn't coerce arguments.
103960
+ *
103961
+ * @private
103962
+ * @param {number} number The number to clamp.
103963
+ * @param {number} [lower] The lower bound.
103964
+ * @param {number} upper The upper bound.
103965
+ * @returns {number} Returns the clamped number.
103966
+ */
103967
+ function baseClamp(number, lower, upper) {
103968
+ if (number === number) {
103969
+ if (upper !== undefined) {
103970
+ number = number <= upper ? number : upper;
103971
+ }
103972
+ if (lower !== undefined) {
103973
+ number = number >= lower ? number : lower;
103974
+ }
103975
+ }
103976
+ return number;
103977
+ }
103978
 
103979
+ /**
103980
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
103981
+ * traversed objects.
103982
+ *
103983
+ * @private
103984
+ * @param {*} value The value to clone.
103985
+ * @param {boolean} bitmask The bitmask flags.
103986
+ * 1 - Deep clone
103987
+ * 2 - Flatten inherited properties
103988
+ * 4 - Clone symbols
103989
+ * @param {Function} [customizer] The function to customize cloning.
103990
+ * @param {string} [key] The key of `value`.
103991
+ * @param {Object} [object] The parent object of `value`.
103992
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
103993
+ * @returns {*} Returns the cloned value.
103994
+ */
103995
+ function baseClone(value, bitmask, customizer, key, object, stack) {
103996
+ var result,
103997
+ isDeep = bitmask & CLONE_DEEP_FLAG,
103998
+ isFlat = bitmask & CLONE_FLAT_FLAG,
103999
+ isFull = bitmask & CLONE_SYMBOLS_FLAG;
104000
 
104001
+ if (customizer) {
104002
+ result = object ? customizer(value, key, object, stack) : customizer(value);
104003
+ }
104004
+ if (result !== undefined) {
104005
+ return result;
104006
+ }
104007
+ if (!isObject(value)) {
104008
+ return value;
104009
+ }
104010
+ var isArr = isArray(value);
104011
+ if (isArr) {
104012
+ result = initCloneArray(value);
104013
+ if (!isDeep) {
104014
+ return copyArray(value, result);
104015
+ }
104016
+ } else {
104017
+ var tag = getTag(value),
104018
+ isFunc = tag == funcTag || tag == genTag;
104019
+
104020
+ if (isBuffer(value)) {
104021
+ return cloneBuffer(value, isDeep);
104022
+ }
104023
+ if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
104024
+ result = (isFlat || isFunc) ? {} : initCloneObject(value);
104025
+ if (!isDeep) {
104026
+ return isFlat
104027
+ ? copySymbolsIn(value, baseAssignIn(result, value))
104028
+ : copySymbols(value, baseAssign(result, value));
104029
+ }
104030
+ } else {
104031
+ if (!cloneableTags[tag]) {
104032
+ return object ? value : {};
104033
+ }
104034
+ result = initCloneByTag(value, tag, isDeep);
104035
+ }
104036
+ }
104037
+ // Check for circular references and return its corresponding clone.
104038
+ stack || (stack = new Stack);
104039
+ var stacked = stack.get(value);
104040
+ if (stacked) {
104041
+ return stacked;
104042
+ }
104043
+ stack.set(value, result);
104044
 
104045
+ if (isSet(value)) {
104046
+ value.forEach(function(subValue) {
104047
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
104048
+ });
104049
+ } else if (isMap(value)) {
104050
+ value.forEach(function(subValue, key) {
104051
+ result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
104052
+ });
104053
+ }
104054
 
104055
+ var keysFunc = isFull
104056
+ ? (isFlat ? getAllKeysIn : getAllKeys)
104057
+ : (isFlat ? keysIn : keys);
104058
 
104059
+ var props = isArr ? undefined : keysFunc(value);
104060
+ arrayEach(props || value, function(subValue, key) {
104061
+ if (props) {
104062
+ key = subValue;
104063
+ subValue = value[key];
104064
+ }
104065
+ // Recursively populate clone (susceptible to call stack limits).
104066
+ assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
104067
+ });
104068
+ return result;
104069
+ }
104070
 
104071
+ /**
104072
+ * The base implementation of `_.conforms` which doesn't clone `source`.
104073
+ *
104074
+ * @private
104075
+ * @param {Object} source The object of property predicates to conform to.
104076
+ * @returns {Function} Returns the new spec function.
104077
+ */
104078
+ function baseConforms(source) {
104079
+ var props = keys(source);
104080
+ return function(object) {
104081
+ return baseConformsTo(object, source, props);
104082
+ };
104083
+ }
104084
 
104085
+ /**
104086
+ * The base implementation of `_.conformsTo` which accepts `props` to check.
104087
+ *
104088
+ * @private
104089
+ * @param {Object} object The object to inspect.
104090
+ * @param {Object} source The object of property predicates to conform to.
104091
+ * @returns {boolean} Returns `true` if `object` conforms, else `false`.
104092
+ */
104093
+ function baseConformsTo(object, source, props) {
104094
+ var length = props.length;
104095
+ if (object == null) {
104096
+ return !length;
104097
+ }
104098
+ object = Object(object);
104099
+ while (length--) {
104100
+ var key = props[length],
104101
+ predicate = source[key],
104102
+ value = object[key];
104103
+
104104
+ if ((value === undefined && !(key in object)) || !predicate(value)) {
104105
+ return false;
104106
+ }
104107
+ }
104108
+ return true;
104109
+ }
104110
 
104111
+ /**
104112
+ * The base implementation of `_.delay` and `_.defer` which accepts `args`
104113
+ * to provide to `func`.
104114
+ *
104115
+ * @private
104116
+ * @param {Function} func The function to delay.
104117
+ * @param {number} wait The number of milliseconds to delay invocation.
104118
+ * @param {Array} args The arguments to provide to `func`.
104119
+ * @returns {number|Object} Returns the timer id or timeout object.
104120
+ */
104121
+ function baseDelay(func, wait, args) {
104122
+ if (typeof func != 'function') {
104123
+ throw new TypeError(FUNC_ERROR_TEXT);
104124
+ }
104125
+ return setTimeout(function() { func.apply(undefined, args); }, wait);
104126
+ }
104127
 
104128
+ /**
104129
+ * The base implementation of methods like `_.difference` without support
104130
+ * for excluding multiple arrays or iteratee shorthands.
104131
+ *
104132
+ * @private
104133
+ * @param {Array} array The array to inspect.
104134
+ * @param {Array} values The values to exclude.
104135
+ * @param {Function} [iteratee] The iteratee invoked per element.
104136
+ * @param {Function} [comparator] The comparator invoked per element.
104137
+ * @returns {Array} Returns the new array of filtered values.
104138
+ */
104139
+ function baseDifference(array, values, iteratee, comparator) {
104140
+ var index = -1,
104141
+ includes = arrayIncludes,
104142
+ isCommon = true,
104143
+ length = array.length,
104144
+ result = [],
104145
+ valuesLength = values.length;
104146
+
104147
+ if (!length) {
104148
+ return result;
104149
+ }
104150
+ if (iteratee) {
104151
+ values = arrayMap(values, baseUnary(iteratee));
104152
+ }
104153
+ if (comparator) {
104154
+ includes = arrayIncludesWith;
104155
+ isCommon = false;
104156
+ }
104157
+ else if (values.length >= LARGE_ARRAY_SIZE) {
104158
+ includes = cacheHas;
104159
+ isCommon = false;
104160
+ values = new SetCache(values);
104161
+ }
104162
+ outer:
104163
+ while (++index < length) {
104164
+ var value = array[index],
104165
+ computed = iteratee == null ? value : iteratee(value);
104166
+
104167
+ value = (comparator || value !== 0) ? value : 0;
104168
+ if (isCommon && computed === computed) {
104169
+ var valuesIndex = valuesLength;
104170
+ while (valuesIndex--) {
104171
+ if (values[valuesIndex] === computed) {
104172
+ continue outer;
104173
+ }
104174
+ }
104175
+ result.push(value);
104176
+ }
104177
+ else if (!includes(values, computed, comparator)) {
104178
+ result.push(value);
104179
+ }
104180
+ }
104181
+ return result;
104182
  }
104183
 
104184
+ /**
104185
+ * The base implementation of `_.forEach` without support for iteratee shorthands.
104186
+ *
104187
+ * @private
104188
+ * @param {Array|Object} collection The collection to iterate over.
104189
+ * @param {Function} iteratee The function invoked per iteration.
104190
+ * @returns {Array|Object} Returns `collection`.
104191
+ */
104192
+ var baseEach = createBaseEach(baseForOwn);
 
 
104193
 
104194
+ /**
104195
+ * The base implementation of `_.forEachRight` without support for iteratee shorthands.
104196
+ *
104197
+ * @private
104198
+ * @param {Array|Object} collection The collection to iterate over.
104199
+ * @param {Function} iteratee The function invoked per iteration.
104200
+ * @returns {Array|Object} Returns `collection`.
104201
+ */
104202
+ var baseEachRight = createBaseEach(baseForOwnRight, true);
104203
+
104204
+ /**
104205
+ * The base implementation of `_.every` without support for iteratee shorthands.
104206
+ *
104207
+ * @private
104208
+ * @param {Array|Object} collection The collection to iterate over.
104209
+ * @param {Function} predicate The function invoked per iteration.
104210
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
104211
+ * else `false`
104212
+ */
104213
+ function baseEvery(collection, predicate) {
104214
+ var result = true;
104215
+ baseEach(collection, function(value, index, collection) {
104216
+ result = !!predicate(value, index, collection);
104217
+ return result;
104218
+ });
104219
+ return result;
104220
  }
 
 
 
 
104221
 
104222
+ /**
104223
+ * The base implementation of methods like `_.max` and `_.min` which accepts a
104224
+ * `comparator` to determine the extremum value.
104225
+ *
104226
+ * @private
104227
+ * @param {Array} array The array to iterate over.
104228
+ * @param {Function} iteratee The iteratee invoked per iteration.
104229
+ * @param {Function} comparator The comparator used to compare values.
104230
+ * @returns {*} Returns the extremum value.
104231
+ */
104232
+ function baseExtremum(array, iteratee, comparator) {
104233
+ var index = -1,
104234
+ length = array.length;
104235
 
104236
+ while (++index < length) {
104237
+ var value = array[index],
104238
+ current = iteratee(value);
104239
 
104240
+ if (current != null && (computed === undefined
104241
+ ? (current === current && !isSymbol(current))
104242
+ : comparator(current, computed)
104243
+ )) {
104244
+ var computed = current,
104245
+ result = value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104246
  }
104247
+ }
104248
+ return result;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104249
  }
 
104250
 
104251
+ /**
104252
+ * The base implementation of `_.fill` without an iteratee call guard.
104253
+ *
104254
+ * @private
104255
+ * @param {Array} array The array to fill.
104256
+ * @param {*} value The value to fill `array` with.
104257
+ * @param {number} [start=0] The start position.
104258
+ * @param {number} [end=array.length] The end position.
104259
+ * @returns {Array} Returns `array`.
104260
+ */
104261
+ function baseFill(array, value, start, end) {
104262
+ var length = array.length;
104263
 
104264
+ start = toInteger(start);
104265
+ if (start < 0) {
104266
+ start = -start > length ? 0 : (length + start);
104267
+ }
104268
+ end = (end === undefined || end > length) ? length : toInteger(end);
104269
+ if (end < 0) {
104270
+ end += length;
104271
+ }
104272
+ end = start > end ? 0 : toLength(end);
104273
+ while (start < end) {
104274
+ array[start++] = value;
104275
+ }
104276
+ return array;
104277
+ }
104278
 
104279
+ /**
104280
+ * The base implementation of `_.filter` without support for iteratee shorthands.
104281
+ *
104282
+ * @private
104283
+ * @param {Array|Object} collection The collection to iterate over.
104284
+ * @param {Function} predicate The function invoked per iteration.
104285
+ * @returns {Array} Returns the new filtered array.
104286
+ */
104287
+ function baseFilter(collection, predicate) {
104288
+ var result = [];
104289
+ baseEach(collection, function(value, index, collection) {
104290
+ if (predicate(value, index, collection)) {
104291
+ result.push(value);
104292
+ }
104293
+ });
104294
+ return result;
104295
+ }
104296
 
104297
+ /**
104298
+ * The base implementation of `_.flatten` with support for restricting flattening.
104299
+ *
104300
+ * @private
104301
+ * @param {Array} array The array to flatten.
104302
+ * @param {number} depth The maximum recursion depth.
104303
+ * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
104304
+ * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
104305
+ * @param {Array} [result=[]] The initial result value.
104306
+ * @returns {Array} Returns the new flattened array.
104307
+ */
104308
+ function baseFlatten(array, depth, predicate, isStrict, result) {
104309
+ var index = -1,
104310
+ length = array.length;
104311
+
104312
+ predicate || (predicate = isFlattenable);
104313
+ result || (result = []);
104314
+
104315
+ while (++index < length) {
104316
+ var value = array[index];
104317
+ if (depth > 0 && predicate(value)) {
104318
+ if (depth > 1) {
104319
+ // Recursively flatten arrays (susceptible to call stack limits).
104320
+ baseFlatten(value, depth - 1, predicate, isStrict, result);
104321
+ } else {
104322
+ arrayPush(result, value);
104323
+ }
104324
+ } else if (!isStrict) {
104325
+ result[result.length] = value;
104326
+ }
104327
+ }
104328
+ return result;
104329
+ }
104330
 
104331
+ /**
104332
+ * The base implementation of `baseForOwn` which iterates over `object`
104333
+ * properties returned by `keysFunc` and invokes `iteratee` for each property.
104334
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
104335
+ *
104336
+ * @private
104337
+ * @param {Object} object The object to iterate over.
104338
+ * @param {Function} iteratee The function invoked per iteration.
104339
+ * @param {Function} keysFunc The function to get the keys of `object`.
104340
+ * @returns {Object} Returns `object`.
104341
+ */
104342
+ var baseFor = createBaseFor();
104343
 
104344
+ /**
104345
+ * This function is like `baseFor` except that it iterates over properties
104346
+ * in the opposite order.
104347
+ *
104348
+ * @private
104349
+ * @param {Object} object The object to iterate over.
104350
+ * @param {Function} iteratee The function invoked per iteration.
104351
+ * @param {Function} keysFunc The function to get the keys of `object`.
104352
+ * @returns {Object} Returns `object`.
104353
+ */
104354
+ var baseForRight = createBaseFor(true);
104355
 
104356
+ /**
104357
+ * The base implementation of `_.forOwn` without support for iteratee shorthands.
104358
+ *
104359
+ * @private
104360
+ * @param {Object} object The object to iterate over.
104361
+ * @param {Function} iteratee The function invoked per iteration.
104362
+ * @returns {Object} Returns `object`.
104363
+ */
104364
+ function baseForOwn(object, iteratee) {
104365
+ return object && baseFor(object, iteratee, keys);
104366
+ }
104367
 
104368
+ /**
104369
+ * The base implementation of `_.forOwnRight` without support for iteratee shorthands.
104370
+ *
104371
+ * @private
104372
+ * @param {Object} object The object to iterate over.
104373
+ * @param {Function} iteratee The function invoked per iteration.
104374
+ * @returns {Object} Returns `object`.
104375
+ */
104376
+ function baseForOwnRight(object, iteratee) {
104377
+ return object && baseForRight(object, iteratee, keys);
104378
+ }
104379
 
104380
+ /**
104381
+ * The base implementation of `_.functions` which creates an array of
104382
+ * `object` function property names filtered from `props`.
104383
+ *
104384
+ * @private
104385
+ * @param {Object} object The object to inspect.
104386
+ * @param {Array} props The property names to filter.
104387
+ * @returns {Array} Returns the function names.
104388
+ */
104389
+ function baseFunctions(object, props) {
104390
+ return arrayFilter(props, function(key) {
104391
+ return isFunction(object[key]);
104392
+ });
104393
+ }
104394
 
104395
+ /**
104396
+ * The base implementation of `_.get` without support for default values.
104397
+ *
104398
+ * @private
104399
+ * @param {Object} object The object to query.
104400
+ * @param {Array|string} path The path of the property to get.
104401
+ * @returns {*} Returns the resolved value.
104402
+ */
104403
+ function baseGet(object, path) {
104404
+ path = castPath(path, object);
104405
 
104406
+ var index = 0,
104407
+ length = path.length;
104408
 
104409
+ while (object != null && index < length) {
104410
+ object = object[toKey(path[index++])];
104411
+ }
104412
+ return (index && index == length) ? object : undefined;
104413
+ }
104414
 
104415
+ /**
104416
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
104417
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
104418
+ * symbols of `object`.
104419
+ *
104420
+ * @private
104421
+ * @param {Object} object The object to query.
104422
+ * @param {Function} keysFunc The function to get the keys of `object`.
104423
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
104424
+ * @returns {Array} Returns the array of property names and symbols.
104425
+ */
104426
+ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
104427
+ var result = keysFunc(object);
104428
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
104429
+ }
104430
 
104431
+ /**
104432
+ * The base implementation of `getTag` without fallbacks for buggy environments.
104433
+ *
104434
+ * @private
104435
+ * @param {*} value The value to query.
104436
+ * @returns {string} Returns the `toStringTag`.
104437
+ */
104438
+ function baseGetTag(value) {
104439
+ if (value == null) {
104440
+ return value === undefined ? undefinedTag : nullTag;
104441
+ }
104442
+ return (symToStringTag && symToStringTag in Object(value))
104443
+ ? getRawTag(value)
104444
+ : objectToString(value);
104445
+ }
104446
 
104447
+ /**
104448
+ * The base implementation of `_.gt` which doesn't coerce arguments.
104449
+ *
104450
+ * @private
104451
+ * @param {*} value The value to compare.
104452
+ * @param {*} other The other value to compare.
104453
+ * @returns {boolean} Returns `true` if `value` is greater than `other`,
104454
+ * else `false`.
104455
+ */
104456
+ function baseGt(value, other) {
104457
+ return value > other;
104458
+ }
104459
 
104460
+ /**
104461
+ * The base implementation of `_.has` without support for deep paths.
104462
+ *
104463
+ * @private
104464
+ * @param {Object} [object] The object to query.
104465
+ * @param {Array|string} key The key to check.
104466
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
104467
+ */
104468
+ function baseHas(object, key) {
104469
+ return object != null && hasOwnProperty.call(object, key);
104470
+ }
104471
 
104472
+ /**
104473
+ * The base implementation of `_.hasIn` without support for deep paths.
104474
+ *
104475
+ * @private
104476
+ * @param {Object} [object] The object to query.
104477
+ * @param {Array|string} key The key to check.
104478
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
104479
+ */
104480
+ function baseHasIn(object, key) {
104481
+ return object != null && key in Object(object);
104482
+ }
104483
 
104484
+ /**
104485
+ * The base implementation of `_.inRange` which doesn't coerce arguments.
104486
+ *
104487
+ * @private
104488
+ * @param {number} number The number to check.
104489
+ * @param {number} start The start of the range.
104490
+ * @param {number} end The end of the range.
104491
+ * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
104492
+ */
104493
+ function baseInRange(number, start, end) {
104494
+ return number >= nativeMin(start, end) && number < nativeMax(start, end);
104495
+ }
 
 
 
 
 
 
 
 
 
104496
 
104497
+ /**
104498
+ * The base implementation of methods like `_.intersection`, without support
104499
+ * for iteratee shorthands, that accepts an array of arrays to inspect.
104500
+ *
104501
+ * @private
104502
+ * @param {Array} arrays The arrays to inspect.
104503
+ * @param {Function} [iteratee] The iteratee invoked per element.
104504
+ * @param {Function} [comparator] The comparator invoked per element.
104505
+ * @returns {Array} Returns the new array of shared values.
104506
+ */
104507
+ function baseIntersection(arrays, iteratee, comparator) {
104508
+ var includes = comparator ? arrayIncludesWith : arrayIncludes,
104509
+ length = arrays[0].length,
104510
+ othLength = arrays.length,
104511
+ othIndex = othLength,
104512
+ caches = Array(othLength),
104513
+ maxLength = Infinity,
104514
+ result = [];
104515
+
104516
+ while (othIndex--) {
104517
+ var array = arrays[othIndex];
104518
+ if (othIndex && iteratee) {
104519
+ array = arrayMap(array, baseUnary(iteratee));
104520
+ }
104521
+ maxLength = nativeMin(array.length, maxLength);
104522
+ caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
104523
+ ? new SetCache(othIndex && array)
104524
+ : undefined;
104525
+ }
104526
+ array = arrays[0];
104527
+
104528
+ var index = -1,
104529
+ seen = caches[0];
104530
+
104531
+ outer:
104532
+ while (++index < length && result.length < maxLength) {
104533
+ var value = array[index],
104534
+ computed = iteratee ? iteratee(value) : value;
104535
+
104536
+ value = (comparator || value !== 0) ? value : 0;
104537
+ if (!(seen
104538
+ ? cacheHas(seen, computed)
104539
+ : includes(result, computed, comparator)
104540
+ )) {
104541
+ othIndex = othLength;
104542
+ while (--othIndex) {
104543
+ var cache = caches[othIndex];
104544
+ if (!(cache
104545
+ ? cacheHas(cache, computed)
104546
+ : includes(arrays[othIndex], computed, comparator))
104547
+ ) {
104548
+ continue outer;
104549
+ }
104550
+ }
104551
+ if (seen) {
104552
+ seen.push(computed);
104553
+ }
104554
+ result.push(value);
104555
+ }
104556
  }
104557
+ return result;
104558
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
104559
 
104560
+ /**
104561
+ * The base implementation of `_.invert` and `_.invertBy` which inverts
104562
+ * `object` with values transformed by `iteratee` and set by `setter`.
104563
+ *
104564
+ * @private
104565
+ * @param {Object} object The object to iterate over.
104566
+ * @param {Function} setter The function to set `accumulator` values.
104567
+ * @param {Function} iteratee The iteratee to transform values.
104568
+ * @param {Object} accumulator The initial inverted object.
104569
+ * @returns {Function} Returns `accumulator`.
104570
+ */
104571
+ function baseInverter(object, setter, iteratee, accumulator) {
104572
+ baseForOwn(object, function(value, key, object) {
104573
+ setter(accumulator, iteratee(value), key, object);
104574
+ });
104575
+ return accumulator;
104576
+ }
104577
 
104578
+ /**
104579
+ * The base implementation of `_.invoke` without support for individual
104580
+ * method arguments.
104581
+ *
104582
+ * @private
104583
+ * @param {Object} object The object to query.
104584
+ * @param {Array|string} path The path of the method to invoke.
104585
+ * @param {Array} args The arguments to invoke the method with.
104586
+ * @returns {*} Returns the result of the invoked method.
104587
+ */
104588
+ function baseInvoke(object, path, args) {
104589
+ path = castPath(path, object);
104590
+ object = parent(object, path);
104591
+ var func = object == null ? object : object[toKey(last(path))];
104592
+ return func == null ? undefined : apply(func, object, args);
104593
+ }
104594
 
104595
+ /**
104596
+ * The base implementation of `_.isArguments`.
104597
+ *
104598
+ * @private
104599
+ * @param {*} value The value to check.
104600
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
104601
+ */
104602
+ function baseIsArguments(value) {
104603
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
104604
+ }
104605
 
104606
+ /**
104607
+ * The base implementation of `_.isArrayBuffer` without Node.js optimizations.
104608
+ *
104609
+ * @private
104610
+ * @param {*} value The value to check.
104611
+ * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
104612
+ */
104613
+ function baseIsArrayBuffer(value) {
104614
+ return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
104615
+ }
104616
 
104617
+ /**
104618
+ * The base implementation of `_.isDate` without Node.js optimizations.
104619
+ *
104620
+ * @private
104621
+ * @param {*} value The value to check.
104622
+ * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
104623
+ */
104624
+ function baseIsDate(value) {
104625
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
104626
+ }
104627
 
104628
+ /**
104629
+ * The base implementation of `_.isEqual` which supports partial comparisons
104630
+ * and tracks traversed objects.
104631
+ *
104632
+ * @private
104633
+ * @param {*} value The value to compare.
104634
+ * @param {*} other The other value to compare.
104635
+ * @param {boolean} bitmask The bitmask flags.
104636
+ * 1 - Unordered comparison
104637
+ * 2 - Partial comparison
104638
+ * @param {Function} [customizer] The function to customize comparisons.
104639
+ * @param {Object} [stack] Tracks traversed `value` and `other` objects.
104640
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
104641
+ */
104642
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
104643
+ if (value === other) {
104644
+ return true;
104645
+ }
104646
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
104647
+ return value !== value && other !== other;
104648
+ }
104649
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
104650
+ }
104651
 
104652
+ /**
104653
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
104654
+ * deep comparisons and tracks traversed objects enabling objects with circular
104655
+ * references to be compared.
104656
+ *
104657
+ * @private
104658
+ * @param {Object} object The object to compare.
104659
+ * @param {Object} other The other object to compare.
104660
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
104661
+ * @param {Function} customizer The function to customize comparisons.
104662
+ * @param {Function} equalFunc The function to determine equivalents of values.
104663
+ * @param {Object} [stack] Tracks traversed `object` and `other` objects.
104664
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
104665
+ */
104666
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
104667
+ var objIsArr = isArray(object),
104668
+ othIsArr = isArray(other),
104669
+ objTag = objIsArr ? arrayTag : getTag(object),
104670
+ othTag = othIsArr ? arrayTag : getTag(other);
104671
 
104672
+ objTag = objTag == argsTag ? objectTag : objTag;
104673
+ othTag = othTag == argsTag ? objectTag : othTag;
 
 
104674
 
104675
+ var objIsObj = objTag == objectTag,
104676
+ othIsObj = othTag == objectTag,
104677
+ isSameTag = objTag == othTag;
104678
 
104679
+ if (isSameTag && isBuffer(object)) {
104680
+ if (!isBuffer(other)) {
104681
+ return false;
104682
+ }
104683
+ objIsArr = true;
104684
+ objIsObj = false;
104685
+ }
104686
+ if (isSameTag && !objIsObj) {
104687
+ stack || (stack = new Stack);
104688
+ return (objIsArr || isTypedArray(object))
104689
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
104690
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
104691
+ }
104692
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
104693
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
104694
+ othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
104695
 
104696
+ if (objIsWrapped || othIsWrapped) {
104697
+ var objUnwrapped = objIsWrapped ? object.value() : object,
104698
+ othUnwrapped = othIsWrapped ? other.value() : other;
104699
 
104700
+ stack || (stack = new Stack);
104701
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
104702
+ }
104703
+ }
104704
+ if (!isSameTag) {
104705
+ return false;
104706
+ }
104707
+ stack || (stack = new Stack);
104708
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
104709
+ }
104710
 
104711
+ /**
104712
+ * The base implementation of `_.isMap` without Node.js optimizations.
104713
+ *
104714
+ * @private
104715
+ * @param {*} value The value to check.
104716
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
104717
+ */
104718
+ function baseIsMap(value) {
104719
+ return isObjectLike(value) && getTag(value) == mapTag;
104720
+ }
104721
 
104722
+ /**
104723
+ * The base implementation of `_.isMatch` without support for iteratee shorthands.
104724
+ *
104725
+ * @private
104726
+ * @param {Object} object The object to inspect.
104727
+ * @param {Object} source The object of property values to match.
104728
+ * @param {Array} matchData The property names, values, and compare flags to match.
104729
+ * @param {Function} [customizer] The function to customize comparisons.
104730
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
104731
+ */
104732
+ function baseIsMatch(object, source, matchData, customizer) {
104733
+ var index = matchData.length,
104734
+ length = index,
104735
+ noCustomizer = !customizer;
104736
+
104737
+ if (object == null) {
104738
+ return !length;
104739
+ }
104740
+ object = Object(object);
104741
+ while (index--) {
104742
+ var data = matchData[index];
104743
+ if ((noCustomizer && data[2])
104744
+ ? data[1] !== object[data[0]]
104745
+ : !(data[0] in object)
104746
+ ) {
104747
+ return false;
104748
+ }
104749
+ }
104750
+ while (++index < length) {
104751
+ data = matchData[index];
104752
+ var key = data[0],
104753
+ objValue = object[key],
104754
+ srcValue = data[1];
104755
 
104756
+ if (noCustomizer && data[2]) {
104757
+ if (objValue === undefined && !(key in object)) {
104758
+ return false;
104759
+ }
104760
+ } else {
104761
+ var stack = new Stack;
104762
+ if (customizer) {
104763
+ var result = customizer(objValue, srcValue, key, object, source, stack);
104764
+ }
104765
+ if (!(result === undefined
104766
+ ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
104767
+ : result
104768
+ )) {
104769
+ return false;
104770
+ }
104771
+ }
104772
+ }
104773
+ return true;
104774
+ }
104775
 
104776
+ /**
104777
+ * The base implementation of `_.isNative` without bad shim checks.
104778
+ *
104779
+ * @private
104780
+ * @param {*} value The value to check.
104781
+ * @returns {boolean} Returns `true` if `value` is a native function,
104782
+ * else `false`.
104783
+ */
104784
+ function baseIsNative(value) {
104785
+ if (!isObject(value) || isMasked(value)) {
104786
+ return false;
104787
+ }
104788
+ var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
104789
+ return pattern.test(toSource(value));
104790
+ }
104791
 
104792
+ /**
104793
+ * The base implementation of `_.isRegExp` without Node.js optimizations.
104794
+ *
104795
+ * @private
104796
+ * @param {*} value The value to check.
104797
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
104798
+ */
104799
+ function baseIsRegExp(value) {
104800
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
104801
+ }
104802
 
104803
+ /**
104804
+ * The base implementation of `_.isSet` without Node.js optimizations.
104805
+ *
104806
+ * @private
104807
+ * @param {*} value The value to check.
104808
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
104809
+ */
104810
+ function baseIsSet(value) {
104811
+ return isObjectLike(value) && getTag(value) == setTag;
104812
+ }
104813
 
104814
+ /**
104815
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
104816
+ *
104817
+ * @private
104818
+ * @param {*} value The value to check.
104819
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
104820
+ */
104821
+ function baseIsTypedArray(value) {
104822
+ return isObjectLike(value) &&
104823
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
104824
+ }
104825
 
104826
+ /**
104827
+ * The base implementation of `_.iteratee`.
104828
+ *
104829
+ * @private
104830
+ * @param {*} [value=_.identity] The value to convert to an iteratee.
104831
+ * @returns {Function} Returns the iteratee.
104832
+ */
104833
+ function baseIteratee(value) {
104834
+ // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
104835
+ // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
104836
+ if (typeof value == 'function') {
104837
+ return value;
104838
+ }
104839
+ if (value == null) {
104840
+ return identity;
104841
+ }
104842
+ if (typeof value == 'object') {
104843
+ return isArray(value)
104844
+ ? baseMatchesProperty(value[0], value[1])
104845
+ : baseMatches(value);
104846
+ }
104847
+ return property(value);
104848
+ }
104849
 
104850
+ /**
104851
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
104852
+ *
104853
+ * @private
104854
+ * @param {Object} object The object to query.
104855
+ * @returns {Array} Returns the array of property names.
104856
+ */
104857
+ function baseKeys(object) {
104858
+ if (!isPrototype(object)) {
104859
+ return nativeKeys(object);
104860
+ }
104861
+ var result = [];
104862
+ for (var key in Object(object)) {
104863
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
104864
+ result.push(key);
104865
+ }
104866
+ }
104867
+ return result;
104868
+ }
104869
 
104870
+ /**
104871
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
104872
+ *
104873
+ * @private
104874
+ * @param {Object} object The object to query.
104875
+ * @returns {Array} Returns the array of property names.
104876
+ */
104877
+ function baseKeysIn(object) {
104878
+ if (!isObject(object)) {
104879
+ return nativeKeysIn(object);
104880
+ }
104881
+ var isProto = isPrototype(object),
104882
+ result = [];
104883
 
104884
+ for (var key in object) {
104885
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
104886
+ result.push(key);
104887
+ }
104888
+ }
104889
+ return result;
104890
+ }
104891
 
104892
+ /**
104893
+ * The base implementation of `_.lt` which doesn't coerce arguments.
104894
+ *
104895
+ * @private
104896
+ * @param {*} value The value to compare.
104897
+ * @param {*} other The other value to compare.
104898
+ * @returns {boolean} Returns `true` if `value` is less than `other`,
104899
+ * else `false`.
104900
+ */
104901
+ function baseLt(value, other) {
104902
+ return value < other;
104903
+ }
104904
 
104905
+ /**
104906
+ * The base implementation of `_.map` without support for iteratee shorthands.
104907
+ *
104908
+ * @private
104909
+ * @param {Array|Object} collection The collection to iterate over.
104910
+ * @param {Function} iteratee The function invoked per iteration.
104911
+ * @returns {Array} Returns the new mapped array.
104912
+ */
104913
+ function baseMap(collection, iteratee) {
104914
+ var index = -1,
104915
+ result = isArrayLike(collection) ? Array(collection.length) : [];
104916
 
104917
+ baseEach(collection, function(value, key, collection) {
104918
+ result[++index] = iteratee(value, key, collection);
104919
+ });
104920
+ return result;
104921
+ }
104922
 
104923
+ /**
104924
+ * The base implementation of `_.matches` which doesn't clone `source`.
104925
+ *
104926
+ * @private
104927
+ * @param {Object} source The object of property values to match.
104928
+ * @returns {Function} Returns the new spec function.
104929
+ */
104930
+ function baseMatches(source) {
104931
+ var matchData = getMatchData(source);
104932
+ if (matchData.length == 1 && matchData[0][2]) {
104933
+ return matchesStrictComparable(matchData[0][0], matchData[0][1]);
104934
+ }
104935
+ return function(object) {
104936
+ return object === source || baseIsMatch(object, source, matchData);
104937
+ };
104938
+ }
104939
 
104940
+ /**
104941
+ * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
104942
+ *
104943
+ * @private
104944
+ * @param {string} path The path of the property to get.
104945
+ * @param {*} srcValue The value to match.
104946
+ * @returns {Function} Returns the new spec function.
104947
+ */
104948
+ function baseMatchesProperty(path, srcValue) {
104949
+ if (isKey(path) && isStrictComparable(srcValue)) {
104950
+ return matchesStrictComparable(toKey(path), srcValue);
104951
+ }
104952
+ return function(object) {
104953
+ var objValue = get(object, path);
104954
+ return (objValue === undefined && objValue === srcValue)
104955
+ ? hasIn(object, path)
104956
+ : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
104957
+ };
104958
+ }
104959
 
104960
+ /**
104961
+ * The base implementation of `_.merge` without support for multiple sources.
104962
+ *
104963
+ * @private
104964
+ * @param {Object} object The destination object.
104965
+ * @param {Object} source The source object.
104966
+ * @param {number} srcIndex The index of `source`.
104967
+ * @param {Function} [customizer] The function to customize merged values.
104968
+ * @param {Object} [stack] Tracks traversed source values and their merged
104969
+ * counterparts.
104970
+ */
104971
+ function baseMerge(object, source, srcIndex, customizer, stack) {
104972
+ if (object === source) {
104973
+ return;
104974
+ }
104975
+ baseFor(source, function(srcValue, key) {
104976
+ stack || (stack = new Stack);
104977
+ if (isObject(srcValue)) {
104978
+ baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
104979
+ }
104980
+ else {
104981
+ var newValue = customizer
104982
+ ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
104983
+ : undefined;
104984
 
104985
+ if (newValue === undefined) {
104986
+ newValue = srcValue;
104987
+ }
104988
+ assignMergeValue(object, key, newValue);
104989
+ }
104990
+ }, keysIn);
104991
  }
 
 
 
 
104992
 
104993
+ /**
104994
+ * A specialized version of `baseMerge` for arrays and objects which performs
104995
+ * deep merges and tracks traversed objects enabling objects with circular
104996
+ * references to be merged.
104997
+ *
104998
+ * @private
104999
+ * @param {Object} object The destination object.
105000
+ * @param {Object} source The source object.
105001
+ * @param {string} key The key of the value to merge.
105002
+ * @param {number} srcIndex The index of `source`.
105003
+ * @param {Function} mergeFunc The function to merge values.
105004
+ * @param {Function} [customizer] The function to customize assigned values.
105005
+ * @param {Object} [stack] Tracks traversed source values and their merged
105006
+ * counterparts.
105007
+ */
105008
+ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
105009
+ var objValue = safeGet(object, key),
105010
+ srcValue = safeGet(source, key),
105011
+ stacked = stack.get(srcValue);
105012
+
105013
+ if (stacked) {
105014
+ assignMergeValue(object, key, stacked);
105015
+ return;
105016
  }
105017
+ var newValue = customizer
105018
+ ? customizer(objValue, srcValue, (key + ''), object, source, stack)
105019
+ : undefined;
 
 
 
 
 
 
 
 
 
 
105020
 
105021
+ var isCommon = newValue === undefined;
 
 
 
 
 
105022
 
105023
+ if (isCommon) {
105024
+ var isArr = isArray(srcValue),
105025
+ isBuff = !isArr && isBuffer(srcValue),
105026
+ isTyped = !isArr && !isBuff && isTypedArray(srcValue);
105027
+
105028
+ newValue = srcValue;
105029
+ if (isArr || isBuff || isTyped) {
105030
+ if (isArray(objValue)) {
105031
+ newValue = objValue;
105032
+ }
105033
+ else if (isArrayLikeObject(objValue)) {
105034
+ newValue = copyArray(objValue);
105035
+ }
105036
+ else if (isBuff) {
105037
+ isCommon = false;
105038
+ newValue = cloneBuffer(srcValue, true);
105039
+ }
105040
+ else if (isTyped) {
105041
+ isCommon = false;
105042
+ newValue = cloneTypedArray(srcValue, true);
105043
+ }
105044
+ else {
105045
+ newValue = [];
 
 
 
 
 
 
105046
  }
 
 
 
 
 
 
 
105047
  }
105048
+ else if (isPlainObject(srcValue) || isArguments(srcValue)) {
105049
+ newValue = objValue;
105050
+ if (isArguments(objValue)) {
105051
+ newValue = toPlainObject(objValue);
105052
+ }
105053
+ else if (!isObject(objValue) || isFunction(objValue)) {
105054
+ newValue = initCloneObject(srcValue);
105055
+ }
105056
+ }
105057
+ else {
105058
+ isCommon = false;
105059
+ }
105060
+ }
105061
+ if (isCommon) {
105062
+ // Recursively merge objects and arrays (susceptible to call stack limits).
105063
+ stack.set(srcValue, newValue);
105064
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
105065
+ stack['delete'](srcValue);
105066
+ }
105067
+ assignMergeValue(object, key, newValue);
 
 
 
 
 
 
 
 
 
105068
  }
 
105069
 
105070
+ /**
105071
+ * The base implementation of `_.nth` which doesn't coerce arguments.
105072
+ *
105073
+ * @private
105074
+ * @param {Array} array The array to query.
105075
+ * @param {number} n The index of the element to return.
105076
+ * @returns {*} Returns the nth element of `array`.
105077
+ */
105078
+ function baseNth(array, n) {
105079
+ var length = array.length;
105080
+ if (!length) {
105081
+ return;
105082
+ }
105083
+ n += n < 0 ? length : 0;
105084
+ return isIndex(n, length) ? array[n] : undefined;
105085
+ }
105086
 
105087
+ /**
105088
+ * The base implementation of `_.orderBy` without param guards.
105089
+ *
105090
+ * @private
105091
+ * @param {Array|Object} collection The collection to iterate over.
105092
+ * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
105093
+ * @param {string[]} orders The sort orders of `iteratees`.
105094
+ * @returns {Array} Returns the new sorted array.
105095
+ */
105096
+ function baseOrderBy(collection, iteratees, orders) {
105097
+ if (iteratees.length) {
105098
+ iteratees = arrayMap(iteratees, function(iteratee) {
105099
+ if (isArray(iteratee)) {
105100
+ return function(value) {
105101
+ return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
105102
+ }
105103
+ }
105104
+ return iteratee;
105105
+ });
105106
+ } else {
105107
+ iteratees = [identity];
105108
+ }
105109
 
105110
+ var index = -1;
105111
+ iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
105112
 
105113
+ var result = baseMap(collection, function(value, key, collection) {
105114
+ var criteria = arrayMap(iteratees, function(iteratee) {
105115
+ return iteratee(value);
105116
+ });
105117
+ return { 'criteria': criteria, 'index': ++index, 'value': value };
105118
+ });
105119
 
105120
+ return baseSortBy(result, function(object, other) {
105121
+ return compareMultiple(object, other, orders);
105122
+ });
105123
+ }
105124
 
105125
+ /**
105126
+ * The base implementation of `_.pick` without support for individual
105127
+ * property identifiers.
105128
+ *
105129
+ * @private
105130
+ * @param {Object} object The source object.
105131
+ * @param {string[]} paths The property paths to pick.
105132
+ * @returns {Object} Returns the new object.
105133
+ */
105134
+ function basePick(object, paths) {
105135
+ return basePickBy(object, paths, function(value, path) {
105136
+ return hasIn(object, path);
105137
+ });
105138
+ }
105139
 
105140
+ /**
105141
+ * The base implementation of `_.pickBy` without support for iteratee shorthands.
105142
+ *
105143
+ * @private
105144
+ * @param {Object} object The source object.
105145
+ * @param {string[]} paths The property paths to pick.
105146
+ * @param {Function} predicate The function invoked per property.
105147
+ * @returns {Object} Returns the new object.
105148
+ */
105149
+ function basePickBy(object, paths, predicate) {
105150
+ var index = -1,
105151
+ length = paths.length,
105152
+ result = {};
105153
 
105154
+ while (++index < length) {
105155
+ var path = paths[index],
105156
+ value = baseGet(object, path);
105157
 
105158
+ if (predicate(value, path)) {
105159
+ baseSet(result, castPath(path, object), value);
105160
+ }
105161
+ }
105162
+ return result;
105163
+ }
105164
 
105165
+ /**
105166
+ * A specialized version of `baseProperty` which supports deep paths.
105167
+ *
105168
+ * @private
105169
+ * @param {Array|string} path The path of the property to get.
105170
+ * @returns {Function} Returns the new accessor function.
105171
+ */
105172
+ function basePropertyDeep(path) {
105173
+ return function(object) {
105174
+ return baseGet(object, path);
105175
+ };
105176
+ }
105177
 
105178
+ /**
105179
+ * The base implementation of `_.pullAllBy` without support for iteratee
105180
+ * shorthands.
105181
+ *
105182
+ * @private
105183
+ * @param {Array} array The array to modify.
105184
+ * @param {Array} values The values to remove.
105185
+ * @param {Function} [iteratee] The iteratee invoked per element.
105186
+ * @param {Function} [comparator] The comparator invoked per element.
105187
+ * @returns {Array} Returns `array`.
105188
+ */
105189
+ function basePullAll(array, values, iteratee, comparator) {
105190
+ var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
105191
+ index = -1,
105192
+ length = values.length,
105193
+ seen = array;
105194
+
105195
+ if (array === values) {
105196
+ values = copyArray(values);
105197
+ }
105198
+ if (iteratee) {
105199
+ seen = arrayMap(array, baseUnary(iteratee));
105200
+ }
105201
+ while (++index < length) {
105202
+ var fromIndex = 0,
105203
+ value = values[index],
105204
+ computed = iteratee ? iteratee(value) : value;
105205
+
105206
+ while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
105207
+ if (seen !== array) {
105208
+ splice.call(seen, fromIndex, 1);
105209
+ }
105210
+ splice.call(array, fromIndex, 1);
105211
+ }
105212
+ }
105213
+ return array;
105214
+ }
105215
 
105216
+ /**
105217
+ * The base implementation of `_.pullAt` without support for individual
105218
+ * indexes or capturing the removed elements.
105219
+ *
105220
+ * @private
105221
+ * @param {Array} array The array to modify.
105222
+ * @param {number[]} indexes The indexes of elements to remove.
105223
+ * @returns {Array} Returns `array`.
105224
+ */
105225
+ function basePullAt(array, indexes) {
105226
+ var length = array ? indexes.length : 0,
105227
+ lastIndex = length - 1;
105228
+
105229
+ while (length--) {
105230
+ var index = indexes[length];
105231
+ if (length == lastIndex || index !== previous) {
105232
+ var previous = index;
105233
+ if (isIndex(index)) {
105234
+ splice.call(array, index, 1);
105235
+ } else {
105236
+ baseUnset(array, index);
105237
+ }
105238
+ }
105239
+ }
105240
+ return array;
105241
+ }
105242
 
105243
+ /**
105244
+ * The base implementation of `_.random` without support for returning
105245
+ * floating-point numbers.
105246
+ *
105247
+ * @private
105248
+ * @param {number} lower The lower bound.
105249
+ * @param {number} upper The upper bound.
105250
+ * @returns {number} Returns the random number.
105251
+ */
105252
+ function baseRandom(lower, upper) {
105253
+ return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
105254
+ }
105255
 
105256
+ /**
105257
+ * The base implementation of `_.range` and `_.rangeRight` which doesn't
105258
+ * coerce arguments.
105259
+ *
105260
+ * @private
105261
+ * @param {number} start The start of the range.
105262
+ * @param {number} end The end of the range.
105263
+ * @param {number} step The value to increment or decrement by.
105264
+ * @param {boolean} [fromRight] Specify iterating from right to left.
105265
+ * @returns {Array} Returns the range of numbers.
105266
+ */
105267
+ function baseRange(start, end, step, fromRight) {
105268
+ var index = -1,
105269
+ length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
105270
+ result = Array(length);
105271
 
105272
+ while (length--) {
105273
+ result[fromRight ? length : ++index] = start;
105274
+ start += step;
105275
+ }
105276
+ return result;
105277
+ }
105278
 
105279
+ /**
105280
+ * The base implementation of `_.repeat` which doesn't coerce arguments.
105281
+ *
105282
+ * @private
105283
+ * @param {string} string The string to repeat.
105284
+ * @param {number} n The number of times to repeat the string.
105285
+ * @returns {string} Returns the repeated string.
105286
+ */
105287
+ function baseRepeat(string, n) {
105288
+ var result = '';
105289
+ if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
105290
+ return result;
105291
+ }
105292
+ // Leverage the exponentiation by squaring algorithm for a faster repeat.
105293
+ // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
105294
+ do {
105295
+ if (n % 2) {
105296
+ result += string;
105297
+ }
105298
+ n = nativeFloor(n / 2);
105299
+ if (n) {
105300
+ string += string;
105301
+ }
105302
+ } while (n);
105303
 
105304
+ return result;
105305
+ }
105306
 
105307
+ /**
105308
+ * The base implementation of `_.rest` which doesn't validate or coerce arguments.
105309
+ *
105310
+ * @private
105311
+ * @param {Function} func The function to apply a rest parameter to.
105312
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
105313
+ * @returns {Function} Returns the new function.
105314
+ */
105315
+ function baseRest(func, start) {
105316
+ return setToString(overRest(func, start, identity), func + '');
105317
+ }
 
105318
 
105319
+ /**
105320
+ * The base implementation of `_.sample`.
105321
+ *
105322
+ * @private
105323
+ * @param {Array|Object} collection The collection to sample.
105324
+ * @returns {*} Returns the random element.
105325
+ */
105326
+ function baseSample(collection) {
105327
+ return arraySample(values(collection));
 
 
105328
  }
 
105329
 
105330
+ /**
105331
+ * The base implementation of `_.sampleSize` without param guards.
105332
+ *
105333
+ * @private
105334
+ * @param {Array|Object} collection The collection to sample.
105335
+ * @param {number} n The number of elements to sample.
105336
+ * @returns {Array} Returns the random elements.
105337
+ */
105338
+ function baseSampleSize(collection, n) {
105339
+ var array = values(collection);
105340
+ return shuffleSelf(array, baseClamp(n, 0, array.length));
105341
+ }
105342
 
105343
+ /**
105344
+ * The base implementation of `_.set`.
105345
+ *
105346
+ * @private
105347
+ * @param {Object} object The object to modify.
105348
+ * @param {Array|string} path The path of the property to set.
105349
+ * @param {*} value The value to set.
105350
+ * @param {Function} [customizer] The function to customize path creation.
105351
+ * @returns {Object} Returns `object`.
105352
+ */
105353
+ function baseSet(object, path, value, customizer) {
105354
+ if (!isObject(object)) {
105355
+ return object;
105356
+ }
105357
+ path = castPath(path, object);
105358
 
105359
+ var index = -1,
105360
+ length = path.length,
105361
+ lastIndex = length - 1,
105362
+ nested = object;
 
 
 
 
 
 
 
 
 
 
 
 
105363
 
105364
+ while (nested != null && ++index < length) {
105365
+ var key = toKey(path[index]),
105366
+ newValue = value;
105367
 
105368
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
105369
+ return object;
105370
+ }
105371
 
105372
+ if (index != lastIndex) {
105373
+ var objValue = nested[key];
105374
+ newValue = customizer ? customizer(objValue, key, nested) : undefined;
105375
+ if (newValue === undefined) {
105376
+ newValue = isObject(objValue)
105377
+ ? objValue
105378
+ : (isIndex(path[index + 1]) ? [] : {});
105379
+ }
105380
+ }
105381
+ assignValue(nested, key, newValue);
105382
+ nested = nested[key];
105383
+ }
105384
+ return object;
105385
+ }
105386
 
105387
+ /**
105388
+ * The base implementation of `setData` without support for hot loop shorting.
105389
+ *
105390
+ * @private
105391
+ * @param {Function} func The function to associate metadata with.
105392
+ * @param {*} data The metadata.
105393
+ * @returns {Function} Returns `func`.
105394
+ */
105395
+ var baseSetData = !metaMap ? identity : function(func, data) {
105396
+ metaMap.set(func, data);
105397
+ return func;
105398
+ };
105399
 
105400
+ /**
105401
+ * The base implementation of `setToString` without support for hot loop shorting.
105402
+ *
105403
+ * @private
105404
+ * @param {Function} func The function to modify.
105405
+ * @param {Function} string The `toString` result.
105406
+ * @returns {Function} Returns `func`.
105407
+ */
105408
+ var baseSetToString = !defineProperty ? identity : function(func, string) {
105409
+ return defineProperty(func, 'toString', {
105410
+ 'configurable': true,
105411
+ 'enumerable': false,
105412
+ 'value': constant(string),
105413
+ 'writable': true
105414
+ });
105415
+ };
105416
 
105417
+ /**
105418
+ * The base implementation of `_.shuffle`.
105419
+ *
105420
+ * @private
105421
+ * @param {Array|Object} collection The collection to shuffle.
105422
+ * @returns {Array} Returns the new shuffled array.
105423
+ */
105424
+ function baseShuffle(collection) {
105425
+ return shuffleSelf(values(collection));
105426
+ }
105427
 
105428
+ /**
105429
+ * The base implementation of `_.slice` without an iteratee call guard.
105430
+ *
105431
+ * @private
105432
+ * @param {Array} array The array to slice.
105433
+ * @param {number} [start=0] The start position.
105434
+ * @param {number} [end=array.length] The end position.
105435
+ * @returns {Array} Returns the slice of `array`.
105436
+ */
105437
+ function baseSlice(array, start, end) {
105438
+ var index = -1,
105439
+ length = array.length;
105440
 
105441
+ if (start < 0) {
105442
+ start = -start > length ? 0 : (length + start);
105443
+ }
105444
+ end = end > length ? length : end;
105445
+ if (end < 0) {
105446
+ end += length;
105447
+ }
105448
+ length = start > end ? 0 : ((end - start) >>> 0);
105449
+ start >>>= 0;
105450
 
105451
+ var result = Array(length);
105452
+ while (++index < length) {
105453
+ result[index] = array[index + start];
105454
+ }
105455
+ return result;
105456
+ }
105457
 
105458
+ /**
105459
+ * The base implementation of `_.some` without support for iteratee shorthands.
105460
+ *
105461
+ * @private
105462
+ * @param {Array|Object} collection The collection to iterate over.
105463
+ * @param {Function} predicate The function invoked per iteration.
105464
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
105465
+ * else `false`.
105466
+ */
105467
+ function baseSome(collection, predicate) {
105468
+ var result;
105469
 
105470
+ baseEach(collection, function(value, index, collection) {
105471
+ result = predicate(value, index, collection);
105472
+ return !result;
105473
+ });
105474
+ return !!result;
105475
+ }
105476
 
105477
+ /**
105478
+ * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which
105479
+ * performs a binary search of `array` to determine the index at which `value`
105480
+ * should be inserted into `array` in order to maintain its sort order.
105481
+ *
105482
+ * @private
105483
+ * @param {Array} array The sorted array to inspect.
105484
+ * @param {*} value The value to evaluate.
105485
+ * @param {boolean} [retHighest] Specify returning the highest qualified index.
105486
+ * @returns {number} Returns the index at which `value` should be inserted
105487
+ * into `array`.
105488
+ */
105489
+ function baseSortedIndex(array, value, retHighest) {
105490
+ var low = 0,
105491
+ high = array == null ? low : array.length;
105492
+
105493
+ if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
105494
+ while (low < high) {
105495
+ var mid = (low + high) >>> 1,
105496
+ computed = array[mid];
105497
+
105498
+ if (computed !== null && !isSymbol(computed) &&
105499
+ (retHighest ? (computed <= value) : (computed < value))) {
105500
+ low = mid + 1;
105501
+ } else {
105502
+ high = mid;
105503
+ }
105504
+ }
105505
+ return high;
105506
+ }
105507
+ return baseSortedIndexBy(array, value, identity, retHighest);
105508
+ }
105509
 
105510
+ /**
105511
+ * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`
105512
+ * which invokes `iteratee` for `value` and each element of `array` to compute
105513
+ * their sort ranking. The iteratee is invoked with one argument; (value).
105514
+ *
105515
+ * @private
105516
+ * @param {Array} array The sorted array to inspect.
105517
+ * @param {*} value The value to evaluate.
105518
+ * @param {Function} iteratee The iteratee invoked per element.
105519
+ * @param {boolean} [retHighest] Specify returning the highest qualified index.
105520
+ * @returns {number} Returns the index at which `value` should be inserted
105521
+ * into `array`.
105522
+ */
105523
+ function baseSortedIndexBy(array, value, iteratee, retHighest) {
105524
+ var low = 0,
105525
+ high = array == null ? 0 : array.length;
105526
+ if (high === 0) {
105527
+ return 0;
105528
+ }
105529
 
105530
+ value = iteratee(value);
105531
+ var valIsNaN = value !== value,
105532
+ valIsNull = value === null,
105533
+ valIsSymbol = isSymbol(value),
105534
+ valIsUndefined = value === undefined;
105535
+
105536
+ while (low < high) {
105537
+ var mid = nativeFloor((low + high) / 2),
105538
+ computed = iteratee(array[mid]),
105539
+ othIsDefined = computed !== undefined,
105540
+ othIsNull = computed === null,
105541
+ othIsReflexive = computed === computed,
105542
+ othIsSymbol = isSymbol(computed);
105543
+
105544
+ if (valIsNaN) {
105545
+ var setLow = retHighest || othIsReflexive;
105546
+ } else if (valIsUndefined) {
105547
+ setLow = othIsReflexive && (retHighest || othIsDefined);
105548
+ } else if (valIsNull) {
105549
+ setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
105550
+ } else if (valIsSymbol) {
105551
+ setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
105552
+ } else if (othIsNull || othIsSymbol) {
105553
+ setLow = false;
105554
+ } else {
105555
+ setLow = retHighest ? (computed <= value) : (computed < value);
105556
+ }
105557
+ if (setLow) {
105558
+ low = mid + 1;
105559
+ } else {
105560
+ high = mid;
105561
+ }
105562
+ }
105563
+ return nativeMin(high, MAX_ARRAY_INDEX);
105564
+ }
105565
 
105566
+ /**
105567
+ * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without
105568
+ * support for iteratee shorthands.
105569
+ *
105570
+ * @private
105571
+ * @param {Array} array The array to inspect.
105572
+ * @param {Function} [iteratee] The iteratee invoked per element.
105573
+ * @returns {Array} Returns the new duplicate free array.
105574
+ */
105575
+ function baseSortedUniq(array, iteratee) {
105576
+ var index = -1,
105577
+ length = array.length,
105578
+ resIndex = 0,
105579
+ result = [];
105580
 
105581
+ while (++index < length) {
105582
+ var value = array[index],
105583
+ computed = iteratee ? iteratee(value) : value;
 
 
 
105584
 
105585
+ if (!index || !eq(computed, seen)) {
105586
+ var seen = computed;
105587
+ result[resIndex++] = value === 0 ? 0 : value;
105588
+ }
105589
+ }
105590
+ return result;
105591
+ }
105592
 
105593
+ /**
105594
+ * The base implementation of `_.toNumber` which doesn't ensure correct
105595
+ * conversions of binary, hexadecimal, or octal string values.
105596
+ *
105597
+ * @private
105598
+ * @param {*} value The value to process.
105599
+ * @returns {number} Returns the number.
105600
+ */
105601
+ function baseToNumber(value) {
105602
+ if (typeof value == 'number') {
105603
+ return value;
105604
+ }
105605
+ if (isSymbol(value)) {
105606
+ return NAN;
105607
+ }
105608
+ return +value;
105609
+ }
105610
 
105611
+ /**
105612
+ * The base implementation of `_.toString` which doesn't convert nullish
105613
+ * values to empty strings.
105614
+ *
105615
+ * @private
105616
+ * @param {*} value The value to process.
105617
+ * @returns {string} Returns the string.
105618
+ */
105619
+ function baseToString(value) {
105620
+ // Exit early for strings to avoid a performance hit in some environments.
105621
+ if (typeof value == 'string') {
105622
+ return value;
105623
+ }
105624
+ if (isArray(value)) {
105625
+ // Recursively convert values (susceptible to call stack limits).
105626
+ return arrayMap(value, baseToString) + '';
105627
+ }
105628
+ if (isSymbol(value)) {
105629
+ return symbolToString ? symbolToString.call(value) : '';
105630
+ }
105631
+ var result = (value + '');
105632
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
105633
+ }
105634
 
105635
+ /**
105636
+ * The base implementation of `_.uniqBy` without support for iteratee shorthands.
105637
+ *
105638
+ * @private
105639
+ * @param {Array} array The array to inspect.
105640
+ * @param {Function} [iteratee] The iteratee invoked per element.
105641
+ * @param {Function} [comparator] The comparator invoked per element.
105642
+ * @returns {Array} Returns the new duplicate free array.
105643
+ */
105644
+ function baseUniq(array, iteratee, comparator) {
105645
+ var index = -1,
105646
+ includes = arrayIncludes,
105647
+ length = array.length,
105648
+ isCommon = true,
105649
+ result = [],
105650
+ seen = result;
105651
+
105652
+ if (comparator) {
105653
+ isCommon = false;
105654
+ includes = arrayIncludesWith;
105655
+ }
105656
+ else if (length >= LARGE_ARRAY_SIZE) {
105657
+ var set = iteratee ? null : createSet(array);
105658
+ if (set) {
105659
+ return setToArray(set);
105660
+ }
105661
+ isCommon = false;
105662
+ includes = cacheHas;
105663
+ seen = new SetCache;
105664
+ }
105665
+ else {
105666
+ seen = iteratee ? [] : result;
105667
+ }
105668
+ outer:
105669
+ while (++index < length) {
105670
+ var value = array[index],
105671
+ computed = iteratee ? iteratee(value) : value;
105672
+
105673
+ value = (comparator || value !== 0) ? value : 0;
105674
+ if (isCommon && computed === computed) {
105675
+ var seenIndex = seen.length;
105676
+ while (seenIndex--) {
105677
+ if (seen[seenIndex] === computed) {
105678
+ continue outer;
105679
+ }
105680
+ }
105681
+ if (iteratee) {
105682
+ seen.push(computed);
105683
+ }
105684
+ result.push(value);
105685
+ }
105686
+ else if (!includes(seen, computed, comparator)) {
105687
+ if (seen !== result) {
105688
+ seen.push(computed);
105689
+ }
105690
+ result.push(value);
105691
+ }
105692
+ }
105693
+ return result;
105694
+ }
105695
 
105696
+ /**
105697
+ * The base implementation of `_.unset`.
105698
+ *
105699
+ * @private
105700
+ * @param {Object} object The object to modify.
105701
+ * @param {Array|string} path The property path to unset.
105702
+ * @returns {boolean} Returns `true` if the property is deleted, else `false`.
105703
+ */
105704
+ function baseUnset(object, path) {
105705
+ path = castPath(path, object);
105706
+ object = parent(object, path);
105707
+ return object == null || delete object[toKey(last(path))];
105708
+ }
105709
 
105710
+ /**
105711
+ * The base implementation of `_.update`.
105712
+ *
105713
+ * @private
105714
+ * @param {Object} object The object to modify.
105715
+ * @param {Array|string} path The path of the property to update.
105716
+ * @param {Function} updater The function to produce the updated value.
105717
+ * @param {Function} [customizer] The function to customize path creation.
105718
+ * @returns {Object} Returns `object`.
105719
+ */
105720
+ function baseUpdate(object, path, updater, customizer) {
105721
+ return baseSet(object, path, updater(baseGet(object, path)), customizer);
105722
+ }
105723
 
105724
+ /**
105725
+ * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
105726
+ * without support for iteratee shorthands.
105727
+ *
105728
+ * @private
105729
+ * @param {Array} array The array to query.
105730
+ * @param {Function} predicate The function invoked per iteration.
105731
+ * @param {boolean} [isDrop] Specify dropping elements instead of taking them.
105732
+ * @param {boolean} [fromRight] Specify iterating from right to left.
105733
+ * @returns {Array} Returns the slice of `array`.
105734
+ */
105735
+ function baseWhile(array, predicate, isDrop, fromRight) {
105736
+ var length = array.length,
105737
+ index = fromRight ? length : -1;
105738
 
105739
+ while ((fromRight ? index-- : ++index < length) &&
105740
+ predicate(array[index], index, array)) {}
105741
 
105742
+ return isDrop
105743
+ ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))
105744
+ : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));
105745
+ }
105746
 
105747
+ /**
105748
+ * The base implementation of `wrapperValue` which returns the result of
105749
+ * performing a sequence of actions on the unwrapped `value`, where each
105750
+ * successive action is supplied the return value of the previous.
105751
+ *
105752
+ * @private
105753
+ * @param {*} value The unwrapped value.
105754
+ * @param {Array} actions Actions to perform to resolve the unwrapped value.
105755
+ * @returns {*} Returns the resolved value.
105756
+ */
105757
+ function baseWrapperValue(value, actions) {
105758
+ var result = value;
105759
+ if (result instanceof LazyWrapper) {
105760
+ result = result.value();
105761
+ }
105762
+ return arrayReduce(actions, function(result, action) {
105763
+ return action.func.apply(action.thisArg, arrayPush([result], action.args));
105764
+ }, result);
105765
+ }
105766
 
105767
+ /**
105768
+ * The base implementation of methods like `_.xor`, without support for
105769
+ * iteratee shorthands, that accepts an array of arrays to inspect.
105770
+ *
105771
+ * @private
105772
+ * @param {Array} arrays The arrays to inspect.
105773
+ * @param {Function} [iteratee] The iteratee invoked per element.
105774
+ * @param {Function} [comparator] The comparator invoked per element.
105775
+ * @returns {Array} Returns the new array of values.
105776
+ */
105777
+ function baseXor(arrays, iteratee, comparator) {
105778
+ var length = arrays.length;
105779
+ if (length < 2) {
105780
+ return length ? baseUniq(arrays[0]) : [];
105781
+ }
105782
+ var index = -1,
105783
+ result = Array(length);
105784
 
105785
+ while (++index < length) {
105786
+ var array = arrays[index],
105787
+ othIndex = -1;
 
 
 
 
 
 
 
105788
 
105789
+ while (++othIndex < length) {
105790
+ if (othIndex != index) {
105791
+ result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
105792
+ }
105793
+ }
105794
+ }
105795
+ return baseUniq(baseFlatten(result, 1), iteratee, comparator);
 
105796
  }
105797
 
105798
+ /**
105799
+ * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
105800
+ *
105801
+ * @private
105802
+ * @param {Array} props The property identifiers.
105803
+ * @param {Array} values The property values.
105804
+ * @param {Function} assignFunc The function to assign values.
105805
+ * @returns {Object} Returns the new object.
105806
+ */
105807
+ function baseZipObject(props, values, assignFunc) {
105808
+ var index = -1,
105809
+ length = props.length,
105810
+ valsLength = values.length,
105811
+ result = {};
 
 
 
 
105812
 
105813
+ while (++index < length) {
105814
+ var value = index < valsLength ? values[index] : undefined;
105815
+ assignFunc(result, props[index], value);
105816
+ }
105817
+ return result;
 
 
 
105818
  }
 
 
 
105819
 
105820
+ /**
105821
+ * Casts `value` to an empty array if it's not an array like object.
105822
+ *
105823
+ * @private
105824
+ * @param {*} value The value to inspect.
105825
+ * @returns {Array|Object} Returns the cast array-like object.
105826
+ */
105827
+ function castArrayLikeObject(value) {
105828
+ return isArrayLikeObject(value) ? value : [];
105829
+ }
105830
 
105831
+ /**
105832
+ * Casts `value` to `identity` if it's not a function.
105833
+ *
105834
+ * @private
105835
+ * @param {*} value The value to inspect.
105836
+ * @returns {Function} Returns cast function.
105837
+ */
105838
+ function castFunction(value) {
105839
+ return typeof value == 'function' ? value : identity;
105840
+ }
105841
 
105842
+ /**
105843
+ * Casts `value` to a path array if it's not one.
105844
+ *
105845
+ * @private
105846
+ * @param {*} value The value to inspect.
105847
+ * @param {Object} [object] The object to query keys on.
105848
+ * @returns {Array} Returns the cast property path array.
105849
+ */
105850
+ function castPath(value, object) {
105851
+ if (isArray(value)) {
105852
+ return value;
105853
+ }
105854
+ return isKey(value, object) ? [value] : stringToPath(toString(value));
105855
+ }
105856
 
105857
+ /**
105858
+ * A `baseRest` alias which can be replaced with `identity` by module
105859
+ * replacement plugins.
105860
+ *
105861
+ * @private
105862
+ * @type {Function}
105863
+ * @param {Function} func The function to apply a rest parameter to.
105864
+ * @returns {Function} Returns the new function.
105865
+ */
105866
+ var castRest = baseRest;
105867
 
105868
+ /**
105869
+ * Casts `array` to a slice if it's needed.
105870
+ *
105871
+ * @private
105872
+ * @param {Array} array The array to inspect.
105873
+ * @param {number} start The start position.
105874
+ * @param {number} [end=array.length] The end position.
105875
+ * @returns {Array} Returns the cast slice.
105876
+ */
105877
+ function castSlice(array, start, end) {
105878
+ var length = array.length;
105879
+ end = end === undefined ? length : end;
105880
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
105881
+ }
 
 
 
 
 
105882
 
105883
+ /**
105884
+ * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
105885
+ *
105886
+ * @private
105887
+ * @param {number|Object} id The timer id or timeout object of the timer to clear.
105888
+ */
105889
+ var clearTimeout = ctxClearTimeout || function(id) {
105890
+ return root.clearTimeout(id);
105891
+ };
105892
 
105893
+ /**
105894
+ * Creates a clone of `buffer`.
105895
+ *
105896
+ * @private
105897
+ * @param {Buffer} buffer The buffer to clone.
105898
+ * @param {boolean} [isDeep] Specify a deep clone.
105899
+ * @returns {Buffer} Returns the cloned buffer.
105900
+ */
105901
+ function cloneBuffer(buffer, isDeep) {
105902
+ if (isDeep) {
105903
+ return buffer.slice();
105904
+ }
105905
+ var length = buffer.length,
105906
+ result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
105907
 
105908
+ buffer.copy(result);
105909
+ return result;
105910
+ }
 
105911
 
105912
+ /**
105913
+ * Creates a clone of `arrayBuffer`.
105914
+ *
105915
+ * @private
105916
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
105917
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
105918
+ */
105919
+ function cloneArrayBuffer(arrayBuffer) {
105920
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
105921
+ new Uint8Array(result).set(new Uint8Array(arrayBuffer));
105922
+ return result;
105923
+ }
105924
 
105925
+ /**
105926
+ * Creates a clone of `dataView`.
105927
+ *
105928
+ * @private
105929
+ * @param {Object} dataView The data view to clone.
105930
+ * @param {boolean} [isDeep] Specify a deep clone.
105931
+ * @returns {Object} Returns the cloned data view.
105932
+ */
105933
+ function cloneDataView(dataView, isDeep) {
105934
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
105935
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
105936
+ }
105937
 
105938
+ /**
105939
+ * Creates a clone of `regexp`.
105940
+ *
105941
+ * @private
105942
+ * @param {Object} regexp The regexp to clone.
105943
+ * @returns {Object} Returns the cloned regexp.
105944
+ */
105945
+ function cloneRegExp(regexp) {
105946
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
105947
+ result.lastIndex = regexp.lastIndex;
105948
+ return result;
105949
+ }
105950
 
105951
+ /**
105952
+ * Creates a clone of the `symbol` object.
105953
+ *
105954
+ * @private
105955
+ * @param {Object} symbol The symbol object to clone.
105956
+ * @returns {Object} Returns the cloned symbol object.
105957
+ */
105958
+ function cloneSymbol(symbol) {
105959
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
105960
+ }
105961
 
105962
+ /**
105963
+ * Creates a clone of `typedArray`.
105964
+ *
105965
+ * @private
105966
+ * @param {Object} typedArray The typed array to clone.
105967
+ * @param {boolean} [isDeep] Specify a deep clone.
105968
+ * @returns {Object} Returns the cloned typed array.
105969
+ */
105970
+ function cloneTypedArray(typedArray, isDeep) {
105971
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
105972
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
105973
+ }
105974
 
105975
+ /**
105976
+ * Compares values to sort them in ascending order.
105977
+ *
105978
+ * @private
105979
+ * @param {*} value The value to compare.
105980
+ * @param {*} other The other value to compare.
105981
+ * @returns {number} Returns the sort order indicator for `value`.
105982
+ */
105983
+ function compareAscending(value, other) {
105984
+ if (value !== other) {
105985
+ var valIsDefined = value !== undefined,
105986
+ valIsNull = value === null,
105987
+ valIsReflexive = value === value,
105988
+ valIsSymbol = isSymbol(value);
105989
+
105990
+ var othIsDefined = other !== undefined,
105991
+ othIsNull = other === null,
105992
+ othIsReflexive = other === other,
105993
+ othIsSymbol = isSymbol(other);
105994
+
105995
+ if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
105996
+ (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
105997
+ (valIsNull && othIsDefined && othIsReflexive) ||
105998
+ (!valIsDefined && othIsReflexive) ||
105999
+ !valIsReflexive) {
106000
+ return 1;
106001
+ }
106002
+ if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
106003
+ (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
106004
+ (othIsNull && valIsDefined && valIsReflexive) ||
106005
+ (!othIsDefined && valIsReflexive) ||
106006
+ !othIsReflexive) {
106007
+ return -1;
106008
+ }
106009
+ }
106010
+ return 0;
106011
+ }
106012
 
106013
+ /**
106014
+ * Used by `_.orderBy` to compare multiple properties of a value to another
106015
+ * and stable sort them.
106016
+ *
106017
+ * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
106018
+ * specify an order of "desc" for descending or "asc" for ascending sort order
106019
+ * of corresponding values.
106020
+ *
106021
+ * @private
106022
+ * @param {Object} object The object to compare.
106023
+ * @param {Object} other The other object to compare.
106024
+ * @param {boolean[]|string[]} orders The order to sort by for each property.
106025
+ * @returns {number} Returns the sort order indicator for `object`.
106026
+ */
106027
+ function compareMultiple(object, other, orders) {
106028
+ var index = -1,
106029
+ objCriteria = object.criteria,
106030
+ othCriteria = other.criteria,
106031
+ length = objCriteria.length,
106032
+ ordersLength = orders.length;
106033
+
106034
+ while (++index < length) {
106035
+ var result = compareAscending(objCriteria[index], othCriteria[index]);
106036
+ if (result) {
106037
+ if (index >= ordersLength) {
106038
+ return result;
106039
+ }
106040
+ var order = orders[index];
106041
+ return result * (order == 'desc' ? -1 : 1);
106042
+ }
106043
+ }
106044
+ // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
106045
+ // that causes it, under certain circumstances, to provide the same value for
106046
+ // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
106047
+ // for more details.
106048
+ //
106049
+ // This also ensures a stable sort in V8 and other engines.
106050
+ // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
106051
+ return object.index - other.index;
106052
+ }
106053
 
106054
+ /**
106055
+ * Creates an array that is the composition of partially applied arguments,
106056
+ * placeholders, and provided arguments into a single array of arguments.
106057
+ *
106058
+ * @private
106059
+ * @param {Array} args The provided arguments.
106060
+ * @param {Array} partials The arguments to prepend to those provided.
106061
+ * @param {Array} holders The `partials` placeholder indexes.
106062
+ * @params {boolean} [isCurried] Specify composing for a curried function.
106063
+ * @returns {Array} Returns the new array of composed arguments.
106064
+ */
106065
+ function composeArgs(args, partials, holders, isCurried) {
106066
+ var argsIndex = -1,
106067
+ argsLength = args.length,
106068
+ holdersLength = holders.length,
106069
+ leftIndex = -1,
106070
+ leftLength = partials.length,
106071
+ rangeLength = nativeMax(argsLength - holdersLength, 0),
106072
+ result = Array(leftLength + rangeLength),
106073
+ isUncurried = !isCurried;
106074
 
106075
+ while (++leftIndex < leftLength) {
106076
+ result[leftIndex] = partials[leftIndex];
106077
+ }
106078
+ while (++argsIndex < holdersLength) {
106079
+ if (isUncurried || argsIndex < argsLength) {
106080
+ result[holders[argsIndex]] = args[argsIndex];
106081
+ }
106082
+ }
106083
+ while (rangeLength--) {
106084
+ result[leftIndex++] = args[argsIndex++];
106085
+ }
106086
+ return result;
106087
+ }
106088
 
106089
+ /**
106090
+ * This function is like `composeArgs` except that the arguments composition
106091
+ * is tailored for `_.partialRight`.
106092
+ *
106093
+ * @private
106094
+ * @param {Array} args The provided arguments.
106095
+ * @param {Array} partials The arguments to append to those provided.
106096
+ * @param {Array} holders The `partials` placeholder indexes.
106097
+ * @params {boolean} [isCurried] Specify composing for a curried function.
106098
+ * @returns {Array} Returns the new array of composed arguments.
106099
+ */
106100
+ function composeArgsRight(args, partials, holders, isCurried) {
106101
+ var argsIndex = -1,
106102
+ argsLength = args.length,
106103
+ holdersIndex = -1,
106104
+ holdersLength = holders.length,
106105
+ rightIndex = -1,
106106
+ rightLength = partials.length,
106107
+ rangeLength = nativeMax(argsLength - holdersLength, 0),
106108
+ result = Array(rangeLength + rightLength),
106109
+ isUncurried = !isCurried;
106110
 
106111
+ while (++argsIndex < rangeLength) {
106112
+ result[argsIndex] = args[argsIndex];
 
 
 
 
 
 
 
106113
  }
106114
+ var offset = argsIndex;
106115
+ while (++rightIndex < rightLength) {
106116
+ result[offset + rightIndex] = partials[rightIndex];
106117
+ }
106118
+ while (++holdersIndex < holdersLength) {
106119
+ if (isUncurried || argsIndex < argsLength) {
106120
+ result[offset + holders[holdersIndex]] = args[argsIndex++];
106121
  }
106122
  }
106123
+ return result;
106124
  }
 
 
 
106125
 
106126
+ /**
106127
+ * Copies the values of `source` to `array`.
106128
+ *
106129
+ * @private
106130
+ * @param {Array} source The array to copy values from.
106131
+ * @param {Array} [array=[]] The array to copy values to.
106132
+ * @returns {Array} Returns `array`.
106133
+ */
106134
+ function copyArray(source, array) {
106135
+ var index = -1,
106136
+ length = source.length;
106137
 
106138
+ array || (array = Array(length));
106139
+ while (++index < length) {
106140
+ array[index] = source[index];
106141
+ }
106142
+ return array;
106143
+ }
 
 
 
106144
 
106145
+ /**
106146
+ * Copies properties of `source` to `object`.
106147
+ *
106148
+ * @private
106149
+ * @param {Object} source The object to copy properties from.
106150
+ * @param {Array} props The property identifiers to copy.
106151
+ * @param {Object} [object={}] The object to copy properties to.
106152
+ * @param {Function} [customizer] The function to customize copied values.
106153
+ * @returns {Object} Returns `object`.
106154
+ */
106155
+ function copyObject(source, props, object, customizer) {
106156
+ var isNew = !object;
106157
+ object || (object = {});
106158
 
106159
+ var index = -1,
106160
+ length = props.length;
 
 
 
 
 
 
 
 
 
106161
 
106162
+ while (++index < length) {
106163
+ var key = props[index];
 
 
 
 
106164
 
106165
+ var newValue = customizer
106166
+ ? customizer(object[key], source[key], key, object, source)
106167
+ : undefined;
 
106168
 
106169
+ if (newValue === undefined) {
106170
+ newValue = source[key];
106171
+ }
106172
+ if (isNew) {
106173
+ baseAssignValue(object, key, newValue);
106174
+ } else {
106175
+ assignValue(object, key, newValue);
106176
+ }
106177
+ }
106178
+ return object;
106179
+ }
106180
 
106181
+ /**
106182
+ * Copies own symbols of `source` to `object`.
106183
+ *
106184
+ * @private
106185
+ * @param {Object} source The object to copy symbols from.
106186
+ * @param {Object} [object={}] The object to copy symbols to.
106187
+ * @returns {Object} Returns `object`.
106188
+ */
106189
+ function copySymbols(source, object) {
106190
+ return copyObject(source, getSymbols(source), object);
106191
+ }
106192
 
106193
+ /**
106194
+ * Copies own and inherited symbols of `source` to `object`.
106195
+ *
106196
+ * @private
106197
+ * @param {Object} source The object to copy symbols from.
106198
+ * @param {Object} [object={}] The object to copy symbols to.
106199
+ * @returns {Object} Returns `object`.
106200
+ */
106201
+ function copySymbolsIn(source, object) {
106202
+ return copyObject(source, getSymbolsIn(source), object);
106203
+ }
106204
 
106205
+ /**
106206
+ * Creates a function like `_.groupBy`.
106207
+ *
106208
+ * @private
106209
+ * @param {Function} setter The function to set accumulator values.
106210
+ * @param {Function} [initializer] The accumulator object initializer.
106211
+ * @returns {Function} Returns the new aggregator function.
106212
+ */
106213
+ function createAggregator(setter, initializer) {
106214
+ return function(collection, iteratee) {
106215
+ var func = isArray(collection) ? arrayAggregator : baseAggregator,
106216
+ accumulator = initializer ? initializer() : {};
106217
 
106218
+ return func(collection, setter, getIteratee(iteratee, 2), accumulator);
106219
+ };
106220
+ }
 
 
 
 
 
 
 
106221
 
106222
+ /**
106223
+ * Creates a function like `_.assign`.
106224
+ *
106225
+ * @private
106226
+ * @param {Function} assigner The function to assign values.
106227
+ * @returns {Function} Returns the new assigner function.
106228
+ */
106229
+ function createAssigner(assigner) {
106230
+ return baseRest(function(object, sources) {
106231
+ var index = -1,
106232
+ length = sources.length,
106233
+ customizer = length > 1 ? sources[length - 1] : undefined,
106234
+ guard = length > 2 ? sources[2] : undefined;
106235
+
106236
+ customizer = (assigner.length > 3 && typeof customizer == 'function')
106237
+ ? (length--, customizer)
106238
+ : undefined;
106239
+
106240
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
106241
+ customizer = length < 3 ? undefined : customizer;
106242
+ length = 1;
106243
+ }
106244
+ object = Object(object);
106245
+ while (++index < length) {
106246
+ var source = sources[index];
106247
+ if (source) {
106248
+ assigner(object, source, index, customizer);
106249
+ }
106250
+ }
106251
+ return object;
106252
+ });
106253
  }
106254
 
106255
+ /**
106256
+ * Creates a `baseEach` or `baseEachRight` function.
106257
+ *
106258
+ * @private
106259
+ * @param {Function} eachFunc The function to iterate over a collection.
106260
+ * @param {boolean} [fromRight] Specify iterating from right to left.
106261
+ * @returns {Function} Returns the new base function.
106262
+ */
106263
+ function createBaseEach(eachFunc, fromRight) {
106264
+ return function(collection, iteratee) {
106265
+ if (collection == null) {
106266
+ return collection;
106267
+ }
106268
+ if (!isArrayLike(collection)) {
106269
+ return eachFunc(collection, iteratee);
106270
+ }
106271
+ var length = collection.length,
106272
+ index = fromRight ? length : -1,
106273
+ iterable = Object(collection);
106274
+
106275
+ while ((fromRight ? index-- : ++index < length)) {
106276
+ if (iteratee(iterable[index], index, iterable) === false) {
106277
+ break;
106278
+ }
106279
+ }
106280
+ return collection;
106281
  };
106282
  }
 
 
 
 
 
 
 
 
 
 
106283
 
106284
+ /**
106285
+ * Creates a base function for methods like `_.forIn` and `_.forOwn`.
106286
+ *
106287
+ * @private
106288
+ * @param {boolean} [fromRight] Specify iterating from right to left.
106289
+ * @returns {Function} Returns the new base function.
106290
+ */
106291
+ function createBaseFor(fromRight) {
106292
+ return function(object, iteratee, keysFunc) {
106293
+ var index = -1,
106294
+ iterable = Object(object),
106295
+ props = keysFunc(object),
106296
+ length = props.length;
106297
+
106298
+ while (length--) {
106299
+ var key = props[fromRight ? length : ++index];
106300
+ if (iteratee(iterable[key], key, iterable) === false) {
106301
+ break;
106302
+ }
106303
+ }
106304
+ return object;
106305
  };
106306
  }
 
 
 
106307
 
106308
+ /**
106309
+ * Creates a function that wraps `func` to invoke it with the optional `this`
106310
+ * binding of `thisArg`.
106311
+ *
106312
+ * @private
106313
+ * @param {Function} func The function to wrap.
106314
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
106315
+ * @param {*} [thisArg] The `this` binding of `func`.
106316
+ * @returns {Function} Returns the new wrapped function.
106317
+ */
106318
+ function createBind(func, bitmask, thisArg) {
106319
+ var isBind = bitmask & WRAP_BIND_FLAG,
106320
+ Ctor = createCtor(func);
106321
 
106322
+ function wrapper() {
106323
+ var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
106324
+ return fn.apply(isBind ? thisArg : this, arguments);
106325
+ }
106326
+ return wrapper;
106327
+ }
106328
 
106329
+ /**
106330
+ * Creates a function like `_.lowerFirst`.
106331
+ *
106332
+ * @private
106333
+ * @param {string} methodName The name of the `String` case method to use.
106334
+ * @returns {Function} Returns the new case function.
106335
+ */
106336
+ function createCaseFirst(methodName) {
106337
+ return function(string) {
106338
+ string = toString(string);
106339
+
106340
+ var strSymbols = hasUnicode(string)
106341
+ ? stringToArray(string)
106342
+ : undefined;
106343
+
106344
+ var chr = strSymbols
106345
+ ? strSymbols[0]
106346
+ : string.charAt(0);
106347
+
106348
+ var trailing = strSymbols
106349
+ ? castSlice(strSymbols, 1).join('')
106350
+ : string.slice(1);
106351
+
106352
+ return chr[methodName]() + trailing;
106353
+ };
106354
+ }
106355
+
106356
+ /**
106357
+ * Creates a function like `_.camelCase`.
106358
+ *
106359
+ * @private
106360
+ * @param {Function} callback The function to combine each word.
106361
+ * @returns {Function} Returns the new compounder function.
106362
+ */
106363
+ function createCompounder(callback) {
106364
+ return function(string) {
106365
+ return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
106366
+ };
106367
+ }
106368
+
106369
+ /**
106370
+ * Creates a function that produces an instance of `Ctor` regardless of
106371
+ * whether it was invoked as part of a `new` expression or by `call` or `apply`.
106372
+ *
106373
+ * @private
106374
+ * @param {Function} Ctor The constructor to wrap.
106375
+ * @returns {Function} Returns the new wrapped function.
106376
+ */
106377
+ function createCtor(Ctor) {
106378
+ return function() {
106379
+ // Use a `switch` statement to work with class constructors. See
106380
+ // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
106381
+ // for more details.
106382
+ var args = arguments;
106383
+ switch (args.length) {
106384
+ case 0: return new Ctor;
106385
+ case 1: return new Ctor(args[0]);
106386
+ case 2: return new Ctor(args[0], args[1]);
106387
+ case 3: return new Ctor(args[0], args[1], args[2]);
106388
+ case 4: return new Ctor(args[0], args[1], args[2], args[3]);
106389
+ case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
106390
+ case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
106391
+ case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
106392
+ }
106393
+ var thisBinding = baseCreate(Ctor.prototype),
106394
+ result = Ctor.apply(thisBinding, args);
106395
+
106396
+ // Mimic the constructor's `return` behavior.
106397
+ // See https://es5.github.io/#x13.2.2 for more details.
106398
+ return isObject(result) ? result : thisBinding;
106399
+ };
106400
+ }
106401
 
106402
+ /**
106403
+ * Creates a function that wraps `func` to enable currying.
106404
+ *
106405
+ * @private
106406
+ * @param {Function} func The function to wrap.
106407
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
106408
+ * @param {number} arity The arity of `func`.
106409
+ * @returns {Function} Returns the new wrapped function.
106410
+ */
106411
+ function createCurry(func, bitmask, arity) {
106412
+ var Ctor = createCtor(func);
106413
 
106414
+ function wrapper() {
106415
+ var length = arguments.length,
106416
+ args = Array(length),
106417
+ index = length,
106418
+ placeholder = getHolder(wrapper);
106419
 
106420
+ while (index--) {
106421
+ args[index] = arguments[index];
106422
+ }
106423
+ var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
106424
+ ? []
106425
+ : replaceHolders(args, placeholder);
106426
 
106427
+ length -= holders.length;
106428
+ if (length < arity) {
106429
+ return createRecurry(
106430
+ func, bitmask, createHybrid, wrapper.placeholder, undefined,
106431
+ args, holders, undefined, undefined, arity - length);
106432
+ }
106433
+ var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
106434
+ return apply(fn, this, args);
106435
+ }
106436
+ return wrapper;
106437
+ }
106438
 
106439
+ /**
106440
+ * Creates a `_.find` or `_.findLast` function.
106441
+ *
106442
+ * @private
106443
+ * @param {Function} findIndexFunc The function to find the collection index.
106444
+ * @returns {Function} Returns the new find function.
106445
+ */
106446
+ function createFind(findIndexFunc) {
106447
+ return function(collection, predicate, fromIndex) {
106448
+ var iterable = Object(collection);
106449
+ if (!isArrayLike(collection)) {
106450
+ var iteratee = getIteratee(predicate, 3);
106451
+ collection = keys(collection);
106452
+ predicate = function(key) { return iteratee(iterable[key], key, iterable); };
106453
+ }
106454
+ var index = findIndexFunc(collection, predicate, fromIndex);
106455
+ return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
106456
+ };
106457
+ }
106458
 
106459
+ /**
106460
+ * Creates a `_.flow` or `_.flowRight` function.
106461
+ *
106462
+ * @private
106463
+ * @param {boolean} [fromRight] Specify iterating from right to left.
106464
+ * @returns {Function} Returns the new flow function.
106465
+ */
106466
+ function createFlow(fromRight) {
106467
+ return flatRest(function(funcs) {
106468
+ var length = funcs.length,
106469
+ index = length,
106470
+ prereq = LodashWrapper.prototype.thru;
106471
+
106472
+ if (fromRight) {
106473
+ funcs.reverse();
106474
+ }
106475
+ while (index--) {
106476
+ var func = funcs[index];
106477
+ if (typeof func != 'function') {
106478
+ throw new TypeError(FUNC_ERROR_TEXT);
106479
+ }
106480
+ if (prereq && !wrapper && getFuncName(func) == 'wrapper') {
106481
+ var wrapper = new LodashWrapper([], true);
106482
+ }
106483
+ }
106484
+ index = wrapper ? index : length;
106485
+ while (++index < length) {
106486
+ func = funcs[index];
106487
 
106488
+ var funcName = getFuncName(func),
106489
+ data = funcName == 'wrapper' ? getData(func) : undefined;
106490
 
106491
+ if (data && isLaziable(data[0]) &&
106492
+ data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
106493
+ !data[4].length && data[9] == 1
106494
+ ) {
106495
+ wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
106496
+ } else {
106497
+ wrapper = (func.length == 1 && isLaziable(func))
106498
+ ? wrapper[funcName]()
106499
+ : wrapper.thru(func);
106500
+ }
106501
+ }
106502
+ return function() {
106503
+ var args = arguments,
106504
+ value = args[0];
106505
 
106506
+ if (wrapper && args.length == 1 && isArray(value)) {
106507
+ return wrapper.plant(value).value();
106508
+ }
106509
+ var index = 0,
106510
+ result = length ? funcs[index].apply(this, args) : value;
106511
 
106512
+ while (++index < length) {
106513
+ result = funcs[index].call(this, result);
106514
+ }
106515
+ return result;
106516
+ };
106517
+ });
106518
+ }
106519
 
106520
+ /**
106521
+ * Creates a function that wraps `func` to invoke it with optional `this`
106522
+ * binding of `thisArg`, partial application, and currying.
106523
+ *
106524
+ * @private
106525
+ * @param {Function|string} func The function or method name to wrap.
106526
+ * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
106527
+ * @param {*} [thisArg] The `this` binding of `func`.
106528
+ * @param {Array} [partials] The arguments to prepend to those provided to
106529
+ * the new function.
106530
+ * @param {Array} [holders] The `partials` placeholder indexes.
106531
+ * @param {Array} [partialsRight] The arguments to append to those provided
106532
+ * to the new function.
106533
+ * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.
106534
+ * @param {Array} [argPos] The argument positions of the new function.
106535
+ * @param {number} [ary] The arity cap of `func`.
106536
+ * @param {number} [arity] The arity of `func`.
106537
+ * @returns {Function} Returns the new wrapped function.
106538
+ */
106539
+ function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
106540
+ var isAry = bitmask & WRAP_ARY_FLAG,
106541
+ isBind = bitmask & WRAP_BIND_FLAG,
106542
+ isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
106543
+ isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
106544
+ isFlip = bitmask & WRAP_FLIP_FLAG,
106545
+ Ctor = isBindKey ? undefined : createCtor(func);
106546
 
106547
+ function wrapper() {
106548
+ var length = arguments.length,
106549
+ args = Array(length),
106550
+ index = length;
106551
 
106552
+ while (index--) {
106553
+ args[index] = arguments[index];
106554
+ }
106555
+ if (isCurried) {
106556
+ var placeholder = getHolder(wrapper),
106557
+ holdersCount = countHolders(args, placeholder);
106558
+ }
106559
+ if (partials) {
106560
+ args = composeArgs(args, partials, holders, isCurried);
106561
+ }
106562
+ if (partialsRight) {
106563
+ args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
106564
+ }
106565
+ length -= holdersCount;
106566
+ if (isCurried && length < arity) {
106567
+ var newHolders = replaceHolders(args, placeholder);
106568
+ return createRecurry(
106569
+ func, bitmask, createHybrid, wrapper.placeholder, thisArg,
106570
+ args, newHolders, argPos, ary, arity - length
106571
+ );
106572
+ }
106573
+ var thisBinding = isBind ? thisArg : this,
106574
+ fn = isBindKey ? thisBinding[func] : func;
106575
 
106576
+ length = args.length;
106577
+ if (argPos) {
106578
+ args = reorder(args, argPos);
106579
+ } else if (isFlip && length > 1) {
106580
+ args.reverse();
106581
+ }
106582
+ if (isAry && ary < length) {
106583
+ args.length = ary;
106584
+ }
106585
+ if (this && this !== root && this instanceof wrapper) {
106586
+ fn = Ctor || createCtor(fn);
106587
+ }
106588
+ return fn.apply(thisBinding, args);
106589
+ }
106590
+ return wrapper;
106591
+ }
106592
 
106593
+ /**
106594
+ * Creates a function like `_.invertBy`.
106595
+ *
106596
+ * @private
106597
+ * @param {Function} setter The function to set accumulator values.
106598
+ * @param {Function} toIteratee The function to resolve iteratees.
106599
+ * @returns {Function} Returns the new inverter function.
106600
+ */
106601
+ function createInverter(setter, toIteratee) {
106602
+ return function(object, iteratee) {
106603
+ return baseInverter(object, setter, toIteratee(iteratee), {});
106604
+ };
106605
+ }
106606
 
106607
+ /**
106608
+ * Creates a function that performs a mathematical operation on two values.
106609
+ *
106610
+ * @private
106611
+ * @param {Function} operator The function to perform the operation.
106612
+ * @param {number} [defaultValue] The value used for `undefined` arguments.
106613
+ * @returns {Function} Returns the new mathematical operation function.
106614
+ */
106615
+ function createMathOperation(operator, defaultValue) {
106616
+ return function(value, other) {
106617
+ var result;
106618
+ if (value === undefined && other === undefined) {
106619
+ return defaultValue;
106620
+ }
106621
+ if (value !== undefined) {
106622
+ result = value;
106623
+ }
106624
+ if (other !== undefined) {
106625
+ if (result === undefined) {
106626
+ return other;
106627
+ }
106628
+ if (typeof value == 'string' || typeof other == 'string') {
106629
+ value = baseToString(value);
106630
+ other = baseToString(other);
106631
+ } else {
106632
+ value = baseToNumber(value);
106633
+ other = baseToNumber(other);
106634
+ }
106635
+ result = operator(value, other);
106636
+ }
106637
+ return result;
106638
+ };
106639
+ }
106640
 
106641
+ /**
106642
+ * Creates a function like `_.over`.
106643
+ *
106644
+ * @private
106645
+ * @param {Function} arrayFunc The function to iterate over iteratees.
106646
+ * @returns {Function} Returns the new over function.
106647
+ */
106648
+ function createOver(arrayFunc) {
106649
+ return flatRest(function(iteratees) {
106650
+ iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
106651
+ return baseRest(function(args) {
106652
+ var thisArg = this;
106653
+ return arrayFunc(iteratees, function(iteratee) {
106654
+ return apply(iteratee, thisArg, args);
106655
+ });
106656
+ });
106657
+ });
106658
  }
106659
 
106660
+ /**
106661
+ * Creates the padding for `string` based on `length`. The `chars` string
106662
+ * is truncated if the number of characters exceeds `length`.
106663
+ *
106664
+ * @private
106665
+ * @param {number} length The padding length.
106666
+ * @param {string} [chars=' '] The string used as padding.
106667
+ * @returns {string} Returns the padding for `string`.
106668
+ */
106669
+ function createPadding(length, chars) {
106670
+ chars = chars === undefined ? ' ' : baseToString(chars);
106671
+
106672
+ var charsLength = chars.length;
106673
+ if (charsLength < 2) {
106674
+ return charsLength ? baseRepeat(chars, length) : chars;
106675
  }
106676
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
106677
+ return hasUnicode(chars)
106678
+ ? castSlice(stringToArray(result), 0, length).join('')
106679
+ : result.slice(0, length);
106680
+ }
106681
 
106682
+ /**
106683
+ * Creates a functio