@jsenv/plugin-toolbar 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/css/{toolbar_main.css → toolbar.css} +285 -319
  2. package/dist/html/toolbar.html +91 -80
  3. package/dist/js/toolbar_core.js +1792 -0
  4. package/dist/js/toolbar_injector.js +60 -121
  5. package/dist/jsenv_plugin_toolbar.js +18 -12
  6. package/package.json +10 -3
  7. package/src/client/core/animation_actions.js +8 -0
  8. package/src/client/core/animation_effects.js +12 -0
  9. package/src/client/core/animation_signals.js +12 -0
  10. package/src/client/core/changes_actions.js +9 -0
  11. package/src/client/core/changes_signals.js +3 -0
  12. package/src/client/core/execution_actions.js +50 -0
  13. package/src/client/core/execution_effects.js +22 -0
  14. package/src/client/core/execution_signals.js +19 -0
  15. package/src/client/core/notification_actions.js +71 -0
  16. package/src/client/core/notification_context.js +1 -0
  17. package/src/client/core/notification_effects.js +11 -0
  18. package/src/client/core/notification_signals.js +13 -0
  19. package/src/client/{communication/parent_window_communication.js → core/parent_window_actions.js} +10 -0
  20. package/src/client/core/parent_window_context.js +7 -0
  21. package/src/client/core/parent_window_effects.js +20 -0
  22. package/src/client/core/parent_window_signals.js +34 -0
  23. package/src/client/core/server_actions.js +9 -0
  24. package/src/client/core/server_effects.js +11 -0
  25. package/src/client/core/server_signals.js +12 -0
  26. package/src/client/core/settings_actions.js +9 -0
  27. package/src/client/core/settings_signals.js +3 -0
  28. package/src/client/core/theme_actions.js +9 -0
  29. package/src/client/core/theme_effects.js +8 -0
  30. package/src/client/core/theme_signals.js +12 -0
  31. package/src/client/core/toolbar_logger.js +29 -0
  32. package/src/client/core/toolbar_open_actions.js +9 -0
  33. package/src/client/core/toolbar_open_effects.js +5 -0
  34. package/src/client/core/toolbar_open_signals.js +12 -0
  35. package/src/client/core/toolbar_state_context.js +5 -0
  36. package/src/client/core/toolbar_state_effects.js +10 -0
  37. package/src/client/core/toolbar_state_signals.js +20 -0
  38. package/src/client/core/tooltip_actions.js +7 -0
  39. package/src/client/toolbar.html +116 -89
  40. package/src/client/toolbar_core.js +8 -0
  41. package/src/client/toolbar_injector.js +64 -39
  42. package/src/client/ui/changes_indicator/changes_indicator.js +66 -0
  43. package/src/client/{execution/execution.css → ui/document_execution_indicator/document_execution_indicator.css} +10 -14
  44. package/src/client/ui/document_execution_indicator/document_execution_indicator.js +66 -0
  45. package/src/client/ui/document_index_link/document_index_link.js +8 -0
  46. package/src/client/ui/globals.css +103 -0
  47. package/src/client/{jsenv_logo.svg → ui/jsenv_logo.svg} +0 -0
  48. package/src/client/{eventsource/eventsource.css → ui/server_indicator/server_indicator.css} +14 -24
  49. package/src/client/ui/server_indicator/server_indicator.js +62 -0
  50. package/src/client/ui/toolbar.css +76 -0
  51. package/src/client/ui/toolbar_close_button/toolbar_close_button.js +15 -0
  52. package/src/client/{responsive/overflow_menu.css → ui/toolbar_menu_overflow/toolbar_menu_overflow.css} +10 -11
  53. package/src/client/{responsive/toolbar_responsive.js → ui/toolbar_menu_overflow/toolbar_menu_overflow.js} +25 -31
  54. package/src/client/ui/toolbar_opening/toolbar_opening.js +73 -0
  55. package/src/client/ui/toolbar_overlay/toolbar_overlay.js +76 -0
  56. package/src/client/{theme → ui/toolbar_settings}/jsenv_theme.css +6 -6
  57. package/src/client/{theme/light_theme.css → ui/toolbar_settings/theme_light.css} +9 -10
  58. package/src/client/ui/toolbar_settings/toolbar_animation_setting.js +27 -0
  59. package/src/client/ui/toolbar_settings/toolbar_autoreload_setting.js +79 -0
  60. package/src/client/ui/toolbar_settings/toolbar_notification_setting.js +88 -0
  61. package/src/client/{settings/settings.css → ui/toolbar_settings/toolbar_settings.css} +24 -23
  62. package/src/client/ui/toolbar_settings/toolbar_settings.js +54 -0
  63. package/src/client/ui/toolbar_settings/toolbar_theme_setting.js +17 -0
  64. package/src/client/ui/toolbar_ui.js +21 -0
  65. package/src/client/{tooltip/tooltip.css → ui/tooltips/tooltips.css} +13 -7
  66. package/src/client/{util → ui/util}/animation.js +0 -0
  67. package/src/client/ui/util/dom.js +57 -0
  68. package/src/client/{util → ui/util}/fetch_using_xhr.js +0 -0
  69. package/src/client/{util → ui/util}/fetching.js +0 -0
  70. package/src/client/{util → ui/util}/iframe_to_parent_href.js +0 -0
  71. package/src/client/{util → ui/util}/responsive.js +0 -0
  72. package/src/client/{util → ui/util}/util.js +0 -0
  73. package/src/client/{variant → ui}/variant.js +0 -0
  74. package/src/jsenv_plugin_toolbar.js +19 -7
  75. package/dist/js/toolbar_main.js +0 -900
  76. package/scripts/build.mjs +0 -20
  77. package/src/client/animation/toolbar_animation_core.js +0 -30
  78. package/src/client/animation/toolbar_animation_ui.js +0 -21
  79. package/src/client/eventsource/toolbar_eventsource.js +0 -57
  80. package/src/client/execution/toolbar_execution.js +0 -88
  81. package/src/client/focus/focus.css +0 -61
  82. package/src/client/focus/toolbar_focus.js +0 -19
  83. package/src/client/notification/toolbar_notification.js +0 -181
  84. package/src/client/settings/toolbar_settings.js +0 -47
  85. package/src/client/theme/toolbar_theme.js +0 -34
  86. package/src/client/toolbar_main.css +0 -173
  87. package/src/client/toolbar_main.js +0 -174
  88. package/src/client/toolbar_state.js +0 -16
  89. package/src/client/tooltip/tooltip.js +0 -39
  90. package/src/client/util/dom.js +0 -108
  91. package/src/client/util/jsenv_logger.js +0 -28
  92. package/src/client/util/preferences.js +0 -10
  93. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/ast/src/html/html_src_set.js +0 -18
  94. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation.js +0 -45
  95. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation.js.map +0 -12
  96. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_core.js +0 -32
  97. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_core.js.map +0 -12
  98. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_ui.js +0 -23
  99. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_ui.js.map +0 -12
  100. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/communication/parent_window_communication.js +0 -33
  101. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/eventsource/eventsource.css +0 -87
  102. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/eventsource/toolbar_eventsource.js +0 -59
  103. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/eventsource/toolbar_eventsource.js.map +0 -12
  104. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/execution/execution.css +0 -88
  105. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/execution/toolbar_execution.js +0 -90
  106. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/execution/toolbar_execution.js.map +0 -12
  107. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/focus/focus.css +0 -28
  108. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/focus/toolbar_focus.js +0 -19
  109. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/jsenv_logo.svg +0 -140
  110. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/notification/toolbar_notification.js +0 -183
  111. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/notification/toolbar_notification.js.map +0 -12
  112. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/responsive/overflow_menu.css +0 -60
  113. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/responsive/toolbar_responsive.js +0 -105
  114. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/responsive/toolbar_responsive.js.map +0 -12
  115. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/settings/settings.css +0 -200
  116. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/settings/toolbar_settings.js +0 -49
  117. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/settings/toolbar_settings.js.map +0 -12
  118. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/theme/light_theme.css +0 -110
  119. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/theme/toolbar_theme.js +0 -36
  120. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/theme/toolbar_theme.js.map +0 -12
  121. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar.html +0 -319
  122. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_injector.js +0 -232
  123. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_injector.js.map +0 -12
  124. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.css +0 -161
  125. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.css.map +0 -12
  126. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.js +0 -176
  127. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.js.map +0 -12
  128. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_state.js +0 -18
  129. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_state.js.map +0 -12
  130. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/tooltip/tooltip.css +0 -60
  131. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/tooltip/tooltip.js +0 -41
  132. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/tooltip/tooltip.js.map +0 -12
  133. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/animation.js +0 -307
  134. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/animation.js.map +0 -12
  135. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/dom.js +0 -108
  136. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/iframe_to_parent_href.js +0 -10
  137. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/preferences.js +0 -10
  138. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/responsive.js +0 -112
  139. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/variant/variant.js +0 -74
  140. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload.js +0 -201
  141. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload.js.map +0 -12
  142. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload_preference.js +0 -11
  143. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/reload.js +0 -138
  144. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/reload.js.map +0 -12
  145. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/url_helpers.js +0 -20
  146. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html +0 -590
  147. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L15C5-L20C12.js +0 -7
  148. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L15C5-L20C12.js.map +0 -12
  149. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L368C5-L481C14.js +0 -114
  150. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L482C5-L605C14.js +0 -124
  151. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L69C5-L299C13.css +0 -227
  152. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L8C5-L68C13.css +0 -28
  153. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/import_meta_hot/client/import_meta_hot.js +0 -82
  154. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/ribbon/client/ribbon.js +0 -51
  155. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/connection_manager.js +0 -165
  156. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/events_manager.js +0 -75
  157. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/server_events_client.js +0 -20
  158. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/server_events_client.js.map +0 -12
  159. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/web_socket_connection.js +0 -83
  160. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/web_socket_connection.js.map +0 -12
  161. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/supervisor/client/script_type_module_supervisor.js +0 -98
  162. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/supervisor/client/supervisor.js +0 -966
  163. package/tests/toolbar_basic/main.html +0 -18
  164. package/tests/toolbar_basic/start_dev_server.mjs +0 -7
  165. package/todo.txt +0 -0
@@ -1,173 +0,0 @@
1
- @import "./execution/execution.css";
2
- @import "./focus/focus.css";
3
- @import "./eventsource/eventsource.css";
4
- @import "./responsive/overflow_menu.css";
5
- @import "./settings/settings.css";
6
- @import "./theme/light_theme.css";
7
- @import "./tooltip/tooltip.css";
8
-
9
- html[data-animation-disabled] * {
10
- transition: none !important;
11
- animation-duration: 0s !important;
12
- animation-delay: 0s !important;
13
- }
14
-
15
- [data-when] {
16
- display: none !important;
17
- }
18
-
19
- * {
20
- box-sizing: border-box;
21
- }
22
-
23
- html,
24
- body {
25
- margin: 0;
26
- padding: 0;
27
- height: 100%;
28
- }
29
-
30
- html {
31
- font-family: arial, sans;
32
- }
33
-
34
- /* global utils */
35
- [data-force-hide] {
36
- display: none !important;
37
- }
38
-
39
- #toolbar-overlay {
40
- position: fixed;
41
- left: 0;
42
- top: 0;
43
- width: 100%;
44
- height: 100%;
45
- filter: url(#better-blur);
46
- background-color: rgba(0, 0, 0, 0.2);
47
- }
48
-
49
- #toolbar {
50
- position: fixed;
51
- bottom: 0;
52
- height: 40px;
53
- width: 100%;
54
- background: #404040;
55
- }
56
-
57
- #toolbar-wrapper {
58
- display: table;
59
- width: 100%;
60
- height: 100%;
61
- }
62
-
63
- #toolbar-wrapper > * {
64
- display: table-cell;
65
- vertical-align: middle;
66
- }
67
-
68
- #toolbar button {
69
- background: none;
70
- border: none;
71
- height: 100%;
72
- padding: 0;
73
- }
74
-
75
- #toolbar button:hover {
76
- cursor: pointer;
77
- }
78
-
79
- #toolbar a:hover {
80
- cursor: pointer;
81
- }
82
-
83
- /* file and settings icons */
84
- #fileIconSvg,
85
- .settings-icon {
86
- width: 20px;
87
- }
88
-
89
- .iconToolbar {
90
- height: 40px;
91
- fill: #cecece;
92
- color: #cecece;
93
- }
94
-
95
- .iconToolbar:hover {
96
- fill: #909090 !important;
97
- }
98
-
99
- .toolbar-icon-wrapper {
100
- height: 100%;
101
- text-align: center;
102
- width: 40px;
103
- display: inline-block;
104
- }
105
-
106
- #file-list-link[data-active] a {
107
- background: #1f262c;
108
- }
109
-
110
- #file[data-active] {
111
- background: rgba(31, 38, 44, 0.72);
112
- }
113
-
114
- #settings[data-active] button {
115
- background: #030713;
116
- }
117
-
118
- /* close icon */
119
- #crossIconSvg {
120
- width: 18px;
121
- }
122
-
123
- /* re-open toolbar-trigger */
124
- #toolbar-trigger {
125
- display: block;
126
- overflow: hidden;
127
- position: absolute;
128
- bottom: -32px;
129
- right: 20px;
130
- height: 40px;
131
- width: 40px;
132
- padding: 0;
133
- border-radius: 5px 5px 0 0;
134
- border: 1px solid rgba(0, 0, 0, 0.33);
135
- border-bottom: none;
136
- box-shadow: 0px 0px 6px 2px rgba(0, 0, 0, 0.46);
137
- background: transparent;
138
- }
139
-
140
- #toolbar-trigger[data-animate] {
141
- transition: 600ms;
142
- }
143
-
144
- #toolbar-trigger #jsenvLogoSvg {
145
- width: 35px;
146
- height: 35px;
147
- opacity: 0;
148
- transition: 600ms;
149
- }
150
-
151
- html[data-toolbar-visible] #toolbar-trigger {
152
- display: none;
153
- }
154
-
155
- #toolbar-trigger:hover {
156
- cursor: pointer;
157
- }
158
-
159
- #toolbar-trigger[data-expanded] {
160
- bottom: 0;
161
- }
162
-
163
- #toolbar-trigger[data-expanded] #jsenvLogoSvg {
164
- opacity: 1;
165
- }
166
-
167
- /* #jsenvLogo {
168
- transition: 600ms;
169
- } */
170
-
171
- #toolbar a {
172
- color: inherit;
173
- }
@@ -1,174 +0,0 @@
1
- import { updateToolbarState } from "./toolbar_state.js"
2
- import { addExternalCommandCallback } from "./communication/parent_window_communication.js"
3
- import { startJavaScriptAnimation } from "./util/animation.js"
4
- import "./focus/toolbar_focus.js"
5
- import { setLinkHrefForParentWindow } from "./util/iframe_to_parent_href.js"
6
- import {
7
- getToolbarIframe,
8
- deactivateToolbarSection,
9
- setStyles,
10
- } from "./util/dom.js"
11
- import { createPreference } from "./util/preferences.js"
12
- import { hideTooltip, hideAllTooltip } from "./tooltip/tooltip.js"
13
- import {
14
- renderToolbarSettings,
15
- hideSettings,
16
- } from "./settings/toolbar_settings.js"
17
- import { animationsAreEnabled } from "./animation/toolbar_animation_core.js"
18
- import { renderToolbarNotification } from "./notification/toolbar_notification.js"
19
- import { renderToolbarTheme } from "./theme/toolbar_theme.js"
20
- import { renderToolbarAnimation } from "./animation/toolbar_animation_ui.js"
21
- import { renderExecutionInToolbar } from "./execution/toolbar_execution.js"
22
- import { initToolbarEventSource } from "./eventsource/toolbar_eventsource.js"
23
- import { makeToolbarResponsive } from "./responsive/toolbar_responsive.js"
24
-
25
- const toolbarVisibilityPreference = createPreference("jsenv_toolbar_visible")
26
-
27
- const renderToolbar = async () => {
28
- const toolbarOverlay = document.querySelector("#toolbar-overlay")
29
- toolbarOverlay.onclick = () => {
30
- hideAllTooltip()
31
- hideSettings()
32
- }
33
-
34
- const toolbarVisible = toolbarVisibilityPreference.has()
35
- ? toolbarVisibilityPreference.get()
36
- : true
37
-
38
- if (toolbarVisible) {
39
- showToolbar({ animate: false })
40
- } else {
41
- hideToolbar({ animate: false })
42
- }
43
-
44
- setLinkHrefForParentWindow(
45
- document.querySelector(".toolbar-icon-wrapper"),
46
- "/",
47
- )
48
- renderToolbarNotification()
49
- makeToolbarResponsive()
50
- renderToolbarSettings()
51
- renderToolbarAnimation()
52
- renderToolbarTheme()
53
- renderExecutionInToolbar()
54
- // this might become active but we need to detect this somehow
55
- deactivateToolbarSection(document.querySelector("#file-list-link"))
56
- initToolbarEventSource()
57
-
58
- // if user click enter or space quickly while closing toolbar
59
- // it will cancel the closing
60
- // that's why I used toggleToolbar and not hideToolbar
61
- document.querySelector("#button-close-toolbar").onclick = () =>
62
- toogleToolbar()
63
- }
64
-
65
- const toogleToolbar = () => {
66
- if (toolbarIsVisible()) {
67
- hideToolbar()
68
- } else {
69
- showToolbar()
70
- }
71
- }
72
-
73
- const toolbarIsVisible = () =>
74
- document.documentElement.hasAttribute("data-toolbar-visible")
75
-
76
- let hideToolbar = () => {
77
- // toolbar hidden by default, nothing to do to hide it by default
78
- updateToolbarState({
79
- visible: false,
80
- })
81
- }
82
-
83
- // (by the way it might be cool to have the toolbar auto show when)
84
- // it has something to say (being disconnected from server)
85
- const showToolbar = () => {
86
- toolbarVisibilityPreference.set(true)
87
- if (animationsAreEnabled()) {
88
- document.documentElement.setAttribute("data-toolbar-animation", "")
89
- } else {
90
- document.documentElement.removeAttribute("data-toolbar-animation")
91
- }
92
- document.documentElement.setAttribute("data-toolbar-visible", "")
93
-
94
- updateToolbarState({
95
- visible: true,
96
- })
97
-
98
- const toolbarIframe = getToolbarIframe()
99
- const toolbarIframeParent = toolbarIframe.parentNode
100
- const parentWindow = window.parent
101
- const parentDocumentElement =
102
- parentWindow.document.compatMode === "CSS1Compat"
103
- ? parentWindow.document.documentElement
104
- : parentWindow.document.body
105
-
106
- const scrollYMax =
107
- parentDocumentElement.scrollHeight - parentWindow.innerHeight
108
- const scrollY = parentDocumentElement.scrollTop
109
- const scrollYRemaining = scrollYMax - scrollY
110
-
111
- setStyles(toolbarIframeParent, {
112
- "transition-property": "padding-bottom",
113
- "transition-duration": animationsAreEnabled() ? "300ms" : "0s",
114
- })
115
- // maybe we should use js animation here because we would not conflict with css
116
- const restoreToolbarIframeParentStyles = setStyles(toolbarIframeParent, {
117
- "scroll-padding-bottom": "40px", // same here we should add 40px
118
- "padding-bottom": "40px", // if there is already one we should add 40px
119
- })
120
- const restoreToolbarIframeStyles = setStyles(toolbarIframe, {
121
- height: "40px",
122
- visibility: "visible",
123
- })
124
-
125
- if (scrollYRemaining < 40 && scrollYMax > 0) {
126
- const scrollEnd = scrollY + 40
127
- startJavaScriptAnimation({
128
- duration: 300,
129
- onProgress: ({ progress }) => {
130
- const value = scrollY + (scrollEnd - scrollY) * progress
131
- parentDocumentElement.scrollTop = value
132
- },
133
- })
134
- }
135
-
136
- hideToolbar = () => {
137
- restoreToolbarIframeParentStyles()
138
- restoreToolbarIframeStyles()
139
-
140
- hideTooltip(document.querySelector("#eventsource-indicator"))
141
- hideTooltip(document.querySelector("#execution-indicator"))
142
- toolbarVisibilityPreference.set(false)
143
- if (animationsAreEnabled()) {
144
- document.documentElement.setAttribute("data-toolbar-animation", "")
145
- } else {
146
- document.documentElement.removeAttribute("data-toolbar-animation")
147
- }
148
- document.documentElement.removeAttribute("data-toolbar-visible")
149
- updateToolbarState({
150
- visible: false,
151
- })
152
- }
153
- }
154
-
155
- window.toolbar = {
156
- show: showToolbar,
157
- hide: () => hideToolbar(),
158
- }
159
-
160
- // const { currentScript } = document
161
- addExternalCommandCallback("renderToolbar", ({ logs }) => {
162
- renderToolbar({
163
- logs,
164
- })
165
- })
166
- addExternalCommandCallback("showToolbar", () => {
167
- showToolbar()
168
- })
169
- addExternalCommandCallback("hideToolbar", () => {
170
- hideToolbar()
171
- })
172
- updateToolbarState({
173
- ready: true,
174
- })
@@ -1,16 +0,0 @@
1
- import { sendEventToParent } from "./communication/parent_window_communication.js"
2
-
3
- export const toolbarState = {
4
- ready: false,
5
- visible: false,
6
- animationsEnabled:
7
- window.localStorage.getItem("jsenv_toolbar_animation") === "true",
8
- }
9
-
10
- export const updateToolbarState = (properties) => {
11
- Object.assign(toolbarState, properties)
12
- if (!toolbarState.ready) {
13
- return
14
- }
15
- sendEventToParent("toolbar_state_change", toolbarState)
16
- }
@@ -1,39 +0,0 @@
1
- import { updateIframeOverflowOnParentWindow } from "../util/dom.js"
2
-
3
- export const toggleTooltip = (element) => {
4
- if (element.hasAttribute("data-tooltip-visible")) {
5
- hideTooltip(element)
6
- } else {
7
- showTooltip(element)
8
- }
9
- }
10
-
11
- export const hideTooltip = (element) => {
12
- element.removeAttribute("data-tooltip-visible")
13
- element.removeAttribute("data-tooltip-auto-visible")
14
- updateIframeOverflowOnParentWindow()
15
- }
16
-
17
- export const showTooltip = (element) => {
18
- element.setAttribute("data-tooltip-visible", "")
19
- updateIframeOverflowOnParentWindow()
20
- }
21
-
22
- export const autoShowTooltip = (element) => {
23
- element.setAttribute("data-tooltip-auto-visible", "")
24
- updateIframeOverflowOnParentWindow()
25
- }
26
-
27
- export const removeAutoShowTooltip = (element) => {
28
- element.removeAttribute("data-tooltip-auto-visible")
29
- updateIframeOverflowOnParentWindow()
30
- }
31
-
32
- export const hideAllTooltip = () => {
33
- const elementsWithTooltip = Array.from(
34
- document.querySelectorAll("[data-tooltip-visible]"),
35
- )
36
- elementsWithTooltip.forEach((elementWithTooltip) => {
37
- hideTooltip(elementWithTooltip)
38
- })
39
- }
@@ -1,108 +0,0 @@
1
- export const updateIframeOverflowOnParentWindow = () => {
2
- if (!window.parent) {
3
- // can happen while parent iframe reloads
4
- return
5
- }
6
-
7
- const aTooltipIsOpened =
8
- document.querySelector("[data-tooltip-visible]") ||
9
- document.querySelector("[data-tooltip-auto-visible]")
10
- const settingsAreOpened = document.querySelector("#settings[data-active]")
11
-
12
- if (aTooltipIsOpened || settingsAreOpened) {
13
- enableIframeOverflowOnParentWindow()
14
- } else {
15
- disableIframeOverflowOnParentWindow()
16
- }
17
- }
18
-
19
- let iframeOverflowEnabled = false
20
- const enableIframeOverflowOnParentWindow = () => {
21
- if (iframeOverflowEnabled) return
22
- iframeOverflowEnabled = true
23
-
24
- const iframe = getToolbarIframe()
25
- const transitionDuration = iframe.style.transitionDuration
26
- setStyles(iframe, { "height": "100%", "transition-duration": "0ms" })
27
- if (transitionDuration) {
28
- setTimeout(() => {
29
- setStyles(iframe, { "transition-duration": transitionDuration })
30
- })
31
- }
32
- }
33
-
34
- const disableIframeOverflowOnParentWindow = () => {
35
- if (!iframeOverflowEnabled) return
36
- iframeOverflowEnabled = false
37
-
38
- const iframe = getToolbarIframe()
39
- const transitionDuration = iframe.style.transitionDuration
40
- setStyles(iframe, { "height": "40px", "transition-duration": "0ms" })
41
- if (transitionDuration) {
42
- setTimeout(() => {
43
- setStyles(iframe, { "transition-duration": transitionDuration })
44
- })
45
- }
46
- }
47
-
48
- export const getToolbarIframe = () => {
49
- const iframes = Array.from(window.parent.document.querySelectorAll("iframe"))
50
- return iframes.find((iframe) => iframe.contentWindow === window)
51
- }
52
-
53
- export const forceHideElement = (element) => {
54
- element.setAttribute("data-force-hide", "")
55
- }
56
-
57
- export const removeForceHideElement = (element) => {
58
- element.removeAttribute("data-force-hide")
59
- }
60
-
61
- export const setStyles = (element, styles) => {
62
- const elementStyle = element.style
63
- const restoreStyles = Object.keys(styles).map((styleName) => {
64
- let restore
65
- if (styleName in elementStyle) {
66
- const currentStyle = elementStyle[styleName]
67
- restore = () => {
68
- elementStyle[styleName] = currentStyle
69
- }
70
- } else {
71
- restore = () => {
72
- delete elementStyle[styleName]
73
- }
74
- }
75
-
76
- elementStyle[styleName] = styles[styleName]
77
-
78
- return restore
79
- })
80
- return () => {
81
- restoreStyles.forEach((restore) => restore())
82
- }
83
- }
84
-
85
- export const setAttributes = (element, attributes) => {
86
- Object.keys(attributes).forEach((name) => {
87
- element.setAttribute(name, attributes[name])
88
- })
89
- }
90
-
91
- export const getDocumentScroll = () => {
92
- return {
93
- x: document.documentElement.scrollLeft,
94
- y: document.documentElement.scrollTop,
95
- }
96
- }
97
-
98
- export const toolbarSectionIsActive = (element) => {
99
- return element.hasAttribute("data-active")
100
- }
101
-
102
- export const activateToolbarSection = (element) => {
103
- element.setAttribute("data-active", "")
104
- }
105
-
106
- export const deactivateToolbarSection = (element) => {
107
- element.removeAttribute("data-active")
108
- }
@@ -1,28 +0,0 @@
1
- const JSENV_LOG_ENABLED = false
2
-
3
- export const jsenvLogger = {
4
- log: (...args) => {
5
- // prevent logs for now (do not mess with user logs)
6
- if (JSENV_LOG_ENABLED) {
7
- console.log(...prefixArgs(...args))
8
- }
9
- },
10
-
11
- debug: (...args) => {
12
- if (JSENV_LOG_ENABLED) {
13
- console.log(...prefixArgs(...args))
14
- }
15
- },
16
- }
17
-
18
- // a nice yellow:ffdc00
19
- const backgroundColor = "#F7931E" // jsenv logo color
20
-
21
- // eslint-disable-next-line no-unused-vars
22
- const prefixArgs = (...args) => {
23
- return [
24
- `%cjsenv`,
25
- `background: ${backgroundColor}; color: black; padding: 1px 3px; margin: 0 1px`,
26
- ...args,
27
- ]
28
- }
@@ -1,10 +0,0 @@
1
- export const createPreference = (name) => {
2
- return {
3
- has: () => localStorage.hasOwnProperty(name),
4
- get: () =>
5
- localStorage.hasOwnProperty(name)
6
- ? JSON.parse(localStorage.getItem(name))
7
- : undefined,
8
- set: (value) => localStorage.setItem(name, JSON.stringify(value)),
9
- }
10
- }
@@ -1,18 +0,0 @@
1
- export const parseSrcSet = (srcset) => {
2
- const srcCandidates = []
3
- srcset.split(",").forEach((set) => {
4
- const [specifier, descriptor] = set.trim().split(" ")
5
- srcCandidates.push({
6
- specifier,
7
- descriptor,
8
- })
9
- })
10
- return srcCandidates
11
- }
12
-
13
- export const stringifySrcSet = (srcCandidates) => {
14
- const srcset = srcCandidates
15
- .map(({ specifier, descriptor }) => `${specifier} ${descriptor}`)
16
- .join(", ")
17
- return srcset
18
- }
@@ -1,45 +0,0 @@
1
- import { updateToolbarState } from "/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_state.js"
2
- import { createPreference } from "/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/preferences.js"
3
-
4
- const animationPreference = createPreference("jsenv_toolbar_animation")
5
-
6
- export const renderToolbarAnimation = () => {
7
- const animCheckbox = document.querySelector("#toggle-anims")
8
- animCheckbox.checked = getAnimationPreference()
9
- animCheckbox.onchange = () => {
10
- setAnimationPreference(animCheckbox.checked)
11
- onPreferenceChange(animCheckbox.checked)
12
- }
13
- onPreferenceChange(getAnimationPreference())
14
-
15
- // enable toolbar transition only after first render
16
- setTimeout(() => {
17
- document.querySelector("#toolbar").setAttribute("data-animate", "")
18
- })
19
- }
20
-
21
- const onPreferenceChange = (value) => {
22
- if (value) {
23
- enableAnimation()
24
- } else {
25
- disableAnimation()
26
- }
27
- updateToolbarState({
28
- animationsEnabled: value,
29
- })
30
- }
31
-
32
- const getAnimationPreference = () =>
33
- animationPreference.has() ? animationPreference.get() : true
34
-
35
- const setAnimationPreference = (value) => animationPreference.set(value)
36
-
37
- const enableAnimation = () => {
38
- document.documentElement.removeAttribute("data-animation-disabled")
39
- }
40
-
41
- const disableAnimation = () => {
42
- document.documentElement.setAttribute("data-animation-disabled", "")
43
- }
44
-
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvZC5tYWlsbGFyZC9kZXYvanNlbnYvanNlbnYtY29yZS9wYWNrYWdlcy9qc2Vudi1wbHVnaW4tdG9vbGJhci9zcmMvY2xpZW50L2FuaW1hdGlvbi90b29sYmFyX2FuaW1hdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1cGRhdGVUb29sYmFyU3RhdGUgfSBmcm9tIFwiLi4vdG9vbGJhcl9zdGF0ZS5qc1wiXG5pbXBvcnQgeyBjcmVhdGVQcmVmZXJlbmNlIH0gZnJvbSBcIi4uL3V0aWwvcHJlZmVyZW5jZXMuanNcIlxuXG5jb25zdCBhbmltYXRpb25QcmVmZXJlbmNlID0gY3JlYXRlUHJlZmVyZW5jZShcImpzZW52X3Rvb2xiYXJfYW5pbWF0aW9uXCIpXG5cbmV4cG9ydCBjb25zdCByZW5kZXJUb29sYmFyQW5pbWF0aW9uID0gKCkgPT4ge1xuICBjb25zdCBhbmltQ2hlY2tib3ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3RvZ2dsZS1hbmltc1wiKVxuICBhbmltQ2hlY2tib3guY2hlY2tlZCA9IGdldEFuaW1hdGlvblByZWZlcmVuY2UoKVxuICBhbmltQ2hlY2tib3gub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgc2V0QW5pbWF0aW9uUHJlZmVyZW5jZShhbmltQ2hlY2tib3guY2hlY2tlZClcbiAgICBvblByZWZlcmVuY2VDaGFuZ2UoYW5pbUNoZWNrYm94LmNoZWNrZWQpXG4gIH1cbiAgb25QcmVmZXJlbmNlQ2hhbmdlKGdldEFuaW1hdGlvblByZWZlcmVuY2UoKSlcblxuICAvLyBlbmFibGUgdG9vbGJhciB0cmFuc2l0aW9uIG9ubHkgYWZ0ZXIgZmlyc3QgcmVuZGVyXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjdG9vbGJhclwiKS5zZXRBdHRyaWJ1dGUoXCJkYXRhLWFuaW1hdGVcIiwgXCJcIilcbiAgfSlcbn1cblxuY29uc3Qgb25QcmVmZXJlbmNlQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGVuYWJsZUFuaW1hdGlvbigpXG4gIH0gZWxzZSB7XG4gICAgZGlzYWJsZUFuaW1hdGlvbigpXG4gIH1cbiAgdXBkYXRlVG9vbGJhclN0YXRlKHtcbiAgICBhbmltYXRpb25zRW5hYmxlZDogdmFsdWUsXG4gIH0pXG59XG5cbmNvbnN0IGdldEFuaW1hdGlvblByZWZlcmVuY2UgPSAoKSA9PlxuICBhbmltYXRpb25QcmVmZXJlbmNlLmhhcygpID8gYW5pbWF0aW9uUHJlZmVyZW5jZS5nZXQoKSA6IHRydWVcblxuY29uc3Qgc2V0QW5pbWF0aW9uUHJlZmVyZW5jZSA9ICh2YWx1ZSkgPT4gYW5pbWF0aW9uUHJlZmVyZW5jZS5zZXQodmFsdWUpXG5cbmNvbnN0IGVuYWJsZUFuaW1hdGlvbiA9ICgpID0+IHtcbiAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYW5pbWF0aW9uLWRpc2FibGVkXCIpXG59XG5cbmNvbnN0IGRpc2FibGVBbmltYXRpb24gPSAoKSA9PiB7XG4gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhLWFuaW1hdGlvbi1kaXNhYmxlZFwiLCBcIlwiKVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzR0FBcUI7QUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUdBQXdCO0FBQ3pEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBQ0Q7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDOyJ9
@@ -1,12 +0,0 @@
1
- {
2
- "version": 3,
3
- "file": null,
4
- "sources": [
5
- "file:///Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation.js"
6
- ],
7
- "sourcesContent": [
8
- "import { updateToolbarState } from \"../toolbar_state.js\"\nimport { createPreference } from \"../util/preferences.js\"\n\nconst animationPreference = createPreference(\"jsenv_toolbar_animation\")\n\nexport const renderToolbarAnimation = () => {\n const animCheckbox = document.querySelector(\"#toggle-anims\")\n animCheckbox.checked = getAnimationPreference()\n animCheckbox.onchange = () => {\n setAnimationPreference(animCheckbox.checked)\n onPreferenceChange(animCheckbox.checked)\n }\n onPreferenceChange(getAnimationPreference())\n\n // enable toolbar transition only after first render\n setTimeout(() => {\n document.querySelector(\"#toolbar\").setAttribute(\"data-animate\", \"\")\n })\n}\n\nconst onPreferenceChange = (value) => {\n if (value) {\n enableAnimation()\n } else {\n disableAnimation()\n }\n updateToolbarState({\n animationsEnabled: value,\n })\n}\n\nconst getAnimationPreference = () =>\n animationPreference.has() ? animationPreference.get() : true\n\nconst setAnimationPreference = (value) => animationPreference.set(value)\n\nconst enableAnimation = () => {\n document.documentElement.removeAttribute(\"data-animation-disabled\")\n}\n\nconst disableAnimation = () => {\n document.documentElement.setAttribute(\"data-animation-disabled\", \"\")\n}\n"
9
- ],
10
- "names": [],
11
- "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sGAAqB;AACxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yGAAwB;AACzD;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA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AAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AACD;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;"
12
- }