From 56b3bafe64f40d65a85ecba8050386224cc71823 Mon Sep 17 00:00:00 2001 From: "karol@jagiello.it" <1cyfraikilkaliter> Date: Thu, 13 Dec 2018 23:55:34 +0100 Subject: [PATCH] 1.8.7 release --- ..TODO/TODO.txt | 93 +- ..Themes/A Dark Colorized Theme - Preview.png | Bin 0 -> 82586 bytes ..Themes/A Dark Colorized Theme.tt_theme | 1 + ..Themes/Dark and blue (by Compilenix).png | Bin 0 -> 145565 bytes .../Dark and blue (by Compilenix).tt_theme | 1 + ..Themes/DarkFox.tt_theme | 1 + .../Light and blue (by Compilenix).tt_theme | 1 + ..Themes/Quantum (by InavL).tt_theme | 1 + ..Themes/Quantum dark dracula.tt_theme | 1 + .../Tree Tabs themes-20180520T124855Z-001.zip | Bin 0 -> 112934 bytes .../Tree Tabs themes-20180705T201201Z-001.zip | Bin 0 -> 1058363 bytes ..Themes/TreeTabsCcustomThemeV4.tt_theme | 1 + ..Themes/Vivaldi Human v2.tt_theme | 1 + ..files_ForTesting/manifest.json | 6 +- ..files_firefox/manifest.json | 8 +- ..files_opera/manifest.json | 6 +- ..files_vivaldi/manifest.json | 6 +- _locales/en/messages.json | 1438 +---------- _locales/ru/messages.json | 1875 ++++++++++---- background.js | 1122 ++++----- background_firefox.js | 335 +++ background_opera.js | 266 ++ background_vivaldi.js | 377 +++ global.js | 92 + listeners_bg.js | 716 ------ manifest.json | 31 +- options.html | 858 ------- options/options.css | 6 +- options/options.html | 905 +++++++ options/options.js | 2197 +++++++++-------- ...ns overwrite.css => options_overwrite.css} | 0 options/sample_tabs.js | 131 - scripts/backup.js | 580 ----- scripts/bookmark.js | 80 + scripts/common.js | 130 - scripts/dom.js | 720 ++++++ scripts/events.js | 655 ----- scripts/file.js | 22 + scripts/folders.js | 749 ++---- scripts/groups.js | 900 +++---- scripts/listeners.js | 313 --- scripts/manager.js | 1095 +++++--- scripts/menu.js | 1177 ++++----- scripts/preferences.js | 26 + scripts/refresh.js | 327 --- scripts/tabs.js | 1987 +++++++-------- scripts/theme.js | 638 ++--- scripts/toolbar.js | 1212 ++++----- scripts/utils.js | 414 +--- sidebar.html | 349 ++- sidebar.js | 389 ++- theme/theme.css | 773 +++--- theme/theme_blinking_attention.css | 9 + theme/theme_blinking_audio.css | 12 + theme/theme_size_preset_0.css | 13 +- theme/theme_size_preset_1.css | 15 +- theme/theme_size_preset_2.css | 14 +- theme/theme_size_preset_3.css | 11 +- theme/theme_size_preset_4.css | 15 +- theme/theme_size_preset_5.css | 41 + theme/theme_tabs_margin_0.css | 1 - theme/theme_tabs_margin_1.css | 1 - theme/theme_tabs_margin_2.css | 3 +- translator/translator.html | 18 + translator/translator.js | 121 + vivaldi/save_file.html | 14 + vivaldi/save_file.js | 24 + 67 files changed, 10797 insertions(+), 12527 deletions(-) create mode 100644 ..Themes/A Dark Colorized Theme - Preview.png create mode 100644 ..Themes/A Dark Colorized Theme.tt_theme create mode 100644 ..Themes/Dark and blue (by Compilenix).png create mode 100644 ..Themes/Dark and blue (by Compilenix).tt_theme create mode 100644 ..Themes/DarkFox.tt_theme create mode 100644 ..Themes/Light and blue (by Compilenix).tt_theme create mode 100644 ..Themes/Quantum (by InavL).tt_theme create mode 100644 ..Themes/Quantum dark dracula.tt_theme create mode 100644 ..Themes/Tree Tabs themes-20180520T124855Z-001.zip create mode 100644 ..Themes/Tree Tabs themes-20180705T201201Z-001.zip create mode 100644 ..Themes/TreeTabsCcustomThemeV4.tt_theme create mode 100644 ..Themes/Vivaldi Human v2.tt_theme create mode 100644 background_firefox.js create mode 100644 background_opera.js create mode 100644 background_vivaldi.js create mode 100644 global.js delete mode 100644 listeners_bg.js delete mode 100644 options.html create mode 100644 options/options.html rename options/{options overwrite.css => options_overwrite.css} (100%) delete mode 100644 options/sample_tabs.js delete mode 100644 scripts/backup.js create mode 100644 scripts/bookmark.js delete mode 100644 scripts/common.js create mode 100644 scripts/dom.js delete mode 100644 scripts/events.js create mode 100644 scripts/file.js delete mode 100644 scripts/listeners.js create mode 100644 scripts/preferences.js delete mode 100644 scripts/refresh.js create mode 100644 theme/theme_blinking_attention.css create mode 100644 theme/theme_blinking_audio.css create mode 100644 theme/theme_size_preset_5.css create mode 100644 translator/translator.html create mode 100644 translator/translator.js create mode 100644 vivaldi/save_file.html create mode 100644 vivaldi/save_file.js diff --git a/..TODO/TODO.txt b/..TODO/TODO.txt index 3d7ee25..5e15a48 100644 --- a/..TODO/TODO.txt +++ b/..TODO/TODO.txt @@ -1,19 +1,50 @@ +WITH NEW API: +REDO SIDEBAR INITIALIZE ok! + + + + +RECHECK CLOSE TABS - activeTab query (works) + +FINISH BACKGROUND LISTENERS (ORPHAN CASE) YAYYYYYY PROBABLY DONE! +FINISH EVENTS - DROP (MAYBE DONE?) +REDO START DRAG OF GROUP TAB AND FOLDER (MAYBE there) +REDO DRAG OVER PIN_LIST AND GROUP (DONE!) +REDO CloseTabs (looks fine, more testing needed) +RECHECK SetTabClass (looks fine, more testing needed) +FINISH BACKUP MERGE and recreate group and session, REDO load group, coooooz' not work (done, testing needed) +REDO DETACH TAB!!! (maybe done) + + + + +REVAMP MENU +REVAMP TOOLBAR FUNCTIONS +FIX ADD NEW FOLDER (from toolbar and from menu - add insertAfterID to new folder function) + + +REDO PROMOTE TABS IN LISTENERS IN: tab_removed AND tab_detached + + +ADD LINKS TO OPTIONS PAGE AND ADD RED COMMENTS +ADD PRESETS FOR OPTIONS + + + + + + + + CHANGES: -1. shortcut to open TreeTabs Sidebar is now F1 -2. log does not preserve any personal data (urls) for GDPR law - -NEW: -1. you can now drag&drop entire group to another window -2. tree structure is tracked in background (excluded closing tabs) -3. added alt+w shortcut to close a tree of tabs -4. creating folder will now prompt for a new name -5. search for *audible, *muted, *unloaded, *loaded tabs! Just write *audible in search box! +1. mute icon config option (disable animation) +2. "TURN OFF DIMMING" OF AUDIO AND FOR ATTENTION +3. you can now drop folders between tabs, but only if root is folder or group -FIXES: -1. import window was not showing up -2. export group and export session had file extension in name -3. pin tree had bug in setting class + +FIXED: +"Close other" doesn't respect pinned tabs. @@ -36,7 +67,6 @@ line for children hierarchy (like at the beggining) return to the first tab with mousewheel when we are at the bottom list (loop) - "mousewheel scroll on the last tab allow to return to the first one" -mute icon config option (disable animation) FIREFOX CONTAINERS @@ -102,7 +132,40 @@ Accept BCH (BitcoinCash) donations as the FEES make it FAR more palatable to don - Like many other commenters suggested, it would be wonderful to see some indication of the container a tab was opened in, if any. Getting an option to directly be able to chose to open a new tab in a container would also be very useful. + +Option to change the color of the icon indicating that a tab is a source of audio. (separated for playing and muted) + + + + + + I DON'T UNDERSTAND THOSE FROM COMMENTS - add possibility open all tabs in folder in new left tab group with deleting this folder; - for economy memory your tabs must to makings (html code) during activating left tab group or during unfold folders/trees; -- real FF tabs must creating and linking only after activate your tabs; \ No newline at end of file +- real FF tabs must creating and linking only after activate your tabs; + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/..Themes/A Dark Colorized Theme - Preview.png b/..Themes/A Dark Colorized Theme - Preview.png new file mode 100644 index 0000000000000000000000000000000000000000..a65a58054a512e0fad2789fa1a5c99ee2f0e1274 GIT binary patch literal 82586 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

>d|GG%Y_ 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 literal 0 HcmV?d00001 diff --git a/..Themes/A Dark Colorized Theme.tt_theme b/..Themes/A Dark Colorized Theme.tt_theme new file mode 100644 index 0000000..1dab3ca --- /dev/null +++ b/..Themes/A Dark Colorized Theme.tt_theme @@ -0,0 +1 @@ +{"ToolbarShow":true,"ColorsSet":{"tab_background":"#155128","children_padding_left":"19px","tab_header_border_radius":"8px","pin_list_background":"#1f2427","tab_title_font_color":"#dfdfdf","group_list_button_hover_background":"#1f2427","close_hover_background":"#2e3a45","expand_closed_background":"#f8f8f8","tab_discarded_background":"#4a2629","tab_list_background":"#1f2427","group_list_background":"#1f2427","tab_border":"#1f2427","tab_active_background":"#206a71","tab_active_title_font_color":"#f8f8f8","tab_discarded_border":"#1f2427","tab_hover_background":"#155128","tab_hover_title_font_color":"#dfdfdf","tab_hover_border":"#ffffff","tab_selected_background":"#207b3e","tab_selected_title_font_weight":"normal","tab_selected_title_font_color":"#5bff5b","tab_selected_hover_title_font_color":"#5bff5b","tab_selected_hover_background":"#207b3e","tab_active_hover_background":"#206a71","tab_active_selected_background":"#35b3bd","tab_selected_active_hover_background":"#35b3bd","group_list_default_font_color":"#339bf3","group_list_borders":"#566570","tab_active_hover_title_font_color":"#f8f8f8","tab_active_selected_title_font_color":"#003f5e","tab_selected_active_hover_title_font_color":"#003f5e","tab_discarded_hover_background":"#4a2629","tab_selected_discarded_background":"#6d3a40","tab_selected_discarded_hover_background":"#6d3a40","tab_discarded_hover_border":"#ffffff","tab_selected_discarded_border":"#1f2427","tab_active_title_font_weight":"bold","tab_discarded_hover_title_font_color":"#acacb0","tab_active_border":"#1f2427","tab_selected_border":"#1f2427","tab_active_selected_border":"#1f2427","tab_selected_discarded_hover_border":"#ffffff","tab_selected_hover_border":"#ffffff","pin_list_border_bottom":"#414c54","filter_box_border":"#a1a5a8","toolbar_border_bottom":"#7e8f9c","close_hover_border":"#2e3a45","close_x":"#c5c5c7","button_hover_background":"#2e3a45","button_background":"#1f2427","toolbar_background":"#1f2427","button_border":"#1f2427","button_hover_border":"#568aab","tab_active_hover_border":"#ffffff","button_icons":"#c5c5c7","button_icons_hover":"#1791c2","expand_hover_background":"#f8f8f8","tab_discarded_title_font_color":"#acacb0","expand_open_background":"#f8f8f8","tabs_menu_hover_background":"#1f2427","tab_selected_active_hover_border":"#ffffff","attention_background":"#70486c","attention_border":"#e126bb","tab_filtered_hover_background":"#1f2427","tab_filtered_hover_title_font_color":"#c2b917","tab_filtered_hover_border":"#ffff00","tab_filtered_active_background":"#1f2427","tab_filtered_active_title_font_color":"#f8f8f8","tab_filtered_active_border":"#aba656","tab_filtered_active_hover_title_font_color":"#f8f8f8","tab_filtered_active_hover_border":"#ffff00","tab_filtered_active_hover_background":"#1f2427","tab_filtered_background":"#1f2427","tab_filtered_border":"#ffff00","tab_filtered_title_font_color":"#c2b917","tab_filtered_selected_border":"#aba656","tab_filtered_selected_active_border":"#aba656","tab_filtered_selected_background":"#4f4f00","tab_filtered_selected_title_font_color":"#ffff00","tab_filtered_selected_hover_title_font_color":"#ffff00","tab_filtered_selected_active_title_font_color":"#f8f8f8","tab_filtered_selected_active_hover_title_font_color":"#f8f8f8","tab_filtered_selected_active_background":"#4f4f00","tab_filtered_selected_hover_background":"#4f4f00","tab_filtered_selected_active_hover_background":"#4f4f00","tab_filtered_selected_hover_border":"#ffff00","tab_filtered_selected_active_hover_border":"#ffff00","tab_filtered_highlighted_search_background":"#1f2427","tab_filtered_highlighted_search_title_font_color":"#c11815","tab_filtered_highlighted_search_border":"#aa5656","tab_filtered_highlighted_search_hover_title_font_color":"#c11815","tab_filtered_highlighted_search_hover_background":"#1f2427","tab_filtered_highlighted_search_hover_border":"#ff0000","tab_filtered_active_highlighted_search_background":"#1f2427","tab_filtered_active_highlighted_search_hover_background":"#1f2427","tab_filtered_selected_highlighted_search_background":"#330000","tab_filtered_selected_highlighted_search_hover_background":"#330000","tab_filtered_selected_active_highlighted_search_background":"#330000","tab_filtered_selected_active_highlighted_search_hover_background":"#330000","tab_filtered_selected_highlighted_search_border":"#ab5668","tab_filtered_selected_active_highlighted_search_border":"#ab5668","tab_filtered_active_highlighted_search_border":"#aa5656","tab_filtered_active_highlighted_search_hover_border":"#ff0000","tab_filtered_selected_highlighted_search_hover_border":"#ff0000","tab_filtered_selected_active_highlighted_search_hover_border":"#ff0000","tab_filtered_active_highlighted_search_title_font_color":"#f8f8f8","tab_filtered_active_highlighted_search_hover_title_font_color":"#f8f8f8","tab_filtered_selected_highlighted_search_title_font_color":"#c11815","tab_filtered_selected_highlighted_search_hover_title_font_color":"#c11815","tab_filtered_selected_active_highlighted_search_title_font_color":"#f8f8f8","tab_filtered_selected_active_highlighted_search_hover_title_font_color":"#f8f8f8","tab_selected_title_font_style":"normal","tab_selected_hover_title_font_style":"normal","tab_active_selected_title_font_style":"normal","tab_selected_active_hover_title_font_style":"normal","tab_selected_discarded_title_font_style":"normal","tab_selected_discarded_hover_title_font_style":"normal","tab_filtered_selected_title_font_style":"normal","tab_filtered_selected_hover_title_font_style":"normal","tab_filtered_selected_active_title_font_style":"normal","tab_filtered_selected_active_hover_title_font_style":"normal","tab_filtered_selected_highlighted_search_title_font_style":"normal","tab_filtered_selected_highlighted_search_hover_title_font_style":"normal","tab_filtered_selected_active_highlighted_search_title_font_style":"normal","tab_filtered_selected_active_highlighted_search_hover_title_font_style":"normal","tab_selected_discarded_hover_title_font_color":"#ff5e62","tabs_menu_background":"#1f2427","tabs_menu_font":"#c5c5c7","tabs_menu_hover_border":"#568aab","tabs_menu_separator":"#1f2427","tabs_menu_border":"#414c54","filter_clear_icon":"#000000","filter_box_background":"#fafafa","filter_box_font":"#000000","tab_active_title_font_style":"normal","tab_active_hover_title_font_style":"normal","tab_selected_discarded_title_font_color":"#ff5e62","tab_filtered_title_font_weight":"normal","tab_filtered_hover_title_font_weight":"normal","tab_filtered_active_hover_title_font_weight":"bold","tab_filtered_selected_title_font_weight":"normal","tab_filtered_selected_hover_title_font_weight":"normal","tab_filtered_selected_active_title_font_weight":"bold","tab_filtered_selected_active_hover_title_font_weight":"bold","tab_filtered_active_title_font_weight":"bold","tab_filtered_highlighted_search_title_font_weight":"normal","tab_filtered_highlighted_search_hover_title_font_weight":"normal","tab_filtered_active_highlighted_search_title_font_weight":"bold","tab_filtered_active_highlighted_search_hover_title_font_weight":"bold","tab_filtered_selected_highlighted_search_title_font_weight":"normal","tab_filtered_selected_highlighted_search_hover_title_font_weight":"normal","tab_filtered_selected_active_highlighted_search_title_font_weight":"bold","tab_filtered_selected_active_highlighted_search_hover_title_font_weight":"bold","tab_title_font_weight":"normal","tab_hover_title_font_weight":"normal","tab_selected_hover_title_font_weight":"normal","tab_active_hover_title_font_weight":"bold","tab_active_selected_title_font_weight":"bold","tab_selected_active_hover_title_font_weight":"bold","tab_discarded_title_font_weight":"normal","tab_discarded_hover_title_font_weight":"normal","tab_selected_discarded_title_font_weight":"normal","tab_selected_discarded_hover_title_font_weight":"normal","tab_title_font_style":"normal","tab_hover_title_font_style":"normal","tab_discarded_title_font_style":"normal","tab_discarded_hover_title_font_style":"normal","tab_filtered_title_font_style":"normal","tab_filtered_hover_title_font_style":"normal","tab_filtered_active_title_font_style":"normal","tab_filtered_active_hover_title_font_style":"normal","tab_filtered_highlighted_search_title_font_style":"normal","tab_filtered_highlighted_search_hover_title_font_style":"normal","tab_filtered_active_highlighted_search_title_font_style":"normal","tab_filtered_active_highlighted_search_hover_title_font_style":"normal"},"TabsSizeSetNumber":1,"TabsMargins":"0","theme_name":"dark_colorized","theme_version":3,"toolbar":"

","unused_buttons":""} \ No newline at end of file diff --git a/..Themes/Dark and blue (by Compilenix).png b/..Themes/Dark and blue (by Compilenix).png new file mode 100644 index 0000000000000000000000000000000000000000..128071d1c7d427ed9982b4042a2923253f42c472 GIT binary patch literal 145565 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

o^Ts`l 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

L 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%0Ae*m zB@)!I_CcoMb{JY<>eEUc3-hMR5%|pR3$=i#-p72RA-HASs|njqg1%A1^~z2&*I+(8 zH%V4Y4XIU+rS_vsLq)__DLrmRNGfgJ&@Dz=cUkAxgFfpy2Y!P)e_;O+1}D~Z)7s=n z1p^e%7~=VF5Gc=!&)%CNIEtyrr1_DMP5sg(VcUYCTiI58b2snXR&MdQf7xny`?$!< zGwsMK;-e+|DdG9{>r58C%@^VHPY!^0ut^*>#u znCM?-KA_`@EQi$Ul}Zv7i5}!rRwBL&DqzJbzNK@UxXyZr9iz1!s&Fohys1K}8_Oo+ zdq_1dsf8ThVqNiEk%8`iUNurRm^dP?$A>OTb{N4Q;?ty-&7=b9C)&9a&f>MNym`bF zRf}9ep|r;DP}8G}FRcO_76Fq?#O-Rpi+G;v-t%wT#1T|vEh%BQ_(n9*3%XgX77Uw@ z6p>^PdAdQIr342ekm}aFZiO=GaVE;q8_|G?Lw4H~X$|?J#fZ6e2+2#+V0^G}DR8>d zHse_%%8xMV+!;~Bah)XL-06s-NCqh?fAma4toBi-|5r!z$H@?CiOyrqK*BmXK~ao( zaei}|c!!va$0wHwonH_PL~T~Z?ckXO6wc^?lxC04a#l%<^ks) zp`WlcvYpqOOwG`B$72<^-^an+zqbtY;*_^nWyfPKx58c(y z!JfAgS*bm~%5!&jbJQdEdg+4ZlN`FO!lv_qcKRV2TrXJhV?K6%&Wcgb!T*6gZTv6f z=>raeAT6iJeUn0SQb2kz&!_OFC;XQ0jx$luEdx_+(|B)k6U{BI!)zn_;YdyWem5M7 z*efcr_Cr|8*QiGT-1Fi88yJFF8$$0CO8}9cjv_6jU8j!4AiXu_SWgd5&PtDo@zt!L zq@@kp-8Ih5>vyJ2c=Sk>wRVhf^-hm)EFYgAI{Iy#oDUSB!p>R_kS#Sj>1&UU48+bU7zGp70SG2gB}O=T@Z?Z~kEpS)m7>VS3g|?jR*@iaM7^ zX{qSwE#CXUh;&jg><+bw(vuY_2J7RFUfD}#xa4(d6!!4(##8f!$V3D_8oitJzMa?z zeKd@t{g1~b)11v4&D}{uZkcn;&eSx9r5IWM)YAFDw){@jcZC&e5r$%O1h*2zrl}SC zX?V#)LOh@i<#Ld*b-yN58CJWBaHXqvA!CX)Fp^dX+*K1gbglF-tK=Vpg0E-ySc zr}A%3y>}*#K>P5y!}{t3l4RF7w-)nt|0VzR=#-k`)OA z&!chL-aBZ~ACtI90?k>%*uenkuoTCSf4sKQN8vs_Ylp-1lBqORPicSI@e|zfrc2^N zV@UtZ5@C%NqNfQ2=AUx+706K0SYgpL&ki$u$y=%-ty9eARhCeT&g>9CpnEB|UfC+J zO-M7;gAD8;<=ZQX=iF1;Ql9S2Bg|n#Ff)OuEEPKDk^Y{9ZCJswg}?(>UYctwM}^sL zvP40$b|QK*IiQ|bv}qQsbPcMjF0a9D;Nnf^e7E??B&jJlLnm z-?t3Tv@o=AbgQ+T39~r27*=X-hPX^ z`~y`!?Y>k@j(~gP&#R5EK5`Hhb}q?$>j4b)_&(`JiH<8DxcTh9Nn>GgNXYt>et4c ze^N(dY0+d%OPeAo*-4`Mn#@6Yd6Hq_WUTCjPC===bMXpr<&^B~DVLX`ef?r_vFQ?? zo^AAg1#HtLG?HL6Nd9k{w5cKsdx6OpXh`;VJbE68R^6`T1W`Z?k&Pi@&VXelpL?v} z+clb67MG|}VEEdcI($v+w5jw7(t$oW3Z|jiPOD9XAxbzS-IqgJT2_kVnVvszSu=o- zFz^VssSX;9CEMZMpu*QyCtp|N)l_2@qNEk)x?iF~Vpl47?&BqxRVjEJE0y-Wt;{Zd zNq>qMa3G#?d?!pL@(2$?unn^jC2AL2&(l+KctF?uhpIcyYb=`f>GFz2U(~8{BzFuO%%% zv0(Ck2<^47J__>}+gNg&06T$D^&F}CYS5yAlJSpY>Lay74gHFniP61zVi$@^=8{yx z#BzqRh!)L&C2dXkuQbU7xXI!D%?l;fuB?({2vizbvH*wALV zk!si5D80cRaY_kv0EeagnjA4qyiYaPQ~hC9rAuUFSK?bh2%}ozI5lm7e!)$YMg@^1 zm~qU(|4zxj8bv>-ocePym9~LcLllrLk-muGXZ3lh|4kL3g&DhBg=>}<8m7w>^e1LU zo;#C+^DF;eIe~c}cHPLC&R5lR2<%EzrbJWZ;~GyzscVUA+~IQO7`lvAJu&@^tn1&b zzPfZaBvcjr9Da0bb50sx99N4^FupkME8$A)_D&M*tkmlP&Q9n&uby^1uZGDyFYmvr zWod#z;mS*5P>x7$p^t-cL61vJKaN$Bq78v0E`629+H5G3v|A$lf4}}cU$QqB7+ne$ z&`q$Dif&sh1+bOXH)GHXgkBL{%YrqhAZbUzJMgsN?IZ#fJ)&3Awgc>(a(_o=%Y0_2 z@9jjH{GfqzON6V+`HvOgf@nI%z__%a-Y4lV1~GdJj2&W0sHAaz>0Ys3XnZ^dH(?#Q zyOE(Gc+d7*B4tFdA~5VnC|<_*jgXLJUA#Q4a2 zz0*O0`Iqyt#k%y5*a22s^tMa9oFZM5byi#8UCP6<<37JC-#fHSQlCTSBdp1RK;iW* z?4z9LkE=`Z_)ypAu+_LMCHGf^lp6Hdtv3uXXM;ifu5JB-{G_fasNUmp>M$brA&k}a zZj`l+-Do1-e}fc$K>Q53**!_a{TNE`FMaPNbo7pVdFF$E@!n`h=qeY5llYvl@)Vqz zXFR&oq*mTLqy0084nH!abC_WioHa}*nF^ikg`1B}FGMYyS5k!IP{I|xVmAZdGfb-( zQyxl2A}!jW;JL7(&T_|WuT_r{Jgz4Z#TXcHst%5my!A$3W+X#kMGGAn6|tE@tJI_~ zve9j5iB-|U*J$Vn0>?eTBrOHAr~3WCLcOQnKkgl_nw@U050w#5+P=7{m1sqoEmd5R ztITsT&qx=Vn^W#VRKdB~0cQtQ7&_nn+Ak)eROHX-4~oQIboDM!(rd zE65acospxi9L}dqmh8H7$f}GQ?(lLB8%bLiFuBDDp70bAx-jTWqJ|Y2pkVzhc&%%kwasg z3tas%TSE#d9a(p)X|C}*Cr6zA0<9Ra*y5|{^?ZG}cI&-E$NMX!o~M0cqu%;xmN#qH zurTJo`El@@QCAke9xW>+95Qtc!2kJFBm1wX8d{gbfv9|~A^LgbU@@N^^x^~+*ZmSj z=G%@#Jh5j`C6!+MQO7N(#;cSg{}W3Fw(j4U89`Xt*VNQJwGu8n+>3=;`VfiqOHFWK z9m7BIM5wp|;;%BwsKku{P%0Q#K!xJmJc%f|Z~Qco;Jc#nPDx1_8y_!XZB37WMgNV3 zMKKCK3Ue|vW=4#vFYfPm(nxetqp6blR}gUUvA@5}k<-OsR?B$J6knhW6HHIwx3sDg zACm&6Nf%rmfQA-K0xobWnDb3%L?h`1t~x4@?E=Sd1@?GHkI5o)N0!%Y+!(tU`qb1S zSqc7hRe%4CMzV9_8&%?w2s%Is!#uaS8Y;z>tiF@i%Xx;Lj4eJ+>gJuVv5!P~%FKsW zS@1kSw_^($4qgcEo^A^4lyG)#VPEL&j7aMNFCMaH9rjr97~lM#sXl(rH&5=dO>M;K z$)of7T=h#qfXbgcI{+FjX`{d(& zna&a5PLHsFHyyBwL386}kpvn&S79po(%LoirOv5Tp1#Mdrl+s+O zHok09s2bf5kaA&z?#FjHJGI6qD}!A3Qy7VSa-+5lIE$i^YHY&2|8E|C za2{)Vxr5!=O*D@8D@&A3G-%_FoGSAfm#O2GlNMQ*NAsHXZ_D`za?39yN5RGqrDYTo)12khEg+>KQFyP2C;d}fQzI5&YhB*< zei2I{y=&v?=SqMtYN!YgC>6PCgHqf9!Ktb^03N9)b)RXl*>rtx7T8}q(FhyxJw3t0C z8>b{=byK52H9%%;VuTqTsbLvbw~Vo8MuM>)V*Y*K1SPI~K+rWROkAMP=~#M1PCM^) zDrt_ORcwcB(Y*7LTg&^6SxvBMpiEC^r`_sfOE{)euXTV}pnYJ(#(OatJ)!(Uu3Hh~W#kG;%VXOQ?B7BS{YpA}~KVsn(Mw!KujAY=U- z+TwK8@9(eB{WGcEy;)(N5jVw-uM{1_y}A_g8@dr?D?enWL_M;yN;z148R@#cnQZ97ODr3AN>DH7TQ3ujN`5;U+*`oO zA&?39zyY~$B&QiEnOzvSB@H#s(LnX6eI^W)o0TM+XFYRxJ!`H00oSt16!U%D6~9!( z^D3NxSEooU>5{uGpu^R@LI0^#&#vS@ z3Id%eDd9#!X*U>?pXmE51nH4a`8ZgL%kC#)T>7Q6RV|_s(^`P6w;hK4QxC>Y1_Mjn@>Vhe3 z#st_qR;ko&?rUx@qmIfdK7)D%yHNAbj}u5z^K2{P?5g+M)P35kY{l1+uGR>B(?-zx zf&6ZJP;_8LRe}%QwJ@TdTWn-M*nrpBbxI*ZWt=mdv@lHHpX_XvW*z3a7rzmJe-7wt5S2I_FA+`%->|G zAf7l1hy5CQl&zT0!rFZ9AveKD+uy&qu6xstrWKc)=e3pNW))=)Mr9a{*Cf1NgH#Co zV3ic$Ox~SGq|&DMlaFlRuLsQ-uLnL})0J8qSs%88hkk{Uko-m+2KNE;!}(Mt)I;)l zlM+dLRlsl9KdTby?W8*7j&YxL{ITx zSe&H5E0NSoI!dw!j1WahTR})qcg|dWiTy>SCA{QzD!mq5rNBpi-~592zD_L9dyAiX zPe|J2^VOt+qNy}&shWMLfnVp=_IJLm@Y|4PLnNM*CH&=r74T8X1Y)hGM_8#U8l*|r z&(27HPw-lgbvxm>Uv_S$0P+W?V}A2~Pzs4i`K3If4XWSnJ4yU&81Zc}UbanuSm}W$ zb@Cl)Fm-UqV)>8PJZ1WuRmhz?YGT7*EfZ2rVv?f3jT+lO?5i(JHD1sss`WJuRblgQ zCQvW*b6?}9>)JEegJA(MpB>Xz#=8QAHkE`IGruO6wvq4mp%OU|vzp1q4kjd` zcc&M>?Am!>(GUvNyd&q#g1FnvyYy$v{Z zyj%KGhcmSb8b&pgT%f0Hr4FluyxN34;{(S+lin1fX9$La3O!$aJy%)@=GYF4D;H2K zYtc@t>YA7 zaIfvJ&0&Q-=$1RydmGMV8xS>@c@9lAicJ3>1tI;cIN$nAprgY%vdHI65Tl&8|Jtjl z`M!UU?Tqi|_>rJIU>6%oR#1A>Xma-YFv|p2+u?PQ?Sf~t^`dP&$3afM?SZBgNqd0m zcg9IH$*nb&_^C&()rO5>S;NilJk|2*Zz^`$phFDa?shr*y+_&rABy9CYNbQv;E?&s|`jxnNmoUR04c_i0i546fI1CBa4+~@==S>gg ziiRiiTa_+R;w6m=%T^{*Y%7dq@I>y(d*Yck^5p$_6v+bHReQjqb_t28t=*)28Doy)`X4pgr9Jv5m_0wI4Bq!h>adJber z+^@7rjj&>h!^n9lGCiGWp}8&L*>G8&mX8kYYniPOrZ5hHOnS0nAEx#&NCw(Y%6tML zPFvp>B7?sW@DH+HbWDmb3LKnFZlL=ViB@_I6%ls~dSrPIRc*TaX9#}q+fez4-A$Wa z5xe1D_^K6ee(=@5=zg=?#XOE`lRdjkn#+9}gN z%~?X=4eonlT>5t&XauiG-u;QUH$PlP?!Cx&1TLf0?@9KAiMR1RKYt{4%CowLmiqqm z%=l_fh?^{Zqh8A`@m*QCw?+!g`(U`UOef_VIa21;mr9Hw1_WjbS@Bt(@!7*;$5cg&WDzrXKLCtP#be{!|0IuT^cjzd7)g-~(#X#>rv}Y} zI`v+>qpaQ(97k32PT*pciS;vO^gFUmo!?0d!MncDCo`$onj$Kl&dOJog*Q8X<27<_ zZz@Mt&-5F+pry`7E;Zb4^R^Lv+%wj(i<%!J;%N0hP%L#V_-j@3C{Z&=8l9(0{%SEp zGuRe1mc4Bk$rk|oB!uUnBM;9MpjN&@r8+GU(9+_w&9NPXnrQL}L5@C;m1`at>?Fd& zEF?@X>V*wvQEYf{AqUAA{=AKr97>gK@fHxw}*pX^-zv7-05B>Mz^ zVzks0?eEg9^m_Z)8OlqVVne>1hP?osUKQD$w*45-6z8@(msBP8j^EcQI^=nTVmJE` zIcVs0JmU&0G(s;}l~r^&O;RR)#_b7;Llm?RP15s(^H917SZr&J5LwS8rZ(+RhFPa^*&L7Hk=J%wf=TKgr; z^*pknzufB<-Xjeyxk9VIq^w9ICvHUi++cA=lOyWh;VH(;5i4?H_TevgEq2s-w8--Y z<)1t!E>EnvozeHN|4#R)s3b+sMB(QN_i=IHltK(QnN8r(=F`o=Xh}B36aE({YFb*u zjW)MpL$Z*_P@y!vknwX$D!SW!haQ%BF%^AOS zMNz%#@LE{pYL8i%Hd*X>6`Q88&s^G=bFity5z@v7$0(gVJ^{6@4cT&XKeFNiD9NJc z0&vh`jpU0;rz}{$W13G{)S@72y3vV#K0#2NG9eE&lFQECkkRgvw)FT@9^@V&Q*XYC zKV3J!v)L4j-Qk&p-07agB;XMzx9OAcu=$Q()qc(6rOnjFtX|lbzoH6<+lvk4{`x(%P{o&P+O+^ss01Jhyz+>3-^3RG65e-UP|);CE`}GOf+2y=3~Gy=;MW5RkuxQ>k`gc;02rZ9tk*PWLU@?xRLi(&RdIQmiFUr#2yk~>$}rSXvq}I zY{D;P8xm%4GO*PR>u~HazX`Xw>Prcsb@!}}Q0%6tfeyE(xIlr5ruTa|Nl;MY3~;P} zr5le0;a~`)dReRv1O^>reI_KqmN|no0ol5KGtZaIZ`aDU?dt8?SLCq18=Y>1jjF4) zkz>890BLi_r4TzYnVRwW@yF(m!P3}H>>ruAu-auuWfb|PdzMF=oSfaBGVBc%2sBvJ z@2@rg4w`^j1{5af^nNAaTIiXwLl-Vu;R2BKZ7XFEa1mjQt}J`hCATd$D8`4IEYSff1GR4A+-8&Y z_D}Y(ogX^LOdU&;(o7Zm%Vw=^?~_(fN3-2BT#o$vEiuFuCz)rbT=^*544ZqKyDK967z=snKCMEd^n$J6JYft%CLTRQK% zo2;ALgtEGGuXs@RO;ba9H@n?mPFtbaVM?{IunkoHvz?J_T1;b$I~a zu+b4AsWN1dFm6SW?OMI`7!K-k9zhuD?utH?HrwfdqLS$Ry%Axib&?RuE;Ue5jv2`; zCH=j*&q6c}$IT(__6D5e2${mq z7pUSLdp229vN+5POUPw^SBqq3La>pg<*|X`iA*J>LE{pH2zIq`_$hGTf|kn{SS&?g zoX9nupfy}l^Op{U^!&7b(zzEYr@Liq`w=C`_n_qcwp!G0`#~D5E6|&gMU?lk#WTi$ zc?b!ymeH=By21>L2V|?0SKj)1dJCO5I{gxPQZ_Xu$yASpEsD)mPpf#;~oz^^ABcs8bz#cyYgC# z;xMO}0fsV&dsv-M11H>Jn5{^j{N4gXf!AK%qrUH@UStu0jnD1xV5Qga`{YK^6Ub-@ zrg7$BPR{LmmZ{IDs-b%71hjGL=q%tB>wCj{RY5z5@m*25v><<4Mn#Xz(8zL+2YXLB&aQE)THniX%pI=H-zZ`-?EC2eR3*h^&(sA3>1L$^NLll`#k#x$Ow5(Ri2v3)vYs=D4ABu3@2 z%k+=d23?tXORl%9w>|8i@I549m+017^;m7F{Ekg?Aq^67LJHj>wfzd7cfeg5^vo5w zas>0%lTCMMl~y9Gq@NpU6C%ZsMVr-Cxj{Iu(S~K5xZRF8mkve^k|1nllxYB7;nlL1 zA}$hd=dY84{dRT%kT$|<+(axPFPPRXj-fw4B*?4g?ngEnVj9rDYY9e$erk0R`$1)T3V={WEehwP$FeKix$cx$4X1fr1O)f#>!kkO5a`F(81Z}o^a zL|aF3!rBBxLiPF_D~Oo=m89UzzTG{uxR^|lN*=fhp1?7%wB^_p-a(0GOp20|7u86U zC~!E?b;L>nz%5yql+DpPr5--S$o_YSCVxt)3yARIy1lMtu4UmE@q-~{_4YX(7Pc=mJPEuD5 zYAz*Ek|~G)<|0~ou_v~KrIkDwRWS5xs*!^F)sOla3V!~s5Y}RhYVDITaDwJ2u}Q(# z%8R3K#q(E_&QTJM;>M5EAzQ$u!5F=f8Q#^JGq-6rhF?BxcMqt6WHZIov_dqsrG*KH z&tS&#M~R+}C7lrE2vi9q$2MaTmoN}BAbrl{p+){Gf3>7~8eLBIF=vUV=Nd7xi9|x6 z75Urh%jCva#P>-|$Uzqc4_7(_KG9;jutUD4M59ihi1RaPjaG)C{ftqKX1A~1^=Wp& zLdGzfk1_Kja-Nhmn(Op}^U=V;pJMfoj4Giwi<;5x%@`h{NM#F2)kboJa@v~18^Q&M z)>l*YGk%Sv{y|7o8zYeJYAX75Vg`WznWf(b7LDOLpbL+WKS`KxNF2zCKpV5>raPdM z+1COU5FebhgsNO&z38Yj(0ddMo8L?G8TRbdEk98BV0EdnGpxPW$=atp=A95p_N;R2 zwu7hHQ-WU5J2xc{){+|xHl*%~^^j0=A;Rw=2ergcpnqu0DomBS1gMV6 zfK6MfE=%n0Wq94+nNu$X=Guz;Q+EGEIX9@B%8!^A>e~UYPIYAc^a{XDsrDSNQqoXuIR0PEdlHUXJY< zrS9{n-eZRPg_e)qKPBRw0)j6Kn&us!CVS7xT~xNB=i9uGGz9%(WOOwlL((EN5!0W& zH^5@+#8UllF|01N0(KulN1_f-EvQS0x3h@Idh1yVMw?QUhx%K@=t7^wiHskgE{fZy zFUB7}y!Me$yBb+|(fx}E98CNA?p)yhS^YrnmKK{H0;Vpac4ed@sB|%dr7-Eht4~T~ zGcsuxrHkhkM-J6v6b{mDMZ93liL5#Zv& z2$ToDQle(4P&Ko2cw}|s_ko`nffWoIzmG!hNMQ;5{E|;h1A%E2rbry>JT3npVSg1C zSD-8n!-Rz3?jGDdxFxtta2VWmaF-;w`@rB5Ah^4`yL$#1+}%I+d-l2b&&}Ug>si<9 z=~dlTU1f4`)MbKBj3+>V6;CMU<^rxN^r+tbM>~S%kmG5|YJ0>f3m^}43Humwi|lma zF~DL5r?epk-k8v4ZR}xMi%y1&I$qS{RvCi>I{V8rTWLn0GcHi>aA!V2@JN0pW*7Yw zbjTH9zR@4JH1Ys^OhGnpfnc7-Xa&KGaAb+KaaDAqH3hR^_Xq`FwmV&U^v*BF@A{*8 zhP3=6-3mH!<`N3j*MV;T^vS8kXbjrzfbw|}A!#9#2nBJtWChko7C4?ow5N09DS0Qr z9G_Ya{Sc)h0oiU-UPl(BQ`pGYfsZZ2U3AEFc$HKhuc#sn10-ki$*{=lwpZU}Vf{B_ zqF4iYFRFYEv|II}m~VyD33?I3A`Q`0h8u$%OqkhapG-!$F2--o72o}3+jTXPzh5kf zaq5L{?EBI17IWCUhTWnCb`+4}O& zH~ebAhC3FGiwXEiaRB~Rmu*kwVNce0YG7*XMXwBadyw>xL5{p?|>u`8|ua)1g zIf-6-MnMA_(V!HTn2p_m@Ye6a&Sl*YB(LMQ3G-ezft zH>kVl^p`OWEq5(u%X8&$R+S!0l|&}LfF=8dWtrZcHrEPohPPS0JBdPW8AVV;3(D(rBe2=2(zdUjmFoZ0l~Wv?5g~Y!{atj* zXOs_nv{e6m!qz#}^n?*hc3bT>Nddwmr3PxHW4u}}sLyTJKCl-@m_DCOipHxMjE+`z zQk0tr20TLGHF-(?9DXAXxQEiz->mYvK(KhpMY=oBMU6f@f5)G4Nd;O&Hg{NIuCjSY zu;!c;?0v9Z36O*VNi2Mr_V`Oc(wk$UE0x_8U+MKHN z#&Xx))*OJ)%j$MJZCvI15%VTpLddC6Nd5^W^VpuL{kuSg7}+jGTTW&YwqYT%8b9kK zxK6%&tg7bgAcYZO%dJbQDKD|wQ?Ryxj!~TnV&SR#SR?Pi%B)h&nj({ushb8~I88V; z&LCC-c97+7cz1ty0zm?k&Kaqi2L01c97}R|A+fb8eF~&<5TBQhoaLE!XzLaxG$^q# zSv@6i?*~acK>Lt2sNA)GVLZm%zhcQp0J7CcB2A7@q9q`60P+r_tf7k8$djzp@0>a| z4=$*s0I`OAbmRL+UANfXi{k?CSEi4ub8Pi9v$g88R+=1M#{v@+f@=|-nEe5d32Jgc zTW1cAcI*u6ui(--ETG$2?A_2GYE)0B83pB-3Z|5S7!%kUt6q0mC_7t*Q&;Nu4VOZD zYiqTyxlLcpsWjOlt6%(CZt(*-9Ndi@F2o9hN;w7;Q9BPMe%z(7k8ToeMp z<4;^mtsc11(HC>}kp;$8{Ir+GX|IKJ4$q!u*C4UqFrdYGe{FMjar(xcjz&NM%d+}S_P}IT8Z+Fo=;(Z=QreJqe zH{2Id7MRIF3oi_^1}X8LF{j&PmY)I2`{VjQbE}*CV8zv-Y+vI&u`SG^Ae3r&MCt6n zZZX7*jiEV(7S>eY&-i#mJP;2-x{i^RS;V{LgiSn0mJ%9Hx$NF^F%`f{wEq{holj7} z*wi#IyOI~FpJyWb0IDF(3voJVy8l$W#tS2_$FxwURQRNhyr^`%Jv02#j8@8o-9umj z54l>`?q~BbAeV%TnPt4H#vrObIymUwj>5>=JSO?v&Y=}1ohD?7pSh=d5lw&efPgiV z39-0P{$|<(Yr}2X1n)f;Vy6v3IK5fhQx_87gq5<7%Zygj(>I911>~}OX0E>E9CRo+ zC*E@SosR+Cw`2m?KlbYs!7;lT1|?zuYkM#nzxiy{{FY$|qZC?3-$d{LJ@FgwnnYx- zni!Wa$(d9JrU*AUEMU1i@cc-nevJ6-dhXn#1}m#aEN^0f@LD|~_9!Vvh#Vwcl}9CHJF9t|{s`MDAmeiZ^H#LZCn^wR4&)EnOVoDd zNV7H%p)a!H(v3QXaZb5WPKmKK-H%`rcxq!Sji#X z|LNU^&b8RjCCH1LIbS?BDsNs9Na!tpU3FR8J2MWlK6PhC(34Ve!aCqSAXu`FuV09* zCw`{aZcVs1qeGI%Mnt*$BEp@eb9JpUpW5>n4OZ8H8aour0ur!S@61$}F?t`zU+w-P znJG4t^W*xLm7*0m+G3UCdpK5{!5qn%%0^yMF)jt$3)WCiH~f&P^#c+eMZWwkmDw?p zq^%F%c;37*ExY?_?ze;0kn~Aq9-})(KisY~GUxp+bD%sv3CT@;F{IYbmd{*F+gkFA zUZbRHt1#$t#Rw_L9mfvsOT8n1JKLSh_LBwA@pZmuHhC*6b-q<>?nP2u=X?sZ7IJKZ ze@T96l;86!^F+*V53AVruCSpuFm1NG#}BqS0+*`7?OieO|5M=DKxUZHq34hXWrQwG zrr%X^t7Ef+%6#q>>A~RzbqyYuhfil!%1p+iS^3Wo=$pHtIvf786y&228&U+d=m#N zo1$4M#sw{(Ut{%Pj#eKrw$8$DGM25Z$Ggpn$tf-gyE>V!Ehc*%a}lA1pwu*Gi`-wB z$WUSvJ1a(th-OM?p#?K1Pdq^zelI=&n^{LZ#Ut&&7#EMpD%uGdJJLYW31gMn7I;RrS~2jR7oqF10dzHk0skX5HrqP$vjfsEuUZSDIYU&m$&i zcfwrNz|}oGn?*RlHQksI3z>l<5J1%8{fGkCYGWz%+mRdza<`kvLPvHOQ>XIl>u6S|&V8%Y(m_Et3xF}l100MGc4 z@wl=BjSrsB=%fR|#Zox8V|l4%agQpZdt==OwkR-yD!&`()%-|_4?>Z z%SPvGnr0?zi`kJ{(Cu=L0+tS|8sra2treOejNH*M6AF;&IReVwAITF1Z{}MDc#ZQ` z8oKNOE3F@P1)a0pwgL(h%;7mXif_%!RAStR#F9`3;|vog*(%@q3=QALVnzM>FY;S; z-UEXYTHN~n1eurud$25BTA&;? z0~S0`=&X~o?$6RySmUgi!QRQZzc_R~38X3rooXMdE$;hQ5)E+&AInvD@CUb!&0=#Q zc4ee>{4N!#FHbZ3$EI>pI`LW0JSK0Hnb$M z;{RXMXyLl99x5w3m_jrV3J6jA{&CdV=Kiuj<$A3x&`lQ(v7Y4*L(D(JRoZyn+%Gk* zf{=*Xz6DZa`)z-s$#sjT3s#&WpCRBW_1_#K;g^8Q$o0lCV<&aQ)>zjmnykoGuQWe5 zxKC)>6A@$D@sV5FbnEN-t|WhHUAC24Bt3>ro<*5pkZ+{a-KW+8KTnL(ASQ>dwt1s> zPP#Z5@P|q@#5VO$pgTCDUk?{^8HZ3S9R!!4J$^Dc`i-_dC!8ZOcEYrc#;EOeL2d5+ zSDl@J4Y+F|JeHdtQTpFgagM)z+p2gogqg<&rSX1>k|A4;cdG|bEDTs+fkJ4pBJl}i zA)t_uR5tdmF(VPp0V(Zt0{KZwkW`3R%Y!yCp|LUjAKa{RMa3!|vmR$3z2EKYh|Vt5 zUGrJ?lD5s>&+L|IjoY<-B=}bk8Fm##l`pWZ@+C4zF z6Ebk64cYzOoJpwZz{Bj!Wejol!{a;1Ym`V_)=V3#pYQH6=2@X7`b(f7<+Wi}ho>O9 zs?wSbH#^Of7F}3fHOXuc)=+?GGk`pWF;&klzG#P8i=Qq(R$n7AIrEzkWTEgbCDg|j zw?ID0vN!p{F>B^8Dz)_jYoSNLwK}6Nw;9XtEk;ONfwsS@!|8WHSqLV~x3v!HC}$U8 zVs^ULi?B>(GM3$tF!#i09swW!FyxFB4jcC95*$wLbMx=Ry-)a&Arq6Aaeg`fXO2#F zElI}9?b8!F(v!!k1(F`qP}`#P(B^BL!+qkEnDToRdxX6=4i3a_XU~m_3`%> zkoBKm2@0~L(1?z^FP=~e!-h9Kp;F#ik>xYlcz#Qb>fjKl?Q5a@}>k)5WU8 zgs{Eo=0ka%A#f|Ts*y}kf1rTaXCLDh>L<;_?_Bar_(|Ssr5Uu|y6F6RtTZB*$iSpb zYo1I;Bj(fM?OvsSZ*RSn91T48HJR1-y4M#(?-Y^qSwu?`(Gata!m^N8f4B|J7xL*y zp<}z9_4h{(c=F4|jE04ND+n{YV1+O{+)~>njtxgDkFhq-LATEF^qdl27IKuEJJ% zrIq0mB5>u44O8y5AyAiKby9@_70hmL$*%u)Zw)V7lC?4wG+tGz zeH}7KGxQnS9W->hxZow}oF44RdaAn?`Ug#{lv!67G|}hed}I30xGx@1$U5-oQvH?3 ztQsOVhKetvmH2Q)J%)P2q0g7nFLlK+lg&c05ov6aQPAxRA|RC0(lezxR*0(R_}bSy z{p&A`s8~Bd=fEmDI}p_^_#wk~c^uS+vSuH}Uy~oPu=4p=Z)OGdc@j10=@HHQ zcE_rLz7Y~}WG<9)W)472kPc{J%uRa$fbW5#StbEIK(bhAGO3zF7KbN~%6y)x1x(nD znvXSl47!5JL8E?Et~Xs9qT(LLWTd`8|b zx!NlYuZkAm2DJiS;!j0|@}LidVl53uF6?lbNW4ii`0O;A$^v(bti#EbhMijrSJFbh z55LD(M}}DpBnwP%`3qE&=$#S6UHZGt$>i7ZYK8_srEqufl_61>+0)XJIo$WtU^z7Z zZtD6*(xaJU#*yp<3E=|;J6+wFl07@82pW30JRMk9-14|QK}9+qOOo|G(wp9PU<^BK z_6|m|eJ^$q4gB3AfCgEADuJTtr@U9AhTctn0c^2Zq+7Rv`mU~cE+u|})O`j`KcvrI zGBZvXp$nOKJ==a^GS?E-Oo{UC8X2A1JrBqN(4k#2NM-e<)hq2GOeaEADErL>eb&FJ?gABnAGF;;A> zC{41!2{#fqzvhJFS1L{2+T$yFLUXz{ z;3~>)a6Z@MLd7r9*-YTx(oKo~KlQ*j1X~p~226cRf+^$jV|~Si*D+{9&Yt=B$$`I* z6C%>y2I_pifH!#Cwe0YG4qJ*Kwd3~-yz7MZ~t@o3ih|EtF zC6oE@V|c5v+9^?EZ%8#T&ljm&K%Nk(&&-@$Cckn!T!Cga7=gi8>>S*EQ=THU79j*I zx?Pkm;)tfR!9P+7ihzG6eJM8E9=w^cW{D>(bKjv8=d&2>xqkESF!q3F%@&AJZEAUX zB>%#U!Vd+${v&7WvT~@*l>w5=)w!EXzMCNzsl7A;`gzxQe}YPYR!?smVk|=6_;|Qv zh_|*LGsdmc$J|%`R6QbNWAony(F~x4NNqdoF%x78g(h8HmLBK$58hH&sWgCEB+g<7 zZFwg@MvZZP9Byhg-RyDb04!qzu8KitOb?4KJ^h4*xa0>(jbJlqB_#vbulqUzvAmB? z=Z<2^e`mXl5s?9;sjXul)PTxR0RbfAihZ4Bu2~brM|Y*MhC0(zEQ)AHZtN|5mTI&3 zXu_D&3BIP*n!b5VJuM%F6Bc%-Dzn^txX-YUXn0}4mh_0hh-=YYd}&e9$U^6#Kh{I9e?>3t^(k(3rYy zMQ6w4Hu>4~U0$fqow9RlBUsua?Vxq>+vbb?n$J|%O*%K=s2utjO;ll6y4$@@OSZPD zbQk0((lQojty5o7S&IRk{A6pPoahwc!Ml>t^Exl{lvuFYw-^+; z$arwdntxXDd(@JV??2ABbiA`|Y}wn=yi;p!M3QP)bb^shuB9MTePVvMjiz01t{>R;bD z8EaXpwEyy(taakkQ6kTr^AItdW=osq;zDcRZITk>;~$hcABoMefU}xGC-`_o0 zK3E1IE1WAaeVKv0@R^={MWW1j%$^SpSWKJzZmv!Azhgf5jkN}bnd*udDoO(r$qYD_ z>7S0g2a#edNvrHqfPgEKuByV)6YjNVJNy$HUQ(02l}qlowAQUFh$Z~L1LlpNne@(= zeN~1U$wetDs{`-C+=hmp*(i{^$YbF&3kg_tnDuY)Sd4P(2_r$e#zxHurh@WOb}WB9 z#fh(8k6=ui2t+qW6vD7)w9`y&n1t9kdzMyUW2e5X!D)u=!N5OY5Rir4%+Q!s=!{Ra z`z%#eW5C1HJ?Dv?M@@h-)_zV-hKFkV-c?&CkC(}fFP1d(3XAS zSq}V5t!y&;tes3Mwsi>e1F1)rF^al?FC^+xf&vKp&gbbErc8tkC?MfB+pWbb>s)y^ zkg=Nh97*9wFU#J6W$hWgzQX#BztKhoD(=3z0=#M)AH@JkAuM*uaY}%VX$v611s#EQOU9*zRz|r1a zBThVSkuer`3GUgr;)4){*sR{Zf)TzTHpyxr@lAxlVS0%S8$zy;Jm17?NZC2hA5Rxf z#NgMcTH;C)`j{)0wK$-?0E z|C>EI+85HI)`7jtsN5Oo7dSOso@g&!ZFcUE@~qgqb%VR}PWSX}1b1v?x@I%)+6`*5 z>aX^WW>;KpABA4OxW+?~=XVzSX4;KYyO-Uw0_Ne zF8w{#DX!uz{p^X(t*~Y~JchexNyblD-IU&j3sF}P3L73uhB_E1edahVq(Y_}L3Tn? zq@h!0rb{{AF|yknyU@}03TTQ!-@;h#wD>%%C$8yCp!E5TKmPoVH!E$QwXSDbFe)gD zJ1Dk6#O(w@PDgyBt0RfTY%r>u&s=TIG-%VvNhsJ~8P#pzo0rT+Jb{RTxa?K8=N$KI zwqYrGV8G!0$g>aJKb_I7p;4qh6YaDB_yFJ;w<8i2zt7O?Vf&}{&c+F||JEzHB;HSR zGymRaIyfWDw;{7z_jQx;EVPAFLHYFqTaxyRFg0E>XF!vKL#u+TxL)Tz)4#?7xa^2P z&yc$b!ZF^jiKp+|JJ9JK3!u-}RGuR9K#(9++r-W|blOBOY8+%_WzkD%D}9YJ zR#oTPH!zS)b32+^01Ufj7QViQn$}F=cu4aev!rb8G-Y^6MNa8aCs{hg{E9{$xVR8 z&Ndd!`JkJ%LTG6`bB|@szb%`o(cSsVpUdNvH22Iwkd4d`5-Gjj<~!a068hA9XU8kt znAYT71h(}+bK28^=OxR|x$FLZx`BIXPz>F;vB)iR*FE*f@pK9;8N8!EYnK_3g^NE) z*I7s#m}z&?UifUJeLU7ykEbx1F}TxYtq`*)Nu@%JN{0#x7W|>x{;RA$+{`{Ax5*!O zH$nl_GCs&VlU0*u2dnwSxnM6qWQ+{1lOWtA@xUt8iq}X{mhdM@Q*xQoFPpeD^ZBav zHy4YOw0(zA0U>o{x~OQs-6P%yoo#x#Hv7~8j`!?%ciImwrBZ#y&8v2b9CfX!IohYO z@oEP`cDji@11Q~koM&WpOOZFJqVF+itJ4`;l{q`H2ehavPr4ZcD(7Sza$_5IUG^P6 z@3kTa*9394${!psZyi2hRd}R0-R=mq1V3es>NPnQ1LOjr$F!^&Y$?n>K9$^#y9u5f zmFH{v6n*wP`_vzHx%p z2;^}({SnPhCvPQO9dqP?+jjp-u=(;pQu*o*)-xo@_XTo-cYh@vPwec!C$*f}7Z%og zzN3uTFMcqfzSvhwTzl*_6PKY#C-ap!*G^G?blCHNtj$a#t3zce14fa;y!l323z6a- z^Lta;{`BpXc~qBIGGyc9&c0sZ@PO zt#k<~ctO!t>&0cgCe<;=MrE4}rk|+4b6^d2Tjs9O{OW0Kv)=5?-dy(-kcdl+mq~48 zQ!SO&%NA(r+leQIFe554)@Fu}O;8O;N=LlUVPDw#@wu#p#xG=tsd^`UwF&dT#H`2p zRc6Q54g|z` zmUN1$j#BW{oQTS<&e3CZ2^$Wl7F2a{HAO5K3eFxE)3YXOk!uknGKDGu!m1+}TtvWu zxsH{0%XWAOy9A2dm@^YyN`pu*$`&Sk2HAw!3ep~93a)eq9DaFZE87-%HxI6beifr- z7v5vwyx5M2DT8@9W_A3-49*mOF@cY}56n0{c=ShH0hfS-k^&)8H*?`6k(a0*mf$+K zGmEon-;zVD;!TiDz6tj{D#M(ed_fJ*ue?hH9*{&;@z;o(bjqP&bQ62yPs?7fW@cWA zNl+!<1Y*dvk_257CJ{tTCFmn0d^Ai(_g6sF$J`!2l{O|->y1ALsxY*iyRUW+!G`FIe>-}LL-H(DP?o;`$eFnTJeyXnj+RiI##g% zByA;MWKe>_Knu$^rnQLR51^$_I%*a4Un;4ildjqAG!$w8k znZvt58*$TgEqG&8BSWzLS7P4&sw#bWTb`TKT`*G1q?V(;ko^54PlbL(Jad2~I#B5$`31V%;IJgaTVI4F*vX?H|&6PtiHXuRv5nj;xp83F;|CpGWf^ z%f)Drdu0+feXj!yVLXenL-goAvq&oIjB!no#bZ8s{H3w!OfGrJ8C~w2%@!wIX#~zj z1Kx(L`<);ABkre+W`b`2cs)g@280w$Vj!=dM#{n zly*qh_Y_zeJG|@hty~h;b&zj_d{DRR9nyJO&~=OP*%CC5*iN9EqiF!v zi9ESoIoy-r^++8RVctQ0HF-R$)UgH--x-KTKkBi!l|jySmABHHalRkJzwSdaAD%1# zDCZahZ0sdWGN z6-(fSdzq9r@~^;7zmKNor#L)Y0?+5E=x^ghGd%wtbiuJd|J&e!2wjx5(6oOz$-&A8 zB5S-S-L|s^LXl|~OLNRZXZ_`l=%dIUwZ6TqAjGA<3R6(`7UpO|{Da{;JQXFg$+j`d zZzWjN;UQ3(>s4`~xT?o9Dl-r3SEo|o9_LWy?U$MVWLhsd^FoQrbzp$wj{o=8G_O8Y zas`i|1Q|k9m};XZN5II|qdtmdiYjksDNth-K?pkRsf|E{3V>3PAMlWO`K?x~)JKtQ zHMq)xuW7~jk>{d0vaEx1CrqHW1YCym7$3Q*@N80za;zzX32o9%%Iss}LEx#+E@MGF z+KP?cHfh`-HJ0j`+JS*7I2sz7hB^FMm!jZA{d7L3vas1uB>oKpg)0aEjf~}=gcutNenN#>T6OcFL^dK58MH^eYbI9IjDuZ)<38*IUrh5=61}@55GED z<@YH8nU?n-Z>EeUmkN4aJmV;5Xa4JNBwh3Ojbrj~cf4?pj&q0-Sq)pM z2lXv5a<15f3j+F(Bq^B=^PKb>6AEN`2xYhL*=0OWa0Gm2} zK!o?-c}a+CM9CJz-!Nlw9RdFSVlzDR8X=Cb1LGKiLhpa^*ikW=tPaMYPem17G*cn< zf|1qq;gSqJsgpgf)AH$ora@#H<2u*A(-YBJT3)XyPXM2}fd^v6YXrd2#>h=+bjDFd z-k$D9kJIBV=)Az``r1H#hyL10IsPf}{gxBgrk`I_QS7Ztom=^o=uz{G+T=<4>OpH~ z=#z)X#j`bXY_O}x8AFq6bJ8u>L&gdHjwUdZn$l3fP;N5VnaHLm=-IZ3el4;Gc$WN5 z<6s<$8V*0i{18wA{<)E9poVGmu#20(z$^bH`Qd)6U#^8sV`f9Ar}{SfeLKxkuZQzn zvW3llSF90ZL2b0&cD2dJ7JjkP4)-#}X0PH)WCc;Q@Ge zf3fFteckW_P;K)+F!C?yWw(K(wpJduzI#>qwbSjH|IWBPO_#1vr3yAzCxv+nn7(3`=||DFYPN74a)DhvkIAaLtwCdY~JcFFkqv zD+D(2I$q~5R~IPQ1ZMPnaVNe*lQx*tn*=C zRDwSK@cnZVU`Cy!6&z5k;UPVqG(!(GJ_y+(u96s!=`*h=oRW5_LX@F7TfE-;rt>n^ zEBu{)7HC$w_~9ywW|IsS?*L2udA85>8`TcFnH-r{I=bH<2Js|-Le%c zIgzf;>3)seFS^}4$#n)WM6sYq^48r%B4*#;vT>@o^;A4&Aoq7_^JQW3vltl2lFyCj z9e-YU`YNJ`eC#n>%CVR{blkYj)X@1wFa$Re%3;}3HQ2TYFTSvl{^FcdW^DTW`2t-p zNLc$Z5XJaR505D#JiO^Bd~)jv{dUvJ1-dxV3UTqQ^Cz+=Cp#9`g33NTvgnB}Dd)f9 zMRAg?i1`HH9g>@J7lI>ApJNfaKK_0r#%$;mEx02-;dRX!^M4Jlx1lcUZUfAStyfK* zHNuh+y`64Qu>V>A(VTZvT3Y+o zrC_9T&{t@@X)vq!cb`+ z1s|rL=@I7D$k1~o)%#`>yWCMwwX!x*gq4gO#x;d~d#1@W1IjaTSsF=hgj`b5)uusD!z~J#oX9uf z0`$sQBjB8n89sAb1#mN8BSF_`72bG)817*AzRBB-mVXUkF^T4H5i zY_hsQg5%cw6-nJriH1%zC<-8Y$s3ZG3i)ne++_B^l*Mw45B(YXhPBpij}U7pJ96k~ zqV^oFi2Q|BIPR~RAuMIe_9-wl{R~UdN6*)dqXX9rizI9FNpn2yvC>q(?a_`IP`?UsSRQP?@xjwW_=hNg_92Lj{PDnn}&mDV$ z&C_t2d>9uKf#dbI*>7)4erjKB-q7zYXF|;oXo+cW{lVwR9yo#A57=i-W)5y;OL8hS zr8+rDZ(;^H`7!NPs!uPdj=hREC#3If2ny0vtYaKvuFx0&5lrWN?BNZC_{SnGLz~=c zgLVvxfDoW0Y2V^nKyjWLE{!iyx8vzpjqMtFGewMF`0KArd|t?pj!u?4G`T zipeeYW;X7&(`9pV)gNorZ_(K)EnIj4?<%x_IBOE4GRdR7otAMGGmUF%VEXY&F?HzY z(Hg+qkHt!8A~s=r zY`}|W#BQe`+veok8Tn)*ie7fFmnF;Hl~VHvttV}T*X)^&>ckjv!tEJn&l;hhK6?9q z`!7{nwq%!$^Kbj$r@OmC-ZNIj?T}rLAr0Fcr5)-+K5F$r4NdxZy}hE)_-ZP&i#pQ8jb2i$WJ^@6}3gr z#!hm#DQ^#q9=yq@Q6kzpTaE+l%S#BD`vq$@SKRLjyTtcEeR1xcS{31J2WMkN)6kVx zdmJylMJrR0OCTufe`;({?7utN#`jYYLT~`tfA*^M(dj>@NyJgOuct8jH!rYNf2bK} zlnBhuyQ*kT8%5L*CDN9%dqtGER+g2qt}AE!8Iv&A7(iT<6>BOf;jE6gqBN7leq98gv@9x>BU54vNul<*q)=2t@GD`3sJ z9VF1_gIV2y2&)!!nOt87{==VK&1e&)g}L&lgr?4(k!WOgDl0D#%4e@IH`Vl=j- z%uq61@U%hJ;=|NDr7F96TCdKKXXP*sT`OQb65DF28g|Meqm z;{MDT5RF(na}AE?31tXRi;`E9q>@d)pcwHzcx+}yS$7H1axRi4jxd(kg?|6Ie)zKmWJE~r$eKi4+^}^6V3oTGGEtXq+Tz>tZ5j+jXL++`ttyOm&mUVw6m753 zPPpUAnr9vzdwldOwnWa{li%NGEIg`VN3YbB4e)g=^ZPicRK6|YLs2wgw>9?ggF>HB ztAcxGU4MMJwje{GJ|3HH!KtqNXFlDc^C5skI%an&C(J_Yim`=l@gh{zAZ{%vwr=4K z^G|FMP~xY*ZDB6C+gomIo4Dvs3@vMzlek3fck0FVvt6H*T(=nAw{!HZGe0x3nJmnn z4W_5e>$5$-S>;EAvle*Lf%8}2C!rbmXA0x|o4xd^4|CCuh;r1zf{mN=g?D<3HN8h? z9_<4E$XtKE@aoTG)sz~pwFLsl;5?KL7o26@RP`%teC`KYg-vF*i%FyYiL(*99o*0K~5+fO{V zc=7uBO8swBvsya$_YM$2KP$Rh{SrOs^YR1{@hyt+xC{@Fh+}#Wg4V-(8pv!&vIz2i zTHows(b_RIETv2vt97LE)!3-KL*uMlyL)^lPqzgg5t)y@ZDdjY_rUFnjq-mKX#WrW z-9`RqWh+9;MYaw8oLX|k;a8SMeePeF_q*m%-Bm+^LMwE*$1Sf0FEOdU;EADR_K(jr zl9qUr79NXVun#wdf`$y8LH{12X);*IfLM`R*mZ6%pWB*t1=}*OR0!F=o{&D$TxrJa zQbKV~!*%M%Jnp4+KJ8lMO_W;J$h%=f9w#bpuEOrHt^(#vgqGXd%+Hyodg<`TXCq36EcGI7lT#sPzz0qej+Eawf=aYDMR1F$K3IokaM4F>b zi*W0*)E)oH2>aY>O*iGICPXMWU*?C)0%Yy-*x)3K&2|PcS{cKFqP_@yOxYrBOFG91 z$eRfalR^FRWdVCq1z$)URLyAz$5GmYD0@yt$*&@pqL%hu$sBE2gTJg|h?bcqU$lEa@^?LsG84B9a+;lO6J400slc{0+h3j&w!<)?FGALt;f$YKwO>cb_Q zq0$ci&8O7;P^oU7aAL`PIZM^n6Jdt;2xyCBAIX((_IspC;8)yMFw(@V@$NQXd$ z=wHZXIg6_yTfs}u=S!ZJDQBV3j=gcJikpB>2jVAjv2%<(6lQx8TYN^-*UAAqerMZv zap)aX2p&LBw#`olMgnGpLhy?|u;^ zVnOxXHUS-o*j|fU@}{TG!_oFles5QTH@2-U*HI1d{gr{ePG(Zoqh-uq#1w?HlP?c+ks27*+Te%7pZFbnUy6F?U){K|QP4 zN}K@6J`O^GqH9Uy_D0i7<;qxIW7vSA|G>8xz-xfF&?e{Qv-jxJkxX6OiRee|C}OCy zmn?y8O<*;d@2gK#(_~abMd(Is$G`@sT+7{UJ_N7ptmBDT3S(e1ns^=deq1~9fAAXp zHjQo}Gzb$bUie>+uB$Rhpy9Wb)kmpxu1@!jc3zSE>shO(bA%Ua9hkkKDv2iY4dsAM z*!z#$7aYt#;R>7k;)u6@NgwA#I#T%7ZBFGr&)UwzG%gui<|F^*lkBu!wYsvNYggX- zpN3{XCJoN#{BMze(18KPKcK#krtiX9L$eR}+Z^t{ks_h2CLM=%b0XOKyrmb-Ru`q5 zxGcNYe@hPY%F3t^%Mykd*Gm5?;8)D13N;&+;lk-)st%FzN=Z6zGb1&aWV8$j4MbsH zDo%_0%`jV7hmmI#=H~Led+cWB1czL@4zJf$q@`LAVGr8mFa{~&9jV|SYGGp>;v8Y? z3q>kmt>oqLh&yw$M9i9`g^NA+A+GG(5U?wcBAjq=fw?5J`(0AxSaTX3*z(WJ;r%A> zE_Q3(JA9`G>ZMnkpUS{KvFT6i2%<~UmRd9?mZSUao$2Ww9!`xwbU)?v<|j}5#z%L@ zZ3C+Eq6O!3ZC2sMBhUMOW7fM z;SKdIteBA&HWerVA6gaK~sUV%Nj$30cDOJjBn(Ngc1KM6E${cX>XtR5t%* z&h9t+U_TkW{{YT|cE&A#k0jX63oLvR0z~vqPu@y&@)49%1|;z`>jN7#?s?w@W<6kM(H&9ua;W$pr+%l|=1gE2b5x3j_5fHG(d!9uIz*69hY z?7w#Rf?qDAxW^mu6AxF(z87uDtBvlc8HjC(M_P^3UWG|aDW$yEFDE1EPZB9k)^3EWv6`L57=jH!=wGf3< zmtuT-p!atR526v*xwoX4Ih#m)?@X~w8yoG& z7QE|!xNiS->5b_=ID7b>+S>5Ds<=MP3ty?&A(ae^*rYT4kOlrnY3OTg_eGD8uc(s5 z$^XaKJB3Huc3r!zbZm9pvDL9{+qP|W?4)BSor-NI6(=24Y}>Y1_47XOxBlb!{fBfN&aondux(%eaq()SWDF`k;gK9Wi2uV+~Xn7w;M1n#FI zp#NN-p@(4;#PZz(cxi6prF=o)$aCC@Jv`qbK*K!gQH zw>Q&;tBAaH?Feu{(Gi5bwvzaLk=<$fx4C`b@_9KPblSOk-`;)<;#ZL(uaQkz}uiNOvJmFy*c-4^O*IFe|>Hq>@9*=4t=E%>}`r&u8zI7rT{r{ok_5 zY2k;({n^w0%oNp-7&PwBL$X%qXNPkCDV9Poa}UOW%pLl9s8oNDZEhSvK*2pD;++h8 zAw`tqv-^dvp?>T&@_dkdXpI&PN8tJUnlHzd?*%JeY`ZpL2eYf?LI}(@;|-$q|668n z|CZTmrk{`?Nc@+vXL&xKgQktZ?Mr0PhvaM#wWSt-iSxHc#dnyfI~>kbxg9j;-r@%we*)-*)&K?z9I=tY@KHf=b+WV+zmRYjys3*M%%7}|ge0Bb69sH>qP)tXaW9+Q5g ztenUquQn|xq@(3{N)uuM^Vnx*GC8HDKb2?^^(u{y=fZPSc*vw;#VNTxkVlrE#x5c9 zhg=iY3ih!umuLs`I2GL3U0PyGD^H(PX;FC9%FmPJ>elcO0m>{UN$XQh0j0?#P*%mG zzxs@$$BO`L8i>~%uHJ?D!nOj~t*SizwV=lJJ z5>|jsIrN=J8zY!S4|gVz^w|XacNM0U_h;KL{aGigdcuK3p`U4SNaLDMrQyYv%Pf+$ z#j6TxEbzu?3vkU>N3%bRSXW9E0LTL2O@?Ny>GK`dO|jEQEI8%+2gb@IMqs`(uErJ% z6QKMMf{xIWFxLD&^r%p-Ng!sb@WTQkJcu+HB?(#1bci!RjdTkiD=e~;+|^*j;m)a> zX$H0_^@BDlvAtBJiHIjV^<0oqPQ#~OVd5JUGX{Dix~1^CR3u*XS!KM!%1KdrH`a7y zB}Q=uW06hCfHI=+;s~M+&Tx1ajUZ!BhA}HLqvSHCNh@qggoMdU7JY#*2q&V7)D70i z@K2t|dtdD2x;a+Tf3AElhY6UZfHSbp#$hTY`op{4)ji_1=$9LkMIK2)ZPmZ#4O8m_ zzR9I1?Ux<^=l<*-M{Bd|^#?o6YIgvBowb2frhHq2q*h(DF?&FbcBXDhWJ%}>Q&_EL zoNP{aD;P`5BOLRT+H&YlXVzG&`%U8YIdp)!x~NE=25sO{R}%GY{DRl5BhP6Tx**nZ z2?b&SkS;rNbvFKkPoonmCf#k$dz)0MSe992Gk5}+;>qgtYD#O?7TMxphr=^ZO|iNq zqWDClYNFv-&64%(BlwW??jDY_Zl4L|X10jYz;RlBwpqXG5>HsN-LozLQvEN1fNJyp+tp54CC zp?@|LRQkH2h~N^<31GNR&UJa~h#egOhqaqw`gZXg3GW882jAt`ssCyUiTWltx(4NA z`Hej|E}6PDb(B;|UCiLnZkf-fhCZCbLr@!^gR(nl01+8JQN|&5=zyM$Eo0|<8ymqw z(PC&kWin+;IW8URXwNWLBcEW~`KP;e{7TB01=Cd74bO*g}QUhn;;la3Zjm?MtQbDMV8 z-WO~)cyCD!r9*=I4DllOyMeE0hmVbZ?~8so;&50adW`dHSP6(REr0j<|9oD&{&z)| zG$N}NAO9jW)SHmb)-kGm3< z($krAI^;1*aaWXO&?Yc8Y5C=pt8y5}sAuG|$PoH6$}>f|G&8gj6DXycJt|VQDA}dl zsCXtkg)wO%*{#Tt^|TKsb#fF{)LSdjfh#A=gLTV;?w93Rp?Zx|t6JlC9TqdJqE45N z=&?C?J9n$A-j`coJzs918NKGAm-kOQ-G*tew(ySUItrS*Jb^gzfb*oasL)Uy3O@U+z z4(UOnNtE?3#6;89;ia1WCjlgd$)vgUO9Tm}G__h(B|Mt40!9F5)(g|z7@6Q)v=otQ z8#S`$*ovZtj#MEVoW=FpzXF7MeEQA4L&v3YWyku8)Q;yXcKhO=wPTys3p?YNcaEIn zc1csX7OUUGyXGrd9c$V|YoX52&(0B=Lx9wy&Ga2c@V+s}uo=7#{xR?LAW!CXN2Z{LNf~AJLkH8c*|Q@2Y@{Lch+=bV zwgRPs9L9W!c(iPL(OH)Q(2*x^o?`FknlMpG1-?`7?Tv{V0B2#H3?iLX?GxlH4c%yH z#hA>G)q6ocjQ`rT!Bi*WSAmFs$Nb>Os2#@t>LGJU^z+SvTAsLPcoj?mg{(@>rVJ*v zUzbV&WoER6(vyjOx(eP|001d;72rFUfQEP;%XRbvm&&({%k9MVu%0cK6*RmVmVE}3 zcvhpt!s?!($hkn9o!#=?X}N*lWDy++vy-#g;f;IFhbQ_qyfu|WrCTk%fZeKOf@K)KUgVN-m_AZUG0inrKn|*Ae7ac|QbjP9>No(-=^BScH;~xR^{w%}%%)Bh}vT ze-_cpT^vb}V}j=L%t86SYA`xHEZpuZqXpDjEsi!gZs%-Hd2XR36Svw{8=%0B6<}v* zsGOGj?VzmhdhyzWpg1BoO^q={*XSdyv^Xfffg#a^=e zO5_H%?$Sa|!3-eTx>Ov)@e>NK0ot5M)dRtS$_KPacNJBYmQB5H5hAWAnvZ4jV>11@ zt*HlB-gC1%)v^aEcsJhb9g;>3K|cn}2V%4#xEZ-n0FW+JbK zL%vcp>1qAhrYMrMY<*9t<;0Fwe;I_9+sS0H64%psDiJSo*#f&;-?%s7N|eKdC!&3{ z*s};CDlO|>05YXP`aHY8ZLzzZ5o`#$p{7)wZ7O@Qh-peK0F7AsNe!&25OyBI4O_jQ zXd|lhsWJ;J<0efV1jn{U)c_eGuM>$aq z+Q5ipM30umW=6!pL$NcdhT+d}-TJHidj>r6rt0$p&h%I``x|HEqVdEjS4Y%P zt$D{QXG%7^^UZ#@qKC&@bl{s1q@UO7h@P(A{%lU`!|p9hb_X}8=FSkj34wl$VD~Bv z078zfoUF?3r#W(RQRhGNya++YC6op)N&cN706M`6UBlgo)E-7gx0dt9U*kZr-CJ|P!^t>OHpqNEkmpJg0T+Snya(D_Dc*uhu?O*yt4Wb$+CN-#_dms_3kOy3NAQ5*bi^TzrgbEaGKXKSH4uQ>~QaocT zUiMLHRdknrer>&a@8^vS^S0Mdw>oc6P1G+}DN-*tN|;r^^9?yZ7ufOn$Fo_8Y@m6{ z-f%_RbAD@EYZ*i-`-~>Tzoz4V$Cdw`VRlmgM~f5nk4n=w4q_uVbjn!eq#-ITj|Z{f za(Fc3cVzY+ZsJT4pnzKk#d9#y@Z@`G&-I6GWoFW2J%tPOD$eN}lKU~RAjqA*)&I?T z^vhwU9%%vN%29{d;GvVU+T5gXYXWtOS9r8!qPF08c4g?DvX1HaM9P;9=!97;E(sMB zZ;=``@XUBqtriaBOohc6d;}F<@QTXG8f*e0SQ84(^D4PNpHkLM;+FL~oA^jWYV*&Z zEC}9L5U-qA?e(wby&Q(Zf-Rn9-p_-u+|Nf}+|F2>j`w8GR&DkK-FU{HuPCVyNsGD? zWK0OHtt5*|dHo}f%r)iE9DqgHV&e$cJB!F~cYbOfk0v;sFDqj?ew_5su6n*6QFfiS z+x?NMy07->gL=3dGifsQ^_97|>bylh)x@An=y-bPd&a{(yo=+tSkv}%xPnp;Obt#EMoHP=cfUb_f$3eC zZ1+EH8=)+h$uIs9Tt0xJ`S$YR`o)BzB}!z>4`WI9$k;}PsEP#dUR;hFy1oS0Dy=XEcf!jG(<$yJo561GwIXxV|$4t+R z>)?#DicoR6n!s#hi>S!ZwB7ANjhB_!iX$I|o1Oz%>T_0m{Cho4)=~(=`yq~3C8TSJ zC}-32nYD&iA7Zi&aXA&gk7h*IXHn(VwfV2L(e`9=j&+Dtc)t(YzFq9w0-ue@n}QyB zrvATe```X~3B7_BoM4ff#1Xqy29prlPx2B&W><_SDku4=DTC75v!B(RxA1@it}u#E zR#xNj!g`atbz$c4G!dNuE^`H_x07oJ3Q8YP{~0x|6_3F2ChO1IwJ~-(&kg~b?6ft^GZ~rGr4D_Z3>N(UMFyHntrL7Je&MQq--boUeykD zzOU}*`N`G*JjA?LaBZdC_R%b7Oe6a5g*5TrJN6jd@uIe(2(J64>!Tu9U0=UUvGM!q zdt(AUU$0CfayCU}>@Waj(tu70E=OZbj1zi%(&gis?N^mj2)`pm5DR0Du4 zJOs~5{$#jFUx{54x@>g*9+;LE=iEUi70#2^51_m~K!1DgvX`I8d9*9CVY3j%E#)541qnI@+SB zfH7OHWX5(ajQRJr_FtRn-zP7^e=P5!|A?D9{{hBW0I(6JF`3LtdBO6^LH!<@8|9k^ zX{FE-DkhTo@dV|0*Y*GvIGFtHr7qn2X-FNr ziN)b)2dh%|Fp0)rMTMDEft`^s*vYK*kaKygk1^p<*%^{YL#g%y#wu5AM)@552iW`b zOdf6x9T?P#pMz9olB!(^%=N*n7L2}I%HZHGF%7xe4|59Hk-O!j6g~i9PhFJbCK3e= z%(2|lG7on*HhMjm>wdPZ_|)gC3|HR=AxyqE`)s~9cYn32R`O)*BSv>L(sw1)&6Y|FW>`oj92x__FD?l)#Pyb@P@ov3$J0*r z#DFaDxiPCKHfF-hhMYdT;qs!J5cvEQ<@{cJ&d@RM=1^LZIMSJ-|OyaeL}D zrrlW+SvK!F>1zo)xZE`1W5QL$RaU?h7TcgQK?N2XFg_z-*6sfhb;Z~1&CMg7aXl{- zrtrJeRO5Aff@7gK35ejPP&KY;Y5fTfr0+xPo3bxYj*f;1GJQ(WP85DhW)5Ke$~dM3 zD?`A-{Mzu)=Kv#lS886MUh|$p_k$k8Kymj^Z7-oW#_wp^3&j=Ia+Awe=@rTO+7cB3 z{!+HhaH%1UbDSN?zJNH793v$Q#J{J zQOz?SJ`t;mJNOz@3X?t|eGjUFbM6`&{L02>)&A*JebdN4w3CG{o9s(}GYZmflv*|I z-3Xkz4ieqWp_s1$8qNrch90hzg$b2Qgtuhy{faVGM5~7KoGDbkQX5Z3LqBrjeEy_& zbI|HDn*#NXnu!iofeLgv@|uZ`!-q0QoeQ|s=%ikf_RstAX>C#Mw`+o#Ir5?6A2K2W z)jKC+8!}!oV2Vwn70O;Nz3GuC@Q)d)fay2@wA;{f#dA^Wom; zwC;E4F4%!FvH0PCW5#W;`8_Q8-*0;#?|Qb#jBXc6P8?c$f!g?SF!5lqRMo zL}YBzmB-Dt3&jJ@f47;{$R0}T=hCr^9lnCc1Xy|H!|In&h7#YiL(*$2jX#!i_;P9{ zm>TAt|C}n4RAx<{bTxn+TwNU#`?AP9nUwB0@aG z;5y(g>4q`wUL7$O0gpxvGqhA2G5Um7=p`#Mt%jAwU^CDnZ4i*hne#l>Lo*(3;=-Fc zvt%$~9yv6JUM!Ywkclj;Y{cQRFNfT~8#vq zLb8;wLBaN^XB8^So|t_Kwo{(XJ0KbP+nIkx6%WG57^yaQ`2~Vw@>KYvaNGj@Oz;J} z+?E~0h8oEg;9Emxmqo>lD8(DYdHM96%L2wc)jm{I_ zd6p9fvOLg|MWG&5Yiz_YqGc9mnDdp|Ndo}G_N*$w3K}`$DnbDyXrcY-$Vdhh?Fp0r zf5fx@Q*TC)7n0Y=QD=sg%PbNok~7+6+ym}y>L+K?iLx3#$tN zQGJwnXda2twOzy{WP?vOjR_tiXk}16-tB9xc&&`;0eO4r`5K*eO_@%0v=o?46jiW9 zTvQS#V$d`Z_GlVT=wmLYV|89GL!DkWXR!`n);~Yb|H|1H z714l#cX24!ITq+oWBO$Hg%J&;}vj7Hk&Nh3dD_p zQ#QYWX8Rq740#ovqp--Pixtq6)|CY%RynECS!;dG5SY|tO-gfqBybPp?&XHW=c3S= zd>oC@>TBoLg2P#zEORoPD!_6Mp|!o&^o1#d<6HXi)`=~l28`DO2NLcs;R@Gnid;@;^wg!saRPO??mP2RT9`ZL*7S;c9c!2hgusq99C=+= z?1MDs3(=_h5i2ZLN}4b!U0y3=q^1ahNWrBwO-w;EcXogbVL3H)p|KTn68w-d3z-tx znw^xsniL(nOU-$O)4x{D|9PavhW;}R2>H)?hyE`+>>HCRJdO8$dD(z?d zRME@Th~6I%6_}4k8#$ID4yZK8D`#;DaptXlXzyG3nDMW1vq=Ch&~|;} zJYLwr-x@9Jw{_t8wAvxAK8wwOtfFac2nOnG!=rUPwh_4{j7@rQ%#wCJ8A!i%7_}6_un~wH5Pglot=))BlV)sfhb3MjLr&F=7ECyX9i|&wb z0#A;(>$v@5s>^MMG0YB{*K4>uaVXnaYdIHyjm5`DseE>K_aoq0Wx?gq=GQtFmBptm zYOC`f^a*u;dibE%X}$k^&PjSd2dQ}l70V!6L!HL7FV!-kH1rCFgLt*)WM^x}G*#}` zPe6v=?N58U^MFUXHEK}D9Wx{vU&w9Y&7!8+dG*SJYR=&rb!dngrz6Lc5+^X8->)xe z7!=LAY2aU0X*gWPyJMDQW|As%E$kSxHDX2)vb&}E@T7admYbPDqJH?*-y+3NAYpni zgj-RIc`iLK!)kns+s-;!%gDSq#;lqU2Pdy&y)9&_6b@!sHLi&=t^KxaX!V!4Fn}T( zEVD6`vA=PA>A@vs1HEll3T74|?Mb=^;DFnpFuh$lN7dAcJ0wFj2;>xe@uhUAO>Bl= z^B;4NyZ|Vx7dLg?Yl|PKLt7Tu$NIrIs9eEjyC5c8|2uZ~)a?Tk|HxR3TdYJ?G9`s9Q3DB@jNz?C?F7)1;UdJ% zIjRhXruy$9Zp9TOTp~(wFq0>rJx#$OisJj&vT+dmzYsC}xAhI;Mv+x0*lUjBD71U7 z?gg&s0H`A5?Ki#c-s|hmzN$>V|6z~4e`2x@lo%Vz`~4kd5P8dlHwfEvPnAZQfbxv3 z8UMfSl_)rT<1fVLABf;N=3l#r_YVPhEfyh+QAU%@2-d^06JIL(}Jft>(Ts%y5v>J+U8ZA@x0|{ z_bVGNKOdjAb%+~1FOOG0wuhsBXyE%9+iQ{oQOIfL1UT|+oOuo$OSnkqcETOH0F0G>SJyes4!?pFN(J2nQbNkO# z$Z7Ve#`L^XoZ#k9t@O&1ZdQnLXQ$g9da&c!_?sDOr{34~fnshk_V07NB_KN>cQ*mh zc7Ha7{IIPiH0BP56O=sd)DctG0aK~F4%!y0;P#suF0+%p-nm4s)LkUgV9c?k-;*|j zxQ%fCQHuwD_eol~P#m*8%Io4w50UxZ*~;w;ijfw{CE5cjQdcWDGSRQHfYrhFB1n?D zMhcpxL2>KOTXS@SUEWkVu-i7RT_{pcUWHaZF}aN}PgFTb&EC)uIEtjm5AxR-5%-nd z-v>U(*wGGX$QtHWQEIv}Dd+;m@(Yw0rR(+YESXHJnhbo`6h{@4YkQoKThk@`is*7L z7qA=8h5_zURQ)VH4O9v61!-t1g|$HLco~(+9kdXnj6DJE)}o*8x8JEeAdtgHE}+y$ z9SKm|185xX>*9qC))~YC0NUas(1cA4Apu+L{_62{-q4Y5eTz09=Va?N^edyXCxzi? zSxCC)`o}+2*+cdusKqCuO7-~K*#=^roZ_E)yWJ``!y;Yd5w^`s&hrYM%qs**(+o7z%*=mxIYNW zAsB1^U*o$lT0(?z+7!;T4rAt6u3MwTjne(&?4@5oCh%?CukruFoV+q0KP28@py zJN*^bf|9?yx&ZB zgqEsbtz*21ASAL6YlelUK?MR=K^2El>e(?M*hFFmkRJwGD6a3=>SfN z4b2uqpR18 zcBO5VChPvWx+)l~@XEBM##m}iJH~9fya4gy!*2RLIwA6PoNR@rn6(fmUXIYGJe;X; z#pd7x_9X*%uv;rx{XHjH?3`e3Wf+xNLX;}P(4fq=F%V%QxXrC4f8SnUSGuZQZC(26 z0@-^o^%}2EOsMJ4*kEmzdJ7^Oob?t5_Ea! zn6jzt(-)^*=+vn9FCB78-F zUsJ*gmZ#zy1?a|*hNSh_xwJ#ug3{UP@q1eZ-B>9BB@4iatx{!6*NTE_qVQ514`sV? zKsjCZEjnR2J$#L>LKN6*VF`?OeC+kv;u=+pv~xT$vo31m3;hdV)gIQdi{26f7&k)tk=@qids;AKK4uVV_LeMv zJ1V~5D#%xq=2kN-u!t~QU@nN9d~AMjnP-p{rWMI4`BaB&8Pd9(M3Lrp0OynDhPI1 zg>7R-HK5tW=!xQ&@a~yIjbj%A^I=YJm`=x!zX3y{f*9I;0O~xWr8enOQS!1RvWhKE z_9$x{^aDv2LQ^lQk9w#-*TE85KdYBH2>mp@-a&0J#{OahTV+zWD?awF?Kwx|9phu! z5VEfuWDaSKntRcgdk?#wRiqW{^kkDep_uL?n^`2pwXn_-^O@aTBMWOn(; zjD=GgL&5qd_gW-+n2seSGfARqim!jqFM36Q3fREq-*3a01M^(L zv$~qH(BVaIG!O+=rts}2$no|rxFciIYsY~;;Io;=C+ecbid?EWKhkKvm0BDEk^TCw z{lJa5!iQ`C*-Sy@n6L>88B|n8Ia!|!ct-VgdgeB@usn2t9j{O(dztWEmcV)L8EkY1LASeM*yuk0$)trc&9^0HoTjF|l1jw$hd zog!km#14HOqJ=t&7F=C1Gh%1$>wUn8YrT!hZ6oc@m99gh<3nruZGI`bWmmGv;xNrwAuO&m{5Os)KZ$D=|!syw(200eB4n2Zj} z>StdWCk8*%d}@?3)i=uPhtnZ-HkHx8s)rtB%nYAO9M?EG>|rKHm7dZ`&9I3P0Wv=M zqDn|>cMVuWUa>Z##&v$`6c$qrq3NbxNH#eept)utd=B?oXziFaIqkX@S zYi=VOb`6x;m%0_!c?J?d?8fEqL85dn#rBo+D_-|pMmi2~t>BMOkTyeTNZi|goMU&V zJ92}@(;xh?Nu~KY(l*a0PdiNdo{YO6wd$hap}!d^drwq-3C7#-L<7qp(yN-3jvCVd z=!~5#%cOp0MAFg{BkMrSx+ui?nS+t`*RMY&BggV&KVIJ|^EvVdx`DdTj_dA+K6JZ-ed?nUAh4l|Z8% zt&y4fQ+thQ(iDPbsU${2$<7YEW`?K!kEzfLa1P%`usfeld_c%=!^7N5WTfhqFwGP5Cg(+FccIqN(tg z&i}gUy@tEU{(fJ^TZmXEieG~`TMa*kMFairHhG6w0Ho8`df#+#H`75}=IVQTL0PZty;zvF+tYdnqKV3+NDj=jn*vDx04j zzPCQzTj?!hPb*4qXiUqFPIulrqD^1({j;CAhoV;KedtGg2?!FeZ*bh5ZI!hN!M@1v z-^{+hhIQf)nD29Sf}>;Y{ES4GqYDx56 z5D2F_iPtLCYV_9X?etGyrjHHuN7qmGKPhVTctt6X>;D%!o#yxTKgIld9pmRMbKy3h zNJfPb%L0pN!gNmQ3mkzcn8P(ZVgZli8wISVM%Cg2F87*CB~r=VsN^uG%Gq?#U7W+7@v!En5>D0gm^%D^vIT&!(Dkg{wdv38 z&2B+-|u^M#t-#fGqMWbtTN`b!^0dd5F0AM48nVof#cY ziQ9%q>!UMMp?i-xwv(&&s-cfA5|2xYGpN2R*|5g;2-nGuM8GAAR9L_&7^wr z&yk-;i^*xCTe?n6t+$8UHuVkxtx%5Y{PquCq!~Ri)!$^mp&neEIj8tt;X^GZXS*qG zMJdyEwNNTl)hLIv(R7VzZkilKV zd38W!>7ljf^_?``N%|76axhr>NzXBoNF0Rloop;4KT}@<3Pc-IR85sM8>~QL{D@pP ztmcS#insMs>^D3e^;oq=*{cQjB|ORF>0%K!wVjwvQpTcJy%`@PtpY0}tbn zPIDto^4E_>C|ip!iF(%0^lA2gfT~(wgmVp>KfJ_zGydrnu%N592Wa#MVj zJROTM2zHOz<@dTK%FK`5{Kp+!utn^vjj?qi6bjWU^lK@-Ha@twr=W2+sM`4A4X?)e zAoPe3{BI93GefOgfr^HeJS z;;GtFWncSZRS=_V44Ikyx5T9cG0UH{u=}G1=~wnrUVemc6$i}9>^{>molS`F^%k2~ z-)fzLJR3simiaJxkFka`I5EbIK+a>6^LrDI#4|YwsL><*t+~nXLhIY$7ss0eZYJc` z+BrElCe$rG&PAm@YN|l@&ti7V^(an6(X_};N1ygKHz7G^am|;&#_oG}Kl;bn z&i*MN&xGA@&$GB68mYDuE&zsQ8v{8l<52#z$7 zHy!?TAtq!2pbA+ES+Jlt+%tOx4+lTGN15MpS+tTIMPLAln9N2K`WA)~W+vt54W@)y zB#QCSf*J}zNW;oWm0Q;j4#V*f)k#V4r>AD@PK5~xQ8nr@>W%L7Ejg;Q0!kWf>%;0Y8DI;7H?Ib|2|TUvNB7JN`~-4KKp{=N zhDWmTN1BMPX);j1YbC`8KS>!S#&O?+t)*2mV7p(U9q?f9@H&s%+dCCg58OQPthaP% zHREq|znUIC9c&Vwty%0XnLx-yFjGkiE-GSxz%H_Q{+C-!vB$eeRbS7=fjk_TO6SB$ zpVCy|8lJa2blv8H=i(6=6$5R5R_Q zd&sw%3f34q-Finkil$>l==(Fat6R3vhr8uo@ajdw_st2CUKbZ_&5BKq0QwfD-QAae z>oCvM_wf-|59YB-&+eDD*gAU8+3ITdTA{F_sz$u3{ul@~-1)9@`wTNlaNVZp{z{jO zlG324DmXIv2Q^t#w?h;*nUM-OyG42>U0pE()d8`gYfU0__YAh$RsCmaBf~qd%2opO zwn9!xWNxn^hKM>Nu_>#QA+y6sTCCsBrzp5V2EQ6sQ|gLpEsM~sG6+`$Ql$Ke`jC8O`gq0Ugd75K2M1;qmhck`&~6liuGzSXLu*GS6JAn1J|)0I?qdXA z+Q~{?NNFoc=}|(-Y8>Hc0$fDX0BY7*SVsmO@=#-6KG(07xr{ORlEnD}dBrSAff{#H zd$h%4p>VxjSyKTd95!-Ex>9P(y615UIthIv4I(S4r*Vu*#T~^~mj-9uYIg+ta(ncO zU>jAMz7+*TA6S|C{b+-^9*G_=5INDL3(-z?rA#Npp?ouh9A9yryY+BVI=rB zvD5V?HG-X9DAlcc(!csP{XMQW85#SiO%|{ch1OI&#R$yWl^i8*@g4UrCxGu zf91c0+<-VZwoxy9Yx{)b)rYX3k_(kZJvPy{*rbE3H6Drk!8&3bDRO?(>9FGt9;@?y zbq@inQ{j12r;jt_&0)OQ%IV-GjvF^0rG2K{@2zC~1amXE`F`L)PnY1lX}yp9b=A?& z=AUYv0TvAVw5tJ|-4Neux;{MN583%{hupunMXeAhX2iEo5LoC?{$;0KAmqK;!W~cF z`?-aB>L18)Isa3fg`Omr>IyC~X#Jlndg>F}bQ@THmxil0cX8k$cP?2V-KZpaO{3Jm6Uzcc>u(*MCq7yh^)zWj@HDKeE1 zrYoT^k5~8uhKPp3AFvnikkfOjVV%>h)cBSfrrxkU-LjLNI-&m%#uK5mRFhv zS3)t7ey|>>J1~^w?wpT;M{QPFYOCB`w90+&e5Rz1q-n~K1Mr7i#|R8X6nrqIWhR#q zafvtWY%VV!GE-7U*5Q{^o%^*SLJey%Q*^)}a)Lsl>(?YO`vCV`GU5}%9MSce+JN>A$dGQGd2;#`JR8Y zI=hSa%8T4V9TPsS>MgUx>y9p4@MubtqF;Wv+qZqY1IzQjx3A~C&vd7(*I)F;+IYX0 zCY=MhdMdOUv=2)*?#4X9B8yZzk;n~58E(HN8tCp=g44}A8*l^yxWDjk^D14O%oJYJ zH2d+RVsQ>l#3GQ-4D5IFHKEN)xoVkc@t+nOCS@C+t1H?lEDOI@C#4yrs1p~$xmPFX znH!8(%@R~}_#i9rl|2~CXp@^jC{M%OiaM`|4IVYYqu46epvRlgt`=*r=4m1HxUS2c z<}SIeTH7$FrjE2wYOETwvNBsr;rq!cS&pt!q3f#Q&~#l5&E#i6)6X>oUV3&8^fm*nUDzjMAb#<}^{&A!=Jd+cYe zXU#d+T(4Eue0fzlE(4@&a@r~SJFy}fqIit`y_fMwG-X!OT#&smqJj`z9aujg%+_j$ zNY-tJ>QsiJDSPCpGi22T@!*_89g3Fp;Z@ZKAX7wZ)#UeY(UsXq5nmuayzO{>|18V* z#%Pqq=CWnv(B?OUXj>JQu?(W958TD>HNCoxnu&>9K(jbbfxJ^L2VOflwNDb{Bo(p7 z_3LeIh4Z9!USa0_kPSs6buJjnfw8n~f;Su&>0Mp%GSS@T6w!Ds<`l9r>2Gw|JY~7U zbRSc{k;Nut=P;6zsxtHXj2IPxUFzGK6MI40pcP0^&1xG+B-XF2rQsQ!e`~pe?xoO= zW2i(fFe#uB7Yso_5tzby%)!bXT;i&v@vZpUR56=o^plPK+!|VAfRH^kNnovphaL5Dzxo((l{WF9}@tiA0#9F zKY?ywds6wcV>K1r@JM`lBq^al|Gf%LpP=hj#9Ho^f%V3K$3GRR;P8x0V~S#?=NOhJ zfcMkJL_f$#nMfaB4ZdyqezZN#^2keIdfgluUL$W)>a@IN(@(5J?E4_)C${9Cx~SeM z(O&G|sAPJs#-ADH$df=M0=REkXz+R>{MpCZ{m(^GgRg{F4ElZ zWc7G%Cd)Hs#ar}SPxnBA=Y<62)_tJ3wz)lx+Dgjl-n~{-h0EAYbuugW{7$52JP5?d zI{8t=lj9fn$s~?0Ad$8O5%0mC9C9NtFL?G;D&UY^4-0hnCXzypck=XI#v)nq(iF0= z{_Ms1bYY{0TUhD7eB%vUnB`dV{MpNMtD%2*2j03}$qNFWGe)K(D|n^KQRcVv(o7Iw*UO6gBQ1P($`Oyd6Hw_dy(eQ{(os(5c& zzEVePh0eG5yk4Q=240?9CXW258qvP{?UCJ32)OSd*t%`%q--;1k^&%V_*@^q&56Zt z6Yv((=i33eJoi5w7B*VmnbaC2kTlvAE(1vPdgLK1FQRUW`C(BzqgYV&sMM{_(FC~@ z)YaRlbOBPR0wblE^&@F{%->6C?DrlElo}fKzmn=m?vrFj3Y^}ua{d@>0`!eWZ#w$2 zg~ndh_{Gw%69M^MKx#dz8Dh2NiX!Qv`4epzh9esQ{TuZMB zjryZAMlNgOw;4So&2~>5q~(Yz%_twg?bM^aBdNKEnH|NW8NggW-X`c$hy~Y4ZR)l; zzj6>(Htp=OlW~Of_6$ejyvkr*7_y$e(c>}z1pbbWoNr|eTT_XY1=r}&3S{w-+@2i% zjyc0*=cZ0#%>-S=Rf3-)-0)o=q;b_}#g_ZA3F++ys+X+2mBwd`CrvK*CQ@kW(|A`f z;ko3!g;R#ZWcTI`+J5J3%bN4uG5oApYnAoR+KFu?tC>&H?eVVgncDdl z8uO<0j_3I?uzK(A%@BIppIIpv<{5hbW3=ZH+EnVg;^C3-;WivzI2CF*vn}U+K81!Z z1Hy$GT7PT|NfLpXx9+c|G}NodZfwjSHR$~wrbdUubtvqh6#UKiy<%XwmB8-J-3Rp) zrj`Kq7WWyyO_B8DDK)S*B)B2^{NDU#Gf;aytw9v(=S!2X6|4JmKM<~ z8@g`&TumEJEvyfzj-LBF5R4BtzC{kAv2oYHm6uLF(DIXti<5@d(QV8L2qYGBmvzfu z?v-)AkL zHfdwz$^X)u@1duW(ZGY~P!f&c34chk zyUQeZ6|hj4IBNA0W#ISh|3ol`HsVp~?_=TZRrW`iA`jN-FM~cL-19$M3Cf|&I-~LV z6-;RD^hR~7oLsrj+`m>_UNE^f&UK|dQ8%$ibuvtvgr&WrUSlgZ7E89dyk%$)y_TNS*I(PyO*h^ZE= z2o6rlyf{4y*B|Pg&Xq{^)So|{({nR&+UM@YcvKzr9Xm6^t8#^S;mT6t3ZYL$e^ver zQmMhgqaQ68)|^ihftIz{5E6<-9hZ@erMMub}T>=!nnihgA@@Vad*VZgX+ zLO)8mlk-Wjwb0UTNIovz%ahm!;5&g9!Jl#sAK=g+FDHI9w*Mh}ZNo z#E20fpVJ6ayX&<|=C92Ups2@Jz?Xj~{N*+pIIa@rYQbUqH*f2Apyr*Rh1JmO`tDYv zAzjg#-w(`;$o3Fr%w=yg?DQ=QGDpE5^H$ZW;Vr)|*qdqy!?iDheF`>{jhrAgrAe%>Hq} zRS*+Q`Io-OHnO-00^iJUx=->x(OF%#k%6rScsao%LFhBdPaUv1gQ``im&+o#yZ8Cf zTQ|q~*eYEx$#-xh;FeGFc!ST0?>pv1)L-{D#}%d*7n?O0WtIg$LHAPrg&wuhSbRC? zeP^d)9)&CnueoZ(2G_;H-~mFI3XpL?Snw?$xf4D6#ZIp)`l_w($p&jx5G-Y*6zwT@ z>PvpTcAkwk8QzTLQ)_ue;l=4K$(V;JIxa+>@q4X51=DQu!iLqr_=-H=bw@`{9;0!#GgAWIBsx`?{@23Jc!yWIv$ zWP2UU(G*VJ7vGAjH~320e>KESi?c`pjfKP{y6Z3+*+*!%)FQ!e;~q8-tBYD57`8Ew zo{0sr=p?3tbWH>I3_leD_A!bs$=sQWGE?||aR z^mLr!X4$zi>zUaG!YNx*IQLT}dlRCu;~1+tUOlf{_QwrK;?J1x-xor!Qj%)2Z=M@a zE9#}UWOe%mzTN|7&cE&aB-s$w(<4C%&FZ|`VR+a9R@|@jW`FJ@{z0nTw=P~Ty^E)B z%{J#+Z1@l(A-^hCl@AXC6PK4p;2mr{me{UrKKL2ta>Q*u0ysDcB47~rbdsO|F)>va2sCcWx}9)r*(Fl+Fi{o6(z-jR0p$jM@A9GvvNgMJChY3acObe67U z4mDa@BK0JgUoU`!XtnX+f24V5=C& z-wS2|;o7|G_ae;=1rI0pb?0TxeO!lkk{ZtUCf!L`TJ^Z|xo0%S;$)64Dc>}yRC{=7 z&lrywhp{kNzaN}=#VX>@z`h}wsX(x;Z^vNsUOH@9Fm|UgjVYgJQ+GjZLKav!;>>bw z`7SgTJN)z+6ASiNHV^${E04)XqYGLqy>{c7?%kraJw_ohF)z3kT%I0`q!yTj-Ad z)Iy(Df3T^mbez?^rl#!%8;2Gz0K=sOV3-KlRR^uHMvOY8yE|$5wUoz0ZUrT2#4@Mv^}lQ1;sf1%HNhxW-aOp< zM{|bhM{`H#>RT?0zcLyeqNOkEpSXHzl7r`PcSlC9uLBod?I4_Kfcs733Y+eVqikmM ziD+#AE7X4$+MJMd0a{;JJsRMR#8fr1?TDElRcvApLH{k8SRA0wB|!tQ3)G*dK;_$a zURCtyc39ErK<=mtdqfENx5 zhAB7Kn~l&WT>7g?O7OW8+S$L#*#x6D;?9#R*+q&uGi)EaJV9JzidVs&F6ctPV;wK` zV<3ngx@+P&iQb2lTchXdF}93J_ql+%kf{`bSb|SLitVV|z!JC`tmGVvCkri==)#E! zg$ZLl)DGZ%8|N%77Y<5ed2|U1zVND2Hn?3i*r{&{L0>_iOO{>ki!^5s{X$HVo3DfK zC0;DSvX(BK`n^2F_$dM=X6bvb>%jlFqj>h;9R>5F+j%kf2^s0;wH&TTfUj`r0~7Wm zmyC0y%LejLO=gW_{^eW}u~eKbV^ehU0=7Yuzh@~%+5ZKw*k-n4H0i$NoB44qnKGto z(q@1ZZSs-mJB)_K-cRq*5ppFZW}B{Y-g{$vK_Rip%%!Ze>kBt-TfptvruH&zb+ub@ zSy}Ip%y9a54{`8KgoDmt>O1H6J(qF?SE_~Zes^tbEDcS+jBM#pbq$T4z3Io6mYJJt z|2lKZMDZGsYk>Zgvs&Ct5s2L8vbDg4svCX0;Mc7lN6e zSM=614PyMb_FGD9;tS1GognC{KhvNEYZ*4JVe^{x^5e2JY}LJsS0{8F14Hu}l>JXF zLzTb-wsCJk9&%$qg z|MqD@A-;9Q>Q`$ny3R9Z$suDw$SxYV+2AjpP!MancW|Pdy52czfnDvfZx4~=*#37f z4yoNK=2Xl70{yfStozc<%dO__o$SqWUKS3sAoH(0#_>EGCxo}000=FuM{~@-UIqK* z?a0h-x1I-iwRLc9t2jvD#>W{Sg<5B#$J?H(dNGo`{rtHeTAglLu1(8S@l65Qc0u zRzBPB_v#b?-;9uOJ)v z97D`p+o8#c&AO7*I(P$yxc&U!apm%X=sOuHy5|mnwT3?eVM?DnZr2mJjqqqJeOh&^=0Rs54cj&Y(zoW(3+T`=CRw<7$M>U~Pr1jlB?VCEWB?GSUY{F*$V?mY8UfR|w7j^CzUB zz%PpGq~>6x=|q)eg%%K(>dC8}QgyP?S(rP{ET@ zSFfdt&ST221g&$7I0Cz7@Ww5zEQuOD18Jyr9V$Ad7m0+adG)Yn<~^;y#1fqvYQ`eh zvrkwWGDg(BHiMM44i)}5XKkHM8!^%8NqySFBIl-Oa%YeTs%cWMuCrBN2UXR}M3l2= zX!u6tgA@ zweo;sR@l~}&@^^BBVVh(Q6M-j5{$Bxd#3Lhz`|*>_;GrkL8bfH3W||T96TR}oL<|E zsJ<1p;b9L49YkHM_o>oXPq3)F`7o$x4ce8z>b|lB^dw`gNJJFoOD4W-1B%+P#DOeD zt`RI6@xobuCa$N9O@=a(KfS7`KWSx7FN|eq0t*KL1Ra{dfGFWul6O@2$4B$d>GmIO z?IQAu#eO9N%)}e(lKng)n~X%Gsh?TcvOySAW#trEt7E)2HrkD8B6p?Dm0eoa8xE zk6d@1(5#64I$UoPsSbG8dl~)42k|C;qkZG}0{ZDexnRE`gU|d5;W!}z(GGPlv=vNh zLK{i|0{`4~FLCHg!QsKA5U8s2f=m@F$<`O}NJ>trLZ+zrudBWb$5`jlm524ZP|CjO z5>!)i&CmGEN6ty1UmJXBXHV}%s^y2?+F_;H^r$BSf=ile*oHDyTxZP7t+?S6{b_m3 z;pd0cBjrUa2dfJi7Pm0g!?8~j1h3vooEV(#N+uemODnj(>5aK|74Tp$oDlv668gEd zH60|c!Xmy+F;h+*j*0(qHGDYyf}ZtxY^}vc6h4>XJvWT&V8k01qnvs;+$EYt37Di_ z^^tfj_U~S8wW$Lmo9R1=$c1lWCeKU{HuCA0qR}Z6AOYOj5u0yn{lvq;E|!;bum{Mv zWt@D{iODdamz_=8tUB zMf$4zD^eT#%CngFjr(6V4s>Ou6U@Lg^w}Goa}oygbpHigt2#ZYY4PW6O@ z&)qA6bh>yqwr2!7YEdrHsY*Y;mJoq4a4eS>o9JBfCr@U+-ruNb?eV$R^Au5(eckr`wwfj27G3Qn!aewjN8A{&>HWXN9l;f`^G5UxW#0Ri--SgD+IP`5c$|Ua9@NISxag2#q9<6dtHR2y3So^cKi+aBufUtN z^)ddju9Dja{(fTg8o8RUp&=Gk(6U)nOw$i9T}iZx&Ux=3-Y`I+ZcwjFjz4&Yo=SYC z?kX5Y9qhn1TakBqqqyfVGya9MZFEh4<;$PJyJBvW?y>4s| zP*!xawAl$csTPkEWx_rq7JPGx zlcVye$HswA+;AW_-K5cEyK^5bvM&2=-OTTboR zUj$Je4du($wy@qbg98{U{uG|Hn~@WgM;Ba7#2PB?j~sS@#LH<$mN%fqlWM=kT%M@p zYc>XWh~UkJXqM2c8vSE)Cd1n_OCliPWc{iHjL*>PY|>ogM1m)^cEv+9Av3Wp&!oHc zq7Y{Nl=l2EGM|+x#6|8~7fR+}lt|*1^j`SG3<}-Q%JQISC0O*9fQ$IjMbyV9L)4um zEGQ@~C@99VKf)yqR!YE6;bjv77Va5x98C;fzV@*PXh)m|+RVgd(w)w`JP^X`7y+=S zlGt`&#uAJ+(1wJj8bStZhM;xSu}p)(NtgnpwA6paI_&Yo>HmC1jY1NBpVbv}>yqij zaR*E|30UscCaTmS_Ds1OIu6-uJ=f8X4fYBhiud4MWv}s<@TQJUOC&siqT`JV5aK%A zd@+T0p3I|D>g2yh(`|7Y+|Uo_J`viXFb!ofKP$Y>N~MKHgDy{nI88^*xWa*Q*5#IO zGnK3rxoZ5t4;Bphg>%I9S+CSV?}y}_ktE(9K(h!NcLvG$AWdjQan_Zm^DFuHZn9us zH~#qWi~Y;&Qrbw*a8QmmaVv(aDMuW5i?s;ib|Fbv?6KQ-sKj`xS|Y$Z`;XQ&!TTl1 zsc0rhKa0r`YjoG&6R57xrNza}YK6m!aMo9YMuVe$9nWjb!YY{Y$oX&)(h_YN&+rH% zZ=PLWP$I9>Zg(koI7Pc_I!l)Ip!k)jtatxtW!-znkf7 znNXSBIxjL*tsG)EIw|-mt)bXvk!R=R3U!tTMTqACZ{!HT%lR#AgG=vvk)3x*N#z=6 zFM|hFnV(w7JJ`7VHSQ3QvJU$uf>sKtdh1Wc&dN~qM-j1oZb3@Q^!Z`GiIFt^B{JpY z>;x};U-j#)93ffvy^k(16UFM02`J0mODC8PwkT#lUY9$vEjOW4GrATy`l5pHoM!st zqWrt{+biJ+o6iAGkEfa4o8qten-FpunnIC1V&L?>nF+(!9|Cr1=(Nh#&$DbH3NwvK z>H_4!W8a*}D(GA`;JI4jPWs)E1z#b;&r#b_Y$5V-wM$058NEL!A*G#T#DDjDIr+qK z*AyPM_)u@3$PsHY^VM5DMMAMrN3w)2#@G`#LX@4igvOLI=-U_i`aj>bFEf8yKTjZi zrKV;fkazNjIef;8opKerc9JX6D#R3VhqWSDhVX%NtOx{I`1?HS++=!1!22-Y^J|AO zBw3zQW|1(R8Zj{?kfu{{*CkTJM`?YGUKUT!V2ymR|A8`Hms4sH zAc~?6=+0e6VfA|Ta|Zt}Y%9j1{#~{4;v)tmr`|z;TW4rSS^%2}T=x2UWs1zd_t4>K zar+&u6{7ib{E@8Y$(wY=0Jfowj~kF|OUu&i(lbIUX89&{P-^R)t!iP#`oa9WiHV>6 zql?NvBx5*lxGmvwt{Y2YIbQc2QQandR>r*6HUB6Ei#H{T>xd!td}dOYFj8X;0?8Y*y@( z%GoXMJVYT$%jd+FZ#HAq%Q@m%sr^o_0S{&j7=>GQ^};cmUVbGyQ~vonWvW8jtRA^|j-F+Kawod`r}znASK&eIZ@p!krpb{W zyP6-br0C?U9-&Dh9^KJL1~0@rLzb_a?;ENgEseJW#Qa=n>gaUm0c!`_?6|e@`IRM+ z*i_LqTodU5e|xkeYXVh4o|Aj;D2nSAw4E)iotbBo-U(MFYStB#;d`pONfbwaQ6o+s zR_2DIfe}Lw{-a3)U!t7CgYyMBNHoU_rz)s4HT$2{v6Hh1dBSG1=liqwpB7x{os$T*7lKCwlJK+h zJw+}DLUGy)+YjUiYOpo(>HG2SV@VD7KIv5nC&Al_*f24BG~+@p>Mft}4q!lGSH}UQI zXi1B^tzGIM>K4}rHD)3{x@~s;#aQ5~pS)Aep%B%2L9sGDvf(q2WtYMj4aB={Ybrr9?zv{J^^f_SLtV@^qxKV)~oGlOtiWq zkY)72Voj=q-?sa4pN1#|mCaZ(*XG_nx0%+}dt2p)WH9#{Wfn7I!PNncI%1HN5=~Dv z5ogS{n-8O`XZHsU<-h+|99#WQA0px!B-p^Kmt$f#JZQ5m-dwo7Vux$rpg;b#FCAc) zEKX<$EzCX%dWP5HWT#q}?HeNzZQ$4>sS%kyotXi%Em|>Gfy)`#6PNj{6m1VRctUAW zN{o8_ELnr{P`_lx7K<0hP9(~U1Ay_v3?Z}2S)uq~N3`npATs{5Z%k@GY}%xj6MAsv z1JzxKVcpQdT^mhm(4#>hPg77#kFOlhcv*H`4oJr>!ZYS!424=2EUhSNC(7 z{f!@4fz&*1Y19{hYf@%WxCFWd5$*5UFdJC@KSVQg><{0sEMIBk9{U{i^3M z@-wA$+>{*=(``5}sb##+m}2rnBA^~Ewna;F@FdZx?K6bJKiea#>oGSE@n|1LTMkNP zRNW7OUHQ{S@0Za!A-QTEzeR>2q43p{B7c$LXSlX~dOe4OO13;E{}Lk3mv{|E+8Dt4 zjN&mptVkGGFl^fT%$Y!`YWTlgrCx{uMj&yDM_P5R! zhid^2Tn|HvYv+@MkR{yT=dzT~`xh>|<)U&RRf3Qi9RnYiFcQbkV-7ixaQ)Hta!H$b z0O9CjgDB;y3A5?6NIY=^QMEHI0dm=<=bK6U?riYW7LvYEu^s^v`t4Du(zmns8hG7tHm6 zztfCb{HVRHz!FQ}nVB{@N7fRTd^_Lj&4tsQ(S6fJ6=lu~DTg1H;I-Q7b!ON+ZuP5D zEOian-B*N2B$s}lHTCE4u8o-SL$^8^Mpf-T#l!WUeMcsJ$h0z}`j4$Cr<{5)Ai#_2 z)c162VYIb{FB~Cj!3Nw`xqjFwO>xojHQ*h$?0s?n@kglTK;U4Ow{KaBNQH4?mRrt7 zCWRNz<$Cws3TpiPlG@_^1-(SX#= zRVds+ehuckV*~T}FOuT_K7x4z86I)6-9=w}z4+@&Ucb}HT`cJ$g=TQzQK`!3>WbLj zCpUyvtna1+>leLz@kz4gnJij~T{flm;EG3Aq z?n5tEPZzqT>Jd*l!Sp7LVAJ$Iu5<1fwgEOx3#Fx(i>S$kOu@oAc;g zZf6vu;60$ttRm4}upbj^T+8#2cGzb#xbkiG=}*tc((%x`PWw)%M&;MJcCSn*fKq}?6prf}+`CG$gzJU$uk{oKFH|>L0kz@n zR60%NOdkvkY%3dF{|y&29+ex7>+V+8xOOhAkWv3ADQKg?%yza%ay=n9r;Aa{-`E)^ z<$3UcJ!48pzNKKFMi#E4nO`9}y)D>!ZA-VuH~on{ulW5|9uXAk zdBgJmh{f$KkbE%)_8*>Zen~0c^c``eBOP8hULj3)D|9nK_TG2A79hKt@b(cPco|?f zqXxITCf!3}Ya~pk+_XwfA)?mw+JP12&rzk~K?NoIwqv1gm_0fDfes(z>hQw+D)E-r zq1lp;rKJTzTGm_JsXO*>$HiM zHhbB5cv$R^#&k>049vSC{h=|a>T~u;3SOqet+&SFc4h~Cu3N?{J%CLqzR*|o-KCZ) zf5q@=BxRHjtjT$GdAH4&?v*3hgyYlFWHmGxTwTX$#A-8yd7*^$Z&MAl>Y`}g6H5;& z>6=K{{6T)UFHt*1d!*ZfzYMtpT}+VhY5po<-fn#pm-WMv7xVGg%Yz^IkZ;s^!zk2J zPH(zj{^KyNFWov%uxbrx&Ac3rrxb?@;>g<^bH6NDZ1Wep6#3LM((60>2hw7z(`qJZSR6Jg@8goiY>T1~K7ld|R z*oyM@Y_ALQ9hzj&I_G@Q*pt_x*%4jgt!c~g&9$p zyHnYVzt9Is4yNkUldm>LI=;I%zxmHQ3??1pL;5t1t zJpSq=576O_L;kFj3+yr8vRl|>0STRd-3=;9icvijdyuPl_OCq6vcSHcpKqrX3yo>C zZQc4(EihyMEvGHU6Oy$BD(%Y5`_eIA)y8#XFGD|)L!eWrIv3IIG?f$W0nj_17HJ%u z!=<5-!KCBYPI_lKAAPUa*P6b_bZ~jLtV@r>XS+ zbTsO;|M0VVnDQpbZxRSg(aP}AuX!zP@$=yH8eaBUpPI4TPoN^B-rRPjV=)=)6|d*< z#jxjm`el|GXHNr8D~Mz?!-gn_D}H8noYGhpwVfYid&%*`%jM$u;#_j2{ZpdP!!(uS zyKDS0rA-m;$yi)I zfT&v!vDNw4R`5jb?o4nzL%W8RFIBqtNm2PS_jZ6`DZBcRJ4Hpe7!xPLtIWX1fpFiC z_U);(Wt2+?AC=Hc^LOnlGW&zkln@;KkMG3sw-0mQtN`&luDk_ZGEyuW_eUr9^eFeX z%^Xh=M$3k;$oPF2Mvi5#ne-hBP7B|fM2MiCIfFI;2T zWOAf3IUV!GdaqByQtH~rOTRpTbL0wpj~A@wq-sJ{4H$IJcOkp^3g1wEA9L$&y852@ zl6T#9;QfRuc0wGvtfJcsY=W}4e6D2JScnm42A~VJ&4f@~Chcxm$de^7%IJ^Mam(_y%vwxwznLs=nrq2r;b)5eF8wbnO- zU2%?a+hGFoc};G6OfVY-xIVY2i5*+2h5YzShnLoKUze63?;7xTHaZo!4)P^YZkfqXfyj5I~re}!po6% z!3;S?$9eK#XuI6((bcW)Pohd|S9l_GxbtJ6gD5(ef`^JAbI5R~eE&yeG=Q$TTx4#~ zGFzv5Ac@O^)=}KmYcDFn37f`gp=(*_hYstWS3GyX!_bR}Xfwv1*3p6SropRMeNrmw zFgmNQ#WuIo_{<5h6P7eXq!cZHP2gB&RHX%&RNYt6nLYY8<-K`3O*+L=KqHp=$!U;` z4mgUqZd3YVBB6X%FFKTdPn*DUX)H=r*7))p?U6q#8=9*Pf%>lwvRk|gYM)pU`G9OAXUSaW?4V^KyRHqd^-9razHm{o= z;cwd{8I3(#FlKnbxfiwRxo&zyNiO}`wm#i-$mAEI zfz4(WaadhkO5NL5r?4%fO_r!(97=lU-nnY*PU(}S_z(M?!>s|e&pLCj>kMEr9I@zO;1mV}=b#2R^92`WROQ$NAy#3iwrp`dNPwL>qIAc$`?|o?=8Fiw< zg*0*QIcAE|iR}`j#~wV1jaHjQ9jQO6puYEU_bQ*8eAeo8wkcc2tLAd2taSZpMfmD8 zXF@&`@y6Bp;ZO^OAcR>^dp)ENv)Y=;E8)HYYU$-Zs2yLxz-Wf6sGh7!4FB*mT5ol9 zQqe4=V>5ZF->EmZ`t6s!0FkVN&XZ1*XaIwZC(2*IN7T=Y*YXk{Jb!xm=~PVbk*czx zf^Hb^{;Ud@4Z0-_nWt7e0<~ldK4lz|F7yyq_5+qts9qD#WLQN z%*b+)mu@TKRPc7$a8Qq*8-YckOxs6l*)J0Bbo42i4QBcW-Ws0#>Yu{D*J^&{-MR_p z7QI{sh|!p9+1>guS_+iHVtc&n>RHcVjc}li)7Gy(CA_$x38bDo8}y*-P0#s}{A$&Y zgQSgT80p82w8s3K{X;<2q0)cf_U2;Q_X!fN!&CPJeQKEml#V^c=A>4 zTm7Nri@y-vMQ`&8CteGulFt5YiSl~7Z*Ds>^6CX1J3pKLFggom?U+u+t<Gx{|njy03`!qp9hR7*bOvR3`V`nhj!y5Ys=LR>H9c|5$Tmepy|X91*R9t352R4< zG}GdfJ)>Ge7+xyk|EhEqlD@S|ZTR{oT%knNL+mI2&q#{;&;EjOnMydB5)^^$UkPTF zVl_>C;)nx?^L1jswp={n)qm-8{w}g$A?phn_wVv!R(lj|V+Q_1z=WC;w>@@H{-kJ0 zz5u>0!co(nyFKwJy*wsQ3Ygf_vA)#8_mg!RsF@`AJ%ke&dB-G1KQ8{UK3@bPvkz1L1Zq`T^ROO0?JiS?7gJ;MNZw$j{@yNRw+Z73d_2qrjD5SKH%Zq&YiCB5ct$UkD z7(ffhGV20ic5Y1fg?aKDV_IW0iH|O{CoPw=$?K9(4U);q=#D#me(R0e6X8wgsq!*- zbnZdnGm|bGxn3&rR2_t3XsO30B&rV6>|c~!%{LqzWMMMJ8DHmY`~~UDEqF=nhVHY{P23MLq2;Y~8cSrw8pI&0=lrdaY;V@npbH_c+)KF72t zhq};WDjQ|oqU>{ly8N!QiZ&JODJ=21{fg&uRJL~CnbZod3`#i%iC1JXqz=`j<4`)Q z5!#3*V&_ZSJqSbJCEj*-77bqixVg&~=YaGb-bpRNSXOY`vpHrH(#4fHc>Zi169}d( z6-n-Qm7&U~45u_)M}9^K;K6NL)Ir^$iMbD82LYlhjnI?%#(m?As@h#R0nGg4fYWsg zj?BwDBh;J6p;5v^9L($Tz?mX$sRqlJe>g6Qg#P{8pD98#%v>dJSC|{V+I;-~N*fm= zbO-e{))i@j3f4k2LUqjZT@Z_(BtIuvs3s&|wAwsFNJ{ypoK73S@?Hnaw7B9QdQmiv zJAC5Wl74kCy^7vY3u8z3Lx%RQ%Y4qAQVA68v^3*+zO%Zd5c^W3ugPDX#o%KD{9Y&b zKb?SxZp*}Y6Tifg?}pttzKavZ(nIy1@y+%)?NU692rOtj@SXp+f~)f*BRHm<%B6YU zv&*=ovqx?!Zb^JGyr$|RC)R*hylip&UopQ1jY`q6)_Rf*2)9#1aVWzMl?;C$5Tg3=fdnJH)t` zTrd$F8EttUvOBMQD!4|=8pB2qvPwiM4Kga(#!SkEJ9=9U=0(o(Cvlk zr3!+AVrSY*ho|1gu;IzrhRhrPi#fv<@(65=v2~Z=an1%u!rkTO^W&-g1ilV z%IF3LpC#hq`O@9m*0~=iPQ)Sdx5aGuznd8d1Nk5=1Rwhbj0dy=D4Av7lI{f-H_~yg z2%j9U@VW6g{jPkMIFL>WX&3pZ=R?YDwJ(~!H@I1N%SRP^y7Fe`O_LjloTq1wYnx7C zAGeA^P1+mvK4*Bk?%+r)WJcJ)8>Kjvv_S_XAlo+yU6*>~lA&|_z%J@%ke}Sd04tC@ z+fI`jue>Nuj&HuCNA#j<-NZr`-T9VIH=X~z7#IzZ_PF>!mlB)bWGSGf7g*F!$7SFu zoN{}dXa5SG7SP?)(NU<`sTvBj?!iIwMFcj-qMIteOS5>EhR|%@L^2%$xJk>fEx=AK&M*N z6K9>MMz6}8tG#`-QqcNsVT`;xhsWgq3-=>-FRMLxUu6yr$HT@7wNx@S&`{3PZI35( z>}8LG#C5N&{^~MgHzAJ5_l>vBbhMX`x1~1SJ)W;3B}E%NfNZ>>fpszXs#!b5`@x05 z*eg^n^H1iqBIftU@HshcMDZ&^Bl{X$=7|WYDFL=!%r^d1#p(S%)TN061{T zj#g+ZCmPom`c*u4?}!v$c)Fh_mig1tE{)medBZM>hRfjM1YYAK8pMGfbMs=^li{Ls zeil~C_y#TbwzRFTp8G5YjElAsRWr@Gbq=8e6GU}PYz7aq=-r^Y5(;}AJ}-dqLS)m8 zcWiIRm*LZCcM%W47z35GrLjVd_!^3Ub)Hkyh5~>@@uHjZC65a$?*nWBmv3|jME@CJ zI=gOZ^gMs#MKyAK11DQ)=YbmsG_O(O)!jCkP>&wQKiX5eE9Nnj@j?3!xFcLq1O7*b zMjzWiWL__S77rT?oR_i-tm^&^%s>mIR1_3*r4AhA3y^cI>2-fJ{!*UPZpy=~*FI&0 z`v%~|lQP0vaJ?c40ZI(j6ownZ=#;nfyP5K@-1O-cr6!5aRC;B7(|_JrIt$U}my0H4 z;3-Tki^{1;b7(ba7MBB653@Ai3*xaB*%SVMjJ;JiWj%y#T^1c3dOY) z*W&ID0g6KiQrw|96t_Uo;x54@xR>B=?dE;Iy~o(!!G6X+2U*8!j5XJNtvRpjH&2uY znrHo@mT^?RfH=c`_J_>y9pzmIpm^Yz`dqp*-DLKWy^i~8zjs`3eMx91b%$*P&Dn6U zV__eQ@Sbc=f51tBpS!+}%Y8HD?!_EOMtu5P?S1$>O&h=C=0-hkj`;F;tKbmHT9GMV z@!9Vkym+JDTd~BOlj%M;3>-aEDe-0Rd!8V{aECTQ#?yTtK#a1)jOLruOC$PlD}C=( z{NbnY7a7MD8)r{kZ#fy7=78Q8v_ZtGWiEhe?;Lbg9JWtlH;{noLVLACo;NtLuR+q-{;htNkF*dsM^0^+p*o3Lv@T4J4MGCwo(R z7(MAR>1hC0A%hRHvHl-YE5eKJQKgr&Ed?$;oc|(qFfjhIKj)59KNWZuJ=^uoGS&!(s|Buk{2e_=OStIqn`uk|1T&Hp(^|t9dHH%GUy(EHh-N6_o8R z*GQEcqmbG+f`7ZPo0`i^s#4vF=@MTSa91g zU&sSn0!OD=VcP8xvK|pOA5;rlJ_Ie<)rzz=Ml`9a7<+qXY2)x(+W=(3#4?HxT@V~# z#-l;D@oc?cjlpP97saM#^Qm!?CXpdH=I_I7yDTcQe4;{5xfDOfdSng2g z=15uM*3iT`6RR1S%~0atXj<1@1*y6DeL|vONLyRFxrOqluUv75$r~CPP6@Afo1CV( zNT#^Rrnwu6r`$OuvPKlDwoyMD;q|Wo&)WQxB`;PS_AmAlT>U-}b0`r#-KlAk_D+|8 zeExDIH-!^4kj0w$G2Q!mgx_$goK@`r!ck?p5aN+}Lh*t(H>bb5I98jGTgn$48Fu+T z8m-UhnO5&-(6_21!=yJ|Mn*T9ZMEaJ@2YT>B?lo}UJI98lJpmS3dy4@IoEMcIvPi= zX9het>iDB^VE9a7R}w_XXymIx2w-}-56-6%KB>_jo`JAP%E4Jb5BoU2Bjv*8K(LHc z!C*ek7c4nYFEAMKdZeRI{M2rj<7f;=e3{2D0lRZ&t(I|07W(cQheGn>KAM12?$Dne zMflfc<&8#BgW(k!$!_Go_sH-A89HWvM+(-OMu7QSmF*YoOdrZ|{RVqgh`i$baD5rn zbR>P92>c!7@jZ&}69~^ffaWJ+^M0JJh0?zGCWIW#KG=mrjE>u#xm~*T4`U*VMaP$} z>t5KOl=aLkX+dXZZ4mp&IWTrC<-z{aYhWWLSu(R{@sXOohqT4Bsbhs0kH{B~H?c}5 z!!Jb7m4^L(W}&GEp4W~XUR?cCU{OPU?6_jyrHv2r;1I28yp(kK9lO-~sW7KhY4mk* zzEcpGEO}U~P#7T+e!B82Oeu?~U#`=m`R1O=&JC4Y)~i97bMbXUeI@bgTu$_X$ZPfF zj9-(|6fpdum}OE#SxfIxrd6|_5Yf{P;PMVViRf778*?nghTKAN{XBu5!^&xA6INMB zvHS~e_Og%yYu#M|K&;}hi#U+OxXNUnKcRgnl)Jz_{e1aU%A9>(4w45FNzUC_PpLvK zCHXvN2Yjv?zV|N^TbC+t1(?0rv0yeuQf?a{y7-^es01vA980gXJ)cLGIk%#`=!oZ1 z;HHxU{FWW0`YOYA7oJ`V5xS~L3QZxBJmDh{8pfX`-;}S4x^9UYkq{-kBLsq zRY2&sEeSH>C7pfo_3P9Za@_*c3X?0A1;EKPpVD{cb4p|Wf%*6oaO#bp{+1`gN*tq<+<2(-m!f#&sqS}#Zz@T(~63M ze$lJTCcoElG*}!~eiG0PtZpNd^-+6U)CW&WmUb(k&&eQfHP85sbMb>aYnBH67Vjd$lqS1fiKn3rS0(OtoQtM>cZT#KXI#g6C9&GLUG zXBqglKhQs>2})q(nLWAaC1Z8~9xo!`P)T_044fg;M^YZ0y4tCF#W{KlHE$iQCU=GS zk@E23Cwo}Q+`i#8?pJAvTaT=SVP>X5C&Fk??W+z;ss7GNMFS$UFh=t#h zjCfRIw{&zCg|PVdbHQou3ttvy-nBImT9IxWgX%QZ(4PRdNFf+(4%U23Hv8OJsA|DRsr$fiQ-ZH(X z!p_wh>nc!`6Ya=yvw8V^ysaY-a5)N{iXWG_9p{UkJDEeK5~O&>9cbCv6A%@Y1|#x? zY&S2we#V|QpP_^k3v!WVaFOMnRurXVDauobQFPDdYmgmY_&l|tY(2D+=%1YK&N@V& z9A7{i!T0@kNlCdoyD{}5ZPg_$!Xb3BpLAf3BGbD#rWTU`eC%5{VWyp=gg9;wF4FfY$ae1`+BQ^J0&gl7#rORhdBB$HfKAKO9sXP%E+LER1UZMR= zC4;O>GM55hCF%SkqqBa^u_uC+Nd};y@}W}LOzsyr^i4?>zB|d)nXK_(NGO zOe?YoDMWS#u0yr}&(>p*x=h{0ByMbWri_s;uHbKi<^VgK`%Rt8urpK6IOhVkpvMYl z47dDJ_7%mam=Hd#qQP!Q#c3fHr{j&OJ}xz;gu3n{#D~=pcC}S^rkGvOUhiU&nulmu z`Mv+Sn^}*1#_u?Fn&X~i%w;(s!B|(4G12Q7W9iEebB>fM-FaV|4e-ZeTBKNPaXxE) z3(a_LJCm!!Joer-9jbiRPw7_nr`?%XFRL8+Q6~`dnE#If$EqqU?WVG|tc}M2-!86K zyi~k?{(3KU_UTj?k<85MyFome?PJ%AnIk)H_sv+WxzdS@evk@nfKgJ@;Aj8S_V>l7+U%!Ciq zaCE<(<9x2wz&OKb_I$1n<^uuL24jfnQ?t8`p!Vg%;25|>t}}C)-{yIKLSMg5(yGeD znrLm#&dBgntJIT;(lc-e;H3q94gt{qBVDRqD$7{Fam- zb&|o3Nw}X`rs~Q=lalIJonFzv7T}u2OdTk$h@+-V~+#Yd<#SMz6 z<2FId^n6QWd4sF=SN}Tqd_!YSWPG=Z{_y+_28MvTT1V#n?@tXPEx$tgr)M-N3eT6Q z9Fv)%+bEA95+>NTw)+~*2?w0> zxH1|loH=&;Kl^!bY7!2;BRXMX{RV`+erVRHNo8~C*VXon^q~Lj_w<6HQ64FGHo$ob zw51~MuCt@QT~FPFNP z8M3W1OZX~nWyI5U!3q%b(#?mAta~KH#$drOI8X>(imKAA=MRQJr2E#Hh(`Saf(ae~gX1kXG zY+r>FX1jWXl3Efj-N*qhe*8@8T8ZgY@-}dZ9FgX3P>*5sNhUWLL)SIl$=ce+L1KAb z`EFfzy8-J$Z%iHFn4fa5>*?)pr|fOZJ3L#KFV?nlC3i+GS@WNB$9p2Qy_fZv?qN*c zgVQPc21Cm#8r$!P?r@BU>Q2C`!Z8(!`X4%Tq0hD})o(}vSid~CH$@Tx>(NJ7+C%do5AY*Y z-VU-K-D`jCHn&RLj!gkY{QAsQ2&w*}7oJo(zpl+b=`^(i?eIH#zS&WyNCm`vlcFXH zzrwZQOp&=ZmDjLJkpbb>b@FbYqT;r6iU*yo)qI)3L^~R|HY6At$0&xH5-Te+BOK(2 zCLT&*wGsVG&(hH&N!BawqIgHd>Ff3dazp5NwrJ1-OB0N!S{R8*(Ba{o`<}pq<8MU5 znOl7EXH5DnCoh-C#QH%9AAHY*V_S-VXb*A{WyH3`7g)sYuS>d;s2MK`mZy*zy_S$V zxeaRW&0TacN6Ea2COQ$X-#g_~DdgNSozok)s@gH{R~X+3bry4?W43vT6b9r@rqx!& zVy24Yt)(pJE=wtlf8vVv>E79L66fl5*SGRl#7r`L0=${%Ge?Xcggqt*`xm zLf!x8ddu^_(VKtupAqv*KoHl`ICzK1Gc-+~z|ORbQJuAW)Io>&oN-y0rMo(~Tl_f- z-bumYhT8G_6zi)EaC+#=<7n;d#t)mgFb9x^0OjYh)*n1aANE7R_pBlY{--q$V3$O} z`scpno$O`S)!ANP8EIUH>t1|f)SH+nKODPgNUEE-^hAFRy=hz$FDp&rP2r>)8C zIDvs}Go))__yAaWY1omO4dX{}cWhZE2JzPdErOaBjmZ6c^D^ZP~i)egsAYupBb z(+XHxNsLdMzgBl9k!bjyw)IbOWuFZW7DWP|Cjf*vj>pIKugFzniFHNi;L#GM!LZoJ z%VG;QBLGz=^BNu*U$WbQ3*XAbfOXs0#omraN(o#ewFgvSPU8m=i95;N9crKETNP%z_G@MPGpBuAkk1yh6eXJU zPRi{-GIDTD)l8YTiN*8$67E8^qPkt52ycqPg-gV?X3e}dxU-iK{=(Q)?5fmG7@5iOs)j7^pgK zb&*H<>iE*cW%Pxm?9E21vlC;OH@E?_Uf_CT&%%feOg1{cg()|Jv-M@e(s7Q0o|X0A z{SMDdg`TOne{TNM@$Avq8or_OC*4J0W*3nYc^(67K&GbfnA~0I8hZyu-kTh&-|>9U zJb^^e9do*1PW-f~`9RU0dGy)d&$%G&6qe}S-8OZwMnQgGU-YuA+t2oyHi)X_K=@cR zj_P(FIi1rnsoeO)PCPs^Z)mVBlw~g4cUT(|t2XyYvc*a_k=tnOZAV{liwDG4y_m6n zf3)OJRQQg-d3Z3I-D@G6ql9juoIqXcA@FX{7+TdHz&$^KOKaNxg(Y}$0=aIR4N@iHZpb~`U zYSI_lH=0-(YxQR;E|AbH5~ACCmxw;II@)^+eOYiO7CwK~=Bqc-n(Ec-9cRryb8&9L z?_{L?oYINeu)({rRdp%3CW-Mu!U70qc%(~7BxU& zQrvry;R=s#SEE3$Flixawh7p9IKs7?K6L`tS25Bq`EmTU)=rjrj95(Ly}?<9l|uj# z<`mDukIrs{*`K#D&OM;;sE(0#9dAFv5zb!RBv7aiGnfsK(i>GD40$*c&y4)$ixI#K zN(%s_l%W=+?gG)DVWwE=&AMH?@o_eQF^D3gK zB#nbP(aS~_Ksq?eD{xRv&Z3!t0wHBZpW?4#2M|9 zDa3af^($saBKoL$#8`4gjA<@`_e_FBd2Qqph)IW(J3*R8yza}Wm!`S+Zsn=D?hnCb z0$I1yM?a3F&@Tp^kl>{i^W;94JdvQJM>JY|t6G*S@sX_#3tfaZTg*vM-I2cz?sB#b zIgm?eG|`6JFr9KOlXTga$7*l>*5PENki_ZH^UBn{8B_fqATMVjr$lB%dKNUU>7hX|umz){#h!!#sg@Np<|@19lo| zH#A$j)QNw1uDRa}rAOb0bnSG>czZbA&R)H&^hV314`^Fjj@vu1mBLd$)2_HB&N-Q-`Lu} zr(a5Rq#OHOYLw;%uINW_&BMTr`S;e3!?1b-b|$o;k7HU=*QZp}B~kF{&^iuWz?yQs z+FS#U*7@Pp_KEkkqajOhghwq}f zV(BaC10bB_Ju>ye#_vb8u9%EhZtP>pRTYL!tB4$nH+KVmmScZWPgFA5P#Mp{e&%>) zwILnMpY6SyLvm5)O>TSF+_tPYZbu651f!Z<%WZKyJRV@$opDw-IA=AMKpdxDxK7IZ zR^g6C@8E?*J5q9CtiL@pp$1|KQx_on4zCCcX>A?7A51?k85M`C>OOxR3`UryY$w&S zbcQzG`39eJ)^gmSz~`qUs{q~6+eMc+WOBJh*(3xP|B%Eyu(aB|Vap40S2+B%dE{Qu~te(IOdea|p6&PNrQ8O6Ybl7}V=&8I*|rx*qhmm^xDK zF|4ML^mgFS=#rtCE*bNE>_dEwLx_+wA}&NW)maZw02(9aCM&mbs7zvS!Rpt`A$4^9 zt0`90IJBMI=cYwH496T`~cJ2Y&_Pa|pz*x1%4JCUO<=*!Z{3$}>ISb=Y5n|Df6P>ZVTk4svv%<71`TZr9Ff3*`0|F7pHjl2Qia{3$64O$sYg2! ziA8O?aT9_dmndINFx3O)FYvHeGgs;&{>*jD#oeeV2^lZdY`T;Nj-Z= zwpI18$7P(+rq>5Z&X%BS)9fJm7Ko>MHX#KR(yhQOb_%5G5IjHnRpu?^-%~1K#>HLR zGro%97DK0(np5}sR5iQflY`@M`1kjw>ZZD+zef@X#c?UPbG{q$qDSU@lta9Q9$#3E z9832e84V6abB$X`yB&PtdmUCgGsEbr+ZjKK{8;B2Tw1EKt{?$Ot(J1D6bY(mL#w-l zX90+N$3rmDV=qlCCRHm8{!#|viQ^}8g-3?M?ZtVrD}u3R1dez9B=+z%QRKDRvfg*2 zjephYfz`iEO0mb=Ix4R4!(2QF+O`TyaAOX=I4B=d(wAQiYkap8_QiuYM>|gC3u}L; zpC=ZnyxWk%_1@|A0R^xni{OA9kX8%6{q#}^J0ozuO|61iOjc5zG}9>+-?=_gw~sh2 z!7bKikF%C9If&P|Jv=`CAKhdkX-R38Lr#V|0Dn-Q zO@uDJPDXmv->`SjwPpst`@}Y+WI7bqev7_qPSq{G7YbO@Q1ko_E7?j1xnisct7y{9$@N(aVBZldyzKr25zG&zw1?CMjR) zt=0%R?xL8JjMp)nx^*v75&jV06Q}cILxwp0DDO)tRYgVgIO^od8J&+N5>d?|=vgq5 z;doxw$c2+n#zZ0b|rMJ!9S0F?G?4{KwTZ*oRt03EZB&X9h{^P`69YOq$wvE)0&z6v1LobH_xPEB+~!Y^NX2WbWjF)H#ER5dkGtO6RG+h|KoI+Z#_aQ! z^A&YIL5s<$tf5TeR2yr6w8|f?@f;&ntzE`C4u_rYyRm&vhZ2p^k~U|~xQy{(mvDWm ztmI0KLl&I)Zzcq!1HnQ$_`O9)@2V6gHI14?47iirwTi*+TZ>UBVdyp`1GFrw6lh^z zI!W+jf`+R)aKD>nv)a(ga7lvE(Wv*wjz39D3qfLmFP^VJ#`lWpR|djEO9;p-^P*Z7 zx@5vVl^Q*fYS!k#s5W)B5oL>__wWC{8sRLiVL9ZotHZ`+T>WQCT_-(dxUQagRApu8 z`Ak0p5)C}^g3>^KsF+^_>aMpf9|`8_-unvBS>0?s$RFJWRPZJ~3DBeB z_ko<;5q^t)r^KcS#rXct7#ko)+}h<-cCecqV144x_D4_3uU%l|2e?=et;;d76XWJ( zJE_=)*lo!x+$0#JuZ&x1nLPL}oMe}&!c1Y3!jA|7!X=iO8+)6vI&(3#&u4(M6FsdP<8>^|v7Z-ThU)`qTD$#bKwr@j?7D~~)V zIEr>e|Jmh^wQ|6_Fzi{H3wkgj%7{CVjd2N+qMz`>-%yv+i~lt!<{wSZt1J zJA#j7Gt=4uVN7r68iQZ!N1ciPiQJJrK3mD!k~(S`g^%jttESWnmxT+}dZq7^2g4T> z{0}JYHOOXm=Ss8MoSUrUAh2+-zpP1q9UYrkPA>r%38WghuL*nPd9d0=9XEy--;Ktd znt9wBph)iFQnV)Ys-IB^lPQ`i@PUWakjihFOa|VVLMxx`2pDSfxeR%j>6BbCLU#V? zttKK6+WtB=Us^lpnDM7>Nl7m@I`at>NzaFR7pE783>zNHw%j*>sq;iYc2k_2F0;X) z3JvftpoHf-!BZ@rckepUk1fa_47Xoy$?5gi2L!Oie?s+irQLZkkZ|KFVu1r&WCDQx zyx6Nx5X$t*x_nH`;#Al(H6hcLE-7o(Rx)%Gns*}pqT!!Dj7n%wHM>RKm|-OL4+)>c zJKh3GbOjajn0>FaAa5e-)uR*2iBP^eNPU=)ZaY zuqmvl{;CZL{-;6=nybm&s_S9T#H#LDV^G6p0fZ#p)NuJQDXJdzi8BN-pqfcPc<lk{Z{Q3_P&MSMKk_jdkHKcTa&zp21RKRyK zWph(BiL;mXkp?m!d-1ixCagAE7H^$&Mwdvw1vlN-bNF(TLq{0_w$KkZgcgaBOPxut zX`ejpzZJjXuuwDLBPb|1i&^dFgrna&BD#?al}c-5{f{g0N(5dOgPR9R=xFa58FDH% zzf{d8sT-|*luus27R5NU`_Ovz{k+(+N`T+FzAWd^OMh~HwYcauDxR*6RGevo%u`igS^I9Gx0Ny~f@EopMPX^8>Gu4BJ3+04GED5% z1{w`5Ke?LI&c+S<^ktU?)E1U=3M`>gvP`&1X&n0EL;`JQ#vl3M2dS`0^Y=fy0-f&7 zc60p)YbXy!mB&pD_5LZqF*564^bKc7*~(oVL{NH+f)y=v233lYY~7#(hHJ)@!IYuI zhv+^@izuzVu;DK3#wBc3h^NwTAtFU}oR$Dyl4KZ0vR>GdURZrA5zva?Ry#-~CL2Pg z$o(~0Q=d{@Jw78dkB1*G(n?)jgK?Movze_WxGd(48wkr5m6a`vT@9FF_7l&cLfWv= zn(03Np-#ih(j-QKp|SoK!k{fP%{2eZQ&c+1CrMu|#R=Nv0saTBDr?r5@-OmR5Wk?9 zGQF(CGW#q0^OudKR%W!jbbC!#7l!~wOY6qiW>7;iFBQ1fN)_RimGOPk=a!AxAJMwxJlD{o{hE{s_9>!anjvsg*I$f+ z5-oTGOxTZu`DE>^9F~2C_BgIbBnt&B(-t7URi0_!Czos6IH*6dQr2>T>k;#HF{bTJ zbuZ=b*f5Y4yady->ZrFv9$@;@!?sm@*EF~AB5C|{i{ezy&>r1x9=;oq&y-L`lovs* z_!KN7%4xD!s^y!5+{BlhONXDY&+lIq6Pa?(I6SbgBv1JNzoUl#*Ll$+W!LpFmBY_z z4K+qtPy^f0W!8Ior3(|}#>=Kz{Mhy(Q4=hqB~3rfVPDPPX}MuZm&v(eY#~daK*8p{ zI-VnV?I|+9VD|ipu4xqlpCt=vk8+K{$^^x}Kexu(da6f@R`y#h<8E+Eu}Y^ zmc%EP&h^CBvCZPHB`hmYiDn(9uhltx=CbV%NM1S|MS^4Kv4tbK3tMPa4?heqe`%Z} zZLH_D#2zn2N{IrA;Z4?dOshwIS;$@k2AXM!5OA>rdvQV_vnWKw2WwMA>8Q`IcQI`l z?5e2fb7aeEr@P&N=aT{za7_ot@X4}r^bI~ zSmrpc)wUwj+hw9@c4=2N=kgI>kVRqAneXi#Rc>BBxg?BBwUt-)<>=bf)OqwP6nrvU zQJIujXFvWbi#%$pA=Fv)!rjUKoF3&nm){Y_pJIzS%C3+Y6>z|xEMr{6TD z6OotU!~g|2sM3D+QL5>ha9j^e>0NFa$5b{GPc4>J^uhF^T6vw4l8lGv{mHwK!mnjWEY=c^|eHBNH1gkU%>1 zQRX8@Q-VI1776oeV*m7%)hqw($lCtFv8N{QY`a3nnyBAJS0uS4y2s>!=A?%|r-r&q zl8fo8jt%$okE7%EJ|K?n&prOumX0F7ztWQ>R^{V3Qj?!cPav!)Coe{6%tW=7_0q6K zt(d9OS%B)^DiGDN$bvKyJ|a!yzz~_4dE>lUj{3)3kmT3}-37PsRrj#*Fz z#T5KPZ(IsKxyQ+G_ad(7^PkcYE>Ht**`9=D&XIeO3yM^Vp4FZ9P9q2fdG)h2w5*jV zULAYG+YBMQKjIZzIOZnH_jb?+3yFnSH!?V#=ToGs-pk)c|;!i8f5cwe=S7Fz4t z*R}W$CdlQ@ri#u_X<)q5GxBtG70aqMb^-E-qIac<$iG}8HZ2`y=CH+_v%>XkLz7%V zx6^m3C2}cg5Ut^E{H0u>yf;H-R|#+iL|GZTU&^rD8$7PSX?5OY}Q?CI9{w0#!f*For-;0MGnLB0v2#u|~0hhMkQr zX<)$ZyYQbgeA#d_J`x|Dn{6WaBKSuO+#xg&8A|qxp^=@T>)y_IDmj-5rCMK#`v3cU|SCG zoNE@G|G3@V_ahVgF|8gv0n0w?=GC8Ab*nMxUDUR=!IcF}bJ#{a0W>s@p z+rG_ox~G<~?yr>iSN5`4me>iiwV_(jw*pPj;(4#N&Beynwlz;vHjsXHTgmm(wN9jm zuI)-qomL-L+;&W#wSgdG9!s63S>w#e!L(xeL&B@0Kc(wqS&5q#*P%xAuP~ zuFxz;@#{oA>@Kd7vdRx?mT?guvCYgmY%O_7+byfjBqPkrojt$zZV5EOEg7M%MnEQ1 zJ{BN_vWEM+J$u&UkeDU%Y!K(@Snr?38yWWDQH%L80c!)%TD-mA+Y2un%d**iFQr3Z z84WQTD^=OecG#PXWXWOty8^LwAS=w6Qr3GHqCHmFxhK(m?AZAfg6*i;dQfgkoB|AzyVv@{@3%hSg< zOCDW%uDr<2;QH)XiI(b9zKdT&cXkvNE$0qv@wa1ZQh(up+{po$H%2|57qR3hG17_qheosxv5$Oqg-Bfzq(gZc*%zx z>fWd`5znYprO6#f&yqbSPI!t=NCKw(Wd)zb=EJ;S$>9KwDQCEFz!>g;*kkEY-+N`% z0QaL297liB4^uB4zfP}Rl?xd7j$EGIM>%q=98?}ktL{1aZ7rteR2e?=nL=`cB@8<( zjQ0ZEJuZu#T07i5k+e+*%YW>IZQJkk3crGHPTD#N9DIkKF0b}un*34Ws$OqAC?cCY znC?MXKbk&Kzk%Txe?M$`>v1&jxx|U2=wL+Evz;XGDI>SxEB7RnNj%a$@}kMlY7O$z zQ~8lL&1wP5|FZn+-K$_BTD(qGYK0}rH`}74yEt4ZOmD)>lIpT0Si;rrP;zHSd;IbGd z`5iS;@7TlFkk9rs%J>C`X;88v(Y-&V%DTe7`8)nZhO`-)-d0>eBf9n#>cK`4gY%HN z>y)YdBH>sXHRwwYC>*mSF^zARSeM?@*_LzH4DxpqPNA^Wi}6=_(@+|S!^x)1c6LSj z=`NWKyVv1ILos_3^Wxh726~2JukH5c+bV`-w7AcjhsW`GkNtD;9jF4+>St00l zlWCqPf1T z*COq$+rQw3{_D2+#_M>}1FJ96Y;(9!jZR zjJr3u45(OyCBlfavs*WhmWY#w2|DlK<|WA&ZEYE-spDS)=)+bN3w-qc1ZTwfj^9#j z^xZ`uB7YY1{D|siurNSq$&baSBG8&Aj%I9gjJ&0f&WNJ1Wae;ILu>c3ZlZC20Fu>0EiA#~MJ#~H-Hdp88eyw%tLFmoY4=i@SCgvsPW5FVGL#>$2 zk6j{jgGbP_{FLfQhiwNhkTxo#Rv_DJ;qLtijR^2yq5*-T`x#Z>IE*Pae^hFRwuX3b zpJr|+wo)Aj)((cTY7vd=q%W9p>K6WFs}Zd4TAg`T&K>C_YomB>$wZ30+VKi=b!0QN zjqi@wr8;fn_0r`oY6<=2o+AD6kBaVEz%6vk{-3^TJ89@?FK+6&Qaa?%q9H90F8qCN}3ixLMeXKiX zzjh)g&J)z&UqAvkl>Rb9k1u#PwbGB_KTMV~f&8SkiC@vHhdCW$euyxH2Plzj^`$3q zy}7wbstjW9^{>G#6La`SkaNJ)N9r#w-E74Zb7t`; zTs5hzb8LOcp={u=rp&6TjYmivI=k9Ngf*AXd2*OK^>z5~{=cnfB>x5YO#Ihqy=$oz zeYB8Ejr27(Df_fDrxrVLpRFh;ybPM0ufqI?&+x9l4)w{y@W5m`M}@_y!{xWCRVsF= zh62ZeV&C9ix^?X+`$-j8t3Z z&y~+*(m6$1u{Y&)$*(L>s)(f82a(7HL6NAuT9q~bf5xh+yV9JfO+a< zm}uS^>cQO>z%(waWbeEDDArOpr(HhUQgSyEE0eU7KJwR51j#-yE^vXKNY>uU#~fuE zC10nF0W1VZy|t0xVr`;7A5+~@OV@jr1t`Jc?53&hgeqm{E~^Wt#`PCA6JjMkY*&Pt z`UAAN8-MqUpNSjq{pE>j1XcSspiLmZ;~hwQtF%Y&Fe=k9^T8Ha`Nob(w!%QVqnruq z$g!|bZ-NM(W$ni$z2(=Re`_|o9rP|oPjxrXry>Io*dPiKYB?d6w2c0xSCs##!AHq| zZJ#EV7I^R^6#uR_?yHZ9g(;)}THlPya>+DT1N0N=RJzTnUw)EbKEq6nV>eqYJOOyk z$~KpaVX>wn{v4`F`ih2s zBNbL`rftx83;+mk?XNSoUVFkD2tW+D6MCrHwGk={cJ`A1>q%kZAB0{ykDjZ6R_JfTn94BSYHnx_t?0H;~S;If#*T)ay zKUw}#-)^a#c-bY=PhV5m6tloIvo@a%KI58tx#Cb&S zYFtsUSMRu1#UF&m#c$BX{QlUv|IH&`q4wOmP|q!R7;>a=^urZ@tRl}ndLsL~aL-Sb zegDBo{FXGJ^Dm~z^1Vnv=OGTD<<>_83dQtN6^dNpjWzb4_Eh5h8oe7$6phYDQ^qQx zkptn=#Ma2dq1X#DzZf< z^SOC+@|3LfYSUU%Yn4N8qq2FIg=wD75%Oc0G~(CqMrUlD9Z#JkPaRExYXs2(q1IeZ z71Fo8mpN-hgEFtfzq7J)Oy^!c>Ze(2U$EMDbxLyjf|)Y}p;Rslm99wzerx@;Q|t;FYT3KhbhZ(>-1T)u{={S_Uk^~b`|CevER zhkvZ%*&O<}hZOTP_DwWNK&M=+Z0m%c;r{&?K`tSw^$y~rqL(aGZ_;1;j=y;gvJB}5 z^IaQwNQ!Mrtr`UtzqA^e1jb&rkW`m@2 zi*Xasq{(N!rm)NAqWhqx>!9uzu2vqSK#$iC8HxsL}uQm)?v< z#H3Dk++*o$OslsNMjBzQf=UA+4+17Sx_F>Bq$pIxl461eZLc{X{{+Xh^Jcyd&h(EZ zVjo3jM-_xp3NRUXQY#6+)MJQw!5E4wiAM9Ezh@un3#GyLGB3Gknm926QDXtG-7Cex z_=c~rWpT6m&?8o33I(ZYVsON~Xef5=y(vxiiGpQP-Uu;$q#<~(-Mqeu@b;X)xP7n_ zUtiTlJ$qtZ@jkA4#tU@J*ShVhh%`bmnNqX6j{D-wE_(fS^xaXH%IE2pX9H2(C?6}R zxQ%xjQ4S%x83MW#$)n6k>l&^kI!~UOXd-*@au2T5Y#F#&#U#kN7q1GagS#+uycE=N z-P)*xMRA(OLu_U7J%VVak_I-qT}$0D1}Q|`Eh#m83HVfA^0a=!2=tiKc#-7*F^*)# z!AmA@8-7_Z{3c|IEi6w@rofUr*lQq2-LDvoBQh=Om&9Ba<3{ zq2k>0Rqr2t73Qg7GA{Fb{3NA}5F{SET&%T>2n;3NEp>UnbI&>Vhxh&udp~=vwb$B@ zA3K%ALqYAjTxgf~|69JVHO$Aug1}^jSAvk8xXH7VQ-pR7|HK<5Syk`3w-{6(42N|RA$S`6aD1xZ>n~0F#rL*Ex%!3Oc9K3lZsRu~ zUnSolr$CD`G)vt!OvgDg@e)!E%H`9;`S=M;{Wg%6s)}E6;`1RQzX$3zTY{Gf4x^wE z#Y){R>nf13?Eb$Nc0NBQ;8(qG6(?2hTHTb>LDzL3L^8=6077!ns2^gjYobee!U&j^Pg zJo0VnqA!O;p4a)GY&7-oc~6p!52vAt3I-_a`7a15Cz4^7;=Wsz zUkjo4!1bQhl}2Sot_BM`mSjI7KQ|k4Cm~9PV!RA7+$$j(mp1Bv5&#8?F?V+NnLAS?BPZihv&`4m#?3U~LWLUWC^?($=m&emYAxsH)3EMwUK5$U8`hp{ z{i2N3&*IIb>CD~7^B(bF+`poJ``v@QGbWCA?eS!V+u!fYc}aYM_+M^}GGKL@Z{JMg z{gjEULF^w8p+Ii<_(a?&k%*&PGE%5e&_$A&Y>_x#q0k~3?of=AIl<6q9n1&036|He zQvJ5}RiUFCE3@&9QmJmq9LXS0D6u1V9EB@u%-JW_zgTkyBN~p@lRYCkD_Czo9g!=} zZ}N-jJqcS}&$Y&9qr?YeW+47Uiq~0T%Z7T?M7? z;>YBKV-NHK)H6u%Ye zAp{lX+c!D9VYOc0{0R_Cw!FgOHhgtPUOjan>IMc+jCGIc`6UN`n8OfF#M5SrkykDS zDHlh?1~(ytoq;Q)b6Cx)Y2OILFBJR8_ZtLKZHgI57x|Gh8RKv28M@g{;*i%p-0Uf- zMc}NqGZt)Mg%Kejr^l0Lrp>D7FZckcGShZ2pV|BI!YgCs3uDoO7W31+xx;ruOSAb9 zJE;0vwf`GH4AsOTnaQC+45<-75hi0r+kK}1it_5fK&9-aSeBw|;mwkS^iok_sa#1q1rm+qt6y6;gs}JY z0-2?xUg!n#2?QA_c>7=3?auuI+vN@#4u8;DU zfa&ZA>ixa+zVcH)-W_6=KU|dJgB?1MDb_GK4`T<+qWU+Yx}72ihTa!f7ZxmDay3hs zpOFY(2?_gEq5I?^)UP5o%;O}jA?1xFJ7^(U_9lUAn6|U#!_z%eMaMKK8^BWhRu;8m zd2~&Bbhd*O1<06&LL;BtGsp=)8+;jRBxT&^P|U2y5lkk~)=$tJBV{ljlTRy!+Y%f6 z#1|%^n>6WPvqvItB;z~M?2D$Gx##hqy07^B25)yX&6X0Wiz7TJkXroJLt>6`5$#b% z#_O55N(=g95T6YpK$XMYY&818T92pmwKniDZMQ<^R|y7rncOyP1m-S^Mb$s#`HaKP zKDcf85$o>bn|~}kkjt1iU$Pjso4*XXk-RhaEJ;-;X7&+$+<}RcvU0Q&EhKEzc&&{w zGV90vzLM~xvLBku=IOKTjvwBEtx6G4v;VAh_D4Q(aqYRWE^(XuN#E?NCU~N6oD!%j zSZw)@y77-@%5@bx#5$PTr`oY^LeO#wQit!TD{S`Ey3y==iScKA#0yLwXH1z_YdNp+ zYMuc&l4hCRmMJ+IiV^^wXa^5y!g~z|%@&t8VD&BnJ~h;l!IYHl((IQSAVL77mBtKE zO%oG*TncMpiF?rRcvt{*KYN2s6Vmyc8-Ro1)+G>McjObp znXsq#OT6MuT^)c2U7W#*(gxUy6iyrIyxIDU`ONjxF|J5$5Xy<+Kw}liy!S$7tnf>; zpE6>Xaf*N;9^!kSuKxl}+CCxHk{!4hI`mTl56+$p4U9rSDJQ<(d(R39zz_DkkhQQ6 zMGIROsGQH|KS|nj^)>Oz>9SM**GQO&PzjXkNmdnr#iu&Qhu32cH4bj<$m8YPCj!|r z0qIO?vcA5;h0>lRxV;o-Dz>B(U3ZAdtDyvWy58`$SpFruMi2rIQdXkpqp1AsLrEMUNbn6g{Cz0Ww=vp1X|sW--5knavaLnGl&j zGY%T1Upj(`BM3?zF3aKQDR1f1ZSU3HE&i=x`3J(%cLEKYvBBm&78X&$izG-~Io66j$L=}$ha z5m_i%Ub!F{$C!Xuo+#oE61HuuE;VRQd*EQg%DIg38zv*z@?n`Jh$1vz3>x)O8*K6} zLlT4+qNYMYsDX~JjrvPPHwrJSeiB3zrAr)Xm@bn)3hHRUarb;9IHDWmD^xE~XRtIc`*x&h`!Zcm2Ti-IcAp=4T3&1dTyhr#{PWu&_F;~?4de6b)Dgr#{$YBCApJ| zeN>7C7o-Yll#C-^=biw^; zlCiwOW7!1P_ANuK zpr=DoI^1EiOWzuri-kn>$i@8<=&JeIlm8KyQ#BfN@Em+Ztc`c>#~)QmCnQNC21HUT zl_M04V<#-cT38|uSS7~DQ6U%EubIKFnd;R6yU17kcN3n83NBJ)t+Ptmlu{|y>U$gDAD_lM4C~l@N>u3|;xqeF z|6Ikk)KEO6o21ZDN%IbrMuafRS$X!g{-P2eDmg1%UKaLOLtiWDF`nQJ+a-*@Y%9DV z{k+!~bbcS}3m;iL%xTzr?iKS2ZJ}8$avjM0aM}kfT6??yeCFa6T8FwGTu1Wq?+Orf zdoC7qyCG)u>_pi4lCgR@%oKF1i5_wn#LiWJNg6sC)Iuozc+N8+1&d+^Bn|#yB5!?p zCVRd^t&(i7isV$qFGsvigaW@JB~iydpH|&_cSt+=*RDSiw9mD~q+M$1IeH7@0q+p0}&>v z9Tly^G2=M6*$7ado)<9xFB*e>d!@m$M>gnC$G=PGGx*d3Y>eto^YFV>4;=PS#dRE% z(b0-$|LT66>6XmaSCf>)?4A8V6l`4=-ke#XcwDS9;K-Jv=b`^k3ni;;$TSFsSBMhM z%klCViKdE14%P4WRIAJ9zC{zJm4lJSj*?_7?0p)-Np%nCo5glNg7LO5+*3&TKWIJf zuezQMI~KuDl2-IZMg3%{_VZ$nG!U<_u)TDE89qQFG0HzD7(`0Ubx8ggXXYs6U2mzC zA`z1Gw^gFM(3p>Wx&-FyUzNRbL0Lz4Is4x-7z*DO#lF@0f2;F1Ul8BG13d>IgOBmR z4$@!BkP^qpP(=qB+Z_DZ5QHvYogp)O7MW@|sYx@U$xXEZ)HA=wYQ>0M+$AYtrR58yxWQ}-p!gmhu)^)R+r1abF z{_t(H&du+1usL-1L9by?fU1?GqQyYM1I|D}Nn>;BAwbd~6>VE|$L*wdFE(=F^R3;E zP+j_x^l0CYa?61x>U{%}%c{c-K)2Ug5A*FJR*g5~;{fhi-U9tN%+Wc19}qX#{CaX9 z99#5mwg#lpM1y!NhC=S1SEe7AYJ(co`su7i^TWwN=44~>1Muh$*ru05z4z=#*eY$Da^l*!aZygWB$=mw9|&s* z-g}NRe))$N@?s?38RAXMB_T+w+u2U}5)?`*73wc(A|VBIEij4vs?G^r(z-mGXc3?C z|4GbUzx9im^!wqy=-%@QS!-cV%(`?J8Mo9-6wt&Z9D8y-dR>wSNLx^t^di=Ul;T=F zP&(NNr=@l2e-HcsH8n9!a$WlqcKM-!kN>>8Gdv)=+5B5(ktZPxaV*JBKJ&_i%Kr@`?Tg?xI2Q z-Sys{#(ti-7kp#KFcs$rCB_(N0Lv$)IiivCCSC7J`|qJOy=PduUCwwHhH{8!(6s$y zmileF-Y?M~ExGEb?={3`Qq9$4^KRwv9&0HI&d#K)TDCsJ`p#xCaR=qAdE~oU=`FYO zRhD(#9qe((a1hz+gvBIWleqnrbx#E6t z*EKbLPQj$MG_baVaiebN_7Y5MY1hwq)G;9+_>eB*2Db$3UlUYS;rBY+Y|T}kPB+3u zVXB^ZZq@S2dtt_HI7&-$PWn&4vp)t=(c<`*F0w=Jq(MRGNLk0q{Od^qj_BVD0XNT! zJ+6kBHU7Adk2)x7;`n^7pln;!Tl($glxBb0x-s#zjrGV{cVdqg)`})onaaRyqMM(p zm2h1yzPw*0Q$O)J$D_H02}vkZQlon-f|#?Kv^SQt4&DF4jM@Vn$V~#BL`@`Hkh;X{ zP);RU@LeV9&`8yP^(G7&p3jtwPI+Gdyr@m%bW<8OdI%HF5903qcD4!fL!8J9{Vm7~ zLv1)s{2Vw_t z*FrpS*UWAU0=?e0-2!|H8ZMRFw0~WuwfOD#S+s{Zpsx8J0NOp;jep+uY_Xr;#3}BH z@loy;>Ah|6EWC#g&-nO_>-N1(j_zlz9HI4L!W`keECP z{tIK!SyyTASzevdNpKR6HARSX`|gp<{Mx?A3N zyhL8TPqK|gh;74&l&4{%Y*4zz-r^>Pq+lgL8$v-pT0=63BLh2W42SwOeBdNY=}c^O zUxNbWt{VUDnm$Uu!{ybh6G^F}^L2SMV)!T`e4bMsv3lkLzT}^@#^6lM#)txBuMv#g zD$vlEtc`O-uD@*83hT!Y)BmfKSxVF!ByR>sdGqBH+zZQ1NKk+YSzF0{*#bL*$%MgI z6l(9c-EyJHsLj}CT_;^s608uSP&4!olbj$^3^(A$$e}t#G6Cq3iMr%J-@Lm9(lnOD zUJ)u#AcO9UkF*2jLkpnycG;78lr>n0}oJl&{MG zwpsji)S4zQ$J0||{xs$B8FD#q!dM4$kAoKXlq!{d$+W~$Q_&Vl8d~riBFYi5s`bb@ zl5%G+BwZP^_D&wfrSB=^PNxQCb7UeRHYQbmI(t9JwjUH@6zU<&OZSic@W#kS=8cY^EdUS9tTA_1Xf1wQ=U&G5dOBq|ZWe&MB^J-r5XLp(q7!nlvvBU=#j={HhI?L{vqLiG{lbE4^ zZvLJ`)8Tf#l&fy)cDj|d^@t!X|6+69Dq((OTZ*buh3&9VmSfCcZ~0Xi;VWMFrwv62 z1aDrBSRkK~7=cnCRrGo)&)+_ZZ@2cn<9s}kx_i7mO^Y0&Lr??85Z{mKHik$xV8AD? zm7C(Ba3!W>jEN|NHR%E-KxxFa7JD+ujeO~a3S;=`$`jUKRq-fi>d>e!jy-j6yW~eR zs{Jz*Qo*z$Nfef#^#oQ_kizUX3r(AaKqRBz@6C)KE8T=Z z_J+;6Y14R^Y6*TX-=m1fq5&&P${lRCyy5o2kokWr%oy~@k^dtx=iwuiqj%ihcyo%; zPRY9dHoLzde*Mui^b4u!QQti_t+8b1wD9^P{`~yBh~F7v`{m8b-FEuqc~h5ZcZ(I4%UcW$Abnta`>{@hrZ?9P4k{vay zRc3yWVUy?zmS?Cg@<2}fkJ>$dpDNIYzst`%m#Gk5jzB>l<)tMi@hV360;qxz&Xw`` zko>1ctMOp|MQ^ccMA6phWZa_Y^d8;z^M?p#HkxXsi}Gpqs(rEr015@K?fn*8mi!FMwtysuVQ*;!R#gc80o5AE%%pxF)x(s z?gwk}r@w{!WokNli8_7~^vwnPZY+{40wl#f#)zDb(mCLmF}tX-Zh1@f=!|^DKe@$_ zTCsffApwc+H>yN!D)7yjZ}T?tD}+dn^Gj1zbv0*-&qu6XmY$id8Xw6=A*#S;7?_Y}YJJ`zguHm_Pz^-a!`$lRv$_0A6O&$m1zw-A z+_;6-VhsB^3OwNi@uM!9`ATtmA)H}3m;n6YryEG-j;IezgA-NN|?{U6%XB9TEnx!p(%k$jat6(+!Z{b$xVl|eqbMq2J9Q*CH7EdXJV*lwi6-|Tyq{tmdMIxQSXkGw3xSV%%^<$yvjzMW^;q^f>L$+F+7clrzrsC`X9d<4D^|G$er- z^dGp!VgxGu5cB8JO2^R(X0a#iVi(C{%x=1OG2YFt9Qw5hDE=OzQ)eGHGzjmxQagG?4WEP+R*30071HUlo_5t`8-#zb-ucNB@w%5C47pG93Tc#Rd|A`jBb zmxJ^y&5kdW`6*Lfw2L)r6dK-z<65#$OV!~$kf`>I&3J*Ge=0!IdY3nL?65>29(v?9 z%=NWSes67bN#AM7f&7vLIK9f|6TR3|co@~OC4Y$xCug#poez0Z;``d+HC2)UqFr!3 zj8zo;7icA8OM4S)zjM*%fk?L|An#Ns2y1=3Fqy1GYJUiYe@q~_w-F39Wm|9++yr-e z>FADCf}mi9sqb=qzXs1DIEeg?&#J73>hxi@6NTx)lX3>QY!ZM!{FX>6f>g^@mm1%; zYwd#sWBfAoLssQL5$`Yz4R7!pY}77on0J+Ol&Dke z2f03|3cM+qnVYg%n?7|d_}^A8`Y0S6tT0USJ{Ki~$2k|8m!(R@DaSq#Z75gL(Q&}N z^((4W^47;;x5f1HN}yWrWEnIKWgh(cVbt9xh02gL&uuc7r%Y`~arTY`tOp?oyg8BO zU=L@#_V5a|>e;%zcxn`_4WUOUtOpt!Kk(>^sb_Y$ZlO_0uJ{XXk2$xX4}K_0k67_6 zPqBPRB)AI|sB7-RZ}-;o{f^DNuy9TF)x2NcSj6W@q!rM}SYK{*DQP?1P?I#zN)tO> zYb8xXymETbw*)%r9*c0Bd|G_yrxOZf5~B&C*zJ2R2&6#QO;Nl%Xkdl8!HFh(>KqGf z-4CD+0$1dfe_r^TEKcWliLX1GR`k9R;BF0k=Udn{+E7+4;3F9B+zCPbPse{HQ}Jh1 zZt6?3f5)&wzMrBClA4Ei-6BafS*_;}db{W*T7G%XP zm}Qp5Exhj78cFoVB7S?rI%@S-;c5UK(yBaaN^c#q{>rjzg9TvW{7%FqRm=y{2++Pf zAh3+Ulw6ySMp5xo>i!tq$)|#Y#7&1$+lGHmr%Hk19k@x>EHrC7_I=thw^Aej*Ws)_ z>T?=>-RR?`FQ1397~>2s1BmFXCgrAb!z=J?SG-Wb^!vdI)TKw%0MM_gFseZjokcta zeN)Q?HY@D;&&%sGwlQ2VUL*5QpsZTR5y9!Oe(4p^XhgGWa z)N-d|9^>IX9x#(pSfl5JRiU#3Bl_gy_77slz0niQ5G|s=8J+Yz<W&E|+bYSM zYOyy30U6D>pYufRi9BMm(!IAj=;9}pq85uxI>Yynneu1ws!Ew z_u(*vhLlqsp%p$Q&-{8w`u|#n6#ruxf{kN@tp_hhF`uR}Qj87)r5~Y21EEis;xMpJ zB84PLdf8aCfu)T8FD(863f}J@qXlG>Z*KatdA;A*q-bv3or7xBv4hX1@Q18Cg09=i z*M0W?IeVHt-6F$(&7wnED*^pW5CXp% z^`sHDZz+CvEX3*$Q~r^avr4$*&+#?+yHxpb_n*vn1V1=NK0dD{hPxt8^az8to?IE{ z=5yJRL%U-`nc^DzpBbS`8@2srLMR&xvG^LX8fM&Kbe_HDSh6LzwVvdkE9>=^=#Kah zbsDIBN^wmZ&}}9#Y1H z`zcm1&*3q=pY^-9jh;4A&@#?lCca;@K%etl<$v#sw^fzjutDwn5cI-go*P$lBtW znOWlo2wyp%tBScFMra;J$vRp-9Nqsm*~^d`vIYaJnGU}a=f_`z2AA;;Z6@g#u|5W4 zWdhl5#@ITt3ew*n(k9HZda~h)Ps$EDew!L1C$};Hu$AOzroTJH@HD{PM(Yq5(f`#1 z@#$;jOiVtmD(2f?;%9?F2=e8|$>_8w=)dOCZE+l(vfTXf;NJ$jGIb!g4`8Cc_Ns?u zpo{ymEjp3pwoTp}Vx)xAm}@O=kdYCx2#MunSww%&FHb5yMyWek2y{y>cO}lNh!Qat zRkP{t2@bcJ)YK)Ck4XoaOvOK@l6yyM&JAwaeI{jC+)x}EV*KmHuBQ;FXRS_WOVk*F?Vrp1@!fLpuiMOQPT9q2WbDn+>X5nKAR&z~ zhGdjJXi!~uJ8o-aQ7e4OWR0&s^+S6Au!%%DfnT`TgVgJ_eOboG{q$FmHjDA(d`SPO zQ_kpx8u`#j2_KdW0>UK;C#Cpn7O_&Gj0EoWq0G%`rqGaBeG{VH=(I7M?`$-(Vuz8j zi*+HFU=!gPRT`Az{h1;EnzZ0W?|=nUbSkiP&U5M&C6A%pf8W%hKux{QVG_E@|M0bb z#WYjrWtkuB@z_i_^q)=?D!n1-?;EZ!)>uj_(8X*LPW<;TK+oBQgRG{1KoHyQdR|&JNt!|#Wi_MtwlGbhbd;pYLo7?AMpaWJg=`5 z9S--M?GCg|a7x5|$E_d8ht#qdb#X!if4!S@w?KC2-!k?4`;w06=EO3f;)w8}_eYw1 zDyKU7s%ZB4f=Drb2`3}ZfD{RCYd|6-(Pl9|jmO5)?i*RsG(iSz zM)U2qh3WuL#>y9rdn`P!K255hGHD%n^PMW&`j_}0*p);w6bdzlLz*&&gh?3&wW5y9 zr0Sw@i0%_ocSb-nx)Bn-_^+(|bD$@ldmoItjNP-Z0f_nRK@c)kX!N3Zqg z=F8G8zgjXWLn{4ni9RHKi~v47pKV6^x$jdZNk&=(ik$}9N)F#N4K(!hFx7`6`IpHE zMNHnRp^q+=F*Ape5)8R~{0kBb`Cw&4IXrZEVM~-}t8Yqr2nUZBDqi?Dx_Nfy)2CJtf zNmi+Gqpo7bqI$&A@Wo>BeMRL9FYtvtuTUN3P-(zaHI~#g>V^8v3~hw!FPVnMnHI_j z4Q?p4Yr9H_0L35fR@jLV5{jGuV>K7_fUP$bx*={;(E0@;I8-CIuK^RtQZHTheyfu; zAYE-P&_VZc!nWp=|B{xJ)nN$=mMXuoU{S97kK3|< zQ<~KgnAF@Tc-Wo~!WFuAYHI4Nn za%bL9I67+RehN45e^((2=vQ>dsbmMqTjE||*B5{E;Gx8=t(!D1(UB?9k{?a(Z&YQX z(MiWOSm173z^aOgRr^OvgriZV&GWgWq#u9JfI9H2#G}4B(R>Eo$JB5=7cmtTY`vA8 z3Tx-sx_a~4`qQerf-U{^d9FP{lL~)nFB0xCHcpfdRIUPmPGmE{M@-w`6IF#Q0$LU}>4(zuL!}GndaN7$XmuX9c9S5-dB(3D3H;)wI#a9X8v|zSL z6*-GK1g&7Va6tZ{(aif2qwk+;=6|}k%1w~w0Mo6%vM}($-8=LEkl)eze43=iaeLqz zuwMkU2wbFiPAj~4j>vM;*T>=u#A^Iy zmv1RS>77;jre_*m27P07=|99rN=Hr+pPd?IN}67V_)C>CUIK&)Mgz)q^3*+%V=PHl zEHGyfHAEM^vU1j zkr$$TZx`|Q5R+?E?aN;p^7^Yh%WJDwhsSTrFk;o>vD9&tFKCGMwdBSqYRrB6;eG0B z6m=0x`bxHS!$(r?WGRc_~wwFq)0k7S}ZLeE--T#D-w=2 zII?u4PNwYx8*5RQ{t5wt}N4 z4Dg4eeAVclFKl-aIbf>qz04(%{SytU}UnI(h#|9_@gG zb7)lDqXY(TL`AOx7&G{&{cfHhBK*Y*v9MjdFJ-3-@rX5Xt2MT#Nym;jNBn}~=5=Dw z6}>Kg`G|Pv78-7>kq;7lR zp!4JP=j2aSI$IB?&vA^Ph4^g@^o2qN&X3xqm&bN1%jT$H&xiHvQ$ zOtICXh@cf8Bg$Hm6qZTItP3FQp4U4~2n&FqH**NcK zsMzfs<>*WIJv(eyO2zhoB^xs#og<|h{E7n;alu(}^vvQqtbJ1Tr-Y1!x+BEk5cQvi zy=zT(G-GJQfdGK|8nWaASMwdtO+ixc&jhIXRksUKIic^oP)nl1ef39kUg-y}2?{J`|A;PM8Yn^i4_6J-#LB4T(WLftle zjS~4ZQI@Cn^lQ>_p1j78Gf$nRENNImgRSN1+(`Mm;>K|bo5|7lC3*c&SYPME=1VGk z3PsQKamMQ}O#!yKkF#7aihz)i`CctrM&>6og)K4x)$Fi1Z%YkbWZGdkt4OFw%LT@xXu5GN}~B)%0#T>U5)UzpIto( z=w=Lhz6G?H>_m5aUY&$k^z-F63rC#X&Np8bBIl80LmbyN_n&|1t`GKYFnM*AzusIb z`wzB#X+sdHcM&2{cRj+iBR^F=k_fCG<3@*8PIrEwl}JnvF1NaAv~b-urxJrj6FMFS zj3oCPfABFjOwc8W>6+YI=?vleJZ|KNS5SaHy+F9E(hlabH^s@Vq5bry_WZnR^8Eee zV<;O!^1^rbKV;fU5Bcdx@M)IIYtdWwZ?D|b&4I>a4WM3#wSh!W`o|oRts5m7v!6dT zi(F1X8lYYlqr#=$;+PhpU>kyh=6+z7qr+F;2*8dRlg%1Qa+-*%MgOkt9j8if)Q zr3OBClY>9<**K_$0BC;qJ4Ak&-;JFp@?U^~z>l)!1Qz9!RI3Zvig{?b|}CZH{7p}d4K zr<3+=RM>sq zYQW}Z7%Z1R9NNzou|Uan7%ZuDk$8Ccfm#x)+TYx2lL&V1`TTR5OdK3nK*@gX-*Xmc z_mejA9Cr(LjV6Fg+dIN1KWJezuJ>Eu_qWP2JkMMQcegf4!5GR z4i-BXR-#cFt39w>Irgk2H#FlLi6=TA>e2DqbEIf@$Zk9{OOD|H?8wz8`p`g${iSplQRPRe!T{ejHU)xB4j zU4m&)LRZ%_W-GU;?CtH>vzn8Hqjlt?W#DS_*oYB9lZC&}FWw@Oc!JV+9D9)8*C0PXl~d?UBL$vNM6C)&Ec2)`zD zk!TQ)f2(z^2csIGeR&jiT6f2w+#Pb?A!Iyps=xl9k&Fs`t`v7GyTo_O(MIYLVe?T% zSNAFCzKN4uG`uZ2JaQRJv|(JZRa@=+!DnnN5;%D!wd+~CZAK~{>a1N`5!A2gW#Y_@ zTspquwpm$V_pVE)Y;h6|vbNv6>qR<2r59cdHhtd1_)Y7F2CM;FFP2+~xA}Oi;Aq=0 zYb>>+4o*N?1CZdR0XD20QjIjPk+K&Bk>CdwXsY`xPjM#_zOWi%a2rAS9x=#5C!_y- zGXZqILu=Ycy55yAo5Rr6aLT zI};oAwSM3i^1mOct@w#au0rEJk<3D>pw&!OMYuJUD^0K!{U&DkQF(+ao0tV^Y5CW@ zeIfQ^4(TLVJaIC)E2^K-kSBOZ!6_etKRGn8rp&fvi7UoCi5Fu8m!GNOppuz1Q4ZPQ1bMB?ekno-h|Io+tG?r9vUn|La$e| z4TK2T^9&#^n{r@kNm9qb-xfYgA_CS6W?lvaT5|7HZ~7oD4mc+xzZ6NzWqU8;M1pL% zwW-i2hAOUj>Ml2xbt8??Ok-uSoVIKQHCWD<8T!Igk( z`nzTkqn`*Or3B|?MyiscfOONEp61(l-u?7qJO3`k`Zbzx|I@^t-@dVy2d9p_`_%*j zU0O-xU9{1at~wTfPY+=YY-61o(K)BO76)zf*&&_ymnPKc*2J;Q(y*`&;8;|0uu?=; zq~hCT7M;2fw%02P=3lE|I@sksDCK{!n3N1BLVSx;-VE8<{H` zHboHVK0V7PSfdTWL{}r3Yo{ocYf+8TV$~eUw2GoD zw1$Q@R0QeNlq@C%#vgRojS=*3n58|?oMlZ?I-fiaxbD~kI!zgDJ5BCG?{bCa?T)%X zucCQ%iqKFW{?yE|9ZXeVviQgI{U_N>CcXkJFtK7Ll`Dl|td#NfE$C~czoEjn#-ML8 zrNA#N^I~+tEas3zPinCy%h4SnvQ&`8r?~Lot)n9?@vP(J5+<#mVTTmku`%VuYgS;; zSH``jWn#^R{z82BVpF&kv~zmb5x2Ufk=BbT(+tp^TwM22!Sl&ZdLGIN>%)?*eO zf4B7rKzqjvk-GO$@4h6no71X`RfUtE+s>*8#2q-Xddt$2PoCnk77G$O?%yu}xjP)n z9_2TY%%&%a)LDps&&Pd#kn8@uu?zWSFU6-vYtni8hGw-Ez2H_lW`RE4&Fx;uXWiUu zH5AKK`WB$>EER^n+_VMl0gSOzCeUY*8O$V1TVa}K%*4bV43r4+W2hJRT&y}b-`*c< zcm&-2A&EjEWm3xx+qmxih97CBj#?<$mh6n0hfP8VG%4+gM@=x--s5fmiP*A_I_1Ii zdR$=Atr}g&U7&IVH$4m8_HU}7cw+x9v-#sao9f*UfFO5<<(+4yoqs*1=ZkkZ8tHE*5hnL-4JI87JLuf&(^f-8xPqIzxDsr#Zd z`-ke-;oFJX8uOn;H!*e-sZ_zPGE)}O-)4Imbi2pwQ(ds-G)n&o{c6QOuD7LIaSea} z7Ok6#Dj$(#0xLy5wM<35-qUaM9MXI?jnRHDE4cPxh0}Q22;b37I2+3$6Kf;5J4@g2 zd+7~$Jn3hU7%SXq5RTalFEI)F*ROrlwx0B%D?jX3>Q{f2E9pk{rTqCef3)9ylDWt~ zJ-nh9dx42ijc{F)ssY2AN$4FK4emQqhwq9*e5H&(vFRsbQ!SI|jfv$7MbX_E#chYI zR#>p8-22AKXXfB0s1N)KhyM?IZy6QWmbD8PPH=Y#kl-2!E(x08l0f0^R=5=IP6+N6 zEV#Q{f?IHRF9<;kxs}uXcIUib_qbzxzwa3E1KGRwUTdzY&wQp-49;5@VU+0acu~wO z{SyKFAv^t3cflxHeNZA$up0cDue25C_87KM zdi~t`8-dNj(~A!o#GzN&-3ha!DeX6QpyS#sVKCB|-VGhE*o`oK`BJ1>_9NzWBV|`z zIoRR2zj1Q4S`N*RAtsYK`tIRTKY7CY0DONN8GCj^dF)ng$snrJNEthl5t%I1u&%%6 z!xoMFcnW#?48I2HfGTRyi@%_HI?{hS{Ez5lIsg&nlA+WE$boX*bc$yTo7x*tN`%=x z!<2u%pyqgg7V{C!_v!X4Y4TdF@#>7c7wGd~o@Q{B)+oQnPltn!Mh>qClNeIsHI=RJ znO>c?xIeYu!t!mnbD=B3U}T@`GoKVE7oZd9Sqwxkcslg7ZyQNM+2NjTI~$B!&(OHF zA1DXxGYN+xXDxP=9Md}g!@(H!+XO+yCD(fAuq?D(oUvpPwoKTdbZ9@J9FC6gmJKOt{h*!XdqWSEiA;@0^UkZz4^lHI|o` z7gtntPxTL1S)Q2nsrLNt zSf)E0afO6m1sbp@)8a%Q-er3WJx-kX#*c^uXGRx_oBz@MAezbjqFr;})0&rFVe4!v zoxAGdQO9PUtY^>{7`*1&fh=@Y?Ise{t4%y>H1YwfNN6v|C7hU}U4(c~EIqjLu>%p` z+yPiM64>fSXmn42#gI)A;wDNGiY;0(cw|4bHNTNtJha2f+K764Dvx-nCpn@=fV_29 zyd1V@999icuMpE#O;d>yzoL|DG<`eqrMs|-&fw~K*6CX*O{}k9FFt)ke=c8P`YDmIII^3$)vn-Q6u;1!xbR2I-px$$-hRu&sspcB*!$%> z+l?YcH*_@nY$1Gb!Uf`bKUh)=YfqY+k1y`lo+jF&j%--3zZyMWLn1z}JRNTGx~(C& z(`#{lM$Dm?5Vm&*{r?hZ%)@}ybZ@acg!2OzzDVuKRlZky{dmjq6g;S^dkVS;xhhUBcsXq?t^!l~8W*ZM z^{AlW#LRuU!N{#$!_PS4rab;VAo$mh6j7s0QfVVmFX^;E&V(0O&#RSns?G8{UPXLLa;?M zt%09L@{_TmL@qV;`)M?L zXUP9_g;16LQI(|KXqKXGEGu{@?*-9lX0!v{5toY*ojRMgUyQ=h!a0ypfbatvp_!6> z_t4cXa8i`K*XnbVaX;Qjswg?S_EN!{g<+p~W`R(F@&or%H?^}eGCBBsAD^2u?m@);?pSpOV+(X#{cOI01*J$aw%a>2 z#Bh-nJIm9GhNv+ZbT>lab@xNO&D)Sx&(j0#%7)tC-A}^Bj{Q~UTmFyg{B^=L5~OEZ zQ|p`UAR*l_#8-ft{t&smJ5Xa^(T zh2T#H@OwRO=wRW}sS$7dgB z4QI2UTviLxpf++BxjBRT3h2b$FQ<2_%}8tvibk^=#wkrM#EVxHeIZ4P{%T*jY#q_r zUG#f)V#Rva_#i#%SMpD{`=rjD4sa{f-VtgSiw>R#TK9Wu9GkV+Vtq3DPjJ*;XZ{3$ z$ZiM>nDQK{d$XZ)P4HiZGgMNNe^k!O06-qkVsaUXYHuI->@*k#CTY*xVxW?63M3@wo~Q0VXD9lluWm$;d4_gocV^pqEnC+1ISEEqu&p>G^hJ&~J!!Qme9w zlF|1n*JFJ!Ja)NAaG=_iv1vD+jn!hv$4JGkm>7*}%PsW%6cDv5Mk{_O1EeQcMQ9RN zC*Z^dU3oLQ%iNW2ptXut6j@~qqqG|>HdH21h`l_XrKye4sj#=4t1D-H;#js<%>|!R z(ROg+ouO4i;U|AunyA9ud0Sl^aNq=HlOMqFlSwe143yfsN|#bEYehl`uB zyU$BK&ux$8b`z1T`OD{73t$Xmw67Z*^6pkoDm*WkL5`5X`9?#b7@MU~Bz$wD>pNQ* z83y_6h+Y73j7aeN`g~|tfSl_1v=B@4dKSC{Wp zj&9(fH=GToA9-j(x)93@oQ>7uJnE&7^32C@5+jc}s3fHGO{9zy#M0LjKuXl{cOL<; zLHrg96K8#Sk64u*%IwQ3jZ#?5mqIpNfX!Z*OLO95qAZE?=6W27=dDPLnj#cS$)z*v zF7%eV+duKp^}I}(^+d!7>^u3;^nJNein2MnLaBMT${VG(hAYk13zDtRdz!7h`tEMK zq0?u#MHlCmpyvg6q&$t)61=>=oEnb2-kk!Y6+B}?8c%4Mejzt1SlGItj_X6@O zPB`bJPSxkB+$l2-*s{ALGSJDbl*wu&*1Z=wh<=~jb#_;8hMxvn>BPgBOiIqr zb!v0HZetWIgA0k)Y6~S4EK1RUdTYMT?e8*YB;}Pea)Mp;^_LR%6g9~ z#eKn_>y@l94ym+x}xu`LjG)m9S+Cj337kWCw+LvRP~go{Jub zEv}%;r9OxKCNSoycQHbSe;}QgWQ)CCMFG|QcZ#$ou7s{w?PH{etzA+c7D+}tYzegVZM)j$ zj<}$sS|gsV5w^pekZ8OSpL`0o%>I;F&FEP-Y2!zzLJ9-&Kqa5yc5lI_0;iihYDjJ& zJtqAuM__nhe{o3sWpCNXZi|U-lbPPG2CYmq=6VXpdJMEoc;-Mnt$1Xzd^EC5GO~JH zt9l|WHWa#6yQvxow!Nuu5%NTJJFdBYRz!sx*;!BNd*_;t@FO_4cHL-=Rnh>BaqQkB z;=`AfnU(QlF70a3$!lMGTB&2Z7b?&)o-7FT1oV4POZt|md8$r0+s-^+>Y1AA`_z)y zw=MZGjLS>)k}#m5d0gp6b#>kK)%pPIkk63mqS~Hmt)iAsB4%cVW?d?oa=ytm8!w!C zQ}nvqs-BMECk=;K)aM#K+=QfG5xI5z_@?qmP`wytCYd*bfyvd-g}v8SJug7ASE-t; z$`-$ri&a11(S4BB%QFkXuuljuCZ&6%BA^w3E}J@n&|-9rwJr7iEx8Nxp;Ip@^n6fS zvLQXgaEt>DLdIziAASGw%U?`~7+EIL4X;yk5-vbrmnSUSluH&`ci|@-Wl_oa z2q>_dKLQv~KY`oUkA;^sy2@PMaw0$9+WzJ?I6)xa!>SgrWve=$G-iqW$vWqgQ)yvsrR4WgI*xlAP(LhTuWFO>vAPQmj-mFI2*SwB1!( zJ^bNI&AHqRE|HC2LgoK@(8rE>fSxAiuoUGhuMiw^dXG`>v{hEwFKV^?d zynP0>fuWa@O{FlFBIe?E0-mexNmNAtVGb*~?7foDD3jhI7sQ@p>}i zef%-wyM4oL0U#U2%(0N^-ol=Fg9PW&dd-5No1lT~qM=!KX|Ol8O#n(;FI<-QKwGMJ zrMx;xw6Kjj{xTIlV&frmV^>1}S%BQ|{!7DBLaAKNdt^N=j#NIauJ4JT4lvjI3^emY zKYJ%bk-Ln}N>v63v{NS!A+tTA=Cf92) z2TiBTpAQ1NS2N*1p5+JZM%%tIux7)5x2mJkG{XPYtPZ=z5t{cOKl^_O9RJO#3v+fI zS^k2h{1372zky@0doQE?s-PogJKYVQaywhZVVR_LQ)#{8M=Bkp9sy^AW%r(gICtEvUNwDc32_n*Qyu zlU>}W6ebsc{{KJs)RhH>2>6)gD|FMYA{SV+Civ`@?LSM#{3w=RKU3yY(S|*T!w`&J zh<>{<Gy#DG!qDXDAbKv_}(fyg~xQpddzPUbzzvT-~n*S}l zum2&uns8N3yAb_sm(8h2`MvsblHCZX(LDIlD|VPez_X%2T%U>JloW|IhPLpv|M&m8 z66%0uuC?e>c9a%!&E_np_PJG1VZ-s__1=63Fh&=;(SIZZh@@J5{%eVd zrjzh@d(F8n-XG`2hx`s|AGF;W`ai9^k@>z)KC>~MS*{yBxC|Zc%fT8~OXuI;GqkLM z*5hR|ZZ4*Iy_}bW=dOetHr^78iXFVUPUqEe|K=|yy3@6@iqoV7b4ES#{dyTQ>Ykxw z^GA+VusgeC^_L)|b8PUax5wZ)^MUt}(O@%w_U=+kX;*_GN)^Or8a z92~t7?qQ9+@^kS`*4vlY%|o-Bz&Xw3xwNK7;fs79m(1Q&YdVQyFsRg2x6Uh|A@QfxWd->R^?jg}t{(h+WTj(LLYu%=bI?jC2d3 z%_1(licK3%9w2lxqM*up5AH97xh;mYu+l_GiCP+$;S7iXY5I;s$ZwyT`A-28{~v*r z2DF(ak=s)`&=Q>G-S~BjV&Tg>Y$-0qLFsSed1B;b1P?86sI)KYU41}D?z?+-P z(3jXF&vZ`^%l%248%B2RoOhA?gAt;ZJj_LTogorgYcAwqV5pdV@i46GMUn}NYbDX7 z@PUq>et1+-Hfs!TS2c`ZO)CyvKK!J~&<#zBk-3|>-2yb(mAgOS+E`Xd*qtrbW*A=T zST{a_)gH;=&c@qo$%mf4ODx`mH zOt9Ll!OzlodA@T1Gj%Ai2;!0pwPon=?M_XDzmp0jxQ{qOcsl!xue9dPUFc60*_w6S z6Hkf10RfB7#z^R9&I>WTUi>wX^YN7n%9tzVz-LjzFP)~uW1`JSP8!rQbKR~cS8Trd zH9y>oYw<&gu1ObIg7cJ&hMTffD)^|@a@KqV=#7S_b=@tbNS8Wk`l8vo{mGXIqL)I7 zd0Sykc=5~b+S4B`*d$dHKs6#!rW^~#Um-4FO zF=X6!9cCf_G{xKM|D-oV?8+89?b09T=Pc=FQ-HD}cZSY2b2>%&<(k^Hd3A+{@(IL+ zwH9pA6u>t$z+hrK1BvWHEo)}0CVEa)-n$=B*xN0V3j;cs;LbRLKDFCna6cfiiDkjx zwM_6uSqhD9eis_lYcJxkB-@>aayDka4pO5F95>jzJ8}O>e0P=q=|_5W%T8#)I*-d5 zCe3Mv_gr~3^a7a|@Hi))^QYa`YZ;jw(;q|>UfZmKtz#S8E8M=9lZ_9KJGprdX!JA5H1lhhaK9a& zKUCW%ZU28*f>%htwiKEAGJ%kRG6#4QW)8GXy99!kYVT(J;k1=AXnRWk5X_%nu@{`+ znZZmQ34AC;BG~nqe}FHHb)+M3-b(CMwB$J}a8mSooG;IS7mNbF6~LQ(oCQ=2M1%_3 zqnfK39z^?_Ys_gL+Z@#DmAet}W*A(bra>=`5ac%Yx90iVvaP+B`G>9s?NA+j9ntnN zw&{oC$dAEx&t(AD7h{j3fTl{2F-q$m>uKuZ)1|%=;`ckIlvkdNn-z~0*usBy0sPyU z``rj|u)@B~wG{0>6Bzf}?gLRXjT*QbTtL3!Te~qnK3`DpH-74p$2k{x8her=*b|)x z&qwxE^*WlAc0Cb6u`KIA+M$D-T5Pi`QG=4dac}{4`m9+`J!_5z)n5N@dN0KX@BJbM zK-Z}oPwoyy;pTBRpxJi z#ENC*M^2}6M3Sx_@#$l!LTuc8=X@#uw*&G|@A)^Zk8c3WY0Dlm&s9Dd9T7zC z;lLN7(OL}-_H!SJM#m060u)I@=`Y$~#4%F0R0P{iToH*&JZsVQwJTN4!tOgclp1<& zdBz3`@&tzPWZ^c%EHBX4wmS z$$YL7n}w7Mcp@Cukivg?VU}?$7zi%BBE`K|^C<@aF>>c3kFdqUFh}ddJbs%y39a;N zjMBZkl0+EZ6RUPlBoNm8IJpY^{59W!%Qd^j$K-;ey;k3I0A@ZbeAqYN+4$BGu^myH z>``^M=(}?uFkqg4rI#la!~0(MSn=ffU%W+b`1N-ak;JY-6ZLDsr|4M1^`pVqRIckM zbnMGN4#nrZ*@asc{HgUEH`+rpEwVQUBB2@XCbjtXV(WeAt$nZkSDKu%{1luJGgdcx z5;at<0Sq;F_D<`;D*VRiRG#8G#trDYdt>W29rbhNkR|&Gtp+k|m}9g$%L@zq$BVVT zOWJs}pkuQt*Yz?&d)&qbE{&6Qzhx=awB`0IGMQ0N$w#99RzkVvAbVW5H zs?AdOFkLNc9KpsfqCscQYaupRV2vs6D-RTnOHn?k4t;rl$8T7Rpf8p=l~52SzK_+( zwmtyh_v9-<8lsdMQu08eow%fQ>o4(NQ~@p^GG^sKwtNX1fUsiES;=_}#0YBDcglmZ zxt>Tt>zyjO?F(n`6f%vWc;{^hV$Oo+Gb?=Nzc^?D3IB^DuMVJi=I(GH1yg=6klPh4 ze^oTKyDKi6&tLtND|xWq>wCpSyx=4I^;kdKDW`B^$zD6?UL6*w{YNW<)Ri~+k?MYe zDP~n6di`Oe;PIN{nr)f`g(&L!*Ag;K=ga?c6jI@;EJmFhd8V#?jn^FAI$iL8YX7%I zpaewr#dSR(wRUbV?Pc)%O#USLU*w1d-av(RI5d=U*24B z=O*g9i5cSSU?dBDPHfu?^IBV$-SG@|%?1NeqWZD7+DF1OeN%A)hR7z=y8h?iW0g5g z_=oP{@oqghk&Pc3-v7Bkjp%=cvoQJDzLJ7FtCXO)O{ad}$$o$GgB-wNogTXrNn~VX zjDW_SFOLx~9nXvK-5hJ&3>)DBJ7mEMlMykkJ-G)qalzCV0?%D?rjzSOJ``0 z`UkU+b$&188f?T5UPNUD+;Rv~tyvy#YS$+dT&qYlt}idb8=7k;RvU1B9KgBrog!V|5(W{M zi8n7rxj!&&f53dZSc3)X>_i=&*L=A0|MR1eh5oj3U3fB2^tDDBy=$v+o$Y;2Q>g2b zqDhTxT~op3z=1F*t%L9P01x2EhXLbn6_jX~5;k-)uo2a2A@!vImF|V`Nbe(mf0YL;T5kZDXhLE<#y8wYwp8C%WaciueJwv^u^2 z=6ZEU{V99GRd|zO1Xo1;Qz|5w`O3?y&*P{hJ?wO}jx;d*h)2@{UtaW0xbZHT6O9<} z?d5!ZPFxU&!@O+v;&Z_}`!!TZLnw|;GbPdw36<0OqQ#+z%cbPUg-^Sd17Ef?ElTGj zqzEZfvUOrq{1I)$n8B?UeeMUE6_zZzp}QkoVWdzN-=mar2~Hj`q1LeKgAT9;ZL7Eb z>`Lv*{Mj^TsTYgZ7AEM@?Lj6&S)Z|?8K>Yu?++%h?cLvFe%}6mA3OcuNr$437$)3t zBSUYzrI@5=Kjc-nz(;>1BvDCSj2P@?8Rqn~z)TuRk0-lj3F&Y$lcV$R$L)$N!0mEU zNzIN9_^M^1loD}2pz>}8OTq{!f@XabCuH=(Q94?R)VlHo3w-0sqP69&j5F#$tzbxQ^RtEcg;~MB@a-nASTtvS59qe>nG~UVmkv{xyJ! zfrUVlHZ2B;yYRiC-BO08MYb5WZLOKX;*A54(@D!}$lM{petcj59GLOwF;yIwBJBAh zspjD-_@dh4EsGU*z}d0~>hhAi-tPEVxe(qu!AL*oQYU;ydI3 z5G5K*stR}FN!YgU-GM8PiXzxYi6EMRAzj<0YNnCi6g!yuY;-@bGG$wBMChe_%$UuO zBzYotBFt$aA=YO0EW43&KL-k=F9g%M)P%?E+SDtqbqu**`FxF{!QRnqpO%YM19QA> zFKQeY!}4pljQrxdgg5<3&#f~wf$a}UvO3ykeV)N zetU*IA#4}r+ySFDEAk^kSWnv&->x~z%k7s^1+=AxUeV4ufpP!ex_j z!#~pkmD&(adrX0f9UMROQ&Ly$v+tN=iVDfIQfAFz(=0)^yZIk6P$G$PMfs`de)7G) zZZN|pq~x77-L2X6x5HLyy!jf*0azW+dDk8~@r#c4qeFI%bX{>RF6=QE^|mL)tj)o$i^ zG{4lJ(H6Kx-^W@J&ma1O9P=%PA{bDGbG&_-Xxx%yolS&)reR%RB zh#Y*%2k@gvpsCV@?-ABrrY?d-$W}IM^{D~r3lEzFQ<1Xs=LV^?>HoF>_q%_$YKn%e z5dk0^ry_;^ng%4`LIVz+)z?p9A<7A)@zQXSu!!oimS50)!)qkv6|O)ofZ4G|d2G8N z@|w^1_On!R#FuXHo*@VVGj0Q>^KK&HpMf~0Z{a3ASh^n`(Qe`)dEyv;+_Vo@C6%iN zPHmk}M{_qSi3~~Y2)&sidv+L1uyx&BVBDunwWf+KQB5rVUH^4%Q(_~~k-J$F;%XkC}r!qz## z5Tkcq3Hy2HmW@X3xD@z@`@U#5N4hTm+NQY&{sulMmvp0 z>UG;Pb3QXqPwxT8naO0MOXe-swdTCL5qq1M$FP*FSAAuv3gp;Z`rrCY+)niG#*`_> z{2km`o26Q{mx`6bnnUkVTsD>D+ZRE*h1FBdtM$Ig>=ylPq-<05CT0Zv^0Y}Y4GXms z9mSY1=15^TO62P+LXf?l|JLfD%Bfpk&z>acL=Qx*2loVI2C$Fa?Tnuf!kyKtw6*&P zQgk?=ZDfJL2;cPu=fL_(%FT@CAF|_W+Fdxro4dn67R@}&ZiXr>A@0MU2A)*kc}S3Z z>ktEk3JpSl6$Z5M-ouwsV<(wpt!`-hcdKX6!{)5(X`xJ~Ngk8SS%-T0?1?sP4N!^m zQzaqbT6Awa=V?(y5RS^42;R*9vl2B`p@Mc{QGizkNqNNc-nSQ!j#kh z+Aq0btiPD%HDipq;a%T3aF$o>H4+beoNIs6gTn0&ioMaaE1Yrl^*)4U4Blwu@MdX28#T#Dmlyy< zbMd1(F`Dg1XL^^N7=GX)@ly@^{Y5uS!?>mf5X;bs7$M@5Gr((wVB!I(ly;A2@$XU|j-&PeIy`osB;gi9Gzdau&>YDE>x3bxEe_B zqMAg)=H%5|u;LBhbHJV*w+pFOC5!hC`SRN)7=r)ojQ^`jd^2BzKhb>P@An?60M;zxMk7YnXe_fOURNDTbQd!vmi=HUF|eK?=w{9W&y6_eH5;zGS+~|Ia~ZmR&T5e<@xcn{y+TU zWsJWYIJ$XC#%OceR8k3CwVtbjlFU>S^^h+qnJgn=IeE{qPmBP|wNxO8g@L8j{;gAi z6CsiS1pMJcR9tLsAzb>jM2!z2bBa#2~{DxS=iZViJR->e4W;CuQ>8e zPT@&dz@dmBA)@YQA_I+eXwjTb0WSnHb!xciw(BlmK@IiGYKrD%%D^?CNeF0OY^Hj=iq z(mI_z9w_ZD*VBkpQEhJJRJ)IIOwv!sf)>FW=wgKs=scw=#2*4mJPuwE4>@ z&WM^kPSP76=rnbuweSEvuTcljkQ>XQET55lO=!^4+p)@NDFe;WAvbDjMFMe3w-0MjKK-j8PAFe5Pf@k>ABQoX84`b zV(eJkoP!)XHr_;r^VD?W%K=C_Jm)c1wHMiOGg7qU#+%K~R$Z{649Hz5o$z$=Hda9~ z>$8F)c1h3c#A~jU?Af#EMps*^sU9IdnE*z@j(E*4XIK1hzrQTL{uT4?)SRF`7cF{< zU?H7zcF9eW|Bn!g59OZ_fG2DdrS1@fB2Ysuj6gV(AKItlJi_STxpxPHA3RKIMP<97 z2x3tUa+_ZpoMO&7G1&BUGmPccMqWafNhvzPSZM8Y$?q+@TJSUX1)HC_h_y%~nB7RH9@3DQMfz>|a*NKU7OORV_I>MMNfhu@9^qLK9dd@E%?@sQA-7E7|TO=(lSGv>y?3L%2=Ur2{VIB+MN?m`1qE?WNi%Yhk>W~J7LU11} zMDv7wvpT#ujozp%=DQ~hhXc9LQnU0`HM+1DMpH-b7CKnOMJ4vE^`r0R)00WwmGLs& z*TY6X;~^mxgU%VpWJ9a=U@xls7BuMzjN0{qire9bU=Y9OUYZaqhPL5s9h`j}>dqugO7qM-Da=tJhv6)2x2*nrXi{#j`3t+>oR!UumxmUc+Y$Nuo}T1s zo)F4LOeHs1Q4lzO{?YITEORloaGn2;TApAvT)p?$YZu`__E~jE^@~=@&@qvK6)-h4 z70^ToZl&sN_;I~HS({m+G7-BRXo-|xmA9ALIwlew$Re%ljg?G?K(};#&D2RP7aCeQ z%hXtASi+6+MUEplr|n$jy09ZFkkmQAQRb`IbEaqK7Ev z;M3{-{9nRC6ZEP3H!21uE~J21s@Ljhe!k3zrFW5g2L19zw6aS)O~4O3uoY3F1szd{bS*% zmkT9F?GPL2F&86|j5=7xaO=Bb#yme9mpw_fVJT?;So1hDp3GE1l@ajhvMn>^OYwMh z97*SAjfP&;W-FS+mJv(S|BT=Z3e1IlqpQiKURQ4z2b-C#jv9la=Xd`w%qaij(+Usa zGIiw}w^OlCB88-jfgIxYZr4kq|2}>&s#e#(tli2XQx0q`sS-Bqu^re}ddHn*^Hr%A z8<9>F66d1j342G50)FJCgKCa&%SsPc#A05X&JDHxhAr5CBex#RU9DMFKRywTY6p*R z<`SBg*)Z2V^dA&FMFZx=V6^4O!V!etcN^I)2Re{Y8ev!-QX$1}A(Q0co)3uwi3hW-WKHTBV)?GajdIG?cR$oaDe)YZ!P1QS$ z05!EY#0CpJ>UFRjRf8rsSD{_X7uzdVR@?Mgsf)c_=FL$1UOkY$&RYvj6lOL-$=&jh zpO=vn8INQw2I`%*|F%&u^w!B=x#8b>DAEqYAI0egoXAJ+GU}GIWnjg;=fnW%t`p7I ztVFjgm}q2JC+uAy4^T)p7CaSLB2P;Ci%_uJQRCMcLakG$R`u+t zpE}2HHy+X)AyW3?TO7nczJf}TaJvFHgGkZf zQ{E?bN$5SAsfuE+xtmh^oUb#xc-_LgQ&KIZClnOkZ@<%sasL?CNkQ0l{j4nAlR@uL z;bmr^4t$e?NJp(Thu)p%;ayuexW-0N;4u&BEKTNmm#B+a&V?-u@EEZ1Zhgjif&y+? zI*M}EZ^^C&SE$iW-5Som)s(JbMRuaW>BzQeXMmj3)1AVYB?3pk3GY##GURH*yz114 z{8Tplp777-M%*}*L9BX?VHgqtFjIYbrkvP$*(e<8-RVxi!ae)+k?E6u3x2$%SP`HD zh-M+0j`35~+=N4ZJIGtQOZ5?uo$l3BaBm+N!r0n0%U+oKz#olv69c zY!;>$KTOz_oCGiEGInV1gABeF4UDe;ekZA7npQ_73GmfS7(nwxIwQ#|=pc(Yra4Lh@8EfZtr9sXDfP*Tdy`RW$e4l;-VRutonj>+_nT_zOJO|niW1_$f5=();>* z_qsHIIR79CMy@)?J?|AQV15B{hwGe&vf5EH+PY3M3pZJ3rxlg#^z$fjSKYRXbz?Uw zoR-qTwh(W_Vtw&5o*Mk%(WI(IH15Y863vhPafyj_<&xYdd>XKk>0>%#DKA0ZQUU=T zZ)SOs{*W`+-c_he0?>PK%!;3_m->H>W0|<^i#@v#F-tgxQPXUuR&tyWmNp}Cs)%A| zu6gU0Q?}VdIL@{h8jRFE^5na5JH43-Y8&DrZQy~Ka?+QDpW8>fiMnnl1xFUoMcN)C z+nvYTZ~BLoHm*`#!fRNaq!Xgr;IP|noQ^kqehQ1U;o`rdt$eDagTE=weU1ksqTxzo zW|3zovKU#h zbZ0nyQgtMFQndAM-Pvq#$C2^g$DS-?L#}tvh2>sUi352~ZasfX$D|?q{d0o}@B3$7 zhZOpI1>iJyLQ(3=;CCmX3&}VE(ujJVa}Rn}!{%LEn+}NU=P7%R8wGbIO%L?!+4>uo zNO)gnE}*KQ%T4a$Y&2i$Rlh^J>(KMbOCOHw$lc`A-iI-%L!F|}C)&h+s%T`Czbwn| z^P<5)>xY6}YS!GM@_AMf2$d}DPw3(mvORF`4&WU*Ee;%mPdYqMT)j&ap0!c5P+uW{ zb&DiAe}r#>EE~iTw4|Cuti5n;6$yU)%=Zysp4g>`LV<;np=i#*9*S>QB)8$b4-#-` z(#7(m&N%bbu@p~^ReO)N_5!YVE%I~EGq?p712q!|-p`lFv>w!}dv{*h23>C$Ej}+$ zC5K|zb95Vg;=~CL!o!;l22tq}=U(;BJaOvA2Xg)}6sI8$*kBD3rVrnG^X>h)id9O-IR(8WS3xE2V5)?L(0b-%I;!11|1H}7KZr$+e);WHGkc(P){%CxZ@+G zNf&lq$~@EJDbtz=BfKErm~!4vQ+j5k;PlpwtV-y<&OXAV6t9yP=&XjputduGs-GiX z;ohvrSYG;}Q2J5J!lopyTi&X@19}w~~904m`c=^uIuz-c6wNY$7m)9RtYmR-Nt29?$j@(SyL&&_lP8BAao zA`4c3mo${p^sCVev?ND;aYPXBLb|Nyp;^q~jt@-CGAOZ1nbgwrY7pHSu?5xty zmAwa!z6dx8KsVf4@8U?$)89`(pgKYPo5>Au)GLEW{u>UZP)FaU?2x%&zqtjui9OXI zZ!9U!eMx@#2kv6M2^2b#H_r)za8XN~M-Ayd<14<+jKDq9CxXq-c?g-rR}MFNGKxhQ91s0MRX1|MGv5QtWWukC#x zX>&PfC$U4pz|LfVmo2+u*mo+5OS2Oo--yJ)ym7+&2_{&mF#X(<{Ooom>?YH4+aoi~ zQzyJUrfMl5uPR1ZLV~q8H=&`K@z;{F!54fvn!_KS;qIS-p5dO&G4Hd+v*4-Kz@jWh z&I%n%Up`eZ{ajR8FT7w!N6VPaAZWI2Cuk{aH-XOnY2Jgn-~Q!|0Rgp=crf4W#nRIm zT5{|FZk@n)THR2b5~fd@#q=*(&<&CbGw2s`gEwZEnUSj23Jm)XH&VD8waT9z*Eu4V zNt9#S)Cwlt?_374WgrVqt{QwM=zRYw*q&K9)h2eeY%tW|j(MsMsh4GB&kp^hoWavyo>grF7jA!m+ z&Y8Qqm+`BiddI)+@h4XW){j&Vu7z!XReb3>=$+2>T*&cZ+9zf99G`w2r8S+lAtwIq z?d}8KoGElRxH3Qm_%zSrzO_(Jl3jm)Xta|Lt+HRs2c{OVCZ1<)rd5NlTOnUPW$5srfUcJQ22(Iirqu0BgMN2SY`M1)X!hz{Z36gM_vr$Tn z+Z8BtxLCFDo;XP&S`Rn5X8hNXYAbS4^p5>JL7+1Qx+So)hOl*Rw-kpA;8Y-|l&8F3arUeXX7P z;)HbC8K{{x(4KkWu%_5zx94I7hF}>%#p`#DAS=>?0_%d;C&1-co3*URz->C5cvJO_g|rodqJ!_8a<55cguRm z50#Z0X=OXfiWZ|=hor(SuRg1&hool}`an9U(Wl4oxlg;(d9wEGD3g31(Qx7Jr8qwz zp3yFMT2o(nnXlxatt(GTmK}Rha6A|cz7#vU=i=M+Cw4Vdf(VpkH!i}5y3ABEi@(In}~ z1wNcH9+^rTiBZi5YssjGdn^7$dI~WP*skqo&u4keXXS8MyMqYbCY&DN8nDlxxK?`U zKYc*p*sUv8Na#N!4X??+xv0YKFX;GD23~!6Kcq_Z#Vl>Ru_M?7N>~o^8)m)~N~(QGv?|Ww9YR-Qd{@Mp zq^PBvmsXtTnfO6nVrELT7y9~^j0~+@pd?Zy`=$k>#``E)22)+MMebqiE;hS`ys=U@ zlzi5%+gr>X9ejP#uZ^uEr4rB%?@sM1R%P<$b|cl3SWj+-To_I`jAuDyuh`yxRfOfi z>pa?B^;s^T!+2D}h2;G#wTXyt0W1unC833PR}Rl{zh`z9y;7|#Yuh##30QS%F@snu zpLn-|8NV{@_Mw*Lf|_*8Q*`wPuo* zpxCB1?yL4g&8CA~snlaRkhnqN^jat-W853O+U11()4g&1H?e@WSA{+_yaVD58=~C$ za;f}&d)Y7~=6Kuu}jmhZ^sG1AN z(U$mT8@Q2kVb@BVV{OIugY>bv|UR~XpeZ;9Ii| z-*kJmu-)=W&OOT8r!dr~A@ug$#NA=Qn1g1CqWI;4oVmh0^=&;z`<`fSc6{3k!tvhI@%0+O|r^sU=gzZbDU>>32RyS z4v*o9R|B(T9qZmX?d+c=!ZzpjOU9!iEmq^(3-VCk&0A&P`P*%k$K<;;{e_@7`hD30 z@8u4A)@cPOG64{oY@pc?;BtPw-1ph0;xbuhN^h|uj3@&xgDa)MG1SBI#ffN48#c~X$G48;Kg6-F@2FJc%%l-A-oIsCuf+q2+=R*?3FJ1&&-y+EqM+dM zqW08f90{#eGba486vbCM>Nc1ncw3mkK z-iYVh!fScmQB$pNk7O(tq`qgjEt(11kix*Vtj24b>HV!h?n>Cs#y}2vLR_l{m?epU z&;4ji&T;{IHqnx3&l3}uD&Q;*d8}B=u!(nF!D?@IXI*PG*WX&vwDFHSGJA@96YD*` z?IM!4C)BLrTMWzJtbdB@zq1AOu65XNX7djVq%44Vj)+$a3?8ogJKX)Pl^^a$cRBn_ z#=kw=9ImJJul$CwU{D1_Z0P!MirHlNi*wZQb?r^Kd=}my_n`7m@%9IN-}wBj2giH~ zwO2{k`&`B&HeA%ZP3ajYUF1ie9iH#ZerJ(yxNH2I|8*MvSL!#Sx#2}>@wR!&kncUO z3&z#*)CZ?r=A*#{Awlh6qQTHg3;3|z-I+-%3kx@Ei%q(vU-Ik%Wd+Q;K3K{*TP z!t4ventiMwP*|=-Lcl0?J2D}%8tEuuE$gePiwmE}r(DAkS8acFk&ZT-oMh7b4gj!HbKDcZ|23cbtr@i{ zh5^gslHBJ5=q^>7mDi_UgldYGqFT?Glyk=XZjB*lK2vytBlg`(5*_ynrTsB2Rz1Ti&~PFbxnWIvXZmPx@ma?4$i15 zywd6yzd#e}pNB|K^hvsiToCb{9!F)tRO^e3Z#lUO>*?DyYf??u2jquEs8uA3ffBUVAr1%{EZs^#@6oT^Iyc{#Ct^VLLv4V#OT5GXCkAzwK`l(k^)Z8{Aa-6&YM>+}D zb!$_?9ap~2`yb8HR~oKC5%+72==RhzOKUzT*&7W_gw7t8U{-3^3$e6A&xGwU$s#Vf zvF$Uxg};!DRr&RqLaA;nI;|nw0d()%jhHt0g^Uxr*uVQ*P(SaHX05|7pIw?_i%a4? zaQ*W2?WDKE_v%*)=G~pl-kKdlFeF=1eY1q}ls?m^!F2z-xJz4u#4+LJHC4NvB$7CO?D#&iaR4bk`7Gpjgvh?T6ik)fXZZNQ~FK=zci)yV(FQK~A zZA@CKOI?oa_grIDJmLK??&AB=cDw(ZRsBHGj7FbBeqae@^D3HMaLJE@R7l@E1{hS* zs5Tnp$yV_h2fsy0Q_>_tO9{s@|BnGOK<^`KzCc4|J>P6{anRl=uG8TMK72xsg(`Z~Oq?DVq9bxC zc0VwYYogRLwHhaRWcZdPY?kK%bsOW!PRdTG74`H=dy+=sFE5R={I(oMD@)RB)8E!V z3S{Q~@z4>CWaOI|P`e#RamAkXWsu)Z7z%?acL(j?!uz*gHgB6xkD5Q7ge6eU>hXxb zAwz5zQuJElSqAxeinEm_m?jWL+-dF$j9IY^GtjaszUqq3vOMMj_Ev&xzxbdXe{iBC z)JxW2P0Qz^hs8Uc<{$fhh-hWCBaVs#b^VfHitasSRa%z8$k_U=s2SbMtk@C3o4uM& z!w_$Ld6*IZfrr7>Y4^A87>iD)uR_0DR{)ilnTGOUS5HUfV_N!f=MoNl3px5 zZ`uy|)K94T7rQwa7TxyJbBE1qIZv}t$D3)*y`>KywwiF_{0JcyUH1wV5lbo0ZUOfS z-#}~TzQbTvY>7v-7|ufdzvJr#B9H;G(T9n`1bR%A)S)d*kMyHcUki!#mMFH|AE#1g z-yzuRt(g=hvge`<4R#!B%h+e%jb;6pId95}{s%$*bMO3( zdb`oH{kKi${DD{JVh*Hpkr1|gj(4%ww|)N5cj|E!S9-UY;P|v7h`9ipWjpbr0Ot78 z0#_AzH!G!%Yocz~J<5ox0a`y_yeddo0V*N9IaMm{7ivhhj2BDW+;@wdedmJ-Hy!N{ zn%rw%0>B)AAPK<#H) zQ@~<4Zz(yzSE%aYydI*qwX8F^5$DabJ&teC&j|1!e7QM_y1O_AZxrI^^c({`NC95P zy!xJd(mp0LF0E!*`VW#A0RM{UL7lMqGyB1+A%^oKVdbY?+@nWM$60Z$_QgC)ffMb| zqHCf_X6f^!w;wcsPo^Z_;l<1ZFlFFlgf8%bI-Wi^A+D1prGVUyS9YS4P6H^;O{wH- zX_?6>E#H$_&ZOf>lSZF&)t5IKq$;>ifrq+Bh4Z_1FF=){xF`{exRXm1xwz*{(O}2% z_L6Gqmw}Nat+Pw*8*W?)O+JXWfVot6rIC*{iM(r}gO)sDyN7;Qq|7@{S2-Kvh^0%> z9TcHIoGX#xIWs=yFKeu^;z!#lA4&}p^0#iUud5edK6iCd5gw2~iCL2sUrDnkHM7XN z6cgSjH9yCPhzHHKqDCaQ-u_UbV@MM;?AJzy!L<|)! z=uWk-TA&hubld$8yKfq@Jj`JGyzIqVgUfBthw$)l?H>FHq@nm`uo5_RliA@a%Qt2u$|9oOy*7gEH8)}x_EJf)3> zk9%8N7z-d)-B+9`m&6&(2FdFafrK7pX^gntZva=n$0js&Ji6^SD4=810TE>q?>7GS z`=mW##ICbZ9FxF!OB=4Z2JR~+A9Og% zL2iAKpKr&{^TXXb0SF!3hmWjbZtN@zh3nX#62{bq zJm|&>vkt`-TROaVV@A#qe&_l8s#ke8cQ^X_sD&wwg*AYzIR{E2PN>rx0UafjO4DF@ow{?O_zx(}o343~u|IzJ#uK3Xz)sg*E#IbYu zPru)PzT1D=jOTyX(jTpr>}@+W+o<$$ zi&a9L0ipDa8v`VgqMs}~l5RSjSn~$T4kN^3>UCNjr3w=t#j!^}Q;cX*h-Q=}f`}kn z2u_^^`~ZS@iS8XMq@zNfpCBdaLs4k%S3Z{yvi^S89X$5k?rU2OJ$nz+itFAe8bB~v z&$^Tu0NG12;!10M^Q7d$%zF+-aJM>2;y+v$rcQN}O%AXqx>|es2X7b3F-P9(4k0h2ZQF{J<6KiL56(q#yS0-?(g6G!G3>y z@$5i^bZCWAzN`iSp1Y%b!3Q3XVc1V+-hNM4Nup0T142*7U6HfTV6w^c@}ZNv`vj4v z9d>-bhh}2HBM_yn%X)*C6>no6yuX=*!gQBoF6sf(KU!WFJRd{GB!6mt{c;ul#vXv* z^PKZ{b8Puz4K!)-Zamw2%Jt6n$!cDt{dthg=LH441?_r%)9L&|d3VbC9O4}I5(8PC z5B=!RoXg&N0f@Eo*e@pXQ-IxVzvF&-+$WmoDBe72BU0#84K(P~jUwto?mG(lK7;MR zhke_+vG;Z(MCh+tqC;yxOy~#NhHPASnp2AEm*S$prX}W@!#S>#*2;$0+Bws+-Xtw=tU~t2Wn_{Fxm>(%tsAQ_(E9 zWxmPX@)u}`D;l_tYdraQyGWn!NQsQU@`nCRE>)Yf%Ltt-;$uKFIa86O_Og?A1diAZ@%Dn+Y-RYv>ywThN4HwS`XGjmDsvwq;v{i)ra54Rn-FGNDdTro{$9Ie5%?i$D`Co&M(Um zZaFWKP0+|xevU#+uQPY&vNOHe*s+(jyZ>yGuQ=U@VAiiShy`XpS}1YC*R@%)inQXR{g)j;K9VwGLcwbYT(Thq+RSiqyy0 zz>j@K-8aoYdh4#CM$+(vPImc)muH!%yA*mqcr}~T;BK;EpUO`8_i+vX>TU~u02EOw z=DEjQhiMd=hALq^5OqiVfy|%vL^o8t;a<2C7V*cgk}hZcSB7A~^k0NF2PPP)xQ?3l zxX$8p8TfG(B6z;|{E6ixHgEq6p%)NC4E!wM^Y9gS;-yW^ajRPG_A9rZYUG(eUhaOM zj8(x~VMx++GH{($9NIdvISuvidSS^b<;Pw;T2G z{I)u0ptu;T;P?x#Le@zS3VCPn$1uR4|1(r9Q^@Iqa87&7_fF2VD$*!)|J>sjF1(yh zVUnCDejxZ+(&WiK^8xTWr^6sv5n%Vbv#S3^2!Q^R3^Q~<_a%k8W^-<{#_0zeXY=dS z7F~qQmL_{M#G13&$4!Tuykj>$k_K>Z%E(G4QTn-qm&JTH1xPXA;TLnGbNpE1WZI85 z8tJBoH1XgT=^`tIA_s*c-3fH!NIFnlumjzsZ1_?X;`H!4|J(?jQpb<5A^z6g2&O4`mB47BMA9t(KwvEiuq#4GhLZ9*ph|K_)` zIV(D`IqTn}UY^}BZ-sRu)&Xh}03oG7fL~NIh@{K2f#i{lzR#Y#JlB@q56WjhZo=}| zM@bF4gY^w`JY8(|WtX ztNk9No{ng{`Z{0M!t}a4aQ&A+#9a$ls!vDr0LlGOyc6#RTzmiW_b*<}$X#vj1b&Yv zY$txd2Cp?qZ$-YC6vEbpHKGjGzW?mHMs%=V@~R`6OJ`(8&J0`rme*y8 z>fJu+JFQ8d6pl|lOdIE#9#)&kd`|o6%(29mW-M^iY6Df2B%!V5-n^bN^E~4J88vZZ zd@7jpwduA#ZjJ1(`wX9o<8J8CfO6OH<0U_eFg~%ce|E8Ex6)K6nU~*J&`0FI7c(m! zhx|@N2SG~Rx;g0+oCscK?c;FFi?s(Rf(&k3KfKIoz&SoO`dDK7@SpZ*e-A~OP@LNM zL>$3o)d4k3J1;ML12i)MUg(;hnms;QGm9^5TIo@{A|suTH&=I5G`W@1-aqi{LO|bN zST6*F&W)1-t$a?XYWf4Td|pxRI>n+$?hx>fk$l(DK+cY%NNus+{N3$;cw|x#J=AMS^&nN!o#^w;B=eXL*33-t5($#Fw(FnWX^|o7DsubQf2$@eJ9G$@!XKt=roeUr8|vD z<=O_*N}tL2v>!xZ0lb>b^DfiuN&09e8{f@vI^ZfxH&(!;a<8A4Z36;@Z=eK9b zTNsbtVEw;RgAj1kec=abd*T`I-QM5S>BE8c(jNksTvdYiv7Wy~qqHT*Ipc zCmRc((N!vkjSYQ&r7d-{uN+g%c)?6d%+j9$VDeL@4T)Y!b4%r?v3_I-@9bV?1l?bj-tfTMcz|(Dv3j2%A!3%7g z)NfEi@&RTSyFLrjjAh>i0cLV*osMP`M?$hSE-d-DPr5`>V^)*43YuJuOaivdO&AD5 zd{oP0G`_0CIGt%!NNfqw*Yc7mf_lDFU5gX}X(E9Fue9by<%<-}>LlKAc339z+p-sn z?%@oI@cPW6h}_nHDum76xT#7vL7e$;baR%soL3b7*coF`w65(f)C{> zmpfG1g=YPb5$wqqM`m&z>#uj=s%F%&OHgO)YtACYpEGuOB32gUt0CB!yWvCv3{icl zlS|=3ORU3Clcj#gl4?4MfF(n|2VNOlxSE7DYU78Ef1qmlSr5Ea-R537Fo6Ou+cLe; zZ!dt5!;&%!oU4U1HKVRXgkI*zP71wBjRz8OmPB zqSF2cz-}*JnF#$#4V$3VKL)&e6R-Qx#bAz3T$Ramg;T5PRO(2?-WSS36m?(Wm-=3o z(R;py6pomX*t%%5SnE7I(ZMUj;1QD1><%IG6p8?-u{}h{rss_nY{n)Ih)O60YxO{c zeA(hit4dz~OFQZ5e6#}Tb)R#ZwIECe^aq`!c-&TH%(kTrj)|uqjCx3U3RMgDK(O?x z=SmBmQ@Gam?q{L5)7b`27}pabH3KKmaraF^{f~UR@0cGF7GqhzzKUH4F^4Jv1QR$i zzm2T@Q@K7OwCxeAc3kIt)(jvN(TRcFwq*~>wv|p~`A(q_nU>6TO^TLV<`+95-|t&3MNed>zNaEgC%#P)=4t6gnQKY=Yitl` zZ_{%Zr|)T3;6B+7w6U7?5P~1)^WuN+yW(n+593NUGR|j}UR-W7W9^6n-+G&K5-7cz zxoW>bxt2Q+^xo{e<_pP9DLmna<*Q{G2TClq>5lESS*e$?ld zIFw1pc%E0q_3mPtVm28kuf5`}yo7oQeRwXDP0zUs?@>D**Q1by6MqRae)^M{U|(q# zHdp6VXwsmWR8rB@iUnP*b?Q1!w;m(Wq^@1yPo&Cmbb05Vvd2SB#czhhS&u&0U2-Z< z`em=q^d5P|o@k5^#&kG^8|Zx!=<~H+L8}llKl>#h`mANbtB?AZuVE2HMiTk~GoQoM z%S@8U_(gR>XV_4DWajGnna2veKEJ`GMxqNxRwjwME}+6YEo}H?(DSG}IDh3@8=gl8 zMB>=nIEpA>%_nyMy>Hk-;m>IyWsh3dD~yWR=v$eD{MMUV`AVm7WTeP^IOT| z^ZVFUxWZQY^Q9*e+l}XLfmVoSQ)`b#h35wKi5YgC{r{+UqFa;;15cwc$i8i1euC=* zA%Vn$lz>JBEV*I9FF3{&)12Os+I||>atT*m?!5ZGM_6OBQ4hoxOj?L+VkU<^N0?Wn z(ha=(dx1zmX=8o;_BZo|72B=uP+1Q{d25Xb6UlS~nUL%5*QurH9Z0bqzkG`CJw<@a z`vV`La=PUsb-x5?Qyze8EojGN-{#;tE7qyU86Wy9+ib9pJ?ryRD$!UA>|)JR{if63 zV9=Ly_+;qIRVrW3E{q@?f%>?a)WZ>?-|h--Z@9|aYxKy45>91yJm3hJo8Lo3sL@KF zn4k5QLJqa^O_I3QAMwu868uD@S>TtTt!##rUl+=Ul$25Gm%;RqqrGzXv&w$^N-uu{ zPpo%Eo$itS^>U_QmUdA{_n_sldk0|nHUVD^52( z)fz;FW3ktaH-e~AzxRS>KGHfW`4gthg{jsvc&yv*stppgyP^BI_z%iDFqrh2sy;@q zf1RJ|@I219=5SOcmey6P2Ca%`_+)K1sAS+J38al82UU~5rM(#~U1Sxl(|7Z*Y56vh zHI$tyM!`?(Gj{y?D)S*rK|m3ryXDip9T-;7)*=!!uXwe;&E9ru1y}|>t0$EBYr2q9N{HpqVGWp(ddTv$f zk7@jV!>7Hb&oZvYWP%iGIiTUIpMJz>K63~Wo~3?RBP+L=J1v#rtxSKQO5_$9tzc8+ z8%97$d1CW@C^5VNkxVcG4kCsc&JHDjL^&=OI|n(K-J;^NU~dCCrOc{+zm0&g8;Z;d zOQM$xPD{x;*91kZY*LG5&ioHsdzNlq9=WeV;6lW#_=X&@SLP#YHa`;DQ$$r>31&^` zUt~nzy7JkgrL?iaI1_Z=@I?eyT}?_5J-BnMXd6rr&53pYgQ{Lr=%PGC+-x9($M0O~^ z-)Ps*i+il^_JW2+OePB4Q-&%A<%inUx6$|xNpC;d@G1S0GF8r5x^(=&ta!vv(VWtW<*{sv2-(N#^h(lNTz;k&Q~a=(u**W=&VNSa+4Nz!{J*^ zQZ@?~3a&FDeL;<@sdm22S<*>eqKeryZpz-f!I4tBrVJH6dcVi!JMHeYcwXYg-)BkP z9~O++XT)h$ztlhNUW4u4jb{xZfikk)DR!NmFbzZZ=OAGDNr&4Hmx9}}sQ zC$EDY_IcSkxUA(r51)ltfBR-n@Eoxkq3zg+iQECU^f??JX#aZ%g}hY%m(`J{6{5kzYjMe*A$ESy1)V8v z-wFuH95`v4bY(QD>BmE)sMbTjQL$o=AAk9?EAG7l6r7V&DXmYK=1sDJzs4R)eM=n{JBy%}_I=pVgf-CD4k;IE{+$|NM-ijQHrGa;~y0QVf@pd{UD!Nnf7B zjydu?=X8eWqf6#@X+Pqbh%xFKbAT|4A8keN{6J25Gn$VECU&Z$F6EW>>%HrY^Yz!+ zs{5X67A&q_EQ_5t)kN6cy{7edUmGX(vw5?7PgSeyuIu6P(EmQZ=Pt>A>w5+)Gc`xa zrUV8ALnp-Z#$Iy*LFc=lUVEI^I8v3zAW=v~+(w8I%hCiDNF_LA`RVA86Oo$7YiDB~ zOKk9HF4P6c>-Rk#k)&J*bA1$P;;)<(Zk4egi|bL)3mz@*A!BpAb3Jg;ch}yy)GlFZ z-2Bb4`kGd6`{wX1A_<$tsEYhd1zRss{%2kiJXNl%OnGwEAp43|jdAs|Ztj^c^&axQ zw%2j`AV4X2L#274kp#g;L}xs)t+fTYMqzvRo1s2&>ZW_Q!a_3(m=(+mO&R=^(Rr^J zPp_5mdt^lIvKLu9BP{O|0I}~lASavrBkIF@j&|5v;!b@E1b=e1EVt6Pjz|7iv7Y@gcF%*=04WOEakp;+xv- zLFF86S(Ngwt`$p$!`7~S$-m-BddeC3)4EH0#B_?2s#j$lb@GByHjCV@#k;tO%0JYn|9n_QA$Jy(b5eLb zV0CmhQJi$2fD^w*X=p)>(^zS%UrV6-WRHZEh4WCw~x}9pur7cBU7i0EC z)5oOFh+sL>G#ZYi^2lZLq0P|7h!4&336z|H4v)iJCLzgGOB%4JCJfz!j%`MQ!k@U1Z z_+*T2m5{BY)gM^bPWShspt!TFjZk(ZS4D@2*-D!;Wi=8}RJ?NW~p z-TUAf>j)oRQ!o;3{26zDs3h~@Bf4@1yxF2I-NZ~OD-Xj}S)*54doF;smMw-EC#|4eM~HyBv|m5pTb@ZdA4YF*O&EUOZfuT2lw&5LhzE0euB)gZ1&kC|AO zzax>=Ev^colGRoKjLp+IT5ob-`o-dkfG|Us5sFvkh)*sw)u`yCE}Xckzw>T1v?Mj` zc3#~79^1XKY0+D&u4I*%373f`P>)cq#3h(gi8i8?nVQxP#g^YC_^T`PBB&HGRhdLE zqY|jB#?vAUUoVUY+HF=Zr~W>eF*gFq)syFKT`a1Xi)=2qo@17UuIczd{SG@h9Kred zp1i%jOxE$O?^nHt9`GMQ?ZDt;caG@r(DM5U9(|}aG-d%&vpE&k$DIG@_}N`}V9G?A zl&$j!3(` zMUu7)r}`cxz_6ocZv1=^S{s*>I>ESoOv>E*_h=7B9_&$Zu_@JTxG*F3O>^P4MIS#=(TfmF!S-Yw=)PVmEz=h~qA zFmwZ|Ob$Wf#ZK4%Jy-vU3yd88<2*@am3rlFI6jfJAiW}Ful91uE?cXWv>qu@Fy=f{ z&3g>pP9Cs`0ruqUa7?({4ehx`v6tqx`#-iUwZWOzrr-TV^+WsavOH z=i#>38cdV1BIRbKKb6xdKU%4Ch!!{lODzBj;L)cAIHpnc5-BWj=bvwo$?aIaak4Msj+kq0YVeW#cKe{t;5j%wB? zu5>Z-Xb!<8ok`O+!5_P{iHBrp=gGn(W-M#()0IB2g0p7 z(hHx)%lozhM>oaUDhl#c#6)h|I&}MR()-eO@pN^hPN#&1%DF1LxYE8YCImq91sTQbUs&Xo>R4 zqN5vfspa5bq4E1+>S~#hTU01v0oPa_>|%DXhJo11Sb1l;m*Bg>*LnUaUGeS8CS$z$ z0%$=;#Do4f*q?2>jaT{CB9g%@J3m*n3fxqO@o+O`no2g*>Kcdtf4pd&HVExkdq@P? z$|8Ql$sr_TINijxCrfDu-%LmN)Tnp2l8M>iolM|9`-N%geIC|e15XkgX^9Q$658Vk@`ryc=M2jVrXZ8y)G_DbdpfD*UY$wlQ@iD6 zqA0WRfqeChnwUqBr6a_bg(V<^J|}3#!_ASnCWNlOXo5xyhXw9t{^__TtTq%s#rJl_VGgB@CSqU7 zpZrMmt8wq|^^;VZ8ym4NJd&1pxYbRLW~VId?In*b1Zfm6j2;?Z70II-xk=IEjg@}Y zi6SPQF|o)YkkYXh9&F%&51BHP%ihCz#lt zAeO(Lk=_6HTZO?gFrt8w-P4$Tt|~Pok^)muu==Y+9+d<4ScNOJkP}hysY~`{phP-91kVAIl7*_TOn#! zKsD375=&jGiXm!n z-RP+vaNIH!6cH50s}@oZyx1ioThWiaG9TI=yC3!lU)n5L+T?bdyykO8>SO;dC zoZi8X9Us<_Fi9H){4P|4Mfm?lo>ggiz!tITiff}8<|auRw@a(>w|Be?95=fOGW|er z7zeF21yqLKb!r5nhtcL9Z)-e3s?BqUi}R=rhf;HaI(t?J{0o6sQ*6|o-=B!aWajMk?f~-L_@dIyXfYC%Xlq~%#edTe_&FaE^^apGl+B>% z)mp15x&S<{Qs%>C1VQ?5PfL3_Q`k&DII)X$r&D;M!;kDr>-e?~o9TM2`nd~kUSkaj z89m&zvljzM=cbumR0x@V)lCwhsg@nivFGTJo`2jKMnzYo1ih)$Lzx_r|lhe{!+sP!R?~2DS;Uy z)+|b8)w(Hfg znZ?~-Fqez__l=FuD6NXXA>U<;*(pvkb-S-w27Q2M5=li6u{lsBV_&xBUI6puhLpAO z<51d1qKQnF0bNi%jq5a(IP4)NwCbQipaT$9cmC^ienmv#-GYdw%%d z4^gC;&p!q>-<4ksBVp3Ex%k|s5epBwxcJ%(neP{EOxbgnnnUV6)dg&x-ynhPh9jgv zdsNHZDgT(t366I182q^+I~GS&=vv9F!&t>#o9Yng-X`Z3_z~j8E~FyoY}eV$V@OBK zaLw5JQt2!fauC@1(1%QNnJ~lbKf!o+i#!Pi_aigd-Ne%vV!0afT7(iE$CW5TBKLT> zLh6(B#<`5nin28SW>?DnU&1c?A67D!LWI!n))?QBfv)v1)i1ePf54n2mSM-R?5-)GW~&Rd1%{CV&B+QAX0eeAHMDGM_7pS9at1OOufZ5?ZNFS$1~(Ut>uQO{tgIsExuGd_E9tT z#=-*bJX^Pwjy_kN(wZGjBv;9arN>#V29@8B-3}QplO@dAHpIF&Zi2X*OKkD#in?e2 zilFQEop*1t4RE1bWDG>d@}Qedlo!r$}Wth;ys zX*ANXgT^msEsK3y6=t3oTwQ1Py7Pe)E6pB!7^|l9<_@47{bF$iz%ZuRSra^{gx3u#VVtJJhD;P*+5`XWpk%3?OfAocUe)A1^PSX&3+ZNo0**lWn%Vn zA0f25zc7jmp8QHTN{vPbfIzL+j(}Wbl6iH8v?1PJqg_wK6O(DFZqX~Vo;Je;OxTY7 z2bMM_R2!UppF6%W-5NaNrfL6r?xN%{B_*B@Cgv>tOPD&fMs}()gfM;H@&5GXF=}A} z&}t|*r{t$!Dt^k^Rei}5#B5oeLvROouVKT5sS^7~-m{euB+C4beIhfvZeWI4L62UH z^ zk@+xZG>Dlc^8uLSN%?@jA%_fPVJ7B5 zw{DthIkjdN<~HX2dUnfEXwF|Y$kIcjK%d3HmM}HKSe%!7M5nwgh(}XsAb(XGSm5>% zPIB?O#m7l-ciUitHw;7`%aPUxWM*mfP433y4bj#dRA(uy0h}#JQOhh%$PPgM_bkM4 z*FQ?sq^<=jd=}hnn|=LaqKDdJIsQhdNCQQccr1J{)8n35!Ic8AHZ$grO z&8m4>;I*~;)#!kF_NUdjZ2yd^Bv;j@O?A4pA%m9Tv&xq~jor$5jviyRk>R?l4%l$$h5M@C;aP>9nL@jb z>iY_4f0vA+6_4jVj6M3bhE~^4!??hcZ7n)2 zuyx8ebcr8#hO7#4^zJ0MkI$(ii1xJ(v4I>1S zQe02ZfBC!=qQ8Rk@SYC;8b6&#w}PMFdjY?1LAuByN*ys{rU=l4l>4LKcc6Q|CC<(i z$AIip=w!&j#b9-B$GTVMDpL(akUdG_jw-*Z-q2JKHoop-#mjq8&qX}Hu}~iRyz_I} zar|7NqAcw#W&IhxB)|3%$XI<_G&B@KB;trs_ z(RriY?DWqS%cSbO$ywpx$;A~@B5JLpTUkB2PXJ2!SspQ(*K@9=*1C5aF`mk6Ubp0a zfR~iKn5X0IC{SS)V+cgMy(?jEolvwTBqPP93<$_LPd`RmZlu$-ldlvzp4FS=KT3Wu zq!n_BSw9R3KHJVSNlpsQ_{q_D=+IN{%mANm-?HhLdO0tDN{4D&?C7!TptP>VCa6WW zTuRO)a0>5S61;9&aEy7Esqb+pgsuwYa+~2MiK(Cnuw3~nVD5NeWv9!OvMMlFK@cXf>9hp{VRAOQV^Z9149uP5LIC>j;X0*0W|f zVed2@ufyNy>G6;h^0X>yYz2-J4G!w2&gL3v*N1k&xPhw0CI^R8jyt)b+hLV_&ePoy zEM@-5eE0*_046cLZ++Kzn0*v(C->4wHytEW2O{RIN?D3%Q!^c8>+KyMxXFl#MoBD~ zn#vw%6_G63i6&IN_hXgGExk8!^qiT3$c4B14vaA!DMLSvr^K$I>(dJAcz0yJbViGcwc@~2K(nkK7~{JQ4OZDwCN1Hw8ysJUSvhZx4ere3Z^>kAEI;w#!J>V zN7*TUS#Tz`4`{BnVwp^jh+0&vMRQ+Z?OZqlJiRf^8drm)4|-gnDb=*JFsOtXg! zm%AHppLiIM7MbDkO#08rM^S_S8tutvX>vBQiACPVT4hcB5UDqE<~7IsGQ= z<-1rK_p|OjZqBJh0^(R$@?TlUKD;BHy64?r*hv|gL-BK-9oVyiO>5Bu9~nMk&lV-> zf^1NErue1@+TJC7#525aEKr%)^>7=QsdYmc_ji2Z;I2N#GqF2rSFkwD2qV3&f=ap; zN2)mc-?aZg^q_58ZAaYx06loIk{}olQQD(9Fqrvv&;r}7*J)_}%`*v?7A|XRWABKd8-lB~j1c?@+M<+x# zdM6}CA3^lqd+(zgO!RK_8ol?$!R1*z& zfg%C0C1)*X^~JDjzARr+nxu{}yxdwaR{Y>eY}v-WeVT|92=QWktFm2ACuxkJQ9h4d zPwGs2>iDj*eUDpiWz9c;#fGoLR!fb9D?(V(q~!=6T<>mA+CdhZ4`kC2=7lq&DlBpdm$b zDScfo3t&G|ab+=zHr@?|?i@S*t%)q6Bdd*eKrp4?3VLTYpHZR|~NtkE9{$Zghoz^tq%2IrjM^#o9TdcD~#`f)JamIfn zP6TpG8o78`3L)G=3k99@@@n*M?CaG|#u|~##+TPMh`0>q56A^zHQIDPQ>(+p(E0=_ zOqgT3Q=aSo6xdKQOwDFJAEJHQIB2TAMpbV1*LYl2`{VRu%fNGQwINhU4??)2sgOO3 z^F2T2E{)$ugzM)tw^q#6KzrXZY33T!M~wMTmKjLR@bo4YRd%>IIwBj*d{N^DSwD+Z z%CU;R2pBn}YESAW(K)Gd-3ZafP;RI%e$g;=b9ngtsN5IN3^o(ekfZpdLF!MR!Oxv9 z#BUqx!ryn=uTW;s^GMiOyOkX(%3ytqZheLtXc7~MWB$%q{C|?ux;$HBR7;R2l{*=LLqR#&eUb z2RHbJ`->F%b>Kd)oMzmQn8h%jg{r?I3jAp{h~l%mw3{gzwOCTKuy(I9e)c~v{A|Mz zqa{6?PKmQeefB!XDWM~GbvB3@0)2tR?x}th15!Pxz)GmXdF^+numeEDE^9HtCH3Kd zxa_X}7sJ zEPN;H6ZoGqwZ9qPC$f**I;1S!k5;+OIasgPl4`#B9vwNFA~5hNG!-QF4O>W+?iZ4C zxy8D@@~O8<-xZ%@Me59MHvibq{qI=yAo;rCD|S{cZt2&k0eJAterKYE+3fUsm0Zrz zLU7Gk0}PF|!TyJ!R=7LxI8V*&Y5!-}m3j>la#_WmLPxdy$t0fy`i~PrO-}tNMO)hN z(M+adGR1bHYz;-td~au1ne)h`#IUHfQcUf1F1os-uI3A{Wl5G1nibr~UUd~Fp&r?( z)bZ%zmhIkFN@6x|NUI()=2g9Y`|+wMU8rHn*-wzKMrLnzo~=-?kk(yHxVM9Bt|gZ= z)C_l7t)OzRu+;^aHzskBXQi-g6~*y`I7)!q*D_4Ie3nhn2($P#Bm`s9Id;3@Q91jo z?|YEhIj3gkFmD=hOZh@>4*lRQdfm$z_*;<)?VpSXBZuORAh3@ii4qME=ISd>i!T$% zW#`2A2Dvv?*GQC>%Gw?f?LKw!8PrnOjN^N4LCoQVd)U+SMdYI7vD33YM&Pi%U3=?8 zJ;k>Oh0eUZRkx!fiugafEv4eH-K}_FwALsVI zWMjm8-xF+a$+Pfa$l%l9DX8yTKrHTI#HjDF_3C!1A@1mgT&{D6MZvOaOiMGs z=xlEKemM}09&6?(x)z}ynQ#|v z{~Vqic2&GS6Qk&|8teM@^;PWapEjmlZ;Hc*J`fdp)A5#l1x<#134D5G9}_ZjsF~II zXUC>4jvC8N#T^||DpqQx6Ucqv;*e#?puzCk$;?+(+Qw0jQ9~_ai&cKh^FUBiS`lRs z?V=PpQzuW_7En}S)=4*hKFKO$v+Trsj<+Ojp5@+{I@1dzN_olrUG{gFDzYRex~kXU zjr;v*g92vqo3qFH(dpkGE^YUmNLBO&O+oSd_S!} z_owu>idTG~rQ>EaOL^YSJ`0^CuNiHbKA4EUxsC=*__iFJCvg>V%j@ywQE^qhS@rVw zIho;2yT1{2zW=-!e2-NxU>WOS=>EwII5Vtt!gd(FA5SdRyvosTWhy?NV` zq^fO0T&eyJ{@YF{r?sK?^Q^L|nOdV@?Ei4r;9<^DH6$wFC~k1D6H&UUuE-gvzlYl1(q$~$?bjULpzDVvf(t;2o&{T^}E zjMV-b`*_e<8_vodv2L_*96r_Y*=@|YngJ2PccVLWBRi8xdu$fqP`4hsotTxzH@%&8~x-lR7!ewg7 zGs76(`IosQp0|NAI+xdI>$reIpd#daHDn7!KSB|aks(Hi2#k59|EX2{NRF3J!%(Y< zy2`BD#0>dfAxQ{`Qn1*WS4ssFfKUqEAxcR4L6M!EKECT@fB`VEvljUNJXF>#1 z`HE!l#2@S9%2p?4cuQ*SeJ5$eMGOLzSW~5rczbG?{VJu?IOSiGv@c#QofLi8wixTq zDtHxg&JQ?fYQ`d0V(SP{1#F7x_@B&kCvO7-QulG(_7XJuZJmu4F1a)YP>}sjU9TBE zXf%?~%f$&SCcNPP3BFyh58n0t_E^Kot=!z0-7GxZ@Qe>_uC&ckR59Hb~Lmo0u#U8m94%5+@FSO=I>ITp0Y^~1=uYSihDnLxJ}zQ zYQ3S!IzdMR^q*Z8Z`j@*(57~!xjv8`JnW0!+Fyij?t6g92kr7&IP-dt-{Cr!r8+LQ<$beze{p0p^$>@&9~zLLzWT&av-o{TNiQ^o3U5S=F6cZ~ z?pfIoGRO^(7+7QY)x<_AF_14k1CABl9icH4-NhNISBA)aZ)*wP=tE0zd<4s%@6lo= z166i@{A)sMCb#wo`{|O;3XgOqi+$oK^dqAgnZvw@8Yw5zpU8_=3A6b*qB6%oDWd%R8bUmNiGZ8W!%RN*cK``t!)G4zJ;X7DU79Gh7B?6>+c7}QnbC>5w~Fh2 zpbeD+H5(NrU+2}}rkZj;Z1*eBG?CeZp2eQ_p@x$dxkHawWr-2o|Bgj-%AVxMQC89`>^DDJ{EqfnnLsK*~kV;C`V?7mHlF4>qE$DN9^_A%Z`;xhFNlS#n;Mp zT~_d!Q&MV<{ML=g`gOJ7QaGdoMLn2aQJ)Gfxehmr3MH%UXSI0dhoOqsNLq9S#5o@! zhKNdXtJm(oMZ*i+^d^%J-Q2wm1e}rb+rOQ(eG@=^bGGFFjpVh4w~+PaZoHDY zd!pPrr-7Zg9w39#B28XNxc+$Bt5-PNnD(*k@7kT8%85)l2EVF!)h!(7uHnB zWbRBcRy?w8XeLvT+o*%dEx+XEz(RIt+HR?1%YF0eD;TN@mY!GVr%d5I&AUmttG-(+n#35(tL@y<1UmeL7;<{ATV#?P@Y zNHX%iiE$*;hRV9G8#$EVke=EOq~$K3CP+J#X-{1gMKWbp@co=W9J?(wAnKkb4jsO; z0Qj6+5{Fpq)APC-4fwl?>3%;EjXu1n6IR|eVLr%qKTB`WM<5Rr5WyzSV4rFXJ=qXQ zY0=}fR0~Aw!`o-3w=Kg>kIX%1fuM~Dg&d!u_RxsO>e?IEFFiQeBv5{mx6XFxG%LPp zH8*AJDMLuFwTFyP9@S%S@n^oW(@S;%4?)K3r_7dpBdyQ!T-Tk3r$>eJqKeZ#{^Rmh z#;UZS=^Y!)!&~B408Ix6tkJ7~5><9$SJELinM@P-zf$FH);y6%78o=liL%QGuY z8ZAq;6jwcjexAgjVZs8xGIKnOqyO%hhfwZ`Br5j9a}4SAJ11oxRmzD+UvXeGLn8oWx-773w3~KZegiQpoZTt+z?pF1Ca`lxYX3SQXZU7@; zo4qHO&Od($`9lHv5m0wW#zGU?y+DAT^w^u6yjj~oDIT0}Y%A(feByt3q|2hd!716d z>R!pAD&zaJ*zp(Rm%m5A0A$HwV{#WRufDp)coAIAv3!ZkV&g&f5h2i?q>CRj7i0XL zRt&RjT)X4A_yd&Th@HO`s*Aj!F5d2ezEv%e1`4QI{-z=6QPT4^eyY5mwWkr+YgZrI zjViL+kA=ybvEr{2SbWhF@V;{3?>N$P;x@FcWO+kvR_M(qnv(1CWB6mQyGii=B4roP zA`qI_3PLsu%T?IuJv)(^EjJJIvnrIYFm$4ybn2||N%bSAG4JF|r42M_9u7+r5v2Zf zz}DeUM5Yij%U!V$5-CkH9!OnpT0>6gQ-bx$t1lp6e6re7c!u?s*N#KvR1py2GZ2xq zzFA*83ALi~qA;*A?8^2Madai6nUT90<5RF5<;r}Im=XfGF6jH&`HZzik!pB|^Nz=E z=CcoT*=IvjW{ur87mVi`$9~+n05LGWKls`O7d*$nIQ97WUP8_7@4lqS`M?Wn-2x*8 z6|r3Y>tT(R?rt0+5nnr;)GLptv2|AQ6Kd#(cJ;_p{^&1Ay56D|oBqTmXhTOiiCm(8 zRfeY7j?L$a@Wtol%}cdQ(7NE-6T|zK4ybH9R{WSm)uTZi*{9#=(eJBvKA*X;y`FR9 z7aq;0e>ScAZ9dAZE4`QPbLnR;5J2UJ4|dF{pxe=yWSa&6NO~@oFk_f6UcXhjj&#ymOlXqRT<{Nk5Wl4P&wBWYY@zv$niB9wcaSm~@4gB}J?Vx+1k z$456w^U4P2uZ}k;OtP|k+L9Hbp6=VZHZ2c@0kQ^2Q%+afmH zf+s8_Jci0rB!$tFt<(;l#pg_B0WyqxU*a3Og3RXrLMb$(xls)ZvmlZ0`} z5;Y~w7T-={@S`#n@n-KUxnukbtcH86UNCN0o*G+kHxZ$7v+GI|8Zc7?2Hz|8IwyFk zU}^2yB}TkS-OwTynzZeE-d48?pZrR4No_r6&l;=r*L|rW?Ppify3yBDV}CwoD|dDS zpVW1aW;qPxOoj1|Msbpb*wDLT93D+}#9s%FtQ*4m$A@6HoXQ2hUsS^7&;_D@Z)XpE z(Oo<`p6K5p5)s9pd2q-IG3y>9G7#xD60iLQd1iD)f&Myf`uciCG?a-Q8`u5$1BvaT{5UMNR z=Lu;JrkeUs3vt4=E(x_*>G9f3-mqgyZ1w7r^i_C>*En&_8n;>uX})uq;B|eocXAZU z?6i{kJ5SER+Aop?BVgGJFE|JqP48>b&lc|t;ur|bp9t*60wigMcXz-X)c31(46C+s zZ)*~>dluESo_+JnaaY=;%vW2GyUvw;Fe7i%ApN)pIhoUnaYJ|P`cm#Iox!Kpdo0_v zzq|QZ79%u(WA!Y;Z+Ok)7bv>Jpcq1y{_z^C9jEnBm<-i=ou$@0Hp^P0c@kkWlvOpgtW|^jC+6?GKT52F9v-g6xHJBOoT$3^kfY>A7t`X?KHM3-i}HCf)u(ep)vJIxP`;$NkEUg!w=rE$ zl-jZ{ZM5clnInWN;O_K7AxXb~{XO>gU(=c!wTK1igjub4TdnEGV!XjK#^-kZOJHfm zI9Y9-dBdByGAWE_vLnE7U5?$iB}V^P0dqbs^Xgwx2QLqn*)})e(4JZEb}TyloCl{% zJ2TF6c4v?CZl9z~AuMKwrU90EgV8ZD8&o?Jt~D`=ii@e)Yj*6my5iTc@s+%?dYvaJoo$O4X=;4$fNu!% z0SP*?+wPC>a$fKY72<3cdF_= zj1D9Fl!9B@YF&9nqo+{*I5F2meZ}1YZ+waqGhw2jBSR7I6BXiYJ@b1{arcRx7J6$}zpSBPbK#MlJ1Z$DC(g&)i z=e`Z;p21Qhp$gI@PtT~ta5m*0*X-=S3&9%yO*(APZP}-=-7Bvm?_9)stRi(5V(h~^ zPLcuVEi5%!QSV~ngyox?M(CiWu~jeHp{R^br&{j36~|eJ7ly$bwM7+>pN?wMV5^`2 z>L(-hcee1du7L0Rl7GykYzm-!td`uKGC7nJeIp&u`V0bcK3%UrZ~a&)w@4C|c@ctB zj?k6W&hiXT;z~}H|x!!efr~{|2@A06pw~ zy*)ONuTck0pM4sqDAiPnMcmC>@TV&s>HiCb2YX>=EWs#e^4R!Q+{b>uj(A+#yvGrJ zVJz#LIuQthzyUl)*{7a@;Z-1sGH6i7E6z3>%O~!<@3Gm!`2OOSJh`f$%iOk~F@-X) z$&x$1=gt$+U{28ECynXbDrmU-)xI+|Dp*G_AbCcu0e%tLivGH0l>y3=$ft`D(uGFg zj4^(aS{6**ce7FG03^pW>>v;N!!3<^UI1cMsaRhx0LO6!qU9u=h_24%@BTUsy8u-= zz|D>vXbuSN7M9iy<9BD$3LEvei-$V-FwmHAx2l0nKHKoH?t15M84#+IPoa3++$ue* z$A4lENYkK)h@g3Uc+KN73wc#d`?flSdWu*ffi(d-{5mH1)LTbP3Lr560e28n5ctw#t z#NGJ^!D9j^g0Ph}^QF*8%B!T;J9Qjhe3yyJ#AM9AXDYBQ0qgd}Ewf%j9@8@oHW2;L z=YOBA|K*NB8x;SK3yWL#4K+?bQ8Q6%L(5(z4v+dcr@S^II1H!} zLUcsO8_p!@Z1bc73ncSPnpxruTY}X{cB)M85i1?Egj`Ii3!>r~^4=h&x-9*zr1Yi( zTu(sWTG&geV?c81CyL2TaQ9;PQUrLb&l81G(6m8glbr=^@DM}B10v_}U0!jg)b*~M z6JQEk;@zJJ3v>s}p|26lZ6YQ2H&%12e45YAyj1IjFfZ*2DMzvP7nmtX{YiOoPQ%x$ z-mR);vbYzhWEbs^`mwdT$ijl^5o$EA;?ss>`yPw7!bOdvFhNm=gyU+qyD?@z7Tj4) z_o-o0SLt7{yaV4P#(?ZNUeS8zEoGL*-G!QH!ujok{sHlxmw)d!Kgf3b5ci`B~$R1EzC71bn$Yry|` zJ)u~IQEr=Te3M>miqr#1(dHe7Q~ekq0SU$WOjFZ6Z<#bG18oCS+qpd!?!cN-NZJ34 z6~A-r)49<=SLw5Z&J-jou<#Q!JxipdAEopEueb5}&xgkU+n*iuHL|7PXVbY@gWMrE z{?Z6N6<1-!jPA~)twhT*V)V*!sWuVmwP3PpZa_>{*t2O6XB(hXSHNT#5xyUd9Xpup zG9$hBmM!Iq`XXRVk&!+^TRG3T-Wm_Kz7}NohH}2o__r#5(v%U(I^?e)nSGP#Nbe1s zPV|P>WJAG&*|k}0IoxunbSuA(!Ki3rhP!fnZ_@W_6* z96wOZVd?M4OQl`H6%zYfQAYT}*oY&Y{}11y&Yi`APC&FX8%3#6*CT=0@RJdKLe@7j zJDe=Tj!i`KxS{s-VtOwJlDqewmR=m7jJN-mt!2kV=;j(9L^C3xl-cd58%SNoQvDfa(o{3eN;j zp3i>#jMBk(=^VR3!i0j1gs9sk(#W&_X6^k~wCn%wow7+l&tps29%++}ik0p49oJ+s z`CBoDxBq?WY;MKT4xixRvhXU&^ww28aM_LjtU#fOc2e`b2kmK^+)e>!CXH9zglP0q zqJy(mDNu4}Ge9oW4v2!4od!}pM?y8*L+eq}S2;r{ifR4+jjE(0FT|ehr<)#*%(Eg{ zD|rSPf->bW;Kv*K-scgr+%CH4NYoJ*1tQBLYI7Qzj^F2aVHV*=@8{aIW|XK^!$z{q zh52bq1|&$(>J4}`ud@U7d>riKAj7_1F~R0meb=ePS6Wr1^~NBEiU&{^r;^-NyS7p!uGQ; zlV=W)S0+ly2M$Z885nS}++%DZCEA*0g*Y6>h#C9cbSk~TX0UzokOg?wRBEUJDAJ&c zIL86j_M?Wq)1T=bAR)IuM5rIY>94I&62gPdSN6*aPmt$2_P6O!RU}_>I=|BBRVl)j zdfE<|usVJ&0s2O;bD7Q|S*I2)o6RiRrvU7HhWw&w zCzkqE2y03*La+V=tKw3Fo&Si4x&P{R_>-~kddaki3NZ;R278B{6KJ<+GqcK6fnF^A`iQ2(qr%CoTiWa+ZfEpr>&cNQNN zg1^CJ)}3QbBtWFqAkxsx5;Y{K=*tMOW`)p>f3=Eu0_?4fY@i1!c@;1B-#=H{Ma4W@ zJ018&K%Ti11Vcw#C2v+&93u}HtWUx>F4SI;9@oN0evGa8A0rj9 zl-LERn>V?nZQmBgc3Gw_tBtgYvGn0jsqxx&8n*XD#iRCWUW%K`wn?LiBItnooxPhw%b`lun%no@7ZJh3OW($IhwW>99;ucX3J2j zH%8OW189loQ=z&+M88FhRxRW;|L|2%#&V?H{P%840KS=;$w@b}mai0XxSo_%5fr6A z8`gM`8fyN120hJF<_r2YlrDH&@Zqce*wm^c9a(v1i45Yr2Ei?~udb5Lza3HPX*lKN z#-?#;jfSo?QsNZrsCn2jxLJskvpEXZlrwuPdhvH-rOhYPleN*yjAv$p9}A}lnCqL2 zAB+Y86t6TCN(oJjYe1}J6XiEuU?s0{sMLYG{rykEc_gn>6}9Lei&UF>NXYrt+|}x1 z_$Lqh>wLnzh}okfTp+t6L(8 zNn3FtR7qmfkEkDZ6bkv&NVh5WqU#$Hf5e-KHZ9fRGbmI}cwQRioCaC#d<8%fLVj}3 z?}&oP2`IrQ5*VV4mPg&IK%YZrK;Xl3*`Y`o>W5$3FY*Yd)&Fu`>~Pg|&6?1TO~E@Z zPrtqzq`^lYd|V{K_NLHoHa8gJf9-mU5rL3$TzZFUgl?mRZ@LY8UIR{$*IX5^2nR@w z)W~s^H7KN2jKq#l{QuzJjMD7g^NFVMc1|FV7j zLptbK`fo7lNT5VgxYnP5U#PmLiQIjF>w7Gf43Jr1=hL z&9<;d;ASIa<4k&2^wrk*ZehG8#u2fVYQubtB57-?ecR`SK1{Ow=}pDTC4I@XqslKP zl_gfK+4;E|J|Zsh0IfHs4De6SkoT^DQ!kC6h{Z9;^>+XxSn;j>eK{dHtQ)d2@6dEt zg>`$X4S2W?hn5mHfxU;(#wR_n{hyH1h=P4TI zy)FM|*#WcK-fYf?WWF+!#uWYJv)@ybpxu8`A@~4%Qwz}4afU6Z`tVa{q=YrK>i(xQ z)h@|PF1PaL+(aVpMPpMMNmFtMKeL5kR3rm?Uiq41)7r_$w+tMzM6!SzX|60ELI26H zxBOeevUeZbynA2&9qA7;*=D6>T;oNL@E)!Io@AR>OBf>=rS9stAzy1y>x3A!`1y;p z77lGWOX)ZI(}$pAhBB`{PU}EFypxqs_>p$qI~sShjdK2rYcV%2Tb6R&@9i*4l=~JI zMKIbVT|z_h#W{>+07jSNuxX$~J8;tgX~?&g#Bl80 z%f?v$J;z2l&jP9iWyy4@=&NM!N74=}>ttuu%mfxF0%xq8MXJXl@bjRnZGjre!Ze>p zPv)2b-_SL%=TvAau@Uv%B3={v7%l2%7;WeR#NlHRpB5;gsdtEAnN#W@v|`Nilp3~L z716!?L)2!9-vChp0{XZ`0MbDDT>_*HCo3QAqqn)l4>SR|0_K<3Sbz(T zNqa(@)@C(?xBTvAa*ss{Uz1xN&cSUZiKreuB37SWqmF_{M1A*)L;Kz7oC43oAADIz_$}c>sWf$t>#EzA(1bsv&bJ6Tb*w?(+f9 zA99Gu;Vcm2){M!wVvB3)-fKZ?#DRjAV1Mylj?T&>B?Zf2Zg{VsTLpfX3V9|b;jzCy z$BlizZ9O7wUDPnDWnL+K#w?y9-Lc6Mui)zUn_m`s}(?a5#AYHCkT0X%h^&h9Ee-$xT=HC3y**X#_jwh zzu z`cjrA#^bv4m4KMwYCH0Q4f$q!5nYfggm`il_6GJ!(hijPRccYFORK1n2Uv*b-~Tc^ zKXoB(&`JLGlI%FYgl^GO`ac~dG*e)MjsZ)6ip|0?k_8g;I)`7Ix~j?4sDDGNJ27)o z^6V-Vtr^)7ta18{Iz1b$K+ZI-k&NkfM-X<~dh1vv$bg#KQn|WM6kWTPp zMwzIEL+I1ZNICK2a0Z~u%jeas(^Rl2!}3Q2Dk;Ani|?Jd|Co73CHBb6_7R}&i$Qz< zq)m2J{enL$&qO!knsPngys(d`#XaNYGd(Hh8lE!2kif}L9aAjAA<0ghMF}sacAVNj zp&+MaD6>FRB(t|R9vZtx?FcGE$UyF1ds(Zzn9bFm0Jf2mnvT~(JAQ$jxv9F5&bm4q z9jrr-M!dxc8R1P}cQ#r*bTRC#i{OS8?-h2=+D#Pl4kqPlmpl4k2-FFeJK8?0Q$&@! z=Ykfs_SIC{FNmmXZiXE|i+?{Xpz}n1QlRWrdu|?qxOw*zP)Axp`)zR`{5~}>)r33Q zw~VIMJ9w=KIxEb(8=tePMAkY!IUmY5C*@@l47DpMUs)g(qG{|B5xaLG5}Qp6`*-8DRP|ce7@1>dq?A!h=_YHiRo+63>vrd zw4VrG@k`34fv`!58}&(shB3=4X7^0{x5zr&tKa5LpI{1)>`Gyf0qliR&`i_wyqa7O zIgGJ0Cs?1?H~}%ijM{t1uj>^?upF2q_XfJ@17$V`q!CBH+*6&!+!n_-YfUP39iFtn zvu60?&5LUUvK1mH0HbRs`cEijw1vy}J3)m%FD4S{Uac7booB((NRZ=m~~3lvK4;Hm;|`HPs$px@%i*eL)XAt#dG zdyy_e{m!WEht^cE*GzpQW3z@P*OJ>dLQR_qecZt)w??cnEeL4)5c1#v#rp;r}2!+ zYGu)Acs%}|vyaoWx+P)POUSx1@n8z?urrhY>WvB5=N&Tgg3rrC1iG<50htv62q>Ny zDK>&obyoGxG&XtWQxA2^EQ-flKa`RM%@Nagm`(?T=tl>zL10xsyw;u<2wg4{4>jqN z#OEJ!FkF-ein-@u+O>Z6!=1F4nlb7co8`TAbj4I^RSoC45e0j{LtJHPY@_E=i*>4v zWXb9G)OT^vhkHMeD@TPPYD~yOi4rVvA>^%$U`97zP-5gW>gfaImI+z1xPmi*8jH5q zA|Bzs?q-Lmyt8#e#xkz(Jour^<&@eIiQCH2t!TpMWm5~AeFLBHKwOkoFQ?2iSbCu+ zStHJBhzcneIANLSuH*$KaO@Uiz1D*Z-W#xNDyD{<%MW^_0zA%OT6r(Qn?D)LPi@~EWZD05gxuH+*z`pi-J490`Xpn<_#J!A z==wj$46X&Hun5HkKT^!-t>mL#%GVA3ViGs@>cppQNTtE-y$$bIO&z5p>U0OCr#5mH zs+Y$aB?$S8WfSPwfrB@c!D-w|Dy+6pTrF;>3v4`XCnHeR2Jq}>GKVRz-#AutwjDpUEl#jpDowK9 z6w>-0jf(|tSqzE3adv7xK=wocYG@7$Ov1uvMu#2YST_q#R%*31yc`2?IQPPqCtdI- zBgPJA>YBl~ns9PG-|H+4c!c|5&r?gQRzJr;c}VJvxMv&8k=7I4bzu)VS=M_Nz~X4f zA^X2TdbDHS1j>uS*%)G{+-E<|#RYR$`^8U=`ZWLsN#EMBSu>|bGnTK)W=HOf1P6Ud z5Iql@o4I1XcA+p~A(495V4Mqflp1gw;mg#`sK*_Hcf(Zn;Mo?SO1qx5BT9bWsu!fl zV?h(RW6n{NQTk4nXuzgl>OfdD;-wL|*`8=}{-Y!;Ph!~Ikmw7}n04sb$$;wdGw^GBkp}2)!$oMzqOCL|8>yZ9 z4rf}Q$?lM?366`Q74zl>H9nA)c$92-z}~i(MSsBUcj@373fYy<%`f+=zOLQnqe7n8 zm|(KvNokPC?*7T*zf4|Kx?2(&w+#y@T_l;n!3?yN>iHTw#rAs(sI<|4r$+P#?IjYJ z7TDMPtXuVDy~agbx9apnP}^)rj#~ByLHQrPU5(59Vzxy;3>!_C&I<1dEd?4f6-QG? z^WjaJf{|AAto0=RHTqimJ*+ll%Aj?>jR&iAvEaX6?7|z@B+q2C>roNl<FMTkmk z&6gUPB@x=xi1Dfe^Rrzm=q%IOcBMad26O~v(0v!xK>H}VM<$^wB55HQ9M7)QA3;=x zJ4H~km^JN?-c9TORCQ++GF=CJ)}!wEsIDTGXvw0i8dU~k4fT(on)zSXwq^=8IdLPL8H z$~xheuCK=OqVr{B5`oZ3D8-vP4P!}1obE6t&5c=|qG2^s8Mb$8;W_ccpR-CSg)?Jk zLQLj@z!MqgIt69h3ulG%D&f*W0hbGk1Gtv>qxRBtTmjS5Lwy8|k+Ye-IHwC(4$(8DI1S1|ARz>>itC| zm(sz-(l{phAm}1v=LZw~ysAHZWo(ty%{q%PDNhGI+s3~?3Z?KM=z?rx1HOr^kc>X& za1yj{kw+BJyCj3Nm**sKJz$L^clx0FiwUqxfBDk>8qnt=gm6CaSgrav0fFA`WcyI( z>}+0h!1To|k$JdMZaZR(H2OA3SKF|qWoID4eFc_iUN2-5#ON`&b@{t{rdixS`hl%I z)WC72!dYJgJ{U~ix-U7j?BN7DS{{E&);BI|`G6*i2rUMoQiGT%#oV*;=~;C1S&!1e znOReZ8Q>)ei4U4qXHY=kHT`#sy#dR(f$k4%OixCr_Z=6>$zHWLu|MB>(&U{>L zQ5MP#>*)z&-izn)W?9!2rra}uW_eo^m!{158#!~U#a<7q5lc1E{k%TL*k*mktAT58 zgD$AM@QI~7K#ioH+vNBI=~biQBp7{cC2bn~puItvwIcbo z>e4>_DKq}p#)RviEILm|NX<(D83imsZl=#wWi*Yw~z~#+{wl-W-Ks z(HYG1=u_r;i^WC2o+8wE_cCEe6!Tg#cbQ@uG6nkS7YhhW3+tEw3Jtxm+-*8I2O)wb z(>$}XLeVsSR3k6j(7FFze`ZGVIcg|uHCH-InY4<mr__CXccP>t}E=zMnp&^^1_n7!! zga`NPGBvCp+E3g;((mw5-%5ez^M20M7V!mra%?T2r7oG3)*)-#SQtWH*iIZy zon6&Cwm`i(ftPe_e3TfhT0zDg@jxN;N@Y-ybKZ*8$fN3=(Jg(pYzyiKpkE_Oc!YZnI{BE@5^s;GXXC7p@24&S>Cqr_*Byt)V;WZK z#2f(}-ZI4ji&T1j5B}5sOd8Sfev<81WumNTZRSJT)8BRJIj<6Hc0*0yYV6JZYzUw3 zElvI)MU~hmrQP>Pf`aAWh_&6KTRpe~bYT8x3M=C`cH+|HkF2i7V{^I1rVSK_?!1GD z+>|1&k09BR;Zc7)`YhPLI?=;`e*p~9(3s`zf5?IDFOG_!UF54T(Pud1Hl6fUE7bg* zluDa_We_Yg9V#gV8@aMrwN$2_*b$IDc34jBYo)?yx^)Ckn@Rs^> zoy8$P?!_uE%A4!FbG8hn-i%kyThF5-ktsliQ|uuN>~_{Cmuq8eC^Y0wHY%B}Uzf+e z@r%ZqO8V7`#%%Tc!I}yvSGud2=FTm7cI5V~iyKff!J!arRsXFSR}>kTweuas*jNm9 zVG3LAoaTrNiMqQPqTAFhG@A9Nh~?cd*#ZMyn{haOgrTWCS&;i*xs&^MyYcw*H+P$8 zJ*isyjg&aSU028t-(EzXo)5z}ckhKUS)0qhAD-VlP#^{wfVS{%m@K~~_%u++OJ)Nd zr*nniccSfQ^hd8UrBJwuFM0!g(<1T&EH1kx0i26j=zKwdl27sSu02_|Sh6s+8c`b~ z*yFMuimzvz?3wpu$Y%0z3ScWzIT>8qI-%SuIKd~2cjD15G&n4(jpcg4+41eBsC?%s zplrTu6$|8g;HoN`6xF-Yh~-2G+90?*Y;Clvu&#u{RCvn}$w6_R6SO>?9ZKjl2#<>( z5ke4Eko1;t^>#d;cbFWe9?99L@NUM%_@^@wCcF{h7)hi5kFU3iYO`y*g`s${0>!;( zad$$o;#S-xMT!)6FRr1uQ{26{dvSMnOK}YlcAoe7-f#b7ANW>$>KeLXTst z^-msJ5JcuMOZaK27Qd+?Ev#_|eA{KMM_?y@h`E@@qM$3(5;DHeE$~Lb5GxS~!OU8! zD`BmiARJB_iJ;B7huH2Bs8REb>qLzUKfHkZ8&?<1KC9<&VDtPFa^_az-t>>Smm7%q z=G!6z$6Gak519pa>ub+jCd&R>t%9>l|6DwdQ?Jid9cn z!O+*`LtPOP=SADW*#7p-Mhp6MufnAy5fx}B-efK1^ZFrFwB=^AFgFNhdk8dQO^y~aM*OzZA{N;CQK!+=W`th=8@LBb`zQ8U{NeSV{ptTJulLYpVZg+1 zDa{vx73oaK`RW4fu2uDM#mxf)zu~1P&Y3@s%)NgRyPJ3ti#=I;tzO=+^fvzHKCd0W z|G|CKDG9xC-^g*GLsm95wiF(h3VtSFigO$(9B(tj+x}{t^`n6VH!^VVdkZ+{@)2-2 zc4qC?ptt(#-P6JIh2Qwt$4S9MLGJoHpPNkJXW3-cgL$fh+Y z!>2%CdZG7F!llPh`PIT1Db@d@c3iHrxO$V0dh4ri0iQ3fnK(J2<7f$X1^Gf#DUeBx zkRNz6MFi4{_4p`evb8@FG{U(v?^K(D*5$~DTsBlSI&9(F5IsFEu5))WxkD`UE*Qjc;!lp8tjE zDH(a=B)`e6291_V3WtAc@Med|8%sc0UxZlF_F5SHjUTuttxL+`jD7#%CV=u>jC#Az z{igXM4Xb15x4`fRXR+Cf!e8vZc`%V1+VfolvTgdWzA`nTcBd{%nOELGcBs-|L|5qL zEhV!f_@4LZ5g2g(@+5|W;qeGSI7?;T?!m|He6|y1^QRDpG{YN{C&fWmVia;(98Q{% zhg3)}Zd2sB3`hnoI)SZ7EzA_zPsC6CBGghmW(F11*V-H8Bv`@_+V9~}0u zKl|KOf4ycFV)c_$g4D-u~St@+W7(PH1am_$>9>$(k|IR~eAp6-4b>?O7=doY? z=~g{y;(o?5CANUe)T}7K=Lh{adXm?Q`;0l#mtJIG5Pme>J!9n|BRd1LLFP5i;0!a_k=cOPm&E} z-}dY*#_ zT>#RLQzB|ObVPnO30MyLNqp@LZSQ7;hI9?BEwOnct&>tOEFdK^Sxu8@;~ni1v{O8~ z#KBb25N`L2cy#G4@FX1ZKv6cA{?}0Z<;UMV{T#_x`Xs$DHFz!%E+I6O)AuW}*2dfz zjs2?L35TB!2F+;@k=~)SGcazos@g5j+zO-oAX>7QI@ec`oPIHcqn1AWCmO?`hG*?T z5ofBRYk826BBgf3Z z?;H9cd}S*!IC5z@po*)DOCIf6Pdloi5+SicY>VNxB(9Ra(}x2u zk~tHXuMxZFKpJ26aopffl9JxiI6V_Xj~(Zy1qB~8TeoqCrT5fJ;(QNRee?(-1mk4!(s_S8kvOdO!jkMR?!qFaH3Bft`(>wQ*kT|G7=*HyIml+ba zI=^da)FA*imG76{<$RI?km7(aD9LmcqfS&^!o7{c@UKgO8&MPc)K;UQ*IH9|_!EJ` zQoUl3FoC?l4LUm;gND=Kl9j z)WPnwWX5-C_gXJlm|%QE8;s5wvb>eKf?qwPtkT5ssSr`o2Ngy&sxC)2(=6t?ek<}9 z`5{OC@#ypToTmJH>U}$-)-QBqcZA_r&$Rq%IgN+l??ycEXf0H|H6{MnG=#!@Y=aNB zQuFxFrLe%2PN#uYcBABFHNtLuUEVEl+*uPRqs)`#mxr)CsbB`e_HOJvs-eQ6kFxz|8@8+2m<7$YT2Hsg31&`T!yLvXnb($#ns!qCL%!RjZ<%40 z>&zU~-lFepmES&9;401CTbph)j9EHT8lU>qUFp|aU+RJL?z9@;SNj9U4n0^_YO%O= z$s5+AtGjM}4vzdmUvt7Vo$GN%){oYH69KuI>GsAOARWClar4u|Ovo&Y_h7p-u-3{7 zhj9ZFLPv&P%I$tBWLgZOJMZT5eubaWd7;4?Ul{22_vd;YU!b4Y7@oxylkfP z4>hQ7W+F?6L&P~NHR9Gf!?v^Sn8NghdB6UL)%keTAa$~xB+}{Tf~G=^8{uOJs5~(z zQTFC&=Ig(t%8O3g zrVVt8n?N7rh?_*d67HgOnsodr=CkFi7gSnNnORA|GAxqfIVoAyezM-=DtKVAx_=Jh zB+9x~H}dD6?Ck}6f8^HggKUV6x%-x*Vu&2RoMY1&QoZ{J*S4&2-qd_@Ag4hz3EUc# zMujE#Xpxb@Ll06MiwSui2G#&68{k;4b{8d^JdMgBXDc` zoW>w;>4`!AR+v>I^g_^uLryQ6LNlVZjDs*BjGiS`q(49qNc+4U1jm*czO&~@UqbJA zB8z%>oQal87^{(g$ew?3p@n8xZ`TaWrnsMI`qie?`w|uHVWma{s^Z&;z(jub2nyD2 zy?r<(H8OZ+jE<725O@tiCX5{x@E!}m8(I@^7x{BPD|(q5d{aFBkYb6uB&ra#{ufus zqQ${RAGK+cbNft?Z;f{}O!V4Zq*W(M6rFahO{ce$GHG{*P}1QlJk(ZRK&2*pV`EmY zGxK_x0?!!w2>!<13HY$>1S0kK+zhpJBe{6+!rbuH_zaPyVawv!RRrM-bOIUt^|u4KJ|<; z2M3S>4_}NUt{W%~=lvDI80vFUfWu+E6u(1H(R1oLwKnx^K8l5!#QwR~@xmX%^uI^8EQeyca>OZMX5jcBC&c#Vay+`mlv24tt*C*N)_^wwk*TZyw;Krbv_ zjHJghp1aAW-gkYjRU4{aSfd`aCRKlJGpwi0e%*0X!f5iUM-(e-=N_Fox&+kW@6ozz zfoDqB93ncjU*b|We}oXPCM9U)(J&Y#;>z@<*0dv#m#?ZG9$z00rtu=}zdc=6;{_ss z3^EP2X(-J^K1^>$%tl{MR!G%oGjjcE)60PG&{i z+|1@_4`@!*nI9R2K_X%brEZboNKB9jPwP#Pao}0y^;8K{^_g)+DN;U!b;!Wy4B3_@ zMGFzYplcd>p#i*l+giLZDTQx%PpX}Z>ZEzCyE3FLmSd~f_UOBuSRutjW3~QpJX z$7`q~mVZwCq;;K^uk+Y>7|8B?N=-TC+Gu~m$#5*V(P7^Cf#i$e-Lrl1VeMpcFD&Z6 zQD|{&>pafZ=y1l7huuv;hCSDFSW0cy+w6JfZwo$Y9qhN8>xx_54AUzG%L$9Sj=6I~ zp(2XmD~^U)7~naptq}S)mtw6m7<4z$@VH{GU$=eBW_si$_2+Mx9OU_(HTda#r-FU% zZjhzOuR1+X%6o{xl7W?fBd^MZ!;E2roHE z3q$K!{6MDHEDYdH?_WXc_PI>L4ayVf+yBgX?+h>{;0REwfWdGq@79`8;XN);M_1xK z*3#oWM8C+1uu00be@9qT7L{?c+KP8g<3Y$e-F7%OsgbQ2CRswO*W8f-O(HIr?&^@^ zvbdqqXETVqDWC=`I(U}8CLZSV(EHRmBjb55Q*_#X`>M6@*)<3rAv4Vv zkq(l!|Kf>aIGSi_Zujt!)hc+iSccI=t6zu-&+YV)Ys&WAtdWej{QUlCt4IjEHUN?E z_+}6tVEZXx6_Kw-fBMrX5YZ9fXfBi0a^TW~0hluQJE<)LRv5(tBqjVxdec@pi z)|XSbXl<*v&GuXE$8eNGZ(1@2Z&6X001b0@t{CgakJT|YlY93j z1$Tz>^JO_Xmzz>zO}=LDAR4mJisLD5ov>~%d2}i6Sx))Tq?_!+Xd8UyBhR0dM8JJW zaFlWS^iu@ZVQhLSIht|YxU;RC<;YXK^n;&i&!q~hz->!(3gyhs@VMb|KvwDknV_^9Q%`l zj?PraAS!q=0JY~sKnG8kE_~`ZKc2rX30^?4()Uog(KBjp_P!5+FD~}iKr|l&Rj_Us z!9&=}dYh&TaP>;AWY}j)6P<(X?ox{tE(P)@0}n`yBr!P=LiBS~9dPATn>^3_E^w}7 zm1Vhe#ez+R+;Hi~ehX-fSO-z_AjoSSJpMSX>G?zUqhs*$dSpwCuV?PyWhzfz>n{V- zj`tS!D>1z4nv}=$I4*_HX$rt#PES{UA+5lBG?jB&Z+M%37|7-qnUiqh|hT2heyW{<}T9{WvOj!b8w{o% zp+v+_9`A(|6F^b!)PIUeq4Jp;oXTn#Zo3CQslPmFc;oRAO7-479x2y~QW!)~uF2&!=rV$Z)$ zJrSvz{S{pWBvFdxsw7Ywu{^9GW2P*uGj*%V_wvHr@nThBw}h3}!P4%55(<1rBFc$4 z_+I3=$mE7LPMxwxH;ERi;Di{sLZnhQN|fdMDc984it*;aTe;edKV%6)l}?qKU@o1_ zL;$nz*BS`M!skq%FW*%m!?tyt3`gx+`O=ZktFnjrthi@}8e!zKqn=&n!>IM^@G-0C z85LoM3l@kbnC%PEaJE3T9z}-~lV317i&4l)B+(Bew0Sl3^z!J`DJs+BuV^x_s$mK_ zw2o(~9_ia_ll5-NcXgIhn%UQYJ&zt?|#3ZaaB@*QKNzq%>B zt&3m$`+oGFMv+SBg^;K!EBYr=yNadO2ZpG?!30%rc4;W z;xqs1sS4uu9|O!O=|$h_3r`KC%>RAL5AZ=|(%xHUepgoqI1ggYubewg8A|Co6DtaQ znmjV@v}col`hZPPIPzgNU%jR^2yKaFBonO&+zii+o93j}IOc4z{A}A*f45|f%B^j> z%htNNbk(i!1pOqZwB5l~lVi=nY@cSqJ8)o>r1h|N_hfi{UhL=F9QpW%raI=?3k*VS z)d{w7AX(VcdS_xD`Md3yey;Q{m;7VLpC#m8eNNoj6njbj4B&}mSFOQpn~JZ$;Xp@G z9sfn$94z@wm)w#%=embS~c9S4Q7tOrGm${WNt>Y4LVg2XwbSQLZiw0ApF%YsUdu#K@;_dlMz=}tBtVT-1$_!|Ra=8F3i8k9=?(!W;Nn)45@QsK!aK^+K4G40Uyb{2>_1TK(5>~SvQjbEIl={Y z63XSTFJ^AK-cOVjboz6XLso0iGVgW#vEo3RbpBw5C;Ol58wH&0lD+~re^AMq8A3M2 zvU^RfuRBmiE}x7SfZA<2=qGIXw2e&F5N^SDBJHG8?4txTlB*5YhvI#L{7^ zQ0B|=h;IUJRhX37-v^DmVDE1@GRiT%gvK({*N+5bFTcr$Vq^N2vwsS_y5hs0>hcbw zY6T$X=w4oW7sDw^4=1Mt?JujfIt%-~Wm!1Skb8y8{o3z7cf)#Q=V>88W97k1ntF$0 zDN;6HQNrR_zJwT|Od-IVVvthLa2M;qF-R-_zTPcUObAy-%x$;#8;WwRdAWD=oPPxR zvZzdhz-1|EN|)j`$UgYu4-;nghDCQLrHvz`@AHix{`M1jj#!VB3EHL)&GsIemUfW3 zF|os$4UMvYZeNZcup6k4u_QVf?V9hZGqojdQwd*MgDKaAq?SW0UQG;-O}=gsY~bSZ zQ9*(`ngp{*g&4kGIqV(tArDjYjmCy5u2vBdjP|q%^jFmMjow#abgSy`SCmrk0u_~k zDmNiC_Bgo=GF@Je|I8nL+hMzYl=Uc)H(#V8dZOX9WZ(!O_2*u{P`8v>h?NetpRKa# z#Dr$`IWfzH+G>5;ow64F9NucV+Yim4&5P8X$y07T&8PH*A0{8W(eOmGB4sX5YHAj{ z2umNRA?2XBe*J(aRA+Z_BcX`yoa34nXf}6YxaF&aW(sFeZ7tTN z&fiE$X-RJ(;QeZo?qqoj1vtVshO0AkGZQiV;nDS{LVrStXp=S${IlHw4XAyy>W8Q4 zq}ihNSZWJ>laxp8=C7T^D`CU?r*Uw;HG~ALBg}2AswI7O2a~jSJk8xNYOdKZc^4kE zUqJuE!F-}>*7|4RFc|X5dE;QHL__HE^m=>T&}WNpvzwE_xAr({ds&yViy^QFt%X{K*r%^c0A4 zxZ%9rOHC=(brDF|aSn5!a!pXWI4YkzZ(+=f)o(^PqpT$!Y~OUMxWcqNkNn~W&#nO{ z5J#vl`||Y`k4?&iO4oUBi)7-RKBaQ!`CjHr4B;l3NvGrP7|Qp|f<|S$j&pC1wu;Jx zC&rxHZSu7H>l;7P39{eYH{NcUPrOMln77-${A|x`0o+}Vj;W#+uX89>Yd@1rGd*)` zJ1zSng50bpW9w0}(l{Tcy%_^`zvlFuKCghdpG0ISnP~i%|M+vwblq-^dHea)cHyob zGENUGS0bhiATC?eV)*2kfBx=oSzpJ}pgd#d;*7vFGSZzq%63hpO3GuZk%Tszk*Omf z)k``#rK9ppV5xGub5*+e;bk6O_P+f`6d@Gzc+_~?XHu7|xjLV}gYx(W z=_dPlpfC!>q4eIUK*cBUrWB}gCt9HLig>&$_6d^Ve)J4#_BeAk5P0HTe&%K?P}y!0 z&DlOQhQgzCLf**CSUOy-4GFm4sR;OQ0}bT;BV5>*PacCGNWHosG&6_LV1+}h-L*7# zhsPQFY42@>%&r?Qz~ioyh%+d-{*|=w4p+c6@!4Ikw{#bmEwe7SNv5}jW^a@x#^Y62 zn8Jv`bW$GeT=cIr#0qo5*L1+MQRY$`xARf27maE1P7-jPL~t1UZOVHrsLx*Z$Tr2{ z{EO%Uh-bIRT6nNOrsPU4yw*I&oE+3`0kC{xzecqc5?bOdtVi9FW0idPDSh5*=WEuX zxG%r`l`rz&b!KR;9aJm--ob5Bp3a}b*l3>ER%(?5!mnKP+ywnYYTI)ai&c?P3Vs{{ zoJ<dgjwFj*-sbc>^)ug68q%i)Zh(wNR`8{s1qDxNUp;rq+d;@ zv^&J~q(YEv>HGzpJ+daLJaT^4PF$(@>#G6|dx4`-18V&Ce}U?A)+Ev6dF0M{!-Qq5 zStk>#RO#en{J^Otv)vy#MT$>w6wR44T5gn%`{XlC>}_@af4#=`pq3IZEENV^XlNrg zsU5_ItI5AYIwY6Y6m_DLoI`t5&I_5(;4A!6l6{7f?xd+%s@vM4Mwp$q$l5T-*G~$) z>YtJ=?*quAkXky;rAN?wK{b%4FQXc3|J z-~(k_O-CGQk{F-aoD-?js&v15bFt<4y{m{eWrH(uuU9`k-oQtON$y-& zFVjD2;{Mq2Ov#P)a(BR2@1|2}(Hoylb){vIu3&S1yO-2OsX$lMZLNBUj;XI|_T2jC zMzQ+LF$CPE@ftu-oMuQedF+d;OdjX(BbMRVBY7ko%uNKvUR#16AT#W(NzTBGXTcZX`Z5JI@I=%hbpL6BT^@GOon(OKL_%;X(< zQn&lf`hLuB!IETDT-2*{Bjo-Mn`5@^H9&3M=w!5|1M4iq#iIS#nDlbFQ($3yuCI8$ z&yMF>G>}|N)RvF6LJQ5Uw+B(GzCR^kK|$|#G;yF5&j`|1i2^A77qR3h#y>o@rzGuf z%%qErEu|~X`F8Sj%6l7*&ENs?(91jS?0Dd{ zXx8Iy^t$=Uf7avaD~ZezWbQGcdC8lkn4PR|`9|<2`+VQ*swF|RdCeQG!*WKz7sBN= zal6xB$kTbGw0rG>?N?_>?=}{H0rA}{f3@qroZJx@zB{9f_5a-YDglbxobvTq3%+)N zQtpkS*z;}Owcu`eWsdl=HK-o3g<3OviEzAdqTh2##!)3?>RC)j^TEQl!y2am^uL>9rpo@t7}UQMd;Xzw+~R;kHOQ`w%8*uH+W(uwTs z1k~t~Tx$D9tXB^;AAPA>PrCfeYGo{YeigV;*x!BLJkxoE5@j@j8uYA3|LSI`#rG#s z?ZB|*y!9yC%2@ucj+sMh$P@~J)mkP87zx6v;_K6)Z;U^Rm7YuP8)jtWf9XPh$zC0^ zUrz4qWY=kQ4RD9d!?+_lBok|YFqex(UZ1n;9MI%`0d6!d&qClkCUiIcE`-_ zdA)Qq&=Q-xw_ZQ&wouc)8xIA0JB6I}(Yy;UGWBVM+)nxm+3W&o3!u+ymD&9EzRLqO zEPFX{&~G2<6*U-6#G}9%gZf3{-SOc|^Rogw!%HS;=8ZhWd3#5MQq6-}FMf0qMIqiV zupvjq2zs5U61($iNpbMu1-qc4|V3!66KNqWjG!#L>%O zIu3N-`eaXHTr4(}hA!5<*=Z01itP$k?>KaTnvqcYZNx+oYSZ|BD3d zk0wA2;v+a=1VPRD@&cL-yL_VgE3nK>Xzbq%gNM!t_2Vc3r&_|H*>7Z2Znr)WhBAP@ z^W*3K7H$D&s6cFi_tdO6j2KoUalGsI%sdtaR!dXZ}4Y3ZcJ>`pb3BV*GgR!{2M=iZm+I&mF-L zAGt~Ja6jOn`CVlxEOZ}pT=)j8`-oY{TdMW2ywRaC{bGYh7!U+c?!(3{q8uS(Nr>lO z9cnh&`VTYtT>}zj^gkpe?6sFN>OVYX>bW|c#nS@;o^!pTb(S7a2hl4Bd}^xKP`N<+ zz4&jLNMn>8=i2Mx6vvAxQ!;?dJ9e=aJiBEPwu;V3VFt@;?pxy)Qg!adw*yF9t}5>f zlsZYP_rM=rvs=s2C)*$4K`Sp?w};R zM)7rn%9k$6!7NZ`2)2{2Y@XdJ=<=#Zat=yO=5vg*Cc-o8SLAaqd2(kzcyWwy%io1v zI8^m;+fyZTwPM8S!Y7n%@dCsdv)@jOT@E)teWm;ad%hl8+@;^jKw}l)bi`Fw$&Tb! zFWR0f`1ssfT!=5Kt|zdmSmZ<;t3r|^nPn86U8>QAH~{{-%3|9@#K6$7C!iT@uQz&TZq0<=j6GYT!^PU3z|K&;k8532~7Wu)#; z_P0>L)2Br==U#Ie50sLT^e2o5+w&P}^Y6JVz|Babp*quo zYXOhDw6;1_+gsSojwhhmpJ(6bM;xFEgv!3(yVGba44@;Rn_5~nzxdvWSL^OJv9iIw zCaa5WduGQLh7fLJh$DoVRGG4V3+#wi4AOIemS9@~io7;8cDk^TYt7<=w@oqAadFFb z=@XG+)`pDQkSH>UDatAQG6IVQzX6t>6|=a=kTD-O2a+TCx(5%2U^liuDeMOS=Lj^b z{iAjGSNHJAp@aG#$%D{=7jA%Vnhvewyn;00%In4-SX2_@)`^`5WQtm(qm(*93}ZE0 zF!)7mGsaU>uD^_6tE#P z2ujrNT!*AL7u%8^m${g!^CEBOe=?HrKNF$ci$;vo*t`n|4PBvV0(bZCcaQ%%PZ3r3 z9PxsH=iAs9JsC(ZFXn{lQ8(KoZ!S#1{;df0CpK2Lq!&jUeGgkfO(h+~C9#XZ=OTt$ zvDN#E7*aB7Sc#_SWt+nXM}B4cv!3I~C&;wAFR7Qco3rv9Q)We5mNSzp%D#Kjo)qu= z$DZR>VS!@nVG76ihWwH9QfB2wcFPjwf+omad}dW!IqhMoBE_6PZwIgY zO);bjz;vA6tjY<;>%J@TH>>||v#L93amwJP0`$D_hC61xS+xVd*v4%uinA%t66)l` zDHb^j>UTKE66oC6{Gp3SyTpSFwm@I2`*0;x=@v|8+hW?w)T2`4`|X8IXoW7=fF$@x z=(ve$pXb-euf7Ty3Rq!N@$^~;yz4C8+RXldewfifghGcv79gUUT{K3eb2&iFe=RUO z3T1jWV=!mJptmarieLeb*!sEI4&nz`n%S{Ky$-O*j$6=j{Aw|euPLdrI)n2ypvDsh zFsz6*eIm@+2^mds*pnbhQ8wre;XZT#UwM*sr4DK*-hE7Z&0Kkz4KX4UN*aV^9`*zM zAw+Ee$otXQ?0zMgSYY4rEK#Eu-4~ulPc<}F$-hKKA5A}}1-k-i*XoC(J5=;8HqX-> z!R%UOPxaBj*T3D`uiyG#$vDh56ZqP1tlqe<*$(!q;ks2PTuf6230!Lu{iCyhsX(g5 z5*!ZD@sxec`Y&JSbMJND<-B&exm1Gk**&1AA0>9jfNoM*z~6*@r3;*X7pqLFTtT zCs&*NK;i7ZTwl=c1j_wERFgsCGk)t($p~mUhVbnN&DZQV7wV)MI9>C?7vSw6kFVbv z!78xu-72dVIw1D^aGi%kzJ~f??&T$`^OWy?^nz z_l-MH>{_ns9T&^PE>{fepGKU2KFC$g17jVC-=YJbzRBWtDXA)U*& zZ_zyUS3mO~&KSR~+7=;f7X%$@w!dp87K_-3rW}HJ)PXHT)Ha4xaBUQNM=U+dd|bum z9tR%OmdoB~?Okd-mih7JFd1ji*vNpy;_ zMMM)MBDEX9xe?Pou<&`Lk& z!YtysB`DH+w=IxZCy zF@~eZKDUTW!f)>@bAnNtqWggBG?z;g#~xNd<_$kL+Rld@f`YE^GLSK%%$JqG4Iq|* z06~8t9-0Bv0u%7ETj_CArM6V(#I(Sk7OEMwQsXp@QDHC>itp0lbE#3GBZ4qWFy5PY zN1VDMgiEn3%b3?bR22lOLJwIlFI=i;`|pYP_h1l_{ma1`RKMW>%I;p|?bp3eel?0< z>3{LYz7AiINiIWN^vh!e(oqPe;!~udKHlR8Tq7wM$bfDXWqLo}+ROtuo@cOQ|T0jGYK6$G$ zMoHDiUPig_2V2zE=!;d?@Qg9Wdy=^DBdRo=n=*v>uR)bwm?Q^2 zG=O5I204^tKdgkply+>caY1>%q(W<^+p0$Obu1VMSq`11aFoPazg$|DJ$HpAS1Wl+ zht1SVF-i?Blp;R?Ir`v`B${P0uO&J+*M=rkn#U@yF@0C>_nfR%<(!FL4A!Zo^<^&} z7ZlQFVesH2r0mc4)*dPnE}cLdY()k?42Rw@`N5lajxZuO5-z#Km<9CrWfYWnK(kp( zm#KSG9VTN#Na#^5RcrY_`pN%}6C48ni>fA#_V%3A{0fa^cz*o0&4pIPywXJuV$SsvR_s0meN>*(&j7LK$WkTA zq@I*Scy^J7+@XKeDjr*u=~wav%NWMSRfB$YiK(eXn#eGnYtE$lFZuj2bt4a(C6%7S zldfkEDu3fBQ|m23W~DEpjjk+m7K*J}G(%0Y zDe$`G#kIzjU*~KY$2wo1uy=i> z=lNDFyCv+iB!;Pi1`?#V#f2l`(`u|MGRK@zGokTaC&SP`@-$7Fgf3LawNxiO)O$Qs zM+**){6`Bo7FX41ejqGB3h{IR8e2KMa(Y6*?AtEeA1Vue%>Ofg{$ITL(IfsZCwdFR zh02SJLLJgg2I&xeHhH6OXh+Y5k=2@T6Z%{&;cy~bxKs6KLmPeGj++&V6g2TtEZ*6$ z&d|aa#PybD`*TxphkI2S*)r(s1d2Eug$Ec$Ciw9GQ2eTiS0=-_7T{3uQ+>a3Tj)YP&ne~&l;Y*0Uk2_XP|?Fo^b5%=)nQ~BAS)5hSMc}WyGPI;zDOSDKz z^cG6TEQXMfXfqY$JF^lt=w{r0%?DV0j;ylrC7JWG4fkFqx|M~brP}nxap9#WApf3w z;3(Y)I3EA5Xv1gXQyGk7P7+<^@T+h`ypw~PnBxP*Zz?GuFs~xa2Ye~((1u2s)#kG2 zjqpr?u*Qe5gM$u6M#CWiEmrN1IuO2X(^mNZ1Dh=y9QW$}h04{)#!KHX2F>K5c9Uei z&|+bZ2Brv|`8QzbzBrke1qz90=LfGdUl)YWLpDKLh2JU5_q7Y?x@n)JBmkEw^Gw#DPQ zYTo3J=w`?i8YIZHv{lj0YaCdY{IrScU8!)G|8QI--K!oYpmtVScvwN8mN%yMGk>ir zuEtPwKUs>x(T0nXv@nUvw3?pj+L6{-L#X^Jx3;X*LBla#N}@`FI4J^0Ek$BUKZ1*} zfm%C%&?qV~retGpMUjK&Lj zD?L)CqPXHTxbP9N!IRO=+EMb=QoBj2ICFWS;Ki2Ak{gBaFj}c2B3ElwN%N88_A$EL z*b@drp;k*p9zW3$QK4X8jqDNWBat2MIJ;0Rw64%5wX<0oiI?b+ud}SwV|UE-y>4~K zxtuLGs4KTM9O82}fwP6uaU+B4SVHN;+8W8=;0~c+5j}~%YMQTNik{Rb`n`6af=_DP z(oi!C01Txup*6^oG+bZIaYGqmtfG%NX{|ruMM>NVHM8#k&~L}Xe<=;6%wkRH{LtY4 zw0oN{9w3QLNG|H~xAEI{F>uO!SBCvjSQg4ge`bU^knQ^KyUu?}rJgOSe;4Ve_W^`s z#u^%9FMJi9o=Vevohp&&-BLbmtvP-ODA?qK+ma}kR|({)_~)Y_rSo2uO+av8820wo z>EzB&2IDqsc!76mF|j$FF_K}}yHh><7h^PHgEmO8t;5}QJB?qA>M889Cqu<_RX|g! zrqw=7tUE(xGbZFVtzD!u3y$n!-b8D$-eZ@Fl+xx^cdf-_32why364$F4JOvBYji2$GSk*Ufy~irul8fJkM&RW^Q=FLrQCICffTe~6)GsYub!v1B zQ&vhQC4zy}$%tPX5v|G4qOtf6IGLv6WTKjIcAsO2J+hl=8(F;v&%Yq$`& zdlz-$h3t7ro?Wf5=G49AUu8VhOWZYcwUqM$2lc;Ie_Aqx*Z%ePE_%}ts`t>*z`^l~ zw7a*GtZiaGhr>|H&HDQLzDlX1p z1*g_hN-hV-ud6>~ByRW(Wg%yKaE60m(jU`U*xyJe^TWmyKy#;ruWqCjF9yhTn+Jd{ zT9+vX-m;~949dlJr&IzOkM_yAuFWMI7u}I*Bu7+wS~=B( zuLlH046;b*DLDUn>MRM zTaC}`Zr_s$>Amqs3|b;o5&evz(5uUGj+|>cK>#+I*5f&UB|+HCd8Mklf;tY$m`G(+ zTWyFT)YeATw$x`pb2@SHqV~{{dt>@*ewJLnA8o_RLHYM%{qf;{$Fr@2?ffUSmd)f^ zApLtgNva1+iGN%#f5_P*1T}PV2`cs83dRMCrUtX7ZvBb=ge=sAJSxc7i*poY$Zb}I zI1=8>9avDIDt;KjlB^^5%(c$Gz*vT%Hiw%u$cS6S7>_7i{d-X1i@8D~ttom6?KeqT<@pt;OI%aVbJiIn} z-URK3DuL$>E)O3^#C5sEgug$NxfJ7jm)?^{iSe@!{ajEx^8HFQW6!(epW|pIKk~Ne zv&0|MUl3eE0bMC;Dyx7|Q|UPA8eI6|ACrZs^%NX?hNmo2kG>jxAixqI&YPUnr7t zYq^kdO_y=UvoRDiEp{J9zLdn z(yQ{;I^=S@n(qornyO5U?P^Ve+-HH};Q!m3y$9YN>! zW&Fdo~s_HCmN%P4w=4B0)<`w-N|f zeyu$;Glsj?%bW0C+x-ycJ(!+jxbYZKUhar&h|N4#x)@6qYt>c-2tdW>EA^p26bz$NkF6-E3r}s>^^);uq>5GQYtczwzx=Sw_ zI@1?)Cw=n^kCCkpYesbnzPl1^``na?qmFEd+WL4U4RP#(N#TMdaW#cjY-Knp%N{TX zjzc%0MB)l)$y_5Xh{)WoAGommP~%A#J3$$HjqT}hiNFkf$b@IbCrK?p{Mr^K141UJ zM`W=`taWDNvOv^p5nHAUTaKT?AmAL$x8M#27e)y1X2vOqN06OGd5wSm&BSO|I^4Lp zSS019ImN4gmnO}BU6_nktp6i(p#0;H#2{&OOEoEb@-P_^yhwqus|KD;k{>IkX7-<5 zCO&_#yi`vo;eTuZbvD+04cVyJ$|ihK^x*z_OR}=GQn)W zJr*wREIp~r(j`!utv3#QkdYYGc^#G|n1gr#*fn%CXNxq)QOQZdSK7_`SSnuH!Hr_+J8AwHt=I^tTql6 zbk;VtoTz@AJ6t|IA^+Q{P44$hYMZu-xUA-Z*M5!?+=L8j_afPH1P^ssQn6N=(L@9b=4SH{=^OVVF@e1QDc;jn+AAKVW)h*r;z=|KgOIRA&Sw+w1K?D9Y<#i6(aFYfMM+}&M*6?b=sAjRE_yF+nz zEtcY5+=@$YUfFx!yE{9xpYkCynaMwS&U4PsPGlw&QK8QVYI@%ZbZ6-uS04z0g%FV~Qv_Oi!ICViEGmFfhzO3DC<&LOX6V`m+wY8) z?h(-wE&(Y&#_s(~`DCTN`K{2Rk%-2D`Hz|1qEkljvnYXh&{abNx>6i&V=G#^`B=f^ z&UYVOa{^yfO??#jN$tUfiX8R2ZFcnPIKlEyINoeetslZtxFa1uujL}LkN?90FGR%nLIQ-F4dn`d@^Kw zc3aFac)FOG*5PbrVdq{Js7%WP~JG*=UH)l9O>`*{?*{xpka!cAP_Bwg!VF|jeq zBc#B!yTp=t@%PdK!9R(GU=~*WiF~p3qaIMO7k3zlbtnFjWc{w_(?fU&iwq45*1W(hL56^F%Esr8*DNfblvP6XA?>G{t?yVlh z&dy3ZW;U?!;p`IbTp6^Ow4QtpI2ZR%&;-%EXWjcdLt9pQ3NQH#dMvFj0@OFe)VA_%5>Jr=G_DOdwY|N&L{1yr=5Z^_)|LIJ!eci!3{qq zK#HgEH#VhGzxl1W56_tooofvhmprAbo%{5Gpj@|EH^>-yC zkW-)V%|I*Z3dcmuoNnR_F-3nb3cQP;=ABR#i#*AukD^%$z~kJzXJz zMY$9~OFtDOvby?lpOo5x10x%8os2I@dKsRtm-lVI>NCd7wDdPgXsg#*Nz*_~_9rrO z9+Qw(60{eo?a9N2$I2RlV`*wK{{o!erxG-lGw1C)UvjUv9)OWAZ7|*g<<;_r>5KsW zX1BcQRxT3wRIKsIF}Yi<%hmVW?LF}@*weF`vhLy@<3m@PH0vmXp__)QEo}l1Z4Gwa z<-KcTt8w>qg7%LWuRHEKB>FYtu`-7B1fCxhUVGd&*{kyYQ_j8xB8%L6aS9?{#tvnz zmnx4-=SE##kqNg8xdB~%+Cl37^n6L5bSO&RVh?0={ScrLfTRciRrT1~vA;kA^jB3E{$ ztO208=_oKCVP@1G`K}|InfgkB?VEx|!|64H2I(>84`Uk%fnbU!C z)0V)cgLbcPccu_qMSa2_T@32}3oOYXIxZT)8@{!)GLk0i&87zhhgj7cccoVg`>LbD zKivc2WH!G2vT7l9&_B#5z1t`uKeRVIlxxgC0uB;?d_C2je2q<_--JuhgI+9yKI?p81+k^gJPD& zdzbw7EyIU$^4M_U@?9gLA%*m1WVF5XK@%cyKibsh98GqRveE+Vza5Vp!U9#(6&4(w zOuxVRO@{$Yj zp}Lgj@ZT5<#rJy)r+80o!k=wyDXnx?yj5f_;YhKp$8X@PHhg!K+k~gO7_RaYzS$xU z6U3GOjSm*o))gAmUx`>E&RxuFWOOO~`?7X&iPjR>G`nPe5jizMr29ARdE@uPt5tv} zjpl7*v?_9iod;wS0G0Ne{?yhQe(yLZ$-A_w+u4L51w@&Zz3{k>{ikC4;aXn=E!;J! zA@#+d!CLy?<)ZUni5q$v!m8ui_gun)zGQAMkej&M4s^n*CROmV92G4w89x$RuQicuHWg-CqgYu6M71LOw&CS)0P4ZZE`X zaaY{HINZaYFaX^kc94nT>gkuPj7YY`vmxT~Al&!Bb1|P@_~VCYac%>j+2M|JG1r(-D*K&#XtGu z*ce;fMw`t(w|skO;Jj7kC*&&jt9GZ*Fp8#q0ZdKOVtfblKi!=>wQlD8?boDQU!2~| zdHGhCa{1y_6@^vB<|@JTH{$|@8sx`GvkJfQ0mg(`W@$5Qx+7r*X{KRvE)&BY>80xZ z%erI71bGo{vC7nV;e~!L+UyD1Qsr#`v^^khkGi-cX{IC2+d8)i-!S_SH*SD_2+WI@ z-N_A9;`XUD7KwQbQgy2~jn)6b;3=~H<12~O{zd36_Kbe-3mGyVT8cN4qM>*|emJZE z4qGs2F!RNHn@`sCzBELLRugyt%n?9z<#so{C0fcGwb?S>F*@d%4S#6lw_&|K`-9i6 zSKsB!aL9dM5>7A*T!^ya*WSWH@^@7~=}^CT(5$IE5^>B!9!gU%FWhBF(>5SF7+5JC z&S3qnfWbzA@7y6H0?wh^W8p%xI}>Oy@iOif&QF_|%&E&-Au5E{F-FjOoU1)L}j@l1?f0|}D zH^3seV=7#(zzd$*xxY`?5Ac^inVM8J&pMJuO}|=MqLc*iAo>0J>#5xh9jd1F#@unT zWtLj^D3CqN1A@^i3V3=;?Sw}<)b;Ph*n0MEUuZI(i~kpa)bIH(LLl}ZLm(mEKju79 z{qLOk^Ufw>RM)&8ojL)cUI(9{8FSCz&SI{zIm7sHo>}QN>uvKaqYCK7<9bBEf)PIg zW>8Bw$WmK|!z?_^?XA{k^Uz?htmQGB<}&2A+u-E}{4(rEfyn(r7-j08@xTIB1CS4b%TMq)Hm_uu2CZQwo%vMtK(vC8uh`ud$e4lZV2 z9q%G6pn($u#$%csvz-F!@Q=IMnR{#p!u``ebUfC=rr+y=T%3Cc4%!&0j{QeRInMvk$F%vhH&wlPK1f-P~ z+bY8GZA%EC0yRkh*vIx)XJ+w2wIX@)h*~T)wqj1UZB%uN3a@qk2742P3E!UsqAUXw@ac>o>Nkw0$BDRd%#) zz$Y)Q<;WkhpoRbj+ejt>K0JySCSnEF7jI|;@ujT*XxRY0iucB@_qVlJa0|WukckwO zYrjbW+Tywq{Bn(9f}u7U)NM(;=lQ@*S`U?7uRM&?pdGc~?4T1h^u)yGK*!i_@b+Y+ zgBZMVE2sGUHN7^1sUM0|O(nqcWmiG6Ux}e~@%As}LWU2For8Ylt_oyEI<=zR0 z8&v01mx9^;eDLY>Z=EVjATapLyfh>ke*38Qi-PI?hU43<>p%+q4}NVPWDt8!2NI#@ zMvOzN#KnSarbXV%LsMP1+HJw(hcvgZpzp>cfgaCm8ZXT$m#LhPL-eAm*!ySTh_jB^ z;usu9Jh9M$l<5((E-=B~If2;%V4wOj*L)|vIkqZWY|1=>$ED&&X5hIH zv*OWD^2XP*#SXr*IVv|cIyCydHT(W{sr_K%uYMy;>&{|yaI0$Fd$ma?!?3&}9P?7_ zcs6|4!cwz;DJ8n`?&@6PQG3&tVe$gS;jHyGW7(Tv=V+3)OtX&LtiIhD&_j^IH`|sx zjrZ>muGW9yc>fHo*&~N=>7j`6RL&B$Pz)TbqLJ{zVEDQ->Asz#qI!MQ{@b{02K9<}oP*^7m|6PdQZjyi&_#8O5k9^-0>32wjd`6#C*_F=?iw-CFF(xO2Z+LGZx=`w`^Rx+9Xv~OyS zP&JNpad{haA`^FfK*+fyh;PbWG(LGi%xcQBhka=eKz@we*SExp@;OOpnOG=2wcQbwQ-#{4#^|D3vaj~tfXB@_f7b25d{RPsDY z9w)~VnOpdqq%RX;!gk|hd;XWIm{)Udue`?Ct9#gKN&iumw1e{kKK1BclnXTX@8qDl zA6Y^{sR+&4G!^8%^qKi9Kp)*!g}`>SXH1(%qcWEeZRrg`oTr-S5e+>7M zA&}avA;vuQ?5yMs$7I7yW|L{qf&DE-JUD5}j?U;n_;?GFuduy)I~REN%^17O?#o2xJuF*D_fBPvzvreM-utj~9w8!9&2V-tu8rb6NldB4Ep4uCLb~h2( zj_U23vMC`|zT%R%(GbncAX;m)s}ybbFTNkoN5z4EU%>x$8-a#!^3kM%--5}5I8^IC zZiFHYzZS+y>gxGJyqQyZKmK_MO$2&^B%nAFTQmOFJ-213q}>?DEeU7_m_GC`r|NXj zy^I>hhIlMKkX+Z~M<%)EIhNJ+{QD+q6aObb^dC2oq@*#9?!5D79XEPB7DTO0TSW5C zKvpcHK|5Wu+*o=LnrRIVcP>ei7V@~s=ju5Era8dWx7d#+4Fg{e07>Hm^MtW;fVdRt zRs}cCjCLkj$Js9j7s*dDgr373u09k7R`$!3|2v^@^9(oj@87K+2P=yUlr$0t662aPa=t>n$Rq5p_oHS zMTM}O2c7tU-_Ae8XWwKvHVtsza)AK%IuK@r%YnKPiy0Tuu85Bl4ukV)yHUW@L*Mis z0HL6x^f)ufo}8;Z*x$2!VA4-6#eR4&F)!DQWd4}`U9lOD6-PM7A+aOz2A88`->19l zw#US~)SOtBx|_Yo|L6Pi?QQZW{NG)XB`Y<iHAj_;{k8(N%a?Y{aTf63-gB#rnGbn%$Iv=3t!2@K-Qx_SZQZ~mU3|} z8aWsz&r!2jv!_%Fwyy@savCZs_ldb_*ZvfcKu5siM?u@BPC`T7{%}MhH)&`@AK0e~MYgfz7MyY9fFv2pa=QCMpzqg?fd56A}M9XXl7gExcUa0D9aeDF3aPy6&Ml+G00oi@wYBXXmYZ&$>_LHNXx&)}KHw!X zh!anAUzI*`gkRa79@9IEt34R?q_B1REa&a^=3&kyl4j=UM74=hGoatE=_TOiN_v*H zif5GU8BlL0elhklW_5}}!Jn@Gee5}@{yN1hFxC!x=L^_JX@xiP$06!9qeLd# zW;6Oem!p>m!I1bLCjVi4(onvtw&JF2CJ;Do#xT3yO-<-;{nQN*hzE4FYD;P}6~?VT z2943(?W7swA>dB1S4<>TZscY+G`FC}Jg$UQFz{GC&xI489s$pSW!)1TAGqN$4gSdS`o=<8Uy|JvVku62DY24FTyS!MB zPgUm-*8ZuiLw<8e8A!JpaGOKLj|$?pSo;Bcj=cN_lyq7QK|Jpfsi*#8X{!hbvNP$I zF6N{F_j9;b`;R{N20q4=r($e{Sks5vqkBb*wIbP**eyP(9Q|01&mUds9W$SC4 z3Op-P*cvA#{Do(x$ZgZHb-OFI7c2btOoxwD{%gDoM$TPRL-2HoP4rFhOJUE^c)r{0 ztex2|f0O#EL!vL4crUk{P`3B^&-OK*@tMozbPZbaB~82$RN2Wha`4g?>PuznOg0PjAWm@yib zHEPZ&&HTU31H^&@@%sKp^AJ8?9L{=OkFD@%QB=H!{be!t%c}0o&m6dXOdO&L3Eg(M z)E@wnO2c@Tk$0%$EK)M!ziii>%$nFoW;ZlBlLrYqW+CNX(8v49GBo8zyEHQCKiMYY zQ*dc~qe*wvcAaM|_^nosc@GjlX&t%j${NIo1cMGV;^U89LT*?_12P1(pCv3RjE{#n zG#+$^DP9o10+i)#B97NfT4DS?g5Gay)LVC)jc;@c5<3lP zqOGH*o|K>0FuRo2iNxiOMmc}v0jma4v&MjJXP$kQ&^*saJUX_Nqv}y9{u$k!4q_3c$-S}G!*_~bpNrj&IXdlMYQX-iBHq6hBoYYVpWIEh)9m}BleQ8h= zNtHO$>Pcpp!wTnFS{YEjKCUTqRc0O2X7G8=ZHC`W+KGTWqI4IR|KbYWLCXP`8}`V= zs-9SX!?k`KlGF8QW%6;!Y8^8pdb)>i^)M5Zo6-x4&+YMWdpQEODerhF3wU&{IY&C; z8qN;c_ki2ESP2b-JANb04Az)uJGc3AUyu{V3J8Yzk}Ty$3UuM?Gao#AToSDx=Z9{% zt)J&cGUI`r)v`Brf8S5{*)R64z1o`_?`ZvXJ5eX}7_(oMJhoM9Vk@$vh2C#N&~F9n z!6nckfiWU}l0;o)Nk6iG$hgGHiH5e6w`E@>XRR8IXA{Rhc;+RKfPpTh^gEP$ zR9JGFdu<2bEKt+Xf9)xgk}h5nA)vE`#;HZ02*E)Zt=x{LGDS}9$B6ACW(*aO@JF6| z{pn5TS9r7DA)*s+!W*o@8Ex&2Gl9wVy1tiiW80Q6(mw(Bn`EM|7Fl)8^JS0f8U~Zf z`6V+hShcMrA`Y~JDzSq&0yiXWZ+`s@LXS-!lD%K5zi(viWy{Bf1PU`h!tYc_i*w&x z|K)7S=m-E>cFYH=K{OTTwM!XBqvZ2`fQj_c3;muuA93){HZ1wkfb17_guW2l{rr=s z|B|u3a{MPM3^5kMCzuu05`b|T5wQX@S0`b%D`k*KT)!drosHe-?0@~TC)vRS-8nMz z(39#m5zuAlXe3)!<_g;y$-HK)tqgFX^}QsZq{vCaY1|Jog0Rd21xsTo7ePvmKRfXC za--LHY*sgauvdray9`owl#_IN^eI><+RYmBTUprYA%j)!pDcXuY>xHHnijYqG$#Vc zeB3n6jtF@P=#GDuQ-V*If0tNT@QXf|XKyLkK znam-YqMSk`i^54)+@Cd2KQj;<(D&i-IOh^W;n?3>AqB19O6w|{9D#rWA^E(XOzMbD zPCY(0i0(r#6;d5pR7NX`Vg!G4$7u012kNw2UXrcqsVo_W4B1JY)R1~KyC>#B9wjkW zR40R++M&WettVCD_vh3en?;yY6+AgpnI{!W9X`HzBu5;~Om;>lCHGZTMUj`qbhROa z=%kbmu$NrHNg&(v8Mb3@eeV>!w^yYc=3YRL$3I2J+n0)eEo80C)5g0m0KL!~ot^bm zZGZl>kV6!hEjP1&{QhkMLU_kV|8Kd!kv|C-qX#i*5wQX?p{B~Cm&BKS+aD*%HFdMH zukc?H0HIgbh6rj;^<2;iY*1x(%F z=-S{DKhsCk>m#(Z(w#G&-6!9@YS54Hzm*0=cwyw3~RTQ;^mxz2C5Fg zq{NmB3-N|?eRs@Y9-zn}D-^T-#)3pEuh!5aif__7mMy@X(ogpL#0dr^Xk*#dofjXLr>~wF@NT8pX%Wg>C6NT?AE$k<5)B9CG4s}NDdtG zzuWA8zrex&_tLvM{hlZ#F+Q4vHG&NBKRP_iHW7vH4XF@S^3h26MreFp48jK-E3`zyE6f9MJfU_-1>Y>Z` zSZ5SAYSt7}azBLmt)3_;>o>U*w|W>f2a?w%fJW`2zk-J0o4}I| z8P9{0Y#7NCy5>CQk%R|Q_;kdDo(1dJqTysQDcr$@YOq-)a*`GEu`=_tf zveveX1o1?k{~&EnwJ7wss*9}qFeKoneOffOh-b&E!jslumJTZsFcW05F6KkgDDLq?5MlA8L2s0PYM3&L z$Pf=+8AqS^)=h%2>_8{x(o8u#g6-TeW&+!KMz<?q8t?k5OY)XUy)>$z#7&8Qdvew zo90*{On*$}8p5#fMaUkMF^AbGXhIRz#!o=7+y%~&NX}t|Z{dpvE#Oz9;4van@3Uu= zPZmWN-vi3{HAcftsNbo(aAFV?_LLv#AzMpe_NpK8-J59lg~>F(DgUoli2sie76T)rEj%H+cV4w!_x7z!*KLn|({{EyGx8HY^!DRFJbJYI|hfydXSps z3rUlIEI4mu%2=z36jdHQKs@LrIw2depVLV9^w1YpfRe@-m48QRfW}*e8CG>1k%CH+ zH7uSYYDW!QQ4Qrzjp*(d%n6t5cg_iKIeKXdVtl#^6fTWAX7yH4aSL5+PGVcyUN!xA z0%AkkVuM#=Q43udcTgeR&yN(WGe3jmJ_-dsqhl_+FatPD(&iA_RN|<&WQEZ6UFSLyKSoi$m+;wQxp5q07Jk-0Z_UNCZ z+y%PjdU2+6hB{sq-gVE3?~cVvb==bwhZnwn2OR%eaprY~|5bwh3q@1s!oL4KVr@SA z5s~@Dc=YMy!KvYl*nn9iNd7vMSH6{*G7#kU`q2QP2Za3Ta?f+&{Bia6BN6cp<9%tX zSu0x%+b?#`j0yCmC-iwA49l0dq^;GYDdw8k&v8s&dRzhPtb{rH>UhRV*^>O(R02dW zSV35&fC!u9jB}DWk1ZI+`(~3&f5tR{5!3K0oXMOT9dhLX_Djwg%m+%w2gPBv2RHti z&!xb^^%(EvYwI?}KJp_<#yf=(=(Yi|S!~7|r4dYm2enHt#@kqOf$0oK`w_|tq-2z( z3=EF8fiT#@02w^KY^O^FOqVwxQ%ZI=C ze$epWbG;^=kT?H0j%L^DUl&;+A8860POe?0IZ_zi*ACbHeneiwHIVC$ob2bh?%WpA zDJPBKwq@exTf6G)BY6ci!}cznjZD5zubytitmL$9Q+W#o?6l+e7VWwA=wIao5(eyU zgyhTd?D=g}J(k|UzS{o$Xq~*9VO{+t4*QG3sd#P;(LoZPY8>Igem47f#5YO`Yo`GV zvmUoE)cO3J`#gv6p=jLE3uDT5$4B$eHdE=NCep*?ZW4GVo(067UU=Kgf6348nFs9i zhTRN89A=@{PqL&(Jp%kY1MwZu82cSW4qotfXSOldG0cyUo%EwlBJlQV=P=g^b)^{l zHxi%PDcI3EDO~3=GZMHqwMg)VzxP zg$lg)UEx}L9mzh}W=P-N$e4L39w~gWoHXVTU9EcPcSId1v3enoq^s#tel76;tIp*Y z{VP1?|7%4}RQ|`fAbI)hV4W+7#LEDsPsK+A#le<=I8?$~HDqoXDUIDUwiEkhiX3R~ zf{&>NMd8LyKq+Fx*okwzf6ANdg{Ukgz}k;J;AhK(`ba9Fyd>%;^lH(i-u4msJ77em zd!8SSI-A`3=O~*j>7Z998j}`{B_PzR){L;H0vsuy`0?@K=7mkXa*(kD!}BG5Pi-TB zNU=LQko4JAAuS}M2vj(XJ?tgVmo+{D0AVq~;g#wZTQ@Bh$!CSAf2!N@JLr7$-$>4& zS^~z>1*fpZ5cooKm9lFP7Rdl!5#+Qq79K+^(YmPdaui^e1$HR^dUKKpdt^sMpE6%0 z7mOsRj_4^Az1O7B?8ZN`ukSdFzP;nD?ingoQ)=xPt+>F>vag@(g>>#qwy$+$=!}8) z3}atD%F_mZaPXY!C+_KJA6-*A23-|+B3dOlB3?jN!=Jyy8dzV*&5XJ{0GeeE0E%z< zB*j~*j!35CgRuIzZxDSI8I~>vuly>}VHhKl!jMIgBQEaoR9g6bX6S3yQLg4Kjfh|=+5Q;I|JfBeoLqS{#!=L1-)^z?r0N#FrbCv2yVkJML83+ z6F(DIOh1y>3gFaml^eM zHX7Uy$74H6k)~Lw*<_7FqYo)dZN^dAKz6fjpZedP!MvKcNIndk z{e>q&8Rc;%DP-|duF!F5l%(Qu*t;*kwFD+GOv&5KrRNBO6y9$ayt+A!>LiW{@D%LM z_VttVUMrl7)$n#y`;zbOtXFt|pv`Ab7acW>HgFnYexlZ!U+>?>OKMB1OZCXWCb77_~I7Nr7c#gUE=y<`pl&n}`_(oPJqBk6&(LYdd&$FpI zQ#b|(i~K$bGs9U88?}l!g}15c5@boDSizW3J2n0`(~`CqpOc>dAFgxS|0ahJm7wYh zU~u!7|1$cPYVhX(qss>kF9fu#YRcK(-ZyT7F}zNK^^FTjw3W1$D!xz+rkK+MCDFjE zb63egsVm;?iNT9(J)G|lX8CKxw(%KSVcWCNpYKM)zSjBx8Ndu11QV)*OGUfBjvrf}4etbArSJT8%!p!OOR3i#4P)G_Nf#hizAY|gU{-&S zZYyOe;pAMA;yC5ah$|H6h%xl84jlk8xhrJ)@xvju+PN)~h!1E(MnCYpJ(AOPI)a{`>H#6L#zwjM$1AnogPtl@s@F0nIAF?%a+IF8RJRzyb=eU?p2LbL+Fc2bS*- zvxZ_(lziTd---aa`_2>k60?k6jEK2@YCXwzTJ0b_$}$>mD9r~3YQkH}eONcI9#9cS zzbi$MI;mn+OYWmpM^IPzP|caL)AF0z&+uCRkJcMufW9|c8XyvwYR?&fxf(Q?*p`Ue zo6uW&Z|$|+7keNqf4L^MIT`x?d^MWzO`H+7IAE zVOBl>Ll<1L!`;PZ%478PSNte_8Zgs=H!r_~5SU9hL`fR*{P_vwSE=o1xje@D)q)@G zi{s4~piBQ}ut{Pp1QY^Lte906!ganiIe9vfT-;BO`frANeXftyiGO*Uyf(3>B0;Gh z87y4#Vr@tA^_z6cx58lYtSck->^$5d+fwT}yZx9qyejVP>nCACb{}>KR1Q05TaWJy zL3Xw>XLDf4Psok#u;%zar*J!GCTpf<&5Kv^kw2e&{TKP`Z?;EoN){{|d9v)+tJRe9 zr2-+OvdyZ+5@(JNye23&W2UV{oNJC5h|{`>O&LPLV*iKvgrY6|5=!STPncb`^TaPX zZ-JBhHzmVF@!gz^l#V+)9)|_L<-^@{QcGfZbdF^%hgAY%K6mtqyq$;vo}eC{xm;Z$ z5unDkQ0``1yTwpu)M)77am|at2hy^_EZeB@n)f0fFTy`I-lwnXcYM74uGg%?pi=w^ zVib#$vL}uJU|QFEv2E^-+R=sOKRb>jnqKZo>~39=UQ4qXSBiDkk|c~XIFY@QGiwm_ z1!}zk;s`$difsXup%v(2NfsC8AQX-N7H^`8osU3p;8+i4bM}Mr_Wa zXH$yVyT3B%((L|t$#XIC@jm-%puWbd-GwbeJ{3TwS)dg&PG)yCc?Ac`zGBdS=V>Cu~M4fQLo1_nZ%Pg?D z7jK0(fvmv$q%=kV@0aw^{T?tPE2@yXtHYEqqUDX`p;HFT_U7jox~&IqMx4iUpP8)w zst1*DDA@CPtT~Fc*~2-sD2PIG0ErKyf3qs?9yoB#_Mu`4%naF=cKqg^9majbwkz za;n^_>~C%#;M=KP^nVzM3vqqr`@?<-6S3Ny5rIa+%W0sK%_Rp6KQx&axi&I2SQH$r ztBr&M8dUIna0_2w&Y8I zXu`v|VkTs8c6)d$*AY{|ljzP==uXtz9wR1AFeXi~ChXq=$M8G`DDk(yO#$o^Ovyn5 zsYN=LfcUuOXq~#;AmSSoyTrBMURWOdmOzL?^13RjM`886acZb0W!WNMaY`b+I4&bz z|NQ6N*X(#yP$P>|q$&T8>8AG2n}xlI#D{#VQr`Lp$E&|{!f?f5pQyty_M5H~r6}!8 znIVGT>Num-ukY2Ij=0GQq!wAyc>UzLy21jMJ7zpP1&zAq`sm#Jjg1O0mIo6;vOSE= z)$Ri=$H+j=@de9`|4_Wu{MIppDDBWK_=7*L+~R90nz$5v77hY-0rL3M*#kci6{*GmI`wI{&e769NY=7FO?D?W9v2@Ol zy-MqGo`jbY*|pGE#B{MOWvol!*l{%>64HiGjwqJ{#3NrnP3wZWU0a3h~6ctd~#>!cC)OZD?j?8-kii!wWIxFfYp=TIzdLX zK*)K{Mt@1WP(6(2Bi;`4rI^_V$ow@VWJmYAPwdQNX7C(xef$)_^L#nl&Fd5F(cql4 zI=FwtyX_8pcud<9zPZcWwlTw5G7J$aq|!Mj2H`@2lW%M%um|T@@ATvQ8Ff46PK!ER z0im32Mp?Er)p}XVx#=tzGw)tO=Qz1koh)vfBtQ4{vGkeO%g;EbVT^E}vahtR-h#m{ zKke|XmvQB-o~CfIM3-8d%+~vEQ!@ca8FyNU(gM)q)-CqW_wDcOQlTiJl!J_!#~C=Fmoe}}-`avYF~3V;#)%G< z0AA2W5}~X;eq}Qm3fs$k^(V8&!Vl`-$#m%A20b=t85_du=hUK^)CfIfn%Ly!3WxKC zVDzyEn;jMjh|1?X*(73$q>zf&&%`^%gDvIJldD^FWIR0NC+EnxfVB*<*+jC8={8r$ zjVsh#MZtC@L>7J(dvN|Jns6fYC`KvAujNZ#iL9L}BuVpUQNR{Xf;Rb@c1;4%_~L`? zJ4OZ(AdcIWgFocv$OUF{lb6TyAAA#sh3YA)pPm)7D+tfaaoM0hhW&~K|h8Nl=~EXTu7;6m^g zmvv&Jc;9HD!~?IO_WXR7;k+x%bu5F}&X34W>4Cx*NX@RRcisJx?JN=&<*yqb8nGw| z6S>+2+98oAXfR{(z8ECsdNJqo+|2})DvIZ2>p0d*DB|k`q4^`1i_c`q`BQMDJ3G+z z;>CUGh_h$zQ?#wh&7w4eW;X)^CnqUy0Zd6Bg{h%ClM!?V4WMRX`V96DUZfa89NAt@ zxEH??<(36~fy+nI4Cv)Qafu!Hfui{|a1Rf09Q`x(_kRxiw+Yxmko`1vNIgvUt519R zdo;6xk)z9~3`s2QdH(=h3s-dIlW~GL2I>fEMxrKEs8HZ2(v)qaK~*Fk;|Ov6AG-JV z6T9GQxTM)$rcgyz)=WO@Xf%kjs~a-dC4HifBQ&Lpav6`~55?LmfwGjRTQ}^1b5!;M zh#)cbvCG5APiuOyHzWStyis2#HV(tJhfzN}u!gXI_DP9zd=U0PJXa%vJrr$8izn+7 zNpsTq#)!vj$u(@3p$BrQEW0HkX8R}yY`0> z70Nve!KUIZY&6u;5PI!9H<8RnXj|mDRA&Qp&Bcy2NTDy}3o?oAX2?;5$8Lb404iz+ z>8zILUUYOP8-w5{`{`TOA02TSvGap8X8Uv3fF(|niU|x_G>u|%ozN&Es(~xO>cR*+ zUNBW|^s8k=dTq7=Vvok1--}9hL;Q%AFGFiaDX^;JlR&lo@A~PfhDrX=OT4b13!|vF z%>ngqVLbSyW=-C3+yqv0cXoCwZ97_fjBfJ{gZ!}B2U^X?YBI8>8rFj{d`SRO;&>n1 zBxxrB#8$lese4%NN7oQ0&@vPCTqUeY4-e-w)*5Nn`SIigTj2^lA9{0yHzn(u`l{5e zWtne0*g~2by2>8SyqDBRS@=g#NZzk~^97CrCLg}Ge0PUlyWBQX$TEzvCE}p29z$fw z|1Hi3g5HKIyb)FF3c<&{{`lnC;{vE#pI`1>zZ=-^yiWE#T6i*8e;IO!Wzst2w>lxN z+r7dfj5&NWhJ+M^N*8|i<@()RN)&AZO%VD)eq<|beuNS)h^i)&<;ixr!J-%h>ivO2 z5SIy=Z>MhAq3d-Uojznl2a1YAspcYcdEiOOik@9F4d!R%kIpALZfkEsXfnwL4eeka zgIr#=8$&7kjS8$I`krHSVo(mI>VN8D0N6W2Ap zDf_RZf5vZFJKS+g6Y_(j2Wf!jZ@iq#+{Nr^Vv@~ieumNIRVYSHc*39rmWFBaYWIED zQ1dSXI8qZN!%lRu$7)<@`qDsosa+Y?>@b=<|p}0Xta)r!jq;zK`_)q)-*u6VSBneSZN(_o#LdkwJEe!e=1& z;t`_K>6FVLmBm1#41eE*TV$i0fSC zTKH>6GL$<8&*ow%dQpJa$Q!DT|8kI1p7>V_B2n|jNO;yDFF_!NV~V466Lpa3G7LFC zA*Lmo4V5HREqesp;=UyE-F0vuG!fw)w+|%T%Jk`D22Cn3tB~YjtjbyV9+i3JRp4Fc zjmXB`Cw6gU?z?M|5urp2b1XJ-Bp?Jp2g{mew*h(VO^dFJZ7bLLcOru}iVT(=(m)3r z0`mcNfV{_UPWpM0qG@F5fuRy5$Pzs287T%0@6F7 zg(6B%s7W9pQtTo`kg)bImfw9KTW47(Cox@3er~WO#?1sAiQZ zrd2}+^Ty@v@<3uUKW>VstSPAqtyFwpNAYSXKSPsQjru0jd z)@`9}HRipWq!mh*0MvO@NpWg`9N_h3y^eP0mx! z(}EL)YW-93wMRa^{a&I?jLq*lkA_p%$gWNiovgM;QQVU}n~Cl5594kE67Exps$E#| z8>A!KXFI!I`|sIK>OP6}yKEsL5rFA6ecO`$5I?V$D{Rv?L%ZhLQhSwGH={jz{Ho{1 z_8lt)|7*#?4z)i(8S}7TJa62#_Nv|Epe?($&Ha5K z*P^ERSMPQ)``9lZAGtJ{*(k6fU)9(3OVI@1q#a@Y6e~NE*+$0IveGoTAeN;}I{(0{ zOFFjPT8GX3wa?>YJrlA}v~t`ynyWwBmoCd)v5Jq0;vd~`T_eyfK1NtCM6bUT>bTF% z6yfm5HN-_c+2N&dbVWN=?ZO4h!K}E|@rMVcykFlny-7be@J&CF(IlrfOD~N%s_KhS zY_;PGR_5lp`W34~$Bz3DuMT-5JOR>&iaw?-`;rYT2wQ_NC6&Thy z0P$osJQWuA;bzDDv;{UeDq6EkyU&2*a%1#C*(V||Jv1Ztj_s%KyxYek`*Q3_j+d|u zIo#x6ta9_}N(~pGfT4dz48{Cy^sPL52!BSU?~h6>E}T61YE>Ar&*dXWWKpmiE#q#A zb|$N>NBio#+&dAN^89QQA_kDmtU$enb44JZs+hCwC`d@L$tyQG`KuDwli5c-)mVQWBi@h-aM5Ry7}9I&?sDhpl>Sn22FH3OL;yNEMjIaDtoNZ z$F`povD$XC*AtZf=u@PNCr@EQsKDEpCvex>l3SJ)=2GX==nN}n#IITUmQ9nr44hck zX(z~vdu@$rDkT;E(R=FGna2Td)vLL+OF}H$X)kw-OnrH?g*Vu7Nod) zKE5BtB%)>;TiNi;NK@yH=agN@-RQ!P>l3m66eoYZ=b}$i=WX-)^{wmd?%Zy&N%n|RxvF7s1+Y{IY3oF9 z*^x3U6;OA*|E%pTrV@{VrcLrt5nlO8#>$F$Kh zxv%)Vu&hv}m@oR(ip4$c;adwSF9#k?ijR)c#q?6PigoN@MmsGp9)8fbX2P^9xl+?X zI3mm{1a9$w-o5Nz77@E-5o=GcQWWxXDDLf`jRM1z|Eln6t-${)tN_vHe8g1^rwH0@mTf$MgC$Ft?dzYax#!+0R~*3=kLJ)f`cv^N#shD%(il~Y3KLR7#J zoY7j}gcHtqw5=8}{z?MR;|)1xakM_eMd|_u34#92st$yEHI8S0wKkILLMUb~C`2WA zlZ!JPbkEc+_ej_6Ja*^drunf_dD4CpJfHo$671b8Phm+ew64$f@0!V9ZMYrx z_?5<;*OU5*%wgA#&s5wzBj#11|N43%=K5V(J;9XSEwiga4@0AUHYMbkW+P=jp7Ri$ zTB$(UTNR$%YAI9*Pj;wvX!y{kYAs`NcuDIf`}lfL6FI?SyoiOnsKAKPO8t>gx)zab z<7j7>uo*0B$)wttN1YIqe2Y`|rT3`fk|JoagSCtTJay%21TX6kR>#6_PwO*=^uC|m zV-tyhhBx4&;$`ha9)=%_4hdiS?^6xFXC{Q*0GzxAlcFENIlLQeK@q!&?;mPlC3 zG5aZYui$7sCt+_nhNKztT)6elww-MDM{{PK5~*Mzz2<%?EwU z6~Xr6({}gyF11}g*1R}1*&dSoe4tJP~-;Ri=#80Ql;%B5oHIhNv+1M7xC!(M^)xd{w8QY`2CajY6 z_9LRBQ{kQ>FNPI?uN~Bbc00M{B2a05QcH5DDk)L`j_MSP^oHSEs zCN3_^@~?5MzopXqOE$-+)qGzs)tSBlER?=(L%t~}L>sc>zvxe%ae3p;8MLKT?cC3V z3SQ{`+=Cdce?pik)1pK7n~uZeZD|{9rQg(I1#%B=7steRiSV2{9hfgN63>-*|Dt6b zkGAESP3S=fum&G|v&<6~_9?<$G@0#-C+=`llyW&!*2sHH-^#tZXNX~t3qHCtuOMo9 z+D$Gb7!_mjh8(Nl6|1I>r_)g_Rbs6+5!y_pV`!oCsRZVIf8A#8PJPwDfb~W*&7}e+ zmD|_2kNj_NhF;rfklHm|WDywQt@6D5@Pp4PN7jc70*J24F{3#3pV5y@n__&n8IM4d z?5x5YqpQWrC8DocV%Z(mrN{0%q~3Y{m_gCvFm&E6D^}MK^26v*@C35?*vIXK!<+7S zq9WnW*oLNbaOG9?mgCC>x|r;>?`!KDGOr;znaYqIwGe0%jcsV)n}f+w2k9B_3q1*; zgE?Wr!?r_$6r92(YSN#c_djkSn|L46Bmkz|W-|MH%0J&aNPD{CegFAFpfQi)@kku! ztC>34``ozbwUr^V$Ba&(i?W@$PO9mQznaNX=EyU-CCm7j=Kji_+UI=&?WlOFI%|&} z&Tq)_z`7p!tGJ+5`-IwzzUq~CBS5*O)|7J7<>lQVxr^p8jr}G|@jngRX$RZr>aW2K z&U(2i{u1ci{dsOPncJ@cvONKj9TaAAGXE*aY?(Ka$w{RR?Lsc&MHcO-IYb{)#oR>sV)z3s_Xyl_5S=H-CQ|m%P}vc#0Q|580WO{WX7xHk zkX{qe^HH`61UZ|dF4*o!W=s)M%!LbhSy%ql;bhsL#JCtT6ZNsOETz!i@t%vL)$4@m z!2gHycNhL%SOL4DamI7OV32+H+j3{X6EGHN3;4C>_D+Vj_Vcs}LNGThSic&Hv9PrW z0ZOiY3?F)r3Ko6uvRIXzJV*Mjk+js;y(fvzDiC7t`l`;bI*V_lZKI4g-1AyI`g#Z< zJS1m!j8Yf9gtZWH(RzEEvXqUs&#KZ2$W&0R^~oryndR#l5vF(icZ5%~$VZ<4@#x zW_Q=K?>acNwE7@!I)nlyA zn@>Ke1y;dBwMM@cx?ik1)cK0)3{epS=21!C|7o25_~Zh&@hNL?u3xoF=g}ZL!Amrw zJ5Tef=dyvYkWI_CzN;=gz1fukmFW#r?PXnm=O7@miYK>fFgGjZ zv97MLkM0`cm{GyIWo=XA≈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⪙3zdqgv+oMSf=cf*oJT>&Lfj63 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 literal 0 HcmV?d00001 diff --git a/..Themes/TreeTabsCcustomThemeV4.tt_theme b/..Themes/TreeTabsCcustomThemeV4.tt_theme new file mode 100644 index 0000000..d795796 --- /dev/null +++ b/..Themes/TreeTabsCcustomThemeV4.tt_theme @@ -0,0 +1 @@ +{"ToolbarShow":true,"ColorsSet":{"attention_background":"#ff5555","attention_border":"#ff5555","button_background":"#ffddbc","button_border":"#44475a","button_hover_background":"#ffff80","button_hover_border":"#44475a","button_icons":"#000000","button_icons_hover":"#000000","button_on_background":"#ffa500","button_on_icons":"#000000","button_shelf_background":"#ffddbc","button_shelf_border":"#44475a","button_shelf_hover_background":"#ffff80","button_shelf_hover_border":"#ff79c6","button_shelf_icons":"#000000","button_shelf_icons_hover":"#000000","children_padding_left":"16px","close_hover_background":"#ffff80","close_hover_border":"#ff8080","close_hover_x":"#ff8080","close_x":"#ff8080","drag_indicator":"#ffddbc","expand_closed_background":"#ff8080","expand_hover_background":"#ff8080","expand_open_background":"#ff8080","filter_box_background":"#ffff80","filter_box_border":"#ff79c6","filter_box_font":"#000000","filter_clear_icon":"#ff8080","folder_icon_closed":"#ff0000","folder_icon_hover":"#ff8080","folder_icon_open":"#ff0000","group_list_background":"#ffddbc","group_list_borders":"#44475a","group_list_button_hover_background":"#ffddbc","group_list_default_font_color":"#f8f8f2","pin_list_background":"#ffddbc","pin_list_border_bottom":"#44475a","scrollbar_height":"11px","scrollbar_thumb":"#525049","scrollbar_thumb_hover":"#2b2a26","scrollbar_track":"#45443f","scrollbar_width":"12px","tab_active_background":"#ff79c6","tab_active_border":"#44475a","tab_active_hover_background":"#ffff80","tab_active_hover_border":"#0a84ff","tab_active_hover_title_font_color":"#282a36","tab_active_hover_title_font_weight":"bold","tab_active_selected_background":"#ffddbc","tab_active_selected_border":"#0a84ff","tab_active_selected_title_font_color":"#000000","tab_active_selected_title_font_weight":"normal","tab_active_title_font_color":"#282a36","tab_active_title_font_weight":"normal","tab_background":"#ffddbc","tab_border":"#44475a","tab_discarded_background":"#ffddbc","tab_discarded_border":"#323234","tab_discarded_hover_background":"#ffff80","tab_discarded_hover_border":"#515151","tab_discarded_hover_title_font_color":"#000000","tab_filtered":"#827e00","tab_filtered_active_border":"#d2cb00","tab_filtered_active_highlighted_search_border":"#ed9900","tab_filtered_active_highlighted_search_hover_border":"#ea9800","tab_filtered_active_hover_border":"#d2cb00","tab_filtered_active_hover_title_font_color":"#000000","tab_filtered_active_hover_title_font_weight":"normal","tab_filtered_active_title_font_color":"#000000","tab_filtered_active_title_font_weight":"normal","tab_filtered_border":"#e8e000","tab_filtered_highlighted":"#b37400","tab_filtered_highlighted_search_border":"#ed9900","tab_filtered_highlighted_search_hover_border":"#ea9800","tab_filtered_hover_border":"#d2cb00","tab_filtered_selected":"#0f8079","tab_filtered_selected_active":"#1299a9","tab_filtered_selected_active_border":"#0f8079","tab_filtered_selected_active_highlighted_search_border":"#ed9900","tab_filtered_selected_active_highlighted_search_hover_background":"#ffff80","tab_filtered_selected_active_highlighted_search_hover_border":"#ea9800","tab_filtered_selected_active_hover_border":"#0d6d67","tab_filtered_selected_active_hover_title_font_color":"#000000","tab_filtered_selected_active_hover_title_font_weight":"normal","tab_filtered_selected_active_title_font_color":"#000000","tab_filtered_selected_active_title_font_weight":"normal","tab_filtered_selected_border":"#0f8079","tab_filtered_selected_highlighted_search_border":"#ed9900","tab_filtered_selected_highlighted_search_hover_border":"#ea9800","tab_filtered_selected_hover_border":"#0d6d67","tab_header_border_radius":"4px","tab_hover_background":"#f1fa8c","tab_hover_border":"#515151","tab_hover_title_font_color":"#282a36","tab_hover_title_font_weight":"normal","tab_list_background":"#ffddbc","tab_selected_active_hover_background":"#ffff80","tab_selected_active_hover_border":"#359aff","tab_selected_active_hover_title_font_color":"#000000","tab_selected_active_hover_title_font_weight":"normal","tab_selected_background":"#ff79c6","tab_selected_border":"#44475a","tab_selected_discarded_background":"#ffddbc","tab_selected_discarded_border":"#2e5c8b","tab_selected_discarded_hover_background":"#ffff80","tab_selected_discarded_hover_border":"#336699","tab_selected_discarded_title_font_color":"#000000","tab_selected_hover_background":"#ffff80","tab_selected_hover_border":"#4d88c4","tab_selected_hover_title_font_color":"#000000","tab_selected_hover_title_font_weight":"bold","tab_selected_title_font_color":"#000000","tab_selected_title_font_weight":"normal","tab_title":"#adadad","tab_title_active":"#cacaca","tab_title_discarded":"#7e7e7e","tab_title_font_color":"#000000","tab_title_font_style":"normal","tab_title_font_weight":"bold","tabs_menu_background":"#ffddbc","tabs_menu_border":"#6272a4","tabs_menu_font":"#000000","tabs_menu_hover_background":"#ff79c6","tabs_menu_hover_border":"#000000","tabs_menu_separator":"#44475a","toolbar_background":"#ffddbc","toolbar_border_bottom":"#44475a","toolbar_shelf_background":"#ffddbc","tab_discarded_title_font_color":"#000000","tab_selected_hover_title_font_style":"italic","tab_discarded_title_font_weight":"normal","tab_filtered_selected_background":"#80ffff","tab_filtered_selected_hover_background":"#ffff80","tab_filtered_selected_active_background":"#80ffff","tab_filtered_selected_active_hover_background":"#ffff80","tab_filtered_background":"#80ffff","tab_filtered_active_background":"#80ffff","tab_filtered_hover_background":"#ffff80","tab_filtered_active_hover_background":"#ffff80","tab_filtered_highlighted_search_hover_background":"#ffff80","tab_filtered_active_highlighted_search_hover_background":"#ffff80","tab_filtered_selected_highlighted_search_hover_background":"#ffff80","tab_selected_discarded_hover_title_font_color":"#000000","tab_filtered_active_highlighted_search_title_font_weight":"normal","tab_filtered_active_highlighted_search_hover_title_font_weight":"normal","tab_filtered_selected_active_highlighted_search_title_font_weight":"normal","tab_filtered_selected_active_highlighted_search_hover_title_font_weight":"normal"},"TabsSizeSetNumber":3,"TabsMargins":"1","theme_name":"Tree Tabs Custom","theme_version":4} \ No newline at end of file diff --git a/..Themes/Vivaldi Human v2.tt_theme b/..Themes/Vivaldi Human v2.tt_theme new file mode 100644 index 0000000..b2a1034 --- /dev/null +++ b/..Themes/Vivaldi Human v2.tt_theme @@ -0,0 +1 @@ +{"ToolbarShow":true,"ColorsSet":{"attention_background":"#cf4010","attention_border":"#cf4010","button_background":"#3b3a35","button_border":"#3b3a35","button_hover_background":"#35342f","button_hover_border":"#35342f","button_icons":"#9e9e9e","button_icons_hover":"#9e9e9e","button_on_background":"#494843","button_on_icons":"#9e9e9e","button_shelf_background":"#494843","button_shelf_border":"#494843","button_shelf_hover_background":"#41403b","button_shelf_hover_border":"#41403b","button_shelf_icons":"#9e9e9e","button_shelf_icons_hover":"#9e9e9e","children_padding_left":"11px","close_hover_background":"#656460","close_hover_border":"#656460","close_hover_x":"#fbfcfe","close_x":"#dddddd","drag_indicator":"#ffa500","expand_closed_background":"#dbdbdb","expand_hover_background":"#f08e60","expand_open_background":"#9e9e9e","filter_box_background":"#35342f","filter_box_border":"#2b2a26","filter_box_font":"#adadad","filter_clear_icon":"#adadad","folder_icon_closed":"#818181","folder_icon_hover":"#f08e60","folder_icon_open":"#9e9e9e","group_list_background":"#3b3a35","group_list_borders":"#2b2a26","group_list_button_hover_background":"#35342f","group_list_default_font_color":"#b1b1b1","pin_list_background":"#494843","pin_list_border_bottom":"#292929","scrollbar_height":"11px","scrollbar_thumb":"#525049","scrollbar_thumb_hover":"#2b2a26","scrollbar_track":"#45443f","scrollbar_width":"12px","tab_active_background":"#52514b","tab_active_border":"#ed773d","tab_active_hover_background":"#52514b","tab_active_hover_border":"#ef835f","tab_active_hover_title_font_color":"#ef835f","tab_active_hover_title_font_weight":"normal","tab_active_selected_background":"#52514b","tab_active_selected_border":"#3f7ebe","tab_active_selected_title_font_color":"#3f7ebe","tab_active_selected_title_font_weight":"normal","tab_active_title_font_color":"#ed773d","tab_active_title_font_weight":"normal","tab_background":"#52514b","tab_border":"#52514b","tab_discarded_background":"#52514b","tab_discarded_border":"#52514b","tab_discarded_hover_background":"#52514b","tab_discarded_hover_border":"#605e57","tab_discarded_hover_title_font_color":"#999999","tab_filtered":"#827e00","tab_filtered_active_border":"#d2cb00","tab_filtered_active_highlighted_search_border":"#ed9900","tab_filtered_active_highlighted_search_hover_border":"#c68100","tab_filtered_active_hover_border":"#b9b500","tab_filtered_active_hover_title_font_color":"#b9b500","tab_filtered_active_hover_title_font_weight":"normal","tab_filtered_active_title_font_color":"#d2cb00","tab_filtered_active_title_font_weight":"normal","tab_filtered_border":"#e8e000","tab_filtered_highlighted":"#b37400","tab_filtered_highlighted_search_border":"#ed9900","tab_filtered_highlighted_search_hover_border":"#c68100","tab_filtered_hover_border":"#b9b500","tab_filtered_selected":"#0f8079","tab_filtered_selected_active":"#1299a9","tab_filtered_selected_active_border":"#0f8079","tab_filtered_selected_active_highlighted_search_border":"#abd618","tab_filtered_selected_active_highlighted_search_hover_background":"#4d4b46","tab_filtered_selected_active_highlighted_search_hover_border":"#abd618","tab_filtered_selected_active_hover_border":"#119791","tab_filtered_selected_active_hover_title_font_color":"#119791","tab_filtered_selected_active_hover_title_font_weight":"normal","tab_filtered_selected_active_title_font_color":"#0f8079","tab_filtered_selected_active_title_font_weight":"normal","tab_filtered_selected_border":"#0f8079","tab_filtered_selected_highlighted_search_border":"#abd618","tab_filtered_selected_highlighted_search_hover_border":"#abd618","tab_filtered_selected_hover_border":"#119791","tab_header_border_radius":"0px","tab_hover_background":"#52514b","tab_hover_border":"#858278","tab_hover_title_font_color":"#cacaca","tab_hover_title_font_weight":"normal","tab_list_background":"#494843","tab_selected_active_hover_background":"#52514b","tab_selected_active_hover_border":"#6c9dce","tab_selected_active_hover_title_font_color":"#6c9dce","tab_selected_active_hover_title_font_weight":"normal","tab_selected_background":"#52514b","tab_selected_border":"#3f7ebe","tab_selected_discarded_background":"#52514b","tab_selected_discarded_border":"#3f7ebe","tab_selected_discarded_hover_background":"#52514b","tab_selected_discarded_hover_border":"#6c9dce","tab_selected_discarded_title_font_color":"#9e9e9e","tab_selected_hover_background":"#52514b","tab_selected_hover_border":"#6699cc","tab_selected_hover_title_font_color":"#cacaca","tab_selected_hover_title_font_weight":"normal","tab_selected_title_font_color":"#c1c1c1","tab_selected_title_font_weight":"normal","tab_title":"#adadad","tab_title_active":"#cacaca","tab_title_discarded":"#7e7e7e","tab_title_font_color":"#c1c1c1","tab_title_font_style":"normal","tab_title_font_weight":"normal","tabs_menu_background":"#494843","tabs_menu_border":"#3b3a35","tabs_menu_font":"#bfbfbf","tabs_menu_hover_background":"#52514b","tabs_menu_hover_border":"#858278","tabs_menu_separator":"#3b3a35","toolbar_background":"#3b3a35","toolbar_border_bottom":"#2b2a26","toolbar_shelf_background":"#494843","tab_filtered_background":"#52514b","tab_filtered_active_background":"#52514b","tab_filtered_active_hover_background":"#52514b","tab_filtered_highlighted_search_hover_background":"#52514b","tab_filtered_active_highlighted_search_hover_background":"#52514b","tab_filtered_hover_background":"#4d4b46","tab_filtered_highlighted_search_background":"#52514b","tab_filtered_active_highlighted_search_background":"#52514b","tab_filtered_selected_highlighted_search_background":"#52514b","tab_filtered_selected_active_highlighted_search_background":"#52514b","tab_filtered_selected_highlighted_search_hover_background":"#4d4b46","tab_filtered_active_highlighted_search_hover_title_font_weight":"normal","tab_filtered_active_highlighted_search_title_font_weight":"normal","tab_filtered_active_highlighted_search_title_font_color":"#ed9900","tab_filtered_active_highlighted_search_hover_title_font_color":"#ed9900","tab_filtered_selected_active_highlighted_search_title_font_color":"#abd618","tab_filtered_selected_active_highlighted_search_hover_title_font_color":"#abd618","tab_filtered_selected_active_highlighted_search_hover_title_font_weight":"normal","tab_filtered_selected_active_highlighted_search_title_font_weight":"normal","tab_filtered_selected_active_hover_background":"#52514b","tab_filtered_selected_hover_background":"#52514b","tab_filtered_selected_background":"#52514b","tab_filtered_selected_active_background":"#52514b","tab_filtered_selected_highlighted_search_title_font_color":"#b5b5b5","tab_filtered_selected_highlighted_search_hover_title_font_color":"#b5b5b5","tab_filtered_highlighted_search_title_font_color":"#b5b5b5","tab_filtered_highlighted_search_hover_title_font_color":"#b5b5b5","tab_filtered_title_font_color":"#b5b5b5","tab_filtered_hover_title_font_color":"#b5b5b5","tab_filtered_selected_title_font_color":"#b5b5b5","tab_filtered_selected_hover_title_font_color":"#b5b5b5","tab_discarded_title_font_color":"#8c8c8c","tab_filtered_hover_title_font_weight":"normal","tab_filtered_highlighted_search_title_font_weight":"normal","tab_selected_discarded_hover_title_font_color":"#999999"},"TabsSizeSetNumber":1,"TabsMargins":"2","theme_name":"Vivaldi Human v2","theme_version":4} \ No newline at end of file diff --git a/..files_ForTesting/manifest.json b/..files_ForTesting/manifest.json index 0e7a66c..65ed9e0 100644 --- a/..files_ForTesting/manifest.json +++ b/..files_ForTesting/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "default_locale": "en", "background": { - "scripts": [ "listeners_bg.js", "scripts/common.js", "background.js" ], + "scripts": [ "global.js", "./scripts/preferences.js", "background_firefox.js", "background_opera.js", "background_vivaldi.js", "background.js" ], "persistent": true }, "name": "Tree Tabs", @@ -36,7 +36,7 @@ } }, "options_ui": { - "page": "options.html", + "page": "options/options.html", "open_in_tab": true }, "commands": { @@ -45,5 +45,5 @@ "description": "close tree" } }, - "version": "100" + "version": "1.8.6" } \ No newline at end of file diff --git a/..files_firefox/manifest.json b/..files_firefox/manifest.json index f212733..754c56d 100644 --- a/..files_firefox/manifest.json +++ b/..files_firefox/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "default_locale": "en", "background": { - "scripts": [ "listeners_bg.js", "scripts/common.js", "background.js" ], + "scripts": [ "global.js", "./scripts/preferences.js", "background_firefox.js", "background_opera.js", "background_vivaldi.js", "background.js" ], "persistent": true }, "name": "Tree Tabs", @@ -41,12 +41,12 @@ "applications": { "gecko": { "id": "TreeTabs@jagiello.it", - "strict_min_version": "57.0" + "strict_min_version": "63.0" } }, "options_ui": { - "page": "options.html", + "page": "options/options.html", "open_in_tab": true }, - "version": "1.7.2" + "version": "1.8.7" } \ No newline at end of file diff --git a/..files_opera/manifest.json b/..files_opera/manifest.json index 37cfb4e..8aa6480 100644 --- a/..files_opera/manifest.json +++ b/..files_opera/manifest.json @@ -3,7 +3,7 @@ "minimum_opera_version": "42", "default_locale": "en", "background": { - "scripts": [ "listeners_bg.js", "scripts/common.js", "background.js" ], + "scripts": [ "global.js", "./scripts/preferences.js", "background_firefox.js", "background_opera.js", "background_vivaldi.js", "background.js" ], "persistent": true }, "name": "Tree Tabs", @@ -24,12 +24,12 @@ "default_panel": "sidebar.html", "default_title": "Tree Tabs" }, - "options_page": "options.html", + "options_page": "options/options.html", "commands": { "close_tree": { "suggested_key": { "default": "Alt+W" }, "description": "close tree" } }, - "version": "1.7.2" + "version": "1.8.6" } diff --git a/..files_vivaldi/manifest.json b/..files_vivaldi/manifest.json index 2f02911..e58c349 100644 --- a/..files_vivaldi/manifest.json +++ b/..files_vivaldi/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "default_locale": "en", "background": { - "scripts": [ "listeners_bg.js", "scripts/common.js", "background.js" ], + "scripts": [ "global.js", "./scripts/preferences.js", "background_firefox.js", "background_opera.js", "background_vivaldi.js", "background.js" ], "persistent": true }, "name": "Tree Tabs", @@ -16,7 +16,7 @@ }, "permissions": [ "tabs", "sessions", "", "storage", "unlimitedStorage", "bookmarks" ], "options_ui": { - "page": "options.html", + "page": "options/options.html", "open_in_tab": false }, "commands": { @@ -25,5 +25,5 @@ "description": "close tree" } }, - "version": "1.7.2" + "version": "1.8.6" } diff --git a/_locales/en/messages.json b/_locales/en/messages.json index cf69c75..73fb09f 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,1437 +1 @@ -{ - "extensionName": { - "message": "Tree Tabs" - }, - "extDesc": { - "message": "Manage your tabs in the sidebar!" - }, - "OpenSidebar": { - "message": "Open Tree Tabs" - }, - - - "button_new": { - "message": "Press left mouse button to open new tab. \nPress middle mouse button to clone the active tab. \nPress right mouse button to scroll the list to the active tab." - }, - "button_pin": { - "message": "Pin / Unpin current tab" - }, - "button_undo": { - "message": "Reopen last closed" - }, - "button_reboot": { - "message": "Reload Tree Tabs. Try this in case your tree hierarchy is lost after restart." - }, - "button_detach": { - "message": "Detach tab" - }, - "button_move": { - "message": "Detach tab" - }, - "button_search": { - "message": "Search tabs" - }, - "button_tools": { - "message": "Tools" - }, - "button_groups": { - "message": "Groups" - }, - "filter_search_go_prev": { - "message": "Previous search result" - }, - "filter_search_go_next": { - "message": "Next search result" - }, - "button_bookmarks": { - "message": "Unsorted bookmarks" - }, - "button_downloads": { - "message": "Downloads" - }, - "button_history": { - "message": "History" - }, - "button_settings": { - "message": "Settings" - }, - "button_options": { - "message": "Tree Tabs settings" - }, - "button_extensions": { - "message": "Extensions" - }, - "button_unload": { - "message": "Unload tabs" - }, - "button_discard": { - "message": "Unload tabs" - }, - "button_filter_type": { - "message": "Search titles or urls" - }, - - - - - - "button_groups_toolbar_hide": { - "message": "Hide/Show Groups toolbar" - }, - "button_new_group": { - "message": "New group" - }, - "button_remove_group": { - "message": "Remove group.\nHold shift key to close tabs from this group" - }, - "button_edit_group": { - "message": "Rename group" - }, - - "button_import_group": { - "message": "Import group" - }, - "button_export_group": { - "message": "Export group" - }, - - "button_backup": { - "message": "Session" - }, - "button_import_bak": { - "message": "Import session" - }, - "button_import_merge_bak": { - "message": "Import and merge session.\nImporter will try to match current tabs with those from saved session, instead of opening a new window." - }, - "button_export_bak": { - "message": "Export session" - }, - "button_load_bak1": { - "message": "EMERGENCY if lost groupings: Load latest internal backup (autosave is made every 5 minutes)" - }, - "button_load_bak2": { - "message": "EMERGENCY if lost groupings: Load previous to latest internal backup (autosave is made every 10 minutes)" - }, - "button_load_bak3": { - "message": "EMERGENCY if lost groupings: Load oldest internal backup (autosave is made every 30 minutes)" - }, - - - "button_folders": { - "message": "Folders" - }, - "button_new_folder": { - "message": "New folder" - }, - "button_remove_folder": { - "message": "Remove selected folder/s" - }, - "button_edit_folder": { - "message": "Rename folder" - }, - - - - - - - "menu_expand_all": { - "message": "Expand all trees" - }, - "menu_collapse_all": { - "message": "Collapse all trees" - }, - "menu_expand_tree": { - "message": "Expand tree" - }, - "menu_collapse_tree": { - "message": "Collapse tree" - }, - "menu_new_tab": { - "message": "New tab" - }, - "menu_new_pin": { - "message": "New pinned tab" - }, - "menu_duplicate_tab": { - "message": "Duplicate" - }, - "menu_detach_tab": { - "message": "Detach" - }, - "menu_reload_tab": { - "message": "Reload" - }, - "menu_pin_tab": { - "message": "Pin" - }, - "menu_mute_tab": { - "message": "Mute" - }, - "menu_mute_tree": { - "message": "Mute tree" - }, - "menu_unmute_tree": { - "message": "Unmute tree" - }, - "menu_unmute_tab": { - "message": "Unmute" - }, - "menu_mute_other": { - "message": "Mute other" - }, - "menu_unmute_other": { - "message": "Unmute other" - }, - "menu_unpin_tab": { - "message": "Unpin" - }, - "menu_close_tree": { - "message": "Close tree" - }, - "menu_close": { - "message": "Close" - }, - "menu_close_other": { - "message": "Close other" - }, - "menu_undo_close_tab": { - "message": "Undo close" - }, - "menu_treetabs_settings": { - "message": "Settings" - }, - "menu_unload": { - "message": "Unload" - }, - - "menu_bookmark_tree": { - "message": "Bookmark" - }, - - - - "menu_new_folder": { - "message": "New folder" - }, - "menu_rename_folder": { - "message": "Rename folder" - }, - "menu_delete_folder": { - "message": "Delete" - }, - - "menu_new_group": { - "message": "New group" - }, - "menu_rename_group": { - "message": "Rename" - }, - "menu_delete_group": { - "message": "Delete" - }, - "menu_delete_group_tabs_close": { - "message": "Delete with tabs" - }, - - "menu_groups_unload": { - "message": "Unload" - }, - - "menu_bookmark_group": { - "message": "Bookmark" - }, - "menu_groups_hibernate": { - "message": "Hibernate" - }, - "menu_group_tabs_close": { - "message": "Close tabs" - }, - - - - - - - - "options_vivaldi": { - "message": " Vivaldi " - }, - "opt_url_for_web_panel": { - "message": "Url for the Web Panel" - }, - "options_pinned": { - "message": " Pinned tabs bar " - }, - "options_pin_list_multi_row": { - "message": "Multi row list" - }, - "option_allow_pin_close": { - "message": "Allow to close pinned tabs" - }, - "options_tabs": { - "message": " Tabs " - }, - "options_syncro_tabbar_tabs_order": { - "message": "Synchronize browser tabs order with Tree Tabs, tabs can be unresponsive for a second after drag&drop. This option is needed for correct ctrl+tab switching. You can disable this option if you don't use keyboard shortcuts." - }, - "options_switch_with_scroll": { - "message": "Switch tabs with mouse wheel" - }, - - "options_tab_group_regex": { - "message": "Tab group assignments (Items matching the given pattern will be moved to the designated group. Pattern accepts regular expressions.)" - }, - "option_tab_match": { - "message": "Pattern" - }, - "option_tab_group": { - "message": "Group" - }, - "options_orphaned_tabs_to_ungrouped": { - "message": "Always place orphan tabs in the 'ungrouped' group" - }, - "options_move_on_url_change": { - "message": "Move tabs that match regexes" - }, - "options_move_on_url_change_never": { - "message": "never" - }, - "options_move_on_url_change_from_empty": { - "message": "when URL changes in Home tab (only Home tabs created by ctrl+t shortcut)" - }, - "options_move_on_url_change_from_empty_b": { - "message": "when URL changes in any Home tab" - }, - "options_move_on_url_change_all_new": { - "message": "when tab is created with a matching URL" - }, - "options_move_on_url_change_always": { - "message": "whenever URL changes to a matching pattern" - }, - - "options_always_show_close": { - "message": "Show close button on all tabs and folders" - }, - "options_never_show_close": { - "message": "Never show close button (option above will be ignored)" - }, - "options_collapse_other_trees": { - "message": "Automatically collapse other trees on expand" - }, - "options_open_tree_on_hover": { - "message": "Auto expand collapsed trees when dragging and holding for a second over them" - }, - "options_promote_children": { - "message": "Promote children on close, if disabled, when closing the parent of a tree structure, all tabs and folders will be closed (be careful, because undo close tab will not recover the trees structure)" - }, - - "options_promote_children_in_first_child": { - "message": "Promote first child as a parent" - }, - - "options_skip_load": { - "message": "Discard tree structure after browser's restart, this option is for those who don't use browser's session. Basically it disables loading database at startup." - }, - - - "options_midclick_tab": { - "message": "Action for middle mouse click on tab" - }, - "options_dbclick_tab": { - "message": "Action for double click on tab" - }, - - "options_action_tab_none": { - "message": "nothing" - }, - "options_action_tab_new": { - "message": "open new tab" - }, - "options_action_tab_expand_collapse": { - "message": "expand/collapse tree" - }, - "options_action_tab_close": { - "message": "close tab" - }, - "options_action_tab_reload": { - "message": "reload tab" - }, - "options_action_tab_unload": { - "message": "unload tab" - }, - "options_action_tab_activate_previous_active": { - "message": "go back to previous active tab (works only on unpinned tabs)" - }, - "options_action_tab_undo_close": { - "message": "reopen last closed tab" - }, - - - - - "options_midclick_group": { - "message": "Action for middle click on empty space on the left side or below the tabs" - }, - "options_dbclick_group": { - "message": "Action for double click on empty space on the left side or below the tabs" - }, - "options_action_group_none": { - "message": "nothing" - }, - "options_action_group_new": { - "message": "open new tab" - }, - "options_action_group_activate_previous_active": { - "message": "go back to previous active tab (works only on unpinned tabs)" - }, - "options_action_group_undo_close_tab": { - "message": "reopen last closed tab" - }, - - - - - "options_append_child_tab": { - "message": "Place children tabs" - }, - "options_append_child_tab_top": { - "message": "at the top (reverse hierarchy)" - }, - "options_append_child_tab_bottom": { - "message": " at the bottom" - }, - "options_append_child_tab_after": { - "message": "after parent tab (no automatic tree)" - }, - - "options_append_orphan_tab": { - "message": "Append orphan tabs" - }, - "options_append_orphan_tab_top": { - "message": "at the top of the group" - }, - "options_append_orphan_tab_after_active": { - "message": "after active tab" - }, - "options_append_orphan_tab_bottom": { - "message": "at the bottom of the group" - }, - "options_append_orphan_tab_as_child": { - "message": "treat as active's tab child" - }, - - "options_toolbar_new_tab": { - "message": "Toolbar + (new tab button) should append tab" - }, - "options_toolbar_new_tab_as_regular_orphan": { - "message": "as a regular orphan tab (option above)" - }, - "options_toolbar_new_tab_root_of_group": { - "message": "at the bottom of the group" - }, - - - - "options_after_closing_active_tab": { - "message": "After closing active tab," - }, - "options_after_closing_active_tab_go_up": { - "message": "activate tab above" - }, - "options_after_closing_active_tab_go_down": { - "message": "activate tab below" - }, - "options_after_closing_active_tab_go_up_seek_in_parent": { - "message": "activate tab above if on the same level" - }, - "options_after_closing_active_tab_go_down_seek_in_parent": { - "message": "activate tab below if on the same level" - }, - "options_after_closing_active_tab_go_browser": { - "message": "let browser activate tab" - }, - - "options_append_child_tab_after_limit": { - "message": "Once reached maximum tree depth, place tab on the same level, but" - }, - "options_append_child_tab_after_limit_top": { - "message": "at the top" - }, - "options_append_child_tab_after_limit_after": { - "message": "after parent" - }, - "options_append_child_tab_after_limit_bottom": { - "message": "at the bottom" - }, - "options_show_counter_tabs": { - "message": "Show children tabs count on tabs and folders titles" - }, - "options_show_counter_tabs_hints": { - "message": "Show children tabs count in tabs and folders hints" - }, - - "options_max_tree_depth": { - "message": "Maximum tree depth: set it to -1 for unlimited branches, 0 for flat tabs placement (no trees), any number above 0 will be its maximum" - }, - "options_max_tree_drag_drop": { - "message": "Limit Drag&Drop to tree's maximum depth, so you can't drop tabs beyond maximum depth" - }, - "options_max_tree_drag_drop_folders": { - "message": "Limit Drag&Drop to tree's maximum depth, so you can't drop folders beyond maximum depth" - }, - - - - "options_groups": { - "message": "Groups" - }, - - "options_show_counter_groups": { - "message": "Show tabs count on groups" - }, - - "options_groups_toolbar_default": { - "message": "Show groups toolbar in new windows" - }, - "options_syncro_tabbar_groups_tabs_order": { - "message": "Synchronize browser tabs order after drag&drop of the group tabs. Tabs will sort for a long time, if browser has a lot of tabs open. This option is needed for correct ctrl+tab switching. You can disable this option if you don't use keyboard shortcuts." - }, - - "options_hide_other_groups_tabs_firefox": { - "message": "Show Firefox tabs from current group only. Requires change in about:config, find 'extensions.webextensions.tabhide.enabled' and set it to true." - }, - - - - - "options_folders": { - "message": "Folders" - }, - - - "options_midclick_folder": { - "message": "Action for middle mouse click on folder" - }, - "options_dbclick_folder": { - "message": "Action for double click on folder" - }, - - "options_action_folder_none": { - "message": "nothing" - }, - "options_action_folder_rename": { - "message": "rename folder" - }, - "options_action_folder_new_folder": { - "message": "open new folder" - }, - "options_action_folder_new_tab": { - "message": "open new tab" - }, - "options_action_folder_expand_collapse": { - "message": "expand/collapse tree" - }, - "options_action_folder_close": { - "message": "close folder" - }, - "options_action_folder_unload": { - "message": "unload tabs in folder" - }, - - - - - - - - - - - "options_global": { - "message": "Global" - }, - - - - "options_theme": { - "message": "Theme" - }, - - - - "options_rename_theme_button": { - "message": "Rename" - }, - "options_add_theme_button": { - "message": "Add new" - }, - "options_remove_theme_button": { - "message": "Remove" - }, - "options_import_theme_button": { - "message": "Import" - }, - "options_export_theme_button": { - "message": "Export" - }, - "options_share_theme_link": { - "message": "Get more!" - }, - - - - - - - - "options_toolbar": { - "message": " Toolbar " - }, - "options_available_buttons": { - "message": "Drag and drop buttons to arrange them, drop to the green box, buttons you don't want to use" - }, - - "options_reset_toolbar_button": { - "message": "Reset toolbar" - }, - - "options_export_debug": { - "message": "Export log file" - }, - "options_print_debug": { - "message": "Load log from file" - }, - - - "options_toolbar_look": { - "message": " Toolbar's look " - }, - - - "hint_orphan_tab": { - "message": "Orphan tab is a tab opened from an external source, which can be:" - }, - "hint_ctrl_t": { - "message": "ctrl+t shortcut" - }, - "hint_from_pin": { - "message": "link that opens new tab from pinned tab" - }, - "hint_from_bookmark": { - "message": "bookmark" - }, - "hint_from_external_link": { - "message": "external link" - }, - "hint_from_popup": { - "message": "popup opened as a tab (settings in browser, popup blocker or similar)" - }, - "hint_explained_new_tab_settings": { - "message": "+ button in Tree Tabs toolbar, places new tabs in the root of the active group, unless set differently." - }, - "hint_explained_orphan_after_active_settings": { - "message": "If 'Append orphan tabs' is set to 'after active' and active tab is not in active group, tab will append to the root of the active group instead. But only if sidebar is open." - }, - - - - "button_background": { - "message": "Toolbar buttons background" - }, - "button_hover_background": { - "message": "Toolbar buttons background, on mouse hover" - }, - "button_on_background": { - "message": "Toolbar active buttons background" - }, - - - "button_icons": { - "message": "Toolbar buttons icon color" - }, - "button_icons_hover": { - "message": "Toolbar buttons icon color, on mouse hover" - }, - "button_on_icons": { - "message": "Toolbar active buttons icon color" - }, - "button_border": { - "message": "Toolbar buttons border color" - }, - "button_hover_border": { - "message": "Toolbar buttons border color, on mouse hover" - }, - - - "filter_box_font": { - "message": "Search box, font color" - }, - "filter_box_background": { - "message": "Search box, font background color" - }, - "filter_box_border": { - "message": "Search box, border color" - }, - "filter_clear_icon": { - "message": "Clear search result x button color" - }, - - - "toolbar_background": { - "message": "Toolbar background color" - }, - "toolbar_shelf_background": { - "message": "Toolbar's shelf background color" - }, - "toolbar_border_bottom": { - "message": "Toolbar borders color" - }, - - - - "button_shelf_background": { - "message": "Toolbar's shelf buttons background color" - }, - "button_shelf_hover_background": { - "message": "Toolbar's shelf buttons background color, on mouse hover" - }, - "button_shelf_icons": { - "message": "Toolbar's shelf buttons icon color" - }, - "button_shelf_icons_hover": { - "message": "Toolbar's shelf buttons icon color, on mouse hover" - }, - "button_shelf_border": { - "message": "Toolbar's shelf buttons border color" - }, - "button_shelf_hover_border": { - "message": "Toolbar's shelf buttons border color, on mouse hover" - }, - - - - - - - - - - "options_theme_tabs": { - "message": " Tabs look " - }, - - - - "options_tabs_margin_overlap": { - "message": "Tabs spacing:\nOverlap 1px, best for themes with borders" - }, - "options_tabs_margin_0": { - "message": "Tabs spacing:\nNo spacing, best for flat look" - }, - "options_tabs_margin_1": { - "message": "Tabs spacing:\nDefault, 1px between tabs" - }, - - - - - "options_tab_list_scrollbar_width_down": { - "message": "Decrease scrollbars width" - }, - "options_tab_list_scrollbar_width_up": { - "message": "Increase scrollbars width" - }, - "options_tab_list_scrollbar_height_down": { - "message": "Decrease scrollbars height" - }, - "options_tab_list_scrollbar_height_up": { - "message": "Increase scrollbars height" - }, - - - - "options_tabs_indentation_down": { - "message": "Decrease tabs indentation" - }, - "options_tabs_indentation_up": { - "message": "Increase tabs indentation" - }, - - - "options_tabs_roundness_down": { - "message": "Make tabs corners more square" - }, - "options_tabs_roundness_up": { - "message": "Make tabs rounder" - }, - - - "options_tabs_size_down": { - "message": "Decrease tabs size" - }, - "options_tabs_size_up": { - "message": "Increase tabs size" - }, - - - - "options_theme_tabs_sample_text_normal": { - "message": "Normal" - }, - "options_theme_tabs_sample_text_normal_hover": { - "message": "Normal, mouse hover over" - }, - "options_theme_tabs_sample_text_normal_selected": { - "message": "Normal selected" - }, - "options_theme_tabs_sample_text_normal_selected_hover": { - "message": "Normal selected, mouse hover over" - }, - "options_theme_tabs_sample_text_active": { - "message": "Active" - }, - "options_theme_tabs_sample_text_active_hover": { - "message": "Active, mouse hover over" - }, - "options_theme_tabs_sample_text_active_selected": { - "message": "Active and selected" - }, - "options_theme_tabs_sample_text_active_selected_hover": { - "message": "Active and selected, mouse hover over" - }, - - "options_theme_tabs_sample_text_discarded": { - "message": "Unloaded (discarded)" - }, - "options_theme_tabs_sample_text_discarded_hover": { - "message": "Unloaded, mouse hover over" - }, - "options_theme_tabs_sample_text_discarded_selected": { - "message": "Unloaded and selected" - }, - "options_theme_tabs_sample_text_discarded_selected_hover": { - "message": "Unloaded and selected, mouse hover over" - }, - - "options_theme_tabs_sample_text_search_result": { - "message": "Search result" - }, - "options_theme_tabs_sample_text_search_result_hover": { - "message": "Search result, mouse hover over" - }, - "options_theme_tabs_sample_text_search_result_active": { - "message": "Search result active" - }, - "options_theme_tabs_sample_text_search_result_active_hover": { - "message": "Search result active, mouse hover over" - }, - - "options_theme_tabs_sample_text_search_result_selected": { - "message": "Search result selected" - }, - "options_theme_tabs_sample_text_search_result_selected_hover": { - "message": "Search result selected, mouse hover over" - }, - "options_theme_tabs_sample_text_search_result_selected_active": { - "message": "Search result selected, active" - }, - "options_theme_tabs_sample_text_search_result_selected_active_hover": { - "message": "Search result selected, active, mouse hover over" - }, - - - - "options_theme_tabs_sample_text_search_result_highlighted": { - "message": "Search result highlighted" - }, - "options_theme_tabs_sample_text_search_result_highlighted_hover": { - "message": "Search result highlighted, mouse hover over" - }, - "options_theme_tabs_sample_text_search_result_highlighted_active": { - "message": "Search result highlighted, active" - }, - "options_theme_tabs_sample_text_search_result_highlighted_active_hover": { - "message": "Search result highlighted, active, mouse hover over" - }, - - - "options_theme_tabs_sample_text_search_result_highlighted_selected": { - "message": "Search result highlighted, selected" - }, - "options_theme_tabs_sample_text_search_result_highlighted_selected_hover": { - "message": "Search result highlighted, selected, mouse hover over" - }, - "options_theme_tabs_sample_text_search_result_highlighted_selected_active": { - "message": "Search result highlighted, selected, active" - }, - "options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover": { - "message": "Search result highlighted, selected, active, mouse hover over" - }, - - - - - - - "attention_background": { - "message": "Tabs blinking for attention, background color" - }, - "attention_border": { - "message": "Tabs blinking for attention, border color" - }, - "pin_list_border_bottom": { - "message": "Pinned tabs list, border at the bottom color" - }, - "pin_list_background": { - "message": "Pinned tabs list, background color" - }, - - - "folder_icon_open": { - "message": "Open folder icon" - }, - "folder_icon_closed": { - "message": "Empty or closed folder icon" - }, - "folder_icon_hover": { - "message": "Folder icon on mouse hover" - }, - - - "expand_open_background": { - "message": "Open tree indicator" - }, - "expand_closed_background": { - "message": "Closed tree indicator" - }, - "expand_hover_background": { - "message": "Tree indicator on mouse hover" - }, - - - "group_list_button_hover_background": { - "message": "Group on mouse hover" - }, - "group_list_borders": { - "message": "Group list border" - }, - "group_list_default_font_color": { - "message": "Group list default font color" - }, - - "group_list_background": { - "message": "Group list background color" - }, - "tab_list_background": { - "message": "Tabs background color" - }, - - - "drag_indicator": { - "message": "Drag&Drop indicator" - }, - - - - - - - "close_x": { - "message": "x inside the close button" - }, - "close_hover_x": { - "message": "x inside the close button, on mouse hover" - }, - "close_hover_border": { - "message": "close button border, on mouse hover" - }, - "close_hover_background": { - "message": "close button box color, on mouse hover" - }, - - - - "scrollbar_thumb": { - "message": "Scrollbar thumb" - }, - "scrollbar_thumb_hover": { - "message": "Scrollbar thumb, on mouse hover" - }, - "scrollbar_track": { - "message": "Scrollbar track" - }, - - - - - - "options_example_menu_item": { - "message": "menu item" - }, - "options_menu": { - "message": " Menu " - }, - - - "tabs_menu_hover_border": { - "message": "menu item border, on mouse hover" - }, - "tabs_menu_hover_background": { - "message": "menu item background, on mouse hover" - }, - "tabs_menu_separator": { - "message": "menu separator" - }, - "tabs_menu_font": { - "message": "menu text color" - }, - "tabs_menu_border": { - "message": "menu border" - }, - "tabs_menu_background": { - "message": "menu background" - }, - - - - - - - - - - - - "options_there_is_a_theme_with_this_name": { - "message": "Theme with this name already exists, try a new name" - }, - "options_theme_name_cannot_be_empty": { - "message": "Theme name cannot be empty, enter some name" - }, - "options_no_theme_to_export": { - "message": "No theme to export, maybe add a new one :)" - }, - "options_loaded_theme_older_version": { - "message": "Looks like loaded theme was saved in older version of the extension, some colors or options might be missing" - }, - "options_loaded_theme_newer_version": { - "message": "Looks like loaded theme was saved in a newer version of the extension, can't load!" - }, - - - - - - - - - - - - - - "options_vivaldi_copied_url": { - "message": "Web Panel Url has been copied to clipboard, add a new Web Panel and paste url." - }, - "options_copied_wallet_address": { - "message": "Wallet address has been copied to clipboard" - }, - - - "options_clear_data": { - "message": "Sidebar is not loading? Reset! ATTENTION! All options and saved Themes will be lost!" - }, - - - "options_development": { - "message": "Development" - }, - "options_debug": { - "message": "Debug" - }, - - - - - - - - - - - - "group_edit_button_cancel": { - "message": "Cancel" - }, - - "group_edit_button_confirm": { - "message": "Ok" - }, - - - - "folder_edit_button_cancel": { - "message": "Cancel" - }, - - "folder_edit_button_confirm": { - "message": "Ok" - }, - - - "manager_window_button_label_import_group": { - "message": "Import group" - }, - - "manager_window_button_label_import_session": { - "message": "Import session" - }, - "manager_window_button_label_save_current_session": { - "message": "Save current session" - }, - - - - - - - - "caption_ungrouped_group": { - "message": "Ungrouped" - }, - "caption_noname_group": { - "message": "untitled" - }, - - "caption_clear_filter": { - "message": "Clear search results" - }, - "caption_loading": { - "message": "Loading..." - }, - "caption_searchbox": { - "message": " Search tabs..." - }, - - "manager_window_header_title": { - "message": "Manager" - }, - - "menu_manager_window": { - "message": "Open manager" - }, - - "button_manager_window": { - "message": "Open manager window" - }, - - "manager_window_groups_button": { - "message": "Hibernated groups" - }, - "manager_window_sessions_button": { - "message": "Saved sessions" - }, - "manager_window_autosave_button": { - "message": "Auto saved sessions" - }, - "manager_window_button_label_hibernate_group": { - "message": "Hibernate current group" - }, - - "manager_window_autosessions_maximum_saves_label": { - "message": "Number of autosaves to keep:" - }, - - "manager_window_autosessions_save_timer_label": { - "message": "Autosave every (minutes):" - }, - - "manager_window_delete_icon": { - "message": "Remove" - }, - - "manager_window_savetofile_icon": { - "message": "Save to file" - }, - "manager_window_merge_icon": { - "message": "Load and merge" - }, - - "manager_window_load_icon": { - "message": "Load" - }, - - "options_Remove_button": { - "message": "Remove" - }, - - "add_tab_group_regex": { - "message": "Add" - }, - - - "tab_title_font_color": { - "message": "" - }, - "tab_background": { - "message": "" - }, - "tab_border": { - "message": "" - }, - "tab_hover_title_font_color": { - "message": "" - }, - "tab_hover_background": { - "message": "" - }, - "tab_hover_border": { - "message": "" - }, - "tab_selected_title_font_color": { - "message": "" - }, - "tab_selected_background": { - "message": "" - }, - "tab_selected_border": { - "message": "" - }, - "tab_selected_hover_title_font_color": { - "message": "" - }, - "tab_selected_hover_background": { - "message": "" - }, - "tab_selected_hover_border": { - "message": "" - }, - "tab_active_title_font_color": { - "message": "" - }, - "tab_active_background": { - "message": "" - }, - "tab_active_border": { - "message": "" - }, - "tab_active_hover_title_font_color": { - "message": "" - }, - "tab_active_hover_background": { - "message": "" - }, - "tab_active_hover_border": { - "message": "" - }, - "tab_active_selected_title_font_color": { - "message": "" - }, - "tab_active_selected_background": { - "message": "" - }, - "tab_active_selected_border": { - "message": "" - }, - "tab_selected_active_hover_title_font_color": { - "message": "" - }, - "tab_selected_active_hover_background": { - "message": "" - }, - "tab_selected_active_hover_border": { - "message": "" - }, - "tab_discarded_title_font_color": { - "message": "" - }, - "tab_discarded_background": { - "message": "" - }, - "tab_discarded_border": { - "message": "" - }, - "tab_discarded_hover_title_font_color": { - "message": "" - }, - "tab_discarded_hover_background": { - "message": "" - }, - "tab_discarded_hover_border": { - "message": "" - }, - "tab_selected_discarded_title_font_color": { - "message": "" - }, - "tab_selected_discarded_background": { - "message": "" - }, - "tab_selected_discarded_border": { - "message": "" - }, - "tab_selected_discarded_hover_title_font_color": { - "message": "" - }, - "tab_selected_discarded_hover_background": { - "message": "" - }, - "tab_selected_discarded_hover_border": { - "message": "" - }, - "tab_filtered_title_font_color": { - "message": "" - }, - "tab_filtered_background": { - "message": "" - }, - "tab_filtered_border": { - "message": "" - }, - "tab_filtered_hover_title_font_color": { - "message": "" - }, - "tab_filtered_hover_background": { - "message": "" - }, - "tab_filtered_hover_border": { - "message": "" - }, - "tab_filtered_active_title_font_color": { - "message": "" - }, - "tab_filtered_active_background": { - "message": "" - }, - "tab_filtered_active_border": { - "message": "" - }, - "tab_filtered_active_hover_title_font_color": { - "message": "" - }, - "tab_filtered_active_hover_background": { - "message": "" - }, - "tab_filtered_active_hover_border": { - "message": "" - }, - "tab_filtered_selected_title_font_color": { - "message": "" - }, - "tab_filtered_selected_background": { - "message": "" - }, - "tab_filtered_selected_border": { - "message": "" - }, - "tab_filtered_selected_hover_title_font_color": { - "message": "" - }, - "tab_filtered_selected_hover_background": { - "message": "" - }, - "tab_filtered_selected_hover_border": { - "message": "" - }, - "tab_filtered_selected_active_title_font_color": { - "message": "" - }, - "tab_filtered_selected_active_background": { - "message": "" - }, - "tab_filtered_selected_active_border": { - "message": "" - }, - "tab_filtered_selected_active_hover_title_font_color": { - "message": "" - }, - "tab_filtered_selected_active_hover_background": { - "message": "" - }, - "tab_filtered_selected_active_hover_border": { - "message": "" - }, - "tab_filtered_highlighted_search_title_font_color": { - "message": "" - }, - "tab_filtered_highlighted_search_background": { - "message": "" - }, - "tab_filtered_highlighted_search_border": { - "message": "" - }, - "tab_filtered_highlighted_search_hover_title_font_color": { - "message": "" - }, - "tab_filtered_highlighted_search_hover_background": { - "message": "" - }, - "tab_filtered_highlighted_search_hover_border": { - "message": "" - }, - "tab_filtered_active_highlighted_search_title_font_color": { - "message": "" - }, - "tab_filtered_active_highlighted_search_background": { - "message": "" - }, - "tab_filtered_active_highlighted_search_border": { - "message": "" - }, - "tab_filtered_active_highlighted_search_hover_title_font_color": { - "message": "" - }, - "tab_filtered_active_highlighted_search_hover_background": { - "message": "" - }, - "tab_filtered_active_highlighted_search_hover_border": { - "message": "" - }, - "tab_filtered_selected_highlighted_search_title_font_color": { - "message": "" - }, - "tab_filtered_selected_highlighted_search_background": { - "message": "" - }, - "tab_filtered_selected_highlighted_search_border": { - "message": "" - }, - "tab_filtered_selected_highlighted_search_hover_title_font_color": { - "message": "" - }, - "tab_filtered_selected_highlighted_search_hover_background": { - "message": "" - }, - "tab_filtered_selected_highlighted_search_hover_border": { - "message": "" - }, - "tab_filtered_selected_active_highlighted_search_title_font_color": { - "message": "" - }, - "tab_filtered_selected_active_highlighted_search_background": { - "message": "" - }, - "tab_filtered_selected_active_highlighted_search_border": { - "message": "" - }, - "tab_filtered_selected_active_highlighted_search_hover_title_font_color": { - "message": "" - }, - "tab_filtered_selected_active_highlighted_search_hover_background": { - "message": "" - }, - "tab_filtered_selected_active_highlighted_search_hover_border": { - "message": "" - } - - - - - - - - - - -} +{"extensionName":{"message":"Tree Tabs"},"extDesc":{"message":"Manage your tabs in the sidebar!"},"OpenSidebar":{"message":"Open Tree Tabs"},"button_new":{"message":"Press left mouse button to open new tab. \nPress middle mouse button to clone the active tab. \nPress right mouse button to scroll the list to the active tab."},"button_pin":{"message":"Pin / Unpin current tab"},"button_undo":{"message":"Reopen last closed"},"button_reboot":{"message":"Reload Tree Tabs. Try this in case your tree hierarchy is lost after restart."},"button_detach":{"message":"Detach tab"},"button_move":{"message":"Detach tab"},"button_search":{"message":"Search tabs"},"button_tools":{"message":"Tools"},"button_groups":{"message":"Groups"},"filter_search_go_prev":{"message":"Previous search result"},"filter_search_go_next":{"message":"Next search result"},"button_bookmarks":{"message":"Unsorted bookmarks"},"button_downloads":{"message":"Downloads"},"button_history":{"message":"History"},"button_settings":{"message":"Settings"},"button_options":{"message":"Tree Tabs settings"},"button_extensions":{"message":"Extensions"},"button_unload":{"message":"Unload tabs"},"button_discard":{"message":"Unload tabs"},"button_filter_type":{"message":"Search titles or urls"},"button_groups_toolbar_hide":{"message":"Hide/Show Groups toolbar"},"button_new_group":{"message":"New group"},"button_remove_group":{"message":"Remove group.\nHold shift key to close tabs from this group"},"button_edit_group":{"message":"Rename group"},"button_import_group":{"message":"Import group"},"button_export_group":{"message":"Export group"},"button_backup":{"message":"Session"},"button_import_bak":{"message":"Import session"},"button_import_merge_bak":{"message":"Import and merge session.\nImporter will try to match current tabs with those from saved session, instead of opening a new window."},"button_export_bak":{"message":"Export session"},"button_load_bak1":{"message":"EMERGENCY if lost groupings: Load latest internal backup (autosave is made every 5 minutes)"},"button_load_bak2":{"message":"EMERGENCY if lost groupings: Load previous to latest internal backup (autosave is made every 10 minutes)"},"button_load_bak3":{"message":"EMERGENCY if lost groupings: Load oldest internal backup (autosave is made every 30 minutes)"},"button_folders":{"message":"Folders"},"button_new_folder":{"message":"New folder"},"button_remove_folder":{"message":"Remove selected folder/s"},"button_edit_folder":{"message":"Rename folder"},"menu_expand_all":{"message":"Expand all trees"},"menu_collapse_all":{"message":"Collapse all trees"},"menu_expand_tree":{"message":"Expand tree"},"menu_collapse_tree":{"message":"Collapse tree"},"menu_new_tab":{"message":"New tab"},"menu_new_pin":{"message":"New pinned tab"},"menu_duplicate_tab":{"message":"Duplicate"},"menu_detach_tab":{"message":"Detach"},"menu_reload_tab":{"message":"Reload"},"menu_pin_tab":{"message":"Pin"},"menu_mute_tab":{"message":"Mute"},"menu_mute_tree":{"message":"Mute tree"},"menu_unmute_tree":{"message":"Unmute tree"},"menu_unmute_tab":{"message":"Unmute"},"menu_mute_other":{"message":"Mute other"},"menu_unmute_other":{"message":"Unmute other"},"menu_unpin_tab":{"message":"Unpin"},"menu_close_tree":{"message":"Close tree"},"menu_close":{"message":"Close"},"menu_close_other":{"message":"Close other"},"menu_undo_close_tab":{"message":"Undo close"},"menu_treetabs_settings":{"message":"Settings"},"menu_unload":{"message":"Unload"},"menu_bookmark_tree":{"message":"Bookmark"},"menu_new_folder":{"message":"New folder"},"menu_rename_folder":{"message":"Rename folder"},"menu_delete_folder":{"message":"Delete"},"menu_new_group":{"message":"New group"},"menu_rename_group":{"message":"Rename"},"menu_delete_group":{"message":"Delete"},"menu_delete_group_tabs_close":{"message":"Delete with tabs"},"menu_groups_unload":{"message":"Unload"},"menu_bookmark_group":{"message":"Bookmark"},"menu_groups_hibernate":{"message":"Hibernate"},"menu_group_tabs_close":{"message":"Close tabs"},"status_bar_rearranging_tabs":{"message":"Rearranging tabs and folders"},"status_bar_rearranging_finished":{"message":"Rearranging: done."},"status_bar_loaded_tree_structure":{"message":"Loaded Tree structure..."},"status_bar_finding_ref_tabs":{"message":"Finding reference tabs..."},"status_bar_finding_other_windows":{"message":"Finding other windows to add tabs..."},"status_bar_all_done":{"message":"All done."},"status_bar_autosave":{"message":"Autosave: "},"status_bar_quick_check_recreate_structure":{"message":"Quick check and recreating structure..."},"options_vivaldi":{"message":" Vivaldi "},"opt_url_for_web_panel":{"message":"Url for the Web Panel"},"options_pinned":{"message":" Pinned tabs bar "},"options_pin_list_multi_row":{"message":"Multi row list"},"option_allow_pin_close":{"message":"Allow to close pinned tabs"},"option_pin_attention_blinking":{"message":"Blink pinned tabs that ask for attention"},"option_audio_blinking":{"message":"Blink audio indicator"},"options_tabs":{"message":" Tabs "},"options_syncro_tabbar_tabs_order":{"message":"Synchronize browser tabs order with Tree Tabs, tabs can be unresponsive for a second after drag&drop. This option is needed for correct ctrl+tab switching. You can disable this option if you don't use keyboard shortcuts."},"options_switch_with_scroll":{"message":"Switch tabs with mouse wheel"},"options_tab_group_regex":{"message":"Tab group assignments (Items matching the given pattern will be moved to the designated group. Pattern accepts regular expressions.)"},"option_tab_match":{"message":"Pattern"},"option_tab_group":{"message":"Group"},"options_orphaned_tabs_to_ungrouped":{"message":"Always place orphan tabs in the 'ungrouped' group"},"options_move_on_url_change":{"message":"Move tabs that match regexes"},"options_move_on_url_change_never":{"message":"never"},"options_move_on_url_change_from_empty":{"message":"when URL changes in Home tab (only Home tabs created by ctrl+t shortcut)"},"options_move_on_url_change_from_empty_b":{"message":"when URL changes in any Home tab"},"options_move_on_url_change_all_new":{"message":"when tab is created with a matching URL"},"options_move_on_url_change_always":{"message":"whenever URL changes to a matching pattern"},"options_always_show_close":{"message":"Show close button on all tabs and folders"},"options_never_show_close":{"message":"Never show close button (option above will be ignored)"},"options_collapse_other_trees":{"message":"Automatically collapse other trees on expand"},"options_open_tree_on_hover":{"message":"Auto expand collapsed trees when dragging and holding for a second over them"},"options_promote_children":{"message":"Promote children on close, if disabled, when closing the parent of a tree structure, all tabs and folders will be closed (be careful, because undo close tab will not recover the trees structure)"},"options_promote_children_in_first_child":{"message":"Promote first child as a parent"},"options_skip_load":{"message":"Discard tree structure after browser's restart, this option is for those who don't use browser's session. Basically it disables loading database at startup."},"options_midclick_tab":{"message":"Action for middle mouse click on tab"},"options_dbclick_tab":{"message":"Action for double click on tab"},"options_action_tab_none":{"message":"nothing"},"options_action_tab_new":{"message":"open new tab"},"options_action_tab_expand_collapse":{"message":"expand/collapse tree"},"options_action_tab_close":{"message":"close tab"},"options_action_tab_reload":{"message":"reload tab"},"options_action_tab_unload":{"message":"unload tab"},"options_action_tab_activate_previous_active":{"message":"go back to previous active tab (works only on unpinned tabs)"},"options_action_tab_undo_close":{"message":"reopen last closed tab"},"options_midclick_group":{"message":"Action for middle click on empty space on the left side or below the tabs"},"options_dbclick_group":{"message":"Action for double click on empty space on the left side or below the tabs"},"options_action_group_none":{"message":"nothing"},"options_action_group_new":{"message":"open new tab"},"options_action_group_activate_previous_active":{"message":"go back to previous active tab (works only on unpinned tabs)"},"options_action_group_undo_close_tab":{"message":"reopen last closed tab"},"options_append_pinned_tab":{"message":"Place pinned tabs"},"options_append_pinned_tab_first":{"message":"as first"},"options_append_pinned_tab_after":{"message":"after opener, or active"},"options_append_pinned_tab_last":{"message":"as last"},"options_append_child_tab":{"message":"Place children tabs"},"options_append_child_tab_top":{"message":"at the top (reverse hierarchy)"},"options_append_child_tab_bottom":{"message":" at the bottom"},"options_append_child_tab_after":{"message":"after parent tab (no automatic tree)"},"options_append_orphan_tab":{"message":"Append orphan tabs"},"options_append_orphan_tab_top":{"message":"at the top of the group"},"options_append_orphan_tab_after_active":{"message":"after active tab"},"options_append_orphan_tab_bottom":{"message":"at the bottom of the group"},"options_append_orphan_tab_as_child":{"message":"treat as active's tab child"},"options_append_orphan_tab_active_parent_top":{"message":"at the same level as active tab, but on top"},"options_append_orphan_tab_active_parent_bottom":{"message":"at the same level as active tab, but on bottom"},"options_toolbar_new_tab":{"message":"Toolbar + (new tab button) should append tab"},"options_toolbar_new_tab_as_regular_orphan":{"message":"as a regular orphan tab (option above)"},"options_toolbar_new_tab_root_of_group":{"message":"at the bottom of the group"},"options_after_closing_active_tab":{"message":"After closing active tab,"},"options_after_closing_active_tab_go_up":{"message":"activate tab above"},"options_after_closing_active_tab_go_down":{"message":"activate tab below"},"options_after_closing_active_tab_go_up_seek_in_parent":{"message":"activate tab above if on the same level"},"options_after_closing_active_tab_go_down_seek_in_parent":{"message":"activate tab below if on the same level"},"options_after_closing_active_tab_go_browser":{"message":"let browser activate tab"},"options_append_child_tab_after_limit":{"message":"Once reached maximum tree depth, place tab on the same level, but"},"options_append_child_tab_after_limit_top":{"message":"at the top"},"options_append_child_tab_after_limit_after":{"message":"after parent"},"options_append_child_tab_after_limit_bottom":{"message":"at the bottom"},"options_show_counter_tabs":{"message":"Show children tabs count on tabs and folders titles"},"options_show_counter_tabs_hints":{"message":"Show children tabs count in tabs and folders hints"},"options_max_tree_depth":{"message":"Maximum tree depth: set it to -1 for unlimited branches, 0 for flat tabs placement (no trees), any number above 0 will be its maximum"},"options_max_tree_drag_drop":{"message":"Limit Drag&Drop to tree's maximum depth, so you can't drop tabs beyond maximum depth"},"options_groups":{"message":"Groups"},"options_show_counter_groups":{"message":"Show tabs count on groups"},"options_groups_toolbar_default":{"message":"Show groups toolbar in new windows"},"options_syncro_tabbar_groups_tabs_order":{"message":"Synchronize browser tabs order after drag&drop of the group tabs. Tabs will sort for a long time, if browser has a lot of tabs open. This option is needed for correct ctrl+tab switching. You can disable this option if you don't use keyboard shortcuts."},"options_hide_other_groups_tabs_firefox":{"message":"Show Firefox tabs from current group only. Requires change in about:config, find 'extensions.webextensions.tabhide.enabled' and set it to true."},"options_folders":{"message":"Folders"},"options_midclick_folder":{"message":"Action for middle mouse click on folder"},"options_dbclick_folder":{"message":"Action for double click on folder"},"options_action_folder_none":{"message":"nothing"},"options_action_folder_rename":{"message":"rename folder"},"options_action_folder_new_folder":{"message":"open new folder"},"options_action_folder_new_tab":{"message":"open new tab"},"options_action_folder_expand_collapse":{"message":"expand/collapse tree"},"options_action_folder_close":{"message":"close folder"},"options_action_folder_unload":{"message":"unload tabs in folder"},"options_global":{"message":"Global"},"options_theme":{"message":"Theme"},"options_rename_theme_button":{"message":"Rename"},"options_add_theme_button":{"message":"Add new"},"options_remove_theme_button":{"message":"Remove"},"options_import_theme_button":{"message":"Import"},"options_export_theme_button":{"message":"Export"},"options_share_theme_link":{"message":"Get more!"},"options_toolbar":{"message":" Toolbar "},"options_available_buttons":{"message":"Drag and drop buttons to arrange them, drop to the green box, buttons you don't want to use"},"options_reset_toolbar_button":{"message":"Reset toolbar"},"options_export_debug":{"message":"Export log file"},"options_print_debug":{"message":"Load log from file"},"options_toolbar_look":{"message":" Toolbar's look "},"hint_orphan_tab":{"message":"Orphan tab is a tab opened from an external source, which can be:"},"hint_ctrl_t":{"message":"ctrl+t shortcut"},"hint_from_pin":{"message":"link that opens new tab from pinned tab"},"hint_from_bookmark":{"message":"bookmark"},"hint_from_external_link":{"message":"external link"},"hint_from_popup":{"message":"popup opened as a tab (settings in browser, popup blocker or anything that redirects popups to new tabs)"},"hint_explained_new_tab_settings":{"message":"+ button in the Tree Tabs toolbar"},"hint_explained_orphan_after_active_settings":{"message":"If set to 'after active tab' and active tab is not in current group, tab will append to the root of the active group instead."},"button_background":{"message":"Toolbar buttons background"},"button_hover_background":{"message":"Toolbar buttons background, on mouse hover"},"button_on_background":{"message":"Toolbar active buttons background"},"button_icons":{"message":"Toolbar buttons icon color"},"button_icons_hover":{"message":"Toolbar buttons icon color, on mouse hover"},"button_on_icons":{"message":"Toolbar active buttons icon color"},"button_border":{"message":"Toolbar buttons border color"},"button_hover_border":{"message":"Toolbar buttons border color, on mouse hover"},"filter_box_font":{"message":"Search box, font color"},"filter_box_background":{"message":"Search box, font background color"},"filter_box_border":{"message":"Search box, border color"},"filter_clear_icon":{"message":"Clear search result x button color"},"toolbar_background":{"message":"Toolbar background color"},"toolbar_shelf_background":{"message":"Toolbar's shelf background color"},"toolbar_border_bottom":{"message":"Toolbar borders color"},"button_shelf_background":{"message":"Toolbar's shelf buttons background color"},"button_shelf_hover_background":{"message":"Toolbar's shelf buttons background color, on mouse hover"},"button_shelf_icons":{"message":"Toolbar's shelf buttons icon color"},"button_shelf_icons_hover":{"message":"Toolbar's shelf buttons icon color, on mouse hover"},"button_shelf_border":{"message":"Toolbar's shelf buttons border color"},"button_shelf_hover_border":{"message":"Toolbar's shelf buttons border color, on mouse hover"},"options_theme_tabs":{"message":" Tabs look "},"options_tabs_margin_overlap":{"message":"Tabs spacing:\nOverlap 1px, best for themes with borders"},"options_tabs_margin_0":{"message":"Tabs spacing:\nNo spacing, best for flat look"},"options_tabs_margin_1":{"message":"Tabs spacing:\nDefault, 1px between tabs"},"options_tab_list_scrollbar_width_down":{"message":"Decrease scrollbars width"},"options_tab_list_scrollbar_width_up":{"message":"Increase scrollbars width"},"options_tab_list_scrollbar_height_down":{"message":"Decrease scrollbars height"},"options_tab_list_scrollbar_height_up":{"message":"Increase scrollbars height"},"options_tabs_indentation_down":{"message":"Decrease tabs indentation"},"options_tabs_indentation_up":{"message":"Increase tabs indentation"},"options_tabs_roundness_down":{"message":"Make tabs corners more square"},"options_tabs_roundness_up":{"message":"Make tabs rounder"},"options_tabs_size_down":{"message":"Decrease tabs size"},"options_tabs_size_up":{"message":"Increase tabs size"},"options_theme_tabs_sample_text_normal":{"message":"Normal"},"options_theme_tabs_sample_text_normal_hover":{"message":"Normal, mouse hover over"},"options_theme_tabs_sample_text_normal_selected":{"message":"Normal selected"},"options_theme_tabs_sample_text_normal_selected_hover":{"message":"Normal selected, mouse hover over"},"options_theme_tabs_sample_text_active":{"message":"Active"},"options_theme_tabs_sample_text_active_hover":{"message":"Active, mouse hover over"},"options_theme_tabs_sample_text_active_selected":{"message":"Active and selected"},"options_theme_tabs_sample_text_active_selected_hover":{"message":"Active and selected, mouse hover over"},"options_theme_tabs_sample_text_discarded":{"message":"Unloaded (discarded)"},"options_theme_tabs_sample_text_discarded_hover":{"message":"Unloaded, mouse hover over"},"options_theme_tabs_sample_text_discarded_selected":{"message":"Unloaded and selected"},"options_theme_tabs_sample_text_discarded_selected_hover":{"message":"Unloaded and selected, mouse hover over"},"options_theme_tabs_sample_text_search_result":{"message":"Search result"},"options_theme_tabs_sample_text_search_result_hover":{"message":"Search result, mouse hover over"},"options_theme_tabs_sample_text_search_result_active":{"message":"Search result active"},"options_theme_tabs_sample_text_search_result_active_hover":{"message":"Search result active, mouse hover over"},"options_theme_tabs_sample_text_search_result_selected":{"message":"Search result selected"},"options_theme_tabs_sample_text_search_result_selected_hover":{"message":"Search result selected, mouse hover over"},"options_theme_tabs_sample_text_search_result_selected_active":{"message":"Search result selected, active"},"options_theme_tabs_sample_text_search_result_selected_active_hover":{"message":"Search result selected, active, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted":{"message":"Search result highlighted"},"options_theme_tabs_sample_text_search_result_highlighted_hover":{"message":"Search result highlighted, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted_active":{"message":"Search result highlighted, active"},"options_theme_tabs_sample_text_search_result_highlighted_active_hover":{"message":"Search result highlighted, active, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted_selected":{"message":"Search result highlighted, selected"},"options_theme_tabs_sample_text_search_result_highlighted_selected_hover":{"message":"Search result highlighted, selected, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted_selected_active":{"message":"Search result highlighted, selected, active"},"options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover":{"message":"Search result highlighted, selected, active, mouse hover over"},"attention_background":{"message":"Tabs blinking for attention, background color"},"attention_border":{"message":"Tabs blinking for attention, border color"},"pin_list_border_bottom":{"message":"Pinned tabs list, border at the bottom color"},"pin_list_background":{"message":"Pinned tabs list, background color"},"folder_icon_open":{"message":"Open folder icon"},"folder_icon_closed":{"message":"Empty or closed folder icon"},"folder_icon_hover":{"message":"Folder icon on mouse hover"},"expand_open_background":{"message":"Open tree indicator"},"expand_closed_background":{"message":"Closed tree indicator"},"expand_hover_background":{"message":"Tree indicator on mouse hover"},"group_list_button_hover_background":{"message":"Group on mouse hover"},"group_list_borders":{"message":"Group list border"},"group_list_default_font_color":{"message":"Group list default font color"},"group_list_background":{"message":"Group list background color"},"tab_list_background":{"message":"Tabs background color"},"drag_indicator":{"message":"Drag&Drop indicator"},"close_x":{"message":"x inside the close button"},"close_hover_x":{"message":"x inside the close button, on mouse hover"},"close_hover_border":{"message":"close button border, on mouse hover"},"close_hover_background":{"message":"close button box color, on mouse hover"},"scrollbar_thumb":{"message":"Scrollbar thumb"},"scrollbar_thumb_hover":{"message":"Scrollbar thumb, on mouse hover"},"scrollbar_track":{"message":"Scrollbar track"},"options_example_menu_item":{"message":"menu item"},"options_menu":{"message":" Menu "},"tabs_menu_hover_border":{"message":"menu item border, on mouse hover"},"tabs_menu_hover_background":{"message":"menu item background, on mouse hover"},"tabs_menu_separator":{"message":"menu separator"},"tabs_menu_font":{"message":"menu text color"},"tabs_menu_border":{"message":"menu border"},"tabs_menu_background":{"message":"menu background"},"options_there_is_a_theme_with_this_name":{"message":"Theme with this name already exists, try a new name"},"options_theme_name_cannot_be_empty":{"message":"Theme name cannot be empty, enter some name"},"options_no_theme_to_export":{"message":"No theme to export, maybe add a new one :)"},"options_loaded_theme_older_version":{"message":"Looks like loaded theme was saved in older version of the extension, some colors or options might be missing"},"options_loaded_theme_newer_version":{"message":"Looks like loaded theme was saved in a newer version of the extension, can't load!"},"options_vivaldi_copied_url":{"message":"Web Panel Url has been copied to clipboard, add a new Web Panel and paste url."},"options_copied_wallet_address":{"message":"Wallet address has been copied to clipboard"},"options_clear_data":{"message":"Sidebar is not loading? Reset! ATTENTION! All options and saved Themes will be lost!"},"options_development":{"message":"Development"},"options_debug":{"message":"Debug"},"group_edit_button_cancel":{"message":"Cancel"},"group_edit_button_confirm":{"message":"Ok"},"folder_edit_button_cancel":{"message":"Cancel"},"folder_edit_button_confirm":{"message":"Ok"},"manager_window_button_label_import_group":{"message":"Import group"},"manager_window_button_label_import_session":{"message":"Import session"},"manager_window_button_label_save_current_session":{"message":"Save current session"},"caption_ungrouped_group":{"message":"Ungrouped"},"caption_noname_group":{"message":"untitled"},"caption_clear_filter":{"message":"Clear search results"},"caption_loading":{"message":"Loading..."},"caption_searchbox":{"message":" Search tabs..."},"manager_window_header_title":{"message":"Manager"},"menu_manager_window":{"message":"Open manager"},"button_manager_window":{"message":"Open manager window"},"manager_window_groups_button":{"message":"Hibernated groups"},"manager_window_sessions_button":{"message":"Saved sessions"},"manager_window_autosave_button":{"message":"Auto saved sessions"},"manager_window_button_label_hibernate_group":{"message":"Hibernate current group"},"manager_window_autosessions_maximum_saves_label":{"message":"Number of autosaves to keep:"},"manager_window_autosessions_save_timer_label":{"message":"Autosave every (minutes):"},"manager_window_delete_icon":{"message":"Remove"},"manager_window_savetofile_icon":{"message":"Save to file"},"manager_window_merge_icon":{"message":"Load and merge"},"manager_window_load_icon":{"message":"Load"},"options_Remove_button":{"message":"Remove"},"add_tab_group_regex":{"message":"Add"},"menu_unload_tree":{"message":"Unload tree"}} \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 1e8c132..cb71bfa 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -1,444 +1,1437 @@ { - "button_bookmarks": { - "message": "Закладки" - }, - "button_unload": { - "message": "Выгрузить все вкладки" - }, - "button_discard": { - "message": "Выгрузить все вкладки" - }, - "button_downloads": { - "message": "Загрузки" - }, - "button_extensions": { - "message": "Расширения" - }, - "button_filter_type": { - "message": "Поиск заголовков или URL-адресов" - }, - "button_history": { - "message": "История" - }, - "button_move": { - "message": "Отсоединить текущую вкладку" - }, - "button_detach": { - "message": "Отсоединить текущую вкладку" - }, - "button_new": { - "message": "ЛКМ - открыть новую вкладку \nСКМ - дублировать активную вкладку \nПКМ - прокрутка списка к активной вкладке" - }, - "button_options": { - "message": "Настройки Tree Tabs" - }, - "button_pin": { - "message": "Закрепить / Открепить текущую вкладку" - }, - "button_search": { - "message": "Поиск вкладок" - }, - "button_settings": { - "message": "Настройки браузера" - }, - "button_tools": { - "message": "Дополнительные инструменты" - }, - "button_undo": { - "message": "Открыть последнюю закрытую вкладку" - }, - "caption_clear_filter": { - "message": "Очистить результаты поиска" - }, - "caption_loading": { - "message": "Загрузка…" - }, - "caption_searchbox": { - "message": " Поиск вкладок…" - }, - "extDesc": { - "message": "Управляйте своими вкладками с боковой панели!" - }, - "extensionName": { - "message": "Tree Tabs" - }, - "filter_search_go_next": { - "message": "Следующий результат поиска" - }, - "filter_search_go_prev": { - "message": "Предыдущий результат поиска" - }, - "option_allow_pin_close": { - "message": "закрывать закреплённые вкладки из контекстного меню" - }, - "options_add_theme_button": { - "message": "Новая" - }, - "options_always_show_close": { - "message": "показывать кнопку закрытия на вкладках" - }, - "options_append_child_tab": { - "message": "добавлять новые дочерние вкладки" - }, - "options_append_child_tab_after_limit": { - "message": "при достижении максимальной глубины дерева, установить вкладку на том же уровне, но" - }, - "options_append_child_tab_after_limit_after": { - "message": "после родительской" - }, - "options_append_child_tab_after_limit_bottom": { - "message": "ниже предыдущей" - }, - "options_append_child_tab_after_limit_top": { - "message": "выше предыдущей" - }, - "options_append_child_tab_bottom": { - "message": "ниже предыдущих" - }, - "options_append_child_tab_top": { - "message": "выше предыдущих (обратная иерархия)" - }, - "options_append_orphan_tab": { - "message": "открывать недавно закрытые вкладки" - }, - "options_append_orphan_tab_after_active": { - "message": "после активной вкладки" - }, - "options_append_orphan_tab_as_child": { - "message": "как дочерние для активной вкладки" - }, - "options_after_closing_active_tab": { - "message": "После закрытия активной вкладки" - }, - "options_after_closing_active_tab_go_up": { - "message": "активировать вкладку выше" - }, - "options_after_closing_active_tab_go_down": { - "message": "активировать вкладку ниже" - }, - "options_after_closing_active_tab_go_browser": { - "message": "активация вкладок согласно настройкам браузера" - }, - "options_append_orphan_tab_bottom": { - "message": "в конце списка" - }, - "options_append_orphan_tab_top": { - "message": "в начале списка" - }, - "options_collapse_other_trees": { - "message": "автоматически сворачивать другие деревья при раскрывании дерева" - }, + "extensionName": { + "message": "Tree Tabs" + }, + "extDesc": { + "message": "Управляйте своими вкладками с боковой панели!" + }, + "OpenSidebar": { + "message": "Открыть Tree Tabs" + }, + + + "button_new": { + "message": "ЛКМ - создать новую вкладку \nСКМ - дублировать активную вкладку \nПКМ - прокрутка списка к активной вкладке" + }, + "button_pin": { + "message": "Закрепить / Открепить текущую вкладку" + }, + "button_undo": { + "message": "Открыть последнюю закрытую вкладку" + }, + "button_reboot": { + "message": "Перезагрузить Tree Tabs. Попробуйте это в случае, если древовидная структура вкладок потеряна после перезапуска." + }, + "button_detach": { + "message": "Отсоединить текущую вкладку" + }, + "button_move": { + "message": "Отсоединить текущую вкладку" + }, + "button_search": { + "message": "Поиск вкладок" + }, + "button_tools": { + "message": "Дополнительные инструменты" + }, + "button_groups": { + "message": "Группы" + }, + "filter_search_go_prev": { + "message": "Предыдущий результат поиска" + }, + "filter_search_go_next": { + "message": "Следующий результат поиска" + }, + "button_bookmarks": { + "message": "Несортированные закладки" + }, + "button_downloads": { + "message": "Загрузки" + }, + "button_history": { + "message": "История" + }, + "button_settings": { + "message": "Настройки браузера" + }, + "button_options": { + "message": "Настройки Tree Tabs" + }, + "button_extensions": { + "message": "Расширения" + }, + "button_unload": { + "message": "Выгрузить все вкладки" + }, + "button_discard": { + "message": "Выгрузить все вкладки" + }, + "button_filter_type": { + "message": "Поиск заголовков или URL-адресов" + }, + + + + + + "button_groups_toolbar_hide": { + "message": "Скрыть /показать панель групп" + }, + "button_new_group": { + "message": "Новая группа" + }, + "button_remove_group": { + "message": "Удалить группу.\nС зажатой кнопкой Shift закроются все вкладки из этой группы" + }, + "button_edit_group": { + "message": "Переименовать группу" + }, + + "button_import_group": { + "message": "Импорт групп" + }, + "button_export_group": { + "message": "Экспорт групп" + }, + + "button_backup": { + "message": "Сессия" + }, + "button_import_bak": { + "message": "Импорт сессии" + }, + "button_import_merge_bak": { + "message": "Импорт и объединение сессии.\nВместо открытия нового окна импортер попытается сопоставить текущие вкладки с вкладками из сохраненного сеанса." + }, + "button_export_bak": { + "message": "Экспорт сессии" + }, + "button_load_bak1": { + "message": "ПОМОЩЬ при потере групп: Загрузить последнюю внутреннюю резервную копию (автосохранение выполняется каждые 5 минут)" + }, + "button_load_bak2": { + "message": "ПОМОЩЬ при потере групп: Загрузить предыдущую внутреннюю резервную копию (автосохранение выполняется каждые 10 минут)" + }, + "button_load_bak3": { + "message": "ПОМОЩЬ при потере групп: Загрузить самую раннюю внутреннюю резервную копию (автосохранение выполняется каждые 30 минут)" + }, + + + "button_folders": { + "message": "Папки" + }, + "button_new_folder": { + "message": "Новая папка" + }, + "button_remove_folder": { + "message": "Удалить выделенные папки" + }, + "button_edit_folder": { + "message": "Переименовать папку" + }, + + + + + + + "menu_expand_all": { + "message": "Раскрыть все деревья" + }, + "menu_collapse_all": { + "message": "Свернуть все деревья" + }, + "menu_expand_tree": { + "message": "Раскрыть дерево" + }, + "menu_collapse_tree": { + "message": "Свернуть дерево" + }, + "menu_new_tab": { + "message": "Новая вкладка" + }, + "menu_new_pin": { + "message": "Новая закреплённая вкладка" + }, + "menu_duplicate_tab": { + "message": "Дублировать вкладку" + }, + "menu_detach_tab": { + "message": "Отсоединить вкладку" + }, + "menu_reload_tab": { + "message": "Обновить вкладку" + }, + "menu_pin_tab": { + "message": "Закрепить вкладку" + }, + "menu_mute_tab": { + "message": "Выключить звук на вкладке" + }, + "menu_mute_tree": { + "message": "Выключить звук на вкладках дерева" + }, + "menu_unmute_tree": { + "message": "Включить звук на вкладках дерева" + }, + "menu_unmute_tab": { + "message": "Включить звук на вкладке" + }, + "menu_mute_other": { + "message": "Выключить звук (на других)" + }, + "menu_unmute_other": { + "message": "Включить звук (на других)" + }, + "menu_unpin_tab": { + "message": "Открепить вкладку" + }, + "menu_close_tree": { + "message": "Закрыть дерево" + }, + "menu_close": { + "message": "Закрыть вкладку" + }, + "menu_close_other": { + "message": "Закрыть другие вкладки" + }, + "menu_undo_close_tab": { + "message": "Отменить закрытие" + }, + "menu_treetabs_settings": { + "message": "Настройки Tree Tabs" + }, + "menu_unload": { + "message": "Выгрузить вкладку" + }, + + "menu_bookmark_tree": { + "message": "Добавить закладку" + }, + + + + "menu_new_folder": { + "message": "Новая папка" + }, + "menu_rename_folder": { + "message": "Переименовать папку" + }, + "menu_delete_folder": { + "message": "Удалить папку" + }, + + "menu_new_group": { + "message": "Новая группа" + }, + "menu_rename_group": { + "message": "Переименовать группу" + }, + "menu_delete_group": { + "message": "Удалить группу" + }, + "menu_delete_group_tabs_close": { + "message": "Удалить группу с вкладками" + }, + + "menu_groups_unload": { + "message": "Выгрузить группу" + }, + + "menu_bookmark_group": { + "message": "Добавить закладку" + }, + "menu_groups_hibernate": { + "message": "Спящий режим" + }, + "menu_group_tabs_close": { + "message": "Закрыть вкладки" + }, + + + + + + + + "options_vivaldi": { + "message": " Vivaldi " + }, + "opt_url_for_web_panel": { + "message": "Url-адрес для веб-панели" + }, + "options_pinned": { + "message": " Панель закреплённых вкладок " + }, + "options_pin_list_multi_row": { + "message": "Список закреплённых вкладок в несколько строк" + }, + "option_allow_pin_close": { + "message": "Закрывать закреплённые вкладки из контекстного меню" + }, + "options_tabs": { + "message": " Вкладки " + }, + "options_syncro_tabbar_tabs_order": { + "message": "Синхронизировать порядок вкладок браузера с Tree Tabs после их перетаскивания. Вкладки будут долго сортироваться, если в браузере открыто много вкладок. Эта опция необходима для правильного переключения вкладок с помощью клавиш [Ctrl + Tab]. Вы можете отключить эту опцию, если не используете сочетания клавиш." + }, + "options_switch_with_scroll": { + "message": "Переключение вкладок колёсиком мыши" + }, + + "options_tab_group_regex": { + "message": "Распределение вкладок (элементы, соответствующие данному шаблону, будут перемещены в назначенную группу. Шаблон допускает регулярные выражения.)" + }, + "option_tab_match": { + "message": "Шаблон" + }, + "option_tab_group": { + "message": "Группа" + }, + "options_orphaned_tabs_to_ungrouped": { + "message": "Всегда размещать вкладки-сироты в группе «Разгруппированные»" + }, + "options_move_on_url_change": { + "message": "Перемещение вкладок, соответствующих регулярным выражениям" + }, + "options_move_on_url_change_never": { + "message": "никогда" + }, + "options_move_on_url_change_from_empty": { + "message": "при изменении URL-адреса на вкладке «Домашняя» (только вкладки, созданные с помощью сочетания клавиш [Ctrl+T]" + }, + "options_move_on_url_change_from_empty_b": { + "message": "при изменении URL-адреса на любой вкладке «Домашняя»" + }, + "options_move_on_url_change_all_new": { + "message": "при создании вкладки с соответствующим URL-адресом" + }, + "options_move_on_url_change_always": { + "message": "при изменении URL-адреса на соответствующий шаблон" + }, + + "options_always_show_close": { + "message": "Показывать кнопку закрытия на вкладках" + }, + "options_never_show_close": { + "message": "Не показывать кнопку закрытия (опция выше будет проигнорирована)" + }, + "options_collapse_other_trees": { + "message": "Автоматически сворачивать другие деревья при раскрывании дерева" + }, + "options_open_tree_on_hover": { + "message": "Автоматически раскрывать свёрнутые деревья при перетаскивании вкладки с удерживанием курсора над ними" + }, + "options_promote_children": { + "message": "Оставлять дочерние вкладки при закрытии родительской. (Если отключено, то при закрытии родительской вкладки все дочерние вкладки дерева будут закрыты. Будьте осторожны, так как отмена закрытия вкладки не восстановит структуру дерева)" + }, + + "options_promote_children_in_first_child": { + "message": "Устанавливать первую дочернюю вкладку как родительскую" + }, + + "options_skip_load": { + "message": "Отменить древовидную структуру после перезапуска браузера. Это предназначено для тех, кто не использует сохранение сессии (опция отключает загрузку базы данных при запуске браузера)" + }, + + + "options_midclick_tab": { + "message": "Действие для средней кнопки мыши на вкладке" + }, + "options_dbclick_tab": { + "message": "Действие для двойного клика на вкладке" + }, + + "options_action_tab_none": { + "message": "ничего" + }, + "options_action_tab_new": { + "message": "открыть новую вкладку" + }, + "options_action_tab_expand_collapse": { + "message": "раскрыть / свернуть дерево" + }, + "options_action_tab_close": { + "message": "закрыть вкладку" + }, + "options_action_tab_reload": { + "message": "обновить вкладку" + }, + "options_action_tab_unload": { + "message": "выгрузить вкладку" + }, + "options_action_tab_activate_previous_active": { + "message": "вернуться к предыдущей активной вкладке (работает только на незакрепленных вкладках)" + }, + "options_action_tab_undo_close": { + "message": "открыть последнюю закрытую вкладку" + }, + + + + + "options_midclick_group": { + "message": "Действие для средней кнопки мыши на пустом месте слева или под вкладками" + }, + "options_dbclick_group": { + "message": "Действие для двойного клика на пустом месте слева или под вкладками" + }, + "options_action_group_none": { + "message": "ничего" + }, + "options_action_group_new": { + "message": "открыть новую вкладку" + }, + "options_action_group_activate_previous_active": { + "message": "вернуться к предыдущей активной вкладке (работает только на незакрепленных вкладках)" + }, + "options_action_group_undo_close_tab": { + "message": "открыть последнюю закрытую вкладку" + }, + + + + + "options_append_child_tab": { + "message": "Расположение дочерних вкладок" + }, + "options_append_child_tab_top": { + "message": "выше предыдущих (обратная иерархия)" + }, + "options_append_child_tab_bottom": { + "message": "ниже предыдущих" + }, + "options_append_child_tab_after": { + "message": "после родительской вкладки" + }, + + "options_append_orphan_tab": { + "message": "Открывать вкладку-сироту" + }, + "options_append_orphan_tab_top": { + "message": "в верхней части группы" + }, + "options_append_orphan_tab_after_active": { + "message": "после активной вкладки" + }, + "options_append_orphan_tab_bottom": { + "message": "в нижней части группы" + }, + "options_append_orphan_tab_as_child": { + "message": "как активную дочернюю вкладку" + }, + + "options_toolbar_new_tab": { + "message": "Кнопка [+] на панели интрументов («Создать вкладку») добавляет новую вкладку" + }, + "options_toolbar_new_tab_as_regular_orphan": { + "message": "как вкладку-сироту (опция выше)" + }, + "options_toolbar_new_tab_root_of_group": { + "message": "в нижнюю часть группы" + }, + + + + "options_after_closing_active_tab": { + "message": "После закрытия активной вкладки" + }, + "options_after_closing_active_tab_go_up": { + "message": "перейти к вкладке выше" + }, + "options_after_closing_active_tab_go_down": { + "message": "перейти к вкладке ниже" + }, + "options_after_closing_active_tab_go_up_seek_in_parent": { + "message": "перейти к вкладке выше, если она на том же уровне" + }, + "options_after_closing_active_tab_go_down_seek_in_parent": { + "message": "перейти к вкладке ниже, если она на том же уровне" + }, + "options_after_closing_active_tab_go_browser": { + "message": "активация вкладок согласно настройкам браузера" + }, + + "options_append_child_tab_after_limit": { + "message": "При достижении максимальной глубины дерева, установить вкладку на том же уровне, но" + }, + "options_append_child_tab_after_limit_top": { + "message": "выше предыдущей" + }, + "options_append_child_tab_after_limit_after": { + "message": "просле родительской" + }, + "options_append_child_tab_after_limit_bottom": { + "message": "ниже предыдущей" + }, + "options_show_counter_tabs": { + "message": "Показывать количество дочерних вкладок в заголовках вкладок и папок" + }, + "options_show_counter_tabs_hints": { + "message": "Показывать количество дочерних вкладок в подсказках вкладок и папок" + }, + + "options_max_tree_depth": { + "message": "Максимальная глубина дерева (-1 - неограниченное количество ветвей; 0 - отключить древовидную структуру вкладок)" + }, + "options_max_tree_drag_drop": { + "message": "Ограничение перетаскивания вкладок до максимальной глубины дерева" + }, + "options_max_tree_drag_drop_folders": { + "message": "Ограничение перетаскивания папок до максимальной глубины дерева" + }, + + + + "options_groups": { + "message": "Группы" + }, + + "options_show_counter_groups": { + "message": "Показывать количество вкладок в группах" + }, + + "options_groups_toolbar_default": { + "message": "Показывать панель инструментов групп в новых окнах" + }, + "options_syncro_tabbar_groups_tabs_order": { + "message": "Синхронизировать порядок вкладок браузера с Tree Tabs после перетаскивания группы вкладок. Вкладки будут долго сортироваться, если в браузере открыто много вкладок. Эта опция необходима для правильного переключения вкладок с помощью клавиш [Ctrl + Tab]. Вы можете отключить эту опцию, если не используете сочетания клавиш." + }, + + "options_hide_other_groups_tabs_firefox": { + "message": "Показывать вкладки Firefox только из текущей группы. Требуется найти в about:config пункт 'extensions.webextensions.tabhide.enabled' и установить его в 'true'." + }, + + + + + "options_folders": { + "message": "Папки" + }, + + + "options_midclick_folder": { + "message": "Действие для средней кнопки мыши на папке" + }, + "options_dbclick_folder": { + "message": "Действие для двойного клика на папке" + }, + + "options_action_folder_none": { + "message": "ничего" + }, + "options_action_folder_rename": { + "message": "переименовать папку" + }, + "options_action_folder_new_folder": { + "message": "создать новую папку" + }, + "options_action_folder_new_tab": { + "message": "создать новую вкладку" + }, + "options_action_folder_expand_collapse": { + "message": "раскрыть / свернуть дерево" + }, + "options_action_folder_close": { + "message": "закрыть папку" + }, + "options_action_folder_unload": { + "message": "выгрузить вкладки в папке" + }, + + + + + + + + + + + "options_global": { + "message": "Основные" + }, + + + + "options_theme": { + "message": "Тема" + }, + + + + "options_rename_theme_button": { + "message": "Переименовать" + }, + "options_add_theme_button": { + "message": "Добавить" + }, + "options_remove_theme_button": { + "message": "Удалить" + }, + "options_import_theme_button": { + "message": "Импорт" + }, + "options_export_theme_button": { + "message": "Экспорт" + }, + "options_share_theme_link": { + "message": "Ещё темы!" + }, + + + + + + + + "options_toolbar": { + "message": " Панель инструментов " + }, + "options_available_buttons": { + "message": "Настраивайте панель инструментов перетаскиванием элементов. Чтобы скрыть элемент, переместите его на зелёное поле." + }, + + "options_reset_toolbar_button": { + "message": "Сброс" + }, + + "options_export_debug": { + "message": "Экспорт журнала" + }, + "options_print_debug": { + "message": "Загрузить журнал" + }, + + + "options_toolbar_look": { + "message": " Внешний вид панели инструментов " + }, + + + "hint_orphan_tab": { + "message": "Вкладка-сирота - это вкладка, открытая из внешнего источника следующими способами:" + }, + "hint_ctrl_t": { + "message": "комбинацией [Ctrl+T]" + }, + "hint_from_pin": { + "message": "ссылкой из закрепленной вкладки" + }, + "hint_from_bookmark": { + "message": "из закладок" + }, + "hint_from_external_link": { + "message": "по внешней ссылке" + }, + "hint_from_popup": { + "message": "если всплывающее окно открывается как вкладка (настройки в браузере, блокировщик всплывающих окон и подобное)" + }, + "hint_explained_new_tab_settings": { + "message": "Кнопка [+] в панели инструментов Tree Tabs помещает новые вкладки в корень активной группы, если не установлено иначе." + }, + "hint_explained_orphan_after_active_settings": { + "message": "Если для опции «Открывать вкладки-сироты» установлено значение «после активной вкладки», а активная вкладка не находится в активной группе, вкладка добавится к корню активной группы. Но только если боковая панель открыта." + }, + + + + "button_background": { + "message": "Цвет кнопок панели инструментов" + }, + "button_hover_background": { + "message": "Цвет кнопок панели инструментов при наведении курсора" + }, + "button_on_background": { + "message": "Цвет кнопок панели инструментов при нажатии на них" + }, + + + "button_icons": { + "message": "Цвет иконок кнопок панели инструментов" + }, + "button_icons_hover": { + "message": "Цвет иконок кнопок панели инструментов при наведении курсора" + }, + "button_on_icons": { + "message": "Цвет иконок кнопок панели инструментов при нажатии на них" + }, + "button_border": { + "message": "Цвет рамки кнопок панели инструментов" + }, + "button_hover_border": { + "message": "Цвет рамки кнопок панели инструментов при наведении курсора" + }, + + + "filter_box_font": { + "message": "Цвет шрифта в окне поиска" + }, + "filter_box_background": { + "message": "Цвет фона окна поиска" + }, + "filter_box_border": { + "message": "Цвет рамки окна поиска" + }, + "filter_clear_icon": { + "message": "Цвет кнопки удаления результатов поиска" + }, + + + "toolbar_background": { + "message": "Цвет панели инструментов" + }, + "toolbar_shelf_background": { + "message": "Цвет подложки панели инструментов" + }, + "toolbar_border_bottom": { + "message": "Цвет рамки панели инструментов" + }, + + + + "button_shelf_background": { + "message": "Цвет кнопок подложки панели инструментов" + }, + "button_shelf_hover_background": { + "message": "Цвет кнопок подложки панели инструментов при наведении курсора" + }, + "button_shelf_icons": { + "message": "Цвет иконок кнопок подложки панели инструментов" + }, + "button_shelf_icons_hover": { + "message": "Цвет иконок кнопок подложки панели инструментов при наведении курсора" + }, + "button_shelf_border": { + "message": "Цвет рамки кнопок подложки панели инструментов" + }, + "button_shelf_hover_border": { + "message": "Цвет рамки кнопок подложки панели инструментов при наведении курсора" + }, + + + + + + + + + + "options_theme_tabs": { + "message": " Внешний вид вкладок " + }, + + + + "options_tabs_margin_overlap": { + "message": "Интервал между вкладками:\nПерекрытие в 1px, лучше всего подходит для тем с рамками" + }, + "options_tabs_margin_0": { + "message": "Интервал между вкладками:\nБез интервала, лучше всего подходит для плоского внешнего вида" + }, + "options_tabs_margin_1": { + "message": "Интервал между вкладками:\nЗначение по умолчанию: 1px между вкладками" + }, + + + + + "options_tab_list_scrollbar_width_down": { + "message": "Уменьшить ширину полосы прокрутки" + }, + "options_tab_list_scrollbar_width_up": { + "message": "Увеличить ширину полосы прокрутки" + }, + "options_tab_list_scrollbar_height_down": { + "message": "Уменьшить высоту полосы прокрутки" + }, + "options_tab_list_scrollbar_height_up": { + "message": "Увеличить высоту полосы прокрутки" + }, + + + + "options_tabs_indentation_down": { + "message": "Уменьшить отступ вкладок" + }, + "options_tabs_indentation_up": { + "message": "Увеличить отступ вкладок" + }, + + + "options_tabs_roundness_down": { + "message": "Уменьшить скругление углов вкладок" + }, + "options_tabs_roundness_up": { + "message": "Увеличить скругление углов вкладок" + }, + + + "options_tabs_size_down": { + "message": "Уменьшить размер вкладок" + }, + "options_tabs_size_up": { + "message": "Увеличить размер вкладок" + }, + + + + "options_theme_tabs_sample_text_normal": { + "message": "Обычная вкладка" + }, + "options_theme_tabs_sample_text_normal_hover": { + "message": "Обычная вкладка при наведении курсора" + }, + "options_theme_tabs_sample_text_normal_selected": { + "message": "Выделенная вкладка" + }, + "options_theme_tabs_sample_text_normal_selected_hover": { + "message": "Выделенная вкладка при наведении курсора" + }, + "options_theme_tabs_sample_text_active": { + "message": "Активная вкладка" + }, + "options_theme_tabs_sample_text_active_hover": { + "message": "Активная владка при наведении курсора" + }, + "options_theme_tabs_sample_text_active_selected": { + "message": "Активная выделенная вкладка" + }, + "options_theme_tabs_sample_text_active_selected_hover": { + "message": "Активная выделенная вкладка при наведении курсора" + }, + + "options_theme_tabs_sample_text_discarded": { + "message": "Выгруженная вкладка" + }, + "options_theme_tabs_sample_text_discarded_hover": { + "message": "Выгруженная вкладка при наведении курсора" + }, + "options_theme_tabs_sample_text_discarded_selected": { + "message": "Выгруженная выделенная вкладка" + }, + "options_theme_tabs_sample_text_discarded_selected_hover": { + "message": "Выгруженная выделенная вкладка при наведении курсора" + }, + + "options_theme_tabs_sample_text_search_result": { + "message": "Результат поиска" + }, + "options_theme_tabs_sample_text_search_result_hover": { + "message": "Результат поиска при наведении курсора" + }, + "options_theme_tabs_sample_text_search_result_active": { + "message": "Активный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_active_hover": { + "message": "Активный результат поиска при наведении курсора" + }, + + "options_theme_tabs_sample_text_search_result_selected": { + "message": "Выделенный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_selected_hover": { + "message": "Выделенный результат поиска при наведении курсора" + }, + "options_theme_tabs_sample_text_search_result_selected_active": { + "message": "Активный выделенный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_selected_active_hover": { + "message": "Активный выделенный результат поиска при наведении курсора" + }, + + + + "options_theme_tabs_sample_text_search_result_highlighted": { + "message": "Подсвеченный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_highlighted_hover": { + "message": "Подсвеченный результат поиска при наведении курсора" + }, + "options_theme_tabs_sample_text_search_result_highlighted_active": { + "message": "Активный подсвеченный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_highlighted_active_hover": { + "message": "Активный подсвеченный результат поиска при наведении курсора" + }, + + + "options_theme_tabs_sample_text_search_result_highlighted_selected": { + "message": "Выделенный подсвеченный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_highlighted_selected_hover": { + "message": "Выделенный подсвеченный результат поиска при наведении курсора" + }, + "options_theme_tabs_sample_text_search_result_highlighted_selected_active": { + "message": "Активный выделенный и подсвеченный результат поиска" + }, + "options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover": { + "message": "Активный выделенный и подсвеченный результат поиска при наведении курсора" + }, + + + + + + + "attention_background": { + "message": "Цвет мигающих вкладок при предупреждении" + }, + "attention_border": { + "message": "Цвет рамки мигающих вкладок при предупреждении" + }, + "pin_list_border_bottom": { + "message": "Цвет нижней рамки списка закреплённых вкладок" + }, + "pin_list_background": { + "message": "Цвет списка закреплённых вкладок" + }, + + + "folder_icon_open": { + "message": "Цвет иконки открытой папки" + }, + "folder_icon_closed": { + "message": "Цвет иконки пустой или закрытой папки" + }, + "folder_icon_hover": { + "message": "Цвет иконки открытой папки при наведении курсора" + }, + + + "expand_open_background": { + "message": "Цвет иконки открытого дерева" + }, + "expand_closed_background": { + "message": "Цвет иконки закрытого дерева" + }, + "expand_hover_background": { + "message": "Цвет иконки дерева при наведении курсора" + }, + + + "group_list_button_hover_background": { + "message": "Цвет группы при наведении курсора" + }, + "group_list_borders": { + "message": "Цвет рамки списка групп" + }, + "group_list_default_font_color": { + "message": "Цвет шрифта группы по умолчанию" + }, + + "group_list_background": { + "message": "Цвет списка групп" + }, + "tab_list_background": { + "message": "Цвет списка вкладок" + }, + + + "drag_indicator": { + "message": "Цвет индикатора при перетаскивании" + }, + + + + + + + "close_x": { + "message": "Цвет иконки закрытия вкладки" + }, + "close_hover_x": { + "message": "Цвет иконки закрытия вкладки при наведении курсора" + }, + "close_hover_border": { + "message": "Цвет рамки кнопки закрытия вкладки при наведении курсора" + }, + "close_hover_background": { + "message": "Цвет кнопки закрытия вкладки при наведении курсора" + }, + + + + "scrollbar_thumb": { + "message": "Цвет ползунка полосы прокрутки" + }, + "scrollbar_thumb_hover": { + "message": "Цвет ползунка полосы прокрутки при наведении курсора" + }, + "scrollbar_track": { + "message": "Цвет полосы прокрутки" + }, + + + + + + "options_example_menu_item": { + "message": "пункт меню" + }, + "options_menu": { + "message": " Меню " + }, + + + "tabs_menu_hover_border": { + "message": "Цвет рамки пункта меню при наведении курсора" + }, + "tabs_menu_hover_background": { + "message": "Цвет пункта меню при наведении курсора" + }, + "tabs_menu_separator": { + "message": "Цвет разделителя" + }, + "tabs_menu_font": { + "message": "Цвет шрифта пунктов меню" + }, + "tabs_menu_border": { + "message": "Цвет рамки меню" + }, + "tabs_menu_background": { + "message": "Цвет фона меню" + }, + + + + + + + + + + + + "options_there_is_a_theme_with_this_name": { + "message": "Тема с таким именем существует, введите новое имя" + }, + "options_theme_name_cannot_be_empty": { + "message": "Название темы не может быть пустым, введите имя" + }, + "options_no_theme_to_export": { + "message": "Нет темы для экспорта, может быть, добавить новую? :)" + }, + "options_loaded_theme_older_version": { + "message": "Вероятно, загруженная тема была сохранена в старой версии расширения, некоторые цвета или параметры могут отсутствовать." + }, + "options_loaded_theme_newer_version": { + "message": "Вероятно, загруженная тема была сохранена в новой версии расширения, не удается загрузить!" + }, + + + + + + + + + + + + + + "options_vivaldi_copied_url": { + "message": "Url для веб-панели был скопирован в буфер обмена, добавьте новую веб-панель и вставьте url." + }, + "options_copied_wallet_address": { + "message": "Адрес кошелька скопирован в буфер обмена" + }, + + + "options_clear_data": { + "message": "Боковая панель не загружается? Сброс! ВНИМАНИЕ! Все настройки и сохраненные темы будут потеряны!" + }, + + + "options_development": { + "message": "Разработка" + }, + "options_debug": { + "message": "Отладка" + }, + + + + + + + + + + + + "group_edit_button_cancel": { + "message": "Отмена" + }, + + "group_edit_button_confirm": { + "message": "Ok" + }, + + + + "folder_edit_button_cancel": { + "message": "Отмена" + }, + + "folder_edit_button_confirm": { + "message": "Ok" + }, + + + "manager_window_button_label_import_group": { + "message": "Импорт группы" + }, + + "manager_window_button_label_import_session": { + "message": "Импорт сессии" + }, + "manager_window_button_label_save_current_session": { + "message": "Сохранить текущую сессию" + }, + + + + + + + + "caption_ungrouped_group": { + "message": "Разгруппированные" + }, + "caption_noname_group": { + "message": "без названия" + }, + + "caption_clear_filter": { + "message": "Очистить результаты поиска" + }, + "caption_loading": { + "message": "Загрузка..." + }, + "caption_searchbox": { + "message": "Поиск вкладок..." + }, + + "manager_window_header_title": { + "message": "Менеджер" + }, + + "menu_manager_window": { + "message": "Открыть менеджер" + }, + + "button_manager_window": { + "message": "Открыть окно менеджера" + }, + + "manager_window_groups_button": { + "message": "Спящие группы" + }, + "manager_window_sessions_button": { + "message": "Сохранённые сессии" + }, + "manager_window_autosave_button": { + "message": "Автосохранённые сессии" + }, + "manager_window_button_label_hibernate_group": { + "message": "Усыпить текущую группу" + }, + + "manager_window_autosessions_maximum_saves_label": { + "message": "Количество автосохранений:" + }, + + "manager_window_autosessions_save_timer_label": { + "message": "Автосохранение через (мин.):" + }, + + "manager_window_delete_icon": { + "message": "Удалить" + }, + + "manager_window_savetofile_icon": { + "message": "Сохранить в файл" + }, + "manager_window_merge_icon": { + "message": "Загрузить и объединить" + }, + + "manager_window_load_icon": { + "message": "Загрузить" + }, + + "options_Remove_button": { + "message": "Удалить" + }, + + "add_tab_group_regex": { + "message": "Добавить" + }, + + + "tab_title_font_color": { + "message": "" + }, + "tab_background": { + "message": "" + }, + "tab_border": { + "message": "" + }, + "tab_hover_title_font_color": { + "message": "" + }, + "tab_hover_background": { + "message": "" + }, + "tab_hover_border": { + "message": "" + }, + "tab_selected_title_font_color": { + "message": "" + }, + "tab_selected_background": { + "message": "" + }, + "tab_selected_border": { + "message": "" + }, + "tab_selected_hover_title_font_color": { + "message": "" + }, + "tab_selected_hover_background": { + "message": "" + }, + "tab_selected_hover_border": { + "message": "" + }, + "tab_active_title_font_color": { + "message": "" + }, + "tab_active_background": { + "message": "" + }, + "tab_active_border": { + "message": "" + }, + "tab_active_hover_title_font_color": { + "message": "" + }, + "tab_active_hover_background": { + "message": "" + }, + "tab_active_hover_border": { + "message": "" + }, + "tab_active_selected_title_font_color": { + "message": "" + }, + "tab_active_selected_background": { + "message": "" + }, + "tab_active_selected_border": { + "message": "" + }, + "tab_selected_active_hover_title_font_color": { + "message": "" + }, + "tab_selected_active_hover_background": { + "message": "" + }, + "tab_selected_active_hover_border": { + "message": "" + }, + "tab_discarded_title_font_color": { + "message": "" + }, + "tab_discarded_background": { + "message": "" + }, + "tab_discarded_border": { + "message": "" + }, + "tab_discarded_hover_title_font_color": { + "message": "" + }, + "tab_discarded_hover_background": { + "message": "" + }, + "tab_discarded_hover_border": { + "message": "" + }, + "tab_selected_discarded_title_font_color": { + "message": "" + }, + "tab_selected_discarded_background": { + "message": "" + }, + "tab_selected_discarded_border": { + "message": "" + }, + "tab_selected_discarded_hover_title_font_color": { + "message": "" + }, + "tab_selected_discarded_hover_background": { + "message": "" + }, + "tab_selected_discarded_hover_border": { + "message": "" + }, + "tab_filtered_title_font_color": { + "message": "" + }, + "tab_filtered_background": { + "message": "" + }, + "tab_filtered_border": { + "message": "" + }, + "tab_filtered_hover_title_font_color": { + "message": "" + }, + "tab_filtered_hover_background": { + "message": "" + }, + "tab_filtered_hover_border": { + "message": "" + }, + "tab_filtered_active_title_font_color": { + "message": "" + }, + "tab_filtered_active_background": { + "message": "" + }, + "tab_filtered_active_border": { + "message": "" + }, + "tab_filtered_active_hover_title_font_color": { + "message": "" + }, + "tab_filtered_active_hover_background": { + "message": "" + }, + "tab_filtered_active_hover_border": { + "message": "" + }, + "tab_filtered_selected_title_font_color": { + "message": "" + }, + "tab_filtered_selected_background": { + "message": "" + }, + "tab_filtered_selected_border": { + "message": "" + }, + "tab_filtered_selected_hover_title_font_color": { + "message": "" + }, + "tab_filtered_selected_hover_background": { + "message": "" + }, + "tab_filtered_selected_hover_border": { + "message": "" + }, + "tab_filtered_selected_active_title_font_color": { + "message": "" + }, + "tab_filtered_selected_active_background": { + "message": "" + }, + "tab_filtered_selected_active_border": { + "message": "" + }, + "tab_filtered_selected_active_hover_title_font_color": { + "message": "" + }, + "tab_filtered_selected_active_hover_background": { + "message": "" + }, + "tab_filtered_selected_active_hover_border": { + "message": "" + }, + "tab_filtered_highlighted_search_title_font_color": { + "message": "" + }, + "tab_filtered_highlighted_search_background": { + "message": "" + }, + "tab_filtered_highlighted_search_border": { + "message": "" + }, + "tab_filtered_highlighted_search_hover_title_font_color": { + "message": "" + }, + "tab_filtered_highlighted_search_hover_background": { + "message": "" + }, + "tab_filtered_highlighted_search_hover_border": { + "message": "" + }, + "tab_filtered_active_highlighted_search_title_font_color": { + "message": "" + }, + "tab_filtered_active_highlighted_search_background": { + "message": "" + }, + "tab_filtered_active_highlighted_search_border": { + "message": "" + }, + "tab_filtered_active_highlighted_search_hover_title_font_color": { + "message": "" + }, + "tab_filtered_active_highlighted_search_hover_background": { + "message": "" + }, + "tab_filtered_active_highlighted_search_hover_border": { + "message": "" + }, + "tab_filtered_selected_highlighted_search_title_font_color": { + "message": "" + }, + "tab_filtered_selected_highlighted_search_background": { + "message": "" + }, + "tab_filtered_selected_highlighted_search_border": { + "message": "" + }, + "tab_filtered_selected_highlighted_search_hover_title_font_color": { + "message": "" + }, + "tab_filtered_selected_highlighted_search_hover_background": { + "message": "" + }, + "tab_filtered_selected_highlighted_search_hover_border": { + "message": "" + }, + "tab_filtered_selected_active_highlighted_search_title_font_color": { + "message": "" + }, + "tab_filtered_selected_active_highlighted_search_background": { + "message": "" + }, + "tab_filtered_selected_active_highlighted_search_border": { + "message": "" + }, + "tab_filtered_selected_active_highlighted_search_hover_title_font_color": { + "message": "" + }, + "tab_filtered_selected_active_highlighted_search_hover_background": { + "message": "" + }, + "tab_filtered_selected_active_highlighted_search_hover_border": { + "message": "" + } + + + + + + + + + - "options_color_button_background": { - "message": " фон кнопки" - }, - "options_color_button_border": { - "message": " рамка кнопки" - }, - "options_color_button_hover_background": { - "message": " фон при наведении на кнопку" - }, - "options_color_button_hover_border": { - "message": " рамка при наведении на кнопку" - }, - "options_color_button_icons": { - "message": " иконка кнопки" - }, - "options_color_close_hover_background": { - "message": " фон при наведении на кнопку закрытия" - }, - "options_color_close_hover_border": { - "message": " рамка при наведении на кнопку закрытия" - }, - "options_color_close_hover_x": { - "message": " иконка при наведении на кнопку закрытия" - }, - "options_color_close_x": { - "message": " кнопка закрытия [x]" - }, - "options_color_drag_indicator": { - "message": " индикатор drag&drop" - }, - "options_color_expand_closed_background": { - "message": " фон указателя свёрнутого дерева" - }, - "options_color_expand_closed_border": { - "message": " рамка указателя свёрнутого дерева" - }, - "options_color_expand_lines": { - "message": " линии ветвей дерева" - }, - "options_color_expand_open_background": { - "message": " фон указателя раскрытого дерева" - }, - "options_color_expand_open_border": { - "message": " рамка указателя раскрытого дерева" - }, - "options_color_filter_box_background": { - "message": " фон окна поиска" - }, - "options_color_filter_box_border": { - "message": " рамка окна поиска" - }, - "options_color_filter_box_font": { - "message": " шрифт в окне поиска" - }, - "options_color_filter_clear_icon": { - "message": " кнопка очистки в окне поиска" - }, - "options_color_pin_list_background": { - "message": " фон списка закреплённых вкладок" - }, - "options_color_pin_list_border_bottom": { - "message": " разделитель списка закреплённых вкладок" - }, - "options_color_scrollbar_thumb": { - "message": " полоса прокрутки" - }, - "options_color_scrollbar_thumb_hover": { - "message": " полоса прокрутки при наведении" - }, - "options_color_scrollbar_track": { - "message": " фон полосы прокрутки" - }, - "options_color_tab_background": { - "message": " фон вкладки" - }, - "options_color_tab_border": { - "message": " рамка вкладки" - }, - "options_color_tab_filtered": { - "message": " результат поиска" - }, - "options_color_tab_filtered_highlighted": { - "message": " выделенный результат поиска" - }, - "options_color_tab_filtered_selected": { - "message": " выбранный результат поиска" - }, - "options_color_tab_filtered_selected_active": { - "message": " активный результат поиска" - }, - "options_color_tab_hover_background": { - "message": " фон при наведении на вкладку" - }, - "options_color_tab_hover_border": { - "message": " рамка при наведении на вкладку" - }, - "options_color_tab_list_background": { - "message": " фон списка вкладок" - }, - "options_color_tab_selected_background": { - "message": " фон активной вкладки" - }, - "options_color_tab_selected_border": { - "message": " рамка активной вкладки" - }, - "options_color_tab_selected_hover_background": { - "message": " фон при наведении на активную вкладку" - }, - "options_color_tab_selected_hover_border": { - "message": " рамка при наведении на активную вкладку" - }, - "options_color_tab_title": { - "message": " шрифт заголовка вкладки" - }, - "options_color_tab_title_active": { - "message": " шрифт заголовка активной вкладки" - }, - "options_color_tab_title_discarded": { - "message": " шрифт заголовка выгруженной вкладки" - }, - "options_color_tabs_menu_background": { - "message": " фон" - }, - "options_color_tabs_menu_border": { - "message": " рамка" - }, - "options_color_tabs_menu_font": { - "message": " шрифт" - }, - "options_color_tabs_menu_hover_background": { - "message": " фон при наведении на пункт" - }, - "options_color_tabs_menu_hover_border": { - "message": " рамка при наведении на пункт" - }, - "options_color_tabs_menu_separator": { - "message": " разделитель" - }, - "options_color_theme_toolbar_background": { - "message": " фон панели инструментов" - }, - "options_color_toolbar_border_bottom": { - "message": " рамка панели инструментов" - }, - "options_example_menu_item": { - "message": "пункт меню" - }, - "options_export_theme_button": { - "message": "Экспорт" - }, - "options_import_theme_button": { - "message": "Импорт" - }, - "options_loaded_theme_newer_version": { - "message": "Похоже, загружаемая тема была сохранена в более новой версии расширения; её невозможно загрузить!" - }, - "options_loaded_theme_older_version": { - "message": "Похоже, загружаемая тема была сохранена в более старой версии расширения; некоторые цвета или параметры могут отсутствовать." - }, - "options_max_tree_depth": { - "message": "максимальная глубина дерева (-1 - неограниченное количество ветвей; 0 - отключить древовидную структуру вкладок)" - }, - "options_menu": { - "message": " Контекстное меню " - }, - "options_no_theme_to_export": { - "message": "Нет темы для экспорта, можете добавить новую :)" - }, - "options_open_tree_on_hover": { - "message": "автоматически раскрывать свёрнутые деревья при перетаскивании вкладки с удерживанием курсора над ними" - }, - "options_pin_list_multi_row": { - "message": "список закреплённых вкладок в несколько строк" - }, - "options_pinned": { - "message": " Панель закреплённых вкладок " - }, - "options_promote_children": { - "message": "оставлять дочерние вкладки при закрытии родительской. (Если отключено, то при закрытии родительской вкладки все дочерние вкладки дерева будут закрыты. Будьте осторожны, так как отмена закрытия вкладки не восстановит структуру дерева)" - }, - "options_remove_theme_button": { - "message": "Удалить" - }, - "options_rename_theme_button": { - "message": "Переименовать" - }, - "options_scrollbar_pin_list": { - "message": "высота полосы прокрутки закреплённых вкладок" - }, - "options_scrollbar_tab_list": { - "message": "ширина полосы прокрутки списка вкладок" - }, - "options_scrollbars": { - "message": " Полоса прокрутки " - }, - "options_skip_load": { - "message": "отменить древовидную структуру после перезапуска браузера. Это предназначено для тех, кто не использует сохранение сессии (опция отключает загрузку базы данных при запуске браузера)" - }, - "options_tabs": { - "message": " Вкладки " - }, - "options_tabs_size": { - "message": "Размер вкладок" - }, - "options_theme": { - "message": "Тема" - }, - "options_theme_name_cannot_be_empty": { - "message": "Введите название темы." - }, - "options_theme_tabs": { - "message": " Внешний вид вкладок " - }, - "options_theme_tabs_sample_text_active_selected": { - "message": "Активная" - }, - "options_theme_tabs_sample_text_discarded": { - "message": "Выгруженная" - }, - "options_theme_tabs_sample_text_normal": { - "message": "Обычная" - }, - "options_theme_tabs_sample_text_search_result": { - "message": "Результат поиска" - }, - "options_theme_tabs_sample_text_search_result_highlighted": { - "message": "Выделенный результат поиска" - }, - "options_theme_tabs_sample_text_search_result_selected": { - "message": "Выбранный результат поиска" - }, - "options_theme_tabs_sample_text_search_result_selected_active": { - "message": "Активный результат поиска" - }, - "options_there_is_a_theme_with_this_name": { - "message": "Такое название темы уже существует, введите новое." - }, - "options_toolbar": { - "message": " Панель инструментов " - }, - "options_available_buttons": { - "message": "Настраивайте панель управления перетаскиванием элементов. Чтобы скрыть элемент, переместите его на зелёное поле." - }, - "options_vivaldi": { - "message": " Vivaldi " - }, - "opt_url_for_web_panel": { - "message": "Вставить этот URL в веб-панель" - }, - "menu_duplicate_tab": { - "message": "Дублировать вкладку" - }, - "menu_close": { - "message": "Закрыть вкладку" - }, - "menu_close_other": { - "message": "Закрыть другие вкладки" - }, - "menu_collapse_all": { - "message": "Свернуть все деревья" - }, - "menu_unload": { - "message": "Выгрузить вкладку" - }, - "menu_expand_all": { - "message": "Раскрыть все деревья" - }, - "menu_detach_tab": { - "message": "Отсоединить вкладку" - }, - "menu_mute_tab": { - "message": "Выключить звук на вкладке" - }, - "menu_mute_other": { - "message": "Выключить звук (на других)" - }, - "menu_new_tab": { - "message": "Новая вкладка" - }, - "menu_pin_tab": { - "message": "Закрепить вкладку" - }, - "menu_reload_tab": { - "message": "Обновить вкладку" - }, - "menu_treetabs_settings": { - "message": "Настройки Tree Tabs" - }, - "menu_undo_close_tab": { - "message": "Отменить закрытие" - }, - "menu_unmute_tab": { - "message": "Включить звук на вкладке" - }, - "menu_unmute_other": { - "message": "Включить звук (на других)" - }, - "menu_unpin_tab": { - "message": "Открепить вкладку" - }, - "options_active_tab_font_bold": { - "message": "жирный шрифт для активной вкладки" - }, - "options_faster_scroll": { - "message": "Быстрая прокрутка" - }, - "options_never_show_close": { - "message": "не показывать кнопку закрытия (опция выше будет проигнорирована)" - }, - "menu_close_tree": { - "message": "Закрыть дерево" - } } diff --git a/background.js b/background.js index 43a590f..1e27fb6 100644 --- a/background.js +++ b/background.js @@ -1,616 +1,574 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - - -//////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////// START BACKGROUND SCRIPT ///////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////// - - -document.addEventListener("DOMContentLoaded", function() { - if (browserId == "F") { - setTimeout(function() { - StartBackgroundListeners(); - QuantumStart(0); - }, 500); - } else { - StartBackgroundListeners(); - ChromiumLoadTabs(0); - } -}); - -//////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////// BACKGROUND FUNCTIONS ///////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////// - +// BACKGROUND VARIABLES +let b = { + debug: [], + bg_running: false, + schedule_save: 0, + windows: {}, + tabs: {}, + tt_ids: {}, + EmptyTabs: [], + newTabUrl: browserId == "F" ? "about:newtab" : "chrome://startpage/", + safe_mode: false +}; +// BACKGROUND FUNCTIONS function pushlog(log) { - b.debug.push(log); - if (b.debug.length > 100) { - b.debug.splice(0, 1); - } - console.log(log); - b.schedule_save++; + b.debug.push(log); + if (b.debug.length > 100) b.debug.splice(0, 1); + console.log(log); + b.schedule_save++; } - function ReplaceParents(oldTabId, newTabId) { - for (let tabId in b.tabs) { - if (b.tabs[tabId].parent == oldTabId) { - b.tabs[tabId].parent = newTabId; - } - } + for (let tabId in b.tabs) { + if (b.tabs[tabId].parent == oldTabId) b.tabs[tabId].parent = newTabId; + } } async function DiscardTab(tabId) { - let DiscardTimeout = 0; - let Discard = setInterval(function() { - chrome.tabs.get(tabId, function(tab) { - if ((tab.favIconUrl != undefined && tab.favIconUrl != "" && tab.title != undefined && tab.title != "") || tab.status == "complete" || tab.audible) { - chrome.tabs.discard(tab.id); - clearInterval(Discard); - } - if (DiscardTimeout > 300) { - clearInterval(Discard); - } - }); - DiscardTimeout++; - }, 2000); + let DiscardTimeout = 0; + let Discard = setInterval(function() { + chrome.tabs.get(tabId, function(tab) { + if ((tab.favIconUrl != undefined && tab.favIconUrl != "" && tab.title != undefined && tab.title != "") || tab.status == "complete" || tab.audible) { + chrome.tabs.discard(tab.id); + clearInterval(Discard); + } + if (DiscardTimeout > 300) clearInterval(Discard); + }); + DiscardTimeout++; + }, 2000); } async function DiscardWindow(windowId) { - let DiscardTimeout = 0; - let DiscardedTabs = 0; - let Discard = setInterval(function() { - chrome.windows.get(windowId, {populate: true}, function(w) { - for (let i = 0; i < w.tabs.length; i++) { - if (w.tabs[i].discarded == false && w.tabs[i].active == false) { - if ((w.tabs[i].favIconUrl != undefined && w.tabs[i].favIconUrl != "" && w.tabs[i].title != undefined && w.tabs[i].title != "") || w.tabs[i].status == "complete" || tab.audible) { - chrome.tabs.discard(w.tabs[i].id); - DiscardedTabs++; - } - } - } - if (DiscardedTabs == w.tabs.length) { - clearInterval(Discard); - } - }); - if (DiscardTimeout > 300) { - clearInterval(Discard); - } - DiscardTimeout++; - }, 5000); + let DiscardTimeout = 0; + let DiscardedTabs = 0; + let Discard = setInterval(function() { + chrome.windows.get(windowId, { populate: true }, function(w) { + for (let i = 0; i < w.tabs.length; i++) { + if (w.tabs[i].discarded == false && w.tabs[i].active == false) { + if ((w.tabs[i].favIconUrl != undefined && w.tabs[i].favIconUrl != "" && w.tabs[i].title != undefined && w.tabs[i].title != "") || w.tabs[i].status == "complete" || tab.audible) { + chrome.tabs.discard(w.tabs[i].id); + DiscardedTabs++; + } + } + } + if (DiscardedTabs == w.tabs.length) clearInterval(Discard); + }); + if (DiscardTimeout > 300) clearInterval(Discard); + DiscardTimeout++; + }, 5000); } function GetTabGroupId(tabId, windowId) { - let groupId = "tab_list"; - if (tabId == undefined || windowId == undefined || b.windows[windowId] == undefined || b.tabs[tabId] == undefined) { - return groupId; - } - let parent = b.tabs[tabId].parent; - while (parent) { - if (isNaN(parent) == false && b.tabs[parent]) { - parent = b.tabs[parent].parent; - } else { - if (parent.match("tab_list|g_|f_") == null && b.tabs[parent]) { - parent = b.tabs[parent].parent; - } else { - if (parent.match("f_") != null && b.windows[windowId].folders[parent]) { - parent = b.windows[windowId].folders[parent].parent; - } else { - if (parent.match("pin_list|tab_list|g_") != null) { - groupId = parent; - parent = false; - } else { - parent = false; - } - } - } - } - } - return groupId; + let groupId = "tab_list"; + if (tabId == undefined || windowId == undefined || b.windows[windowId] == undefined || b.tabs[tabId] == undefined) return groupId; + let parent = b.tabs[tabId].parent; + while (parent) { + if (isNaN(parent) == false && b.tabs[parent]) { + parent = b.tabs[parent].parent; + } else { + if (parent.match("tab_list|g_|f_") == null && b.tabs[parent]) { + parent = b.tabs[parent].parent; + } else { + if (parent.match("f_") != null && b.windows[windowId].folders[parent]) { + parent = b.windows[windowId].folders[parent].parent; + } else { + if (parent.match("pin_list|tab_list|g_") != null) { + groupId = parent; + parent = false; + } else { + parent = false; + } + } + } + } + } + return groupId; } -function GetTabParents(tabId) { - let Parents = []; - if (tabId == undefined) { - return Parents; - } - if (b.tabs[tabId] == undefined) { - return Parents; - } - while (b.tabs[tabId].parent != "" && b.tabs[b.tabs[tabId].parent] != undefined) { - if (b.tabs[b.tabs[tabId].parent]) { - Parents.push(b.tabs[tabId].parent); - } - tabId = b.tabs[tabId].parent; - } - return Parents; +function GetTabParents(tabId, windowId) { + let Parents = []; + if (tabId == undefined) return Parents; + if (b.tabs[tabId] == undefined) return Parents; + let parent = b.tabs[tabId].parent; + let escape = 9999; + while (escape > 0 && (b.tabs[parent] != undefined || b.windows[windowId].folders[parent])) { + if (b.tabs[parent]) { + Parents.push(parent); + parent = b.tabs[parent].parent; + } else { + if (b.windows[windowId].folders[parent]) { + Parents.push(parent); + parent = b.windows[windowId].folders[parent].parent; + } + } + escape--; + } + return Parents; } -function GetChildren(parentId) { - let Children = []; - for (let tId in b.tabs) { - if (b.tabs[tId].parent == parentId) { - Children.push(parseInt(tId)); - } - } - for (let i = 0; i < Children.length-1; i++) { - for (let j = i+1; j < Children.length; j++) { - if (b.tabs[Children[i]].index > b.tabs[Children[j]].index) { - let swap = Children[i]; - Children[i] = Children[j]; - Children[j] = swap; - } - } - } - return Children; +function GetChildren(TTObj, parentId) { // TTObj is b.tabs or b.windows[winId].folders + let Children = []; + for (let Id in TTObj) { + if (TTObj[Id].parent == parentId) Children.push(Id); + } + return Children; } +function ShiftChildrenIndexes(TabsIdsArray, OpenerIndex, folderIdsArray, windowId) { + for (let tabId of TabsIdsArray) { // shift indexes of siblings tabs + if (b.tabs[tabId].index > OpenerIndex) b.tabs[tabId].index += 1; + } + for (let folderId of folderIdsArray) { // shift indexes of siblings folders + if (b.windows[windowId].folders[folderId].index > OpenerIndex) b.windows[windowId].folders[folderId].index += 1; + } +} + +function UnshiftChildrenIndexes(TabsIdsArray, ClosedIndex, folderIdsArray, windowId) { + for (let tabId of TabsIdsArray) { // shift indexes of siblings tabs + if (b.tabs[tabId].index > ClosedIndex) b.tabs[tabId].index -= 1; + } + for (let folderId of folderIdsArray) { // shift indexes of siblings folders + if (b.windows[windowId].folders[folderId].index > ClosedIndex) b.windows[windowId].folders[folderId].index -= 1; + } +} function AppendTabToGroupOnRegexMatch(tabId, windowId, url) { - let TabGroupId = GetTabGroupId(tabId, windowId); - for (let i = 0; i < opt.tab_group_regexes.length; i++) { - let regexPair = opt.tab_group_regexes[i]; - if (url.match(regexPair[0])) { - let groupId = FindGroupIdByName(regexPair[1], b.windows[windowId].groups); - let groupName = regexPair[1]; - if (groupId === null) { // no group - let newGroupID = ""; - while (newGroupID == "") { - newGroupID = "g_"+GenerateRandomID(); - for (let wId in b.windows) { - for (let gId in b.windows[wId].groups) { - console.log("check if group id exists"); - if (gId == newGroupID) { - newGroupID = ""; - console.log("yup, redo"); - } - } - } - } - groupId = newGroupID; - b.windows[windowId].groups[groupId] = {id: groupId, index: 999, active_tab: 0, prev_active_tab: 0, active_tab_ttid: "", name: groupName, font: ""}; - chrome.runtime.sendMessage({command: "append_group", groupId: groupId, group_name: groupName, font_color: "", windowId: windowId}); - } - if (TabGroupId != groupId && groupId != null) { - b.tabs[tabId].parent = groupId; - setTimeout(function() { - chrome.runtime.sendMessage({command: "append_tab_to_group", tabId: tabId, groupId: groupId, windowId: windowId}); - }, 100); - } - break; - } - } - return b.tabs[tabId].parent; + let TabGroupId = GetTabGroupId(tabId, windowId); + for (let i = 0; i < opt.tab_group_regexes.length; i++) { + let regexPair = opt.tab_group_regexes[i]; + if (url.match(regexPair[0])) { + let groupId = FindGroupIdByName(regexPair[1], b.windows[windowId].groups); + let groupName = regexPair[1]; + if (groupId === null) { // no group + let newGroupID = ""; + while (newGroupID == "") { + newGroupID = "g_" + GenerateRandomID(); + for (let wId in b.windows) { + for (let gId in b.windows[wId].groups) { + if (gId == newGroupID) newGroupID = ""; + } + } + } + groupId = newGroupID; + b.windows[windowId].groups[groupId] = { id: groupId, index: 999, active_tab: 0, prev_active_tab: 0, name: groupName, font: "" }; + chrome.runtime.sendMessage({ command: "append_group", groupId: groupId, group_name: groupName, font_color: "", windowId: windowId }); + } + if (TabGroupId != groupId && groupId != null) { + b.tabs[tabId].parent = groupId; + setTimeout(function() { + chrome.runtime.sendMessage({ command: "append_tab_to_group", tabId: tabId, groupId: groupId, windowId: windowId }); + }, 100); + } + break; + } + } + return b.tabs[tabId].parent; } function FindGroupIdByName(name, groups) { - for (let groupId in groups) { - if (!groups.hasOwnProperty(groupId)) { - continue; - } - if (groups[groupId].name === name) { - return groupId; - } - } - return null; -} - -//////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////// QUANTUM ////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////// - - -function QuantumStart(retry) { - chrome.windows.getAll({windowTypes: ["normal"], populate: true}, function(w) { - if (w[0].tabs.length == 1 && (w[0].tabs[0].url == "about:blank" || w[0].tabs[0].url == "about:sessionrestore")) { - setTimeout(function() { - QuantumStart(retry+1); - }, 2000); - } else { - QuantumLoadTabs(0); - if (retry > 0) { - chrome.runtime.sendMessage({command: "reload_sidebar"}); - } - setTimeout(function() { - b.schedule_save = 0; - }, 2000); - } - }); -} - -function QuantumLoadTabs(retry) { - chrome.windows.getAll({windowTypes: ["normal"], populate: true}, function(w) { - chrome.storage.local.get(null, function(storage) { - // LOAD PREFERENCES - GetCurrentPreferences(storage); - - // CACHED COUNTS AND STUFF - // let b.tt_ids = {}; - let tabs_matched = 0; - let tabs_count = 0; - for (let wIndex = 0; wIndex < w.length; wIndex++) { - tabs_count += w[wIndex].tabs.length; - } - let lastWinId = w[w.length-1].id; - let lastTabId = w[w.length-1].tabs[w[w.length-1].tabs.length-1].id; - let WinCount = w.length; - - if (opt.debug == true) { - if (storage.debug_log != undefined) { - b.debug = storage.debug_log; - } - if (retry == 0) { - pushlog("TreeTabs background start"); - } - } - - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - let winIndex = wIndex; - let winId = w[winIndex].id; - let tabsCount = w[winIndex].tabs.length; - - // LOAD TTID FROM FIREFOX GET WINDOW VALUE - let win = Promise.resolve(browser.sessions.getWindowValue(winId, "TTdata")).then(function(WindowData) { - if (opt.skip_load == false && WindowData != undefined) { - b.windows[winId] = Object.assign({}, WindowData); - } else { - QuantumAppendWinTTId(winId); - } - - b.windows[winId].activeTabId = 0; // legacy - - - for (let tIndex = 0; tIndex < tabsCount; tIndex++) { - let tab = w[winIndex].tabs[tIndex]; - let tabIndex = tIndex; - let tabId = w[winIndex].tabs[tabIndex].id; - let tabPinned = w[winIndex].tabs[tabIndex].pinned; - - if (tab.active) { - b.windows[winId].activeTabId = tabId; - } - - // LOAD TTID FROM FIREFOX GET TAB VALUE - let tt_tab = Promise.resolve(browser.sessions.getTabValue(tabId, "TTdata")).then(function(TabData) { - if (opt.skip_load == false && TabData != undefined) { - b.tabs[tabId] = Object.assign({}, TabData); - b.tt_ids[b.tabs[tabId].ttid] = tabId; - tabs_matched++; - } else { - QuantumAppendTabTTId(tab); - } - // IF ON LAST TAB AND LAST WINDOW, START MATCHING LOADED DATA - if (tabId == lastTabId && winId == lastWinId) { - - // OK, DONE, NOW REPLACE OLD PARENTS IDS WITH THIS SESSION IDS - for (let ThisSessonTabId in b.tabs) { - if (b.tabs[ThisSessonTabId].parent_ttid != "" && b.tt_ids[b.tabs[ThisSessonTabId].parent_ttid] != undefined) { - b.tabs[ThisSessonTabId].parent = b.tt_ids[b.tabs[ThisSessonTabId].parent_ttid]; - } - } - - // OK, SAME THING FOR ACTIVE TABS IN GROUPS - for (let ThisSessonWinId in b.windows) { - for (let group in b.windows[ThisSessonWinId].groups) { - if (b.tt_ids[b.windows[ThisSessonWinId].groups[group].active_tab_ttid] != undefined) { - b.windows[ThisSessonWinId].groups[group].active_tab = b.tt_ids[b.windows[ThisSessonWinId].groups[group].active_tab_ttid]; - } - if (b.tt_ids[b.windows[ThisSessonWinId].groups[group].prev_active_tab_ttid] != undefined) { - b.windows[ThisSessonWinId].groups[group].prev_active_tab = b.tt_ids[b.windows[ThisSessonWinId].groups[group].prev_active_tab_ttid]; - } - } - } - - if (opt.debug){ pushlog("QuantumLoadTabs, retry: "+retry); pushlog("Current windows count is: "+w.length); pushlog("Current tabs count is: "+tabs_count); pushlog("Matching tabs: "+tabs_matched); pushlog("Current windows:"); pushlog(w); } - - // will try to find tabs for 3 times - if (opt.skip_load == true || retry > 2 || (tabs_matched > tabs_count*0.5)) { - b.running = true; - QuantumAutoSaveData(); - QuantumStartListeners(); - delete DefaultToolbar; delete DefaultTheme; delete DefaultPreferences; - } else { - if (opt.debug){ - pushlog("Attempt "+retry+" failed, matched tabs was below 50%"); - } - setTimeout(function() { - QuantumLoadTabs(retry+1); - }, 2000); - } - } - }); - } - }); - } - }); - }); -} - -// save every second if there is anything to save obviously -async function QuantumAutoSaveData() { - setInterval(function() { - if (b.schedule_save > 1) { - b.schedule_save = 1; - } - if (b.running && b.schedule_save > 0 && Object.keys(b.tabs).length > 1) { - chrome.windows.getAll({windowTypes: ['normal'], populate: true}, function(w) { - let WinCount = w.length; - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - let winId = w[wIndex].id; - if (b.windows[winId] != undefined && b.windows[winId].ttid != undefined && b.windows[winId].group_bar != undefined && b.windows[winId].search_filter != undefined && b.windows[winId].active_shelf != undefined && b.windows[winId].active_group != undefined && b.windows[winId].groups != undefined && b.windows[winId].folders != undefined) { - browser.sessions.setWindowValue(winId, "TTdata", b.windows[winId] ); - } - let TabsCount = w[wIndex].tabs.length; - for (let tabIndex = 0; tabIndex < TabsCount; tabIndex++) { - let tabId = w[wIndex].tabs[tabIndex].id; - if (b.tabs[tabId] != undefined && b.tabs[tabId].ttid != undefined && b.tabs[tabId].parent != undefined && b.tabs[tabId].index != undefined && b.tabs[tabId].expand != undefined) { - browser.sessions.setTabValue( tabId, "TTdata", b.tabs[tabId] ); - } - } - } - b.schedule_save--; - }); - } - if (opt.debug == true) { chrome.storage.local.set({debug_log: b.debug}); } - }, 1000); -} - -function QuantumGenerateNewWindowID() { - let newID = ""; - while (newID == "") { - newID = "w_"+GenerateRandomID(); - for (let wId in b.windows) { - if (wId == newID) { - newID = ""; - } - } - } - return newID; -} - -function QuantumGenerateNewTabID() { - let newID = ""; - while (newID == "") { - newID = "t_"+GenerateRandomID(); - for (let tId in b.tabs) { - if (tId == newID) { - newID = ""; - } - } - } - return newID; -} - -function QuantumAppendTabTTId(tab) { - let NewTTTabId = QuantumGenerateNewTabID(); - if (b.tabs[tab.id] != undefined) { - b.tabs[tab.id].ttid = NewTTTabId; - } else { - b.tabs[tab.id] = {ttid: NewTTTabId, parent: (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), parent_ttid: "", index: tab.index, expand: ""}; - } - b.tt_ids[NewTTTabId] = tab.id; - return NewTTTabId; - // if (b.schedule_save > 0) browser.sessions.setTabValue( tab.id, "TTdata", b.tabs[tab.id] ); -} - -function QuantumAppendWinTTId(windowId) { - let NewTTWindowId = QuantumGenerateNewWindowID(); - if (b.windows[windowId] != undefined) { - b.windows[windowId].ttid = NewTTWindowId; - } else { - b.windows[windowId] = {activeTabId: 0, ttid: NewTTWindowId, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: {tab_list: {id: "tab_list", index: 0, active_tab: 0, active_tab_ttid: "", prev_active_tab: 0, prev_active_tab_ttid: "", name: labels.ungrouped_group, font: ""}}, folders: {}}; - } - // if (b.schedule_save > 0) browser.sessions.setWindowValue( windowId, "TTdata", b.windows[windowId] ); + for (let groupId in groups) { + if (!groups.hasOwnProperty(groupId)) continue; + if (groups[groupId].name === name) return groupId; + } + return null; } -//////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////// CHROMIUM ///////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////// - -function ChromiumLoadTabs(retry) { - chrome.windows.getAll({windowTypes: ['normal'], populate: true}, function(w) { - chrome.storage.local.get(null, function(storage) { - // LOAD PREFERENCES - GetCurrentPreferences(storage); - - // load tabs and windows from storage - let refTabs = {}; - let tabs_matched = 0; - let w_count = storage.w_count ? storage.w_count : 0; - let t_count = storage.t_count ? storage.t_count : 0; - let LoadedWindows = storage.windows ? storage.windows : []; - let LoadedTabs = storage.tabs ? storage.tabs : []; - let CurrentTabsCount = 0; - for (let wIndex = 0; wIndex < w.length; wIndex++) { - CurrentTabsCount += w[wIndex].tabs.length; - } - - let bak = (1 + retry) <= 3 ? (1 + retry) : 3; - - if (opt.skip_load == false) { - // if loaded tabs mismatch by 50%, then try to load back - if (LoadedTabs.length < t_count*0.5) { - LoadedTabs = storage["tabs_BAK"+bak] ? storage["tabs_BAK"+bak] : []; - } - // if loaded windows mismatch, then try to load back - if (LoadedWindows.length < w_count) { - LoadedWindows = storage["windows_BAK"+bak] ? storage["windows_BAK"+bak] : []; - } - } else { - tabs_matched = CurrentTabsCount; - } - - if (opt.debug == true) { - if (storage.debug_log != undefined) { - b.debug = storage.debug_log; - } - if (retry == 0) { - pushlog("TreeTabs background start"); - } - } - - // CACHED COUNTS - let WinCount = w.length; - let LoadedWinCount = LoadedWindows.length; - let LoadedTabsCount = LoadedTabs.length; - - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - if (w[wIndex].tabs[0].url != "chrome://videopopout/") { // this is for opera for their extra video popup, which is weirdly queried as a "normal" window - let winId = w[wIndex].id; - let url1 = w[wIndex].tabs[0].url; - let url2 = w[wIndex].tabs[w[wIndex].tabs.length-1].url; - ChromiumAddWindowData(winId); - - if (opt.skip_load == false) { - for (let LwIndex = 0; LwIndex < LoadedWinCount; LwIndex++) { - if (LoadedWindows[LwIndex].url1 == url1 || LoadedWindows[LwIndex].url2 == url2) { - if (LoadedWindows[LwIndex].group_bar) { b.windows[winId].group_bar = LoadedWindows[LwIndex].group_bar; } - if (LoadedWindows[LwIndex].search_filter) { b.windows[winId].search_filter = LoadedWindows[LwIndex].search_filter; } - if (LoadedWindows[LwIndex].active_shelf) { b.windows[winId].active_shelf = LoadedWindows[LwIndex].active_shelf; } - if (LoadedWindows[LwIndex].active_group) { b.windows[winId].active_group = LoadedWindows[LwIndex].active_group; } - if (Object.keys(LoadedWindows[LwIndex].groups).length > 0) { b.windows[winId].groups = Object.assign({}, LoadedWindows[LwIndex].groups); } - if (Object.keys(LoadedWindows[LwIndex].folders).length > 0) { b.windows[winId].folders = Object.assign({}, LoadedWindows[LwIndex].folders); } - LoadedWindows[LwIndex].url1 = ""; - LoadedWindows[LwIndex].url2 = ""; - break; - } - } - } - } - } - - // add new hashes for current tabs - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - let TabsCount = w[wIndex].tabs.length; - for (let tabIndex = 0; tabIndex < TabsCount; tabIndex++) { - ChromiumHashURL(w[wIndex].tabs[tabIndex]); - - if (w[wIndex].tabs[tabIndex].active) { - b.windows[w[wIndex].id].activeTabId = w[wIndex].tabs[tabIndex].id; - } - - } - } - - // compare saved tabs from storage to current session tabs, but can be skipped if set in options - if (opt.skip_load == false && LoadedTabs.length > 0) { - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - let TabsCount = w[wIndex].tabs.length; - for (let tabIndex = 0; tabIndex < TabsCount; tabIndex++) { - for (let LtabIndex = 0; LtabIndex < LoadedTabsCount; LtabIndex++) { - let tabId = w[wIndex].tabs[tabIndex].id; - if (LoadedTabs[LtabIndex].hash == b.tabs[tabId].hash && refTabs[LoadedTabs[LtabIndex].id] == undefined) { - refTabs[LoadedTabs[LtabIndex].id] = tabId; - if (LoadedTabs[LtabIndex].parent) { b.tabs[tabId].parent = LoadedTabs[LtabIndex].parent; } - if (LoadedTabs[LtabIndex].index) { b.tabs[tabId].index = LoadedTabs[LtabIndex].index; } - if (LoadedTabs[LtabIndex].expand) { b.tabs[tabId].expand = LoadedTabs[LtabIndex].expand; } - LoadedTabs[LtabIndex].hash = undefined; - tabs_matched++; - break; - } - } - } - } - // replace parents tabIds for new ones, for that purpose refTabs was made before - for (let tabId in b.tabs) { - if (refTabs[b.tabs[tabId].parent] != undefined) { - b.tabs[tabId].parent = refTabs[b.tabs[tabId].parent]; - } - } - // replace active tab ids for each group using refTabs - for (let windowId in b.windows) { - for (let group in b.windows[windowId].groups) { - if (refTabs[b.windows[windowId].groups[group].active_tab]) { - b.windows[windowId].groups[group].active_tab = refTabs[b.windows[windowId].groups[group].active_tab]; - } - if (refTabs[b.windows[windowId].groups[group].prev_active_tab]) { - b.windows[windowId].groups[group].prev_active_tab = refTabs[b.windows[windowId].groups[group].prev_active_tab]; - } - } - } - } - - if (opt.debug){ - pushlog("ChromiumLoadTabs, retry: "+retry); pushlog("Current windows count is: "+w.length); pushlog("Saved windows count is: "+LoadedWindows.length); pushlog("Current tabs count is: "+CurrentTabsCount); - pushlog("Loaded tabs count is: "+LoadedTabsCount); pushlog("Matching tabs: "+tabs_matched); pushlog("Current windows:"); pushlog(w); - } - - // will loop trying to find tabs - if (opt.skip_load || retry >= 5 || (tabs_matched > t_count*0.5)) { - b.running = true; - ChromiumAutoSaveData(0, 1000); ChromiumAutoSaveData(1, 300000); ChromiumAutoSaveData(2, 600000); ChromiumAutoSaveData(3, 1800000); - ChromiumStartListeners(); - delete DefaultToolbar; delete DefaultTheme; delete DefaultPreferences; - b.schedule_save = -1; // 2 operations must be made to start saving data - } else { - if (opt.debug){ - pushlog("Attempt "+retry+" failed, matched tabs was below 50%"); - } - setTimeout(function() { - ChromiumLoadTabs(retry+1); - }, 5000); - } - }); - }); +// LISTENERS +function StartBackgroundListeners() { + chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { + if (message.command == "is_bg_ready") { + sendResponse(b.bg_running); + return; + } + if (message.command == "reload") { + window.location.reload(); + return; + } + if (message.command == "reload_options") { + opt = Object.assign({}, message.opt); + return; + } + if (message.command == "get_windows") { + sendResponse(b.windows); + return; + } + if (message.command == "get_folders") { + if (b.windows[message.windowId]) { + sendResponse(b.windows[message.windowId].folders); + } + return; + } + if (message.command == "save_folders") { + if (b.windows[message.windowId]) { + b.windows[message.windowId].folders = Object.assign({}, message.folders); + b.schedule_save++; + } + return; + } + if (message.command == "get_groups") { + if (b.windows[message.windowId]) { + sendResponse(b.windows[message.windowId].groups); + } + return; + } + if (message.command == "save_groups") { + if (b.windows[message.windowId]) { + b.windows[message.windowId].groups = Object.assign({}, message.groups); + b.schedule_save++; + } + return; + } + if (message.command == "set_active_group") { + if (b.windows[message.windowId]) { + b.windows[message.windowId].active_group = message.active_group; + b.schedule_save++; + } + return; + } + if (message.command == "get_active_group") { + if (b.windows[message.windowId]) { + sendResponse(b.windows[message.windowId].active_group); + } + return; + } + if (message.command == "set_search_filter") { + if (b.windows[message.windowId]) { + b.windows[message.windowId].search_filter = message.search_filter; + b.schedule_save++; + } + return; + } + if (message.command == "get_search_filter") { + if (b.windows[message.windowId]) { + sendResponse(b.windows[message.windowId].search_filter); + } + return; + } + if (message.command == "set_active_shelf") { + if (b.windows[message.windowId]) { + b.windows[message.windowId].active_shelf = message.active_shelf; + b.schedule_save++; + } + return; + } + if (message.command == "get_active_shelf") { + if (b.windows[message.windowId]) { + sendResponse(b.windows[message.windowId].active_shelf); + } + return; + } + if (message.command == "set_group_bar") { + if (b.windows[message.windowId]) { + b.windows[message.windowId].group_bar = message.group_bar; + b.schedule_save++; + } + return; + } + if (message.command == "get_group_bar") { + if (b.windows[message.windowId]) { + sendResponse(b.windows[message.windowId].group_bar); + } + return; + } + if (message.command == "get_browser_tabs") { + sendResponse(b.tabs); + return; + } + if (message.command == "update_tab") { + if (b.tabs[message.tabId]) { + if (message.tab.index) { + b.tabs[message.tabId].index = message.tab.index; + } + if (message.tab.expand) { + b.tabs[message.tabId].expand = message.tab.expand; + } + if (message.tab.parent) { + b.tabs[message.tabId].parent = message.tab.parent; + } + b.schedule_save++; + } + return; + } + if (message.command == "update_all_tabs") { + for (let pin of message.pins) { + if (b.tabs[pin.id]) { + b.tabs[pin.id].parent = "pin_list"; + b.tabs[pin.id].expand = ""; + b.tabs[pin.id].index = pin.index; + } + } + for (let tab of message.tabs) { + if (b.tabs[tab.id]) { + b.tabs[tab.id].parent = tab.parent; + b.tabs[tab.id].expand = tab.expand; + b.tabs[tab.id].index = tab.index; + } + } + b.schedule_save++; + return; + } + if (message.command == "discard_tab") { + DiscardTab(message.tabId); + return; + } + if (message.command == "discard_window") { + DiscardWindow(message.windowId); + return; + } + if (message.command == "remove_tab_from_empty_tabs") { + setTimeout(function() { + if (b.EmptyTabs.indexOf(message.tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(message.tabId), 1); + } + }, 100); + return; + } + if (message.command == "debug") { + pushlog(message.log); + return; + } + }); } -async function ChromiumAutoSaveData(BAK, LoopTimer) { - setInterval(function() { - if (b.schedule_save > 1 || BAK > 0) { - b.schedule_save = 1; - } - if (b.running && b.schedule_save > 0 && Object.keys(b.tabs).length > 1) { - chrome.windows.getAll({windowTypes: ['normal'], populate: true}, function(w) { - let WinCount = w.length; - let t_count = 0; - let counter = 0; - let Windows = []; - let Tabs = []; - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - t_count += w[wIndex].tabs.length; - } - for (let wIndex = 0; wIndex < WinCount; wIndex++) { - let winId = w[wIndex].id; - if (b.windows[winId] != undefined && b.windows[winId].group_bar != undefined && b.windows[winId].search_filter != undefined && b.windows[winId].active_shelf != undefined && b.windows[winId].active_group != undefined && b.windows[winId].groups != undefined && b.windows[winId].folders != undefined) { - Windows.push({ url1: w[wIndex].tabs[0].url, url2: w[wIndex].tabs[w[wIndex].tabs.length-1].url, group_bar: b.windows[winId].group_bar, search_filter: b.windows[winId].search_filter, active_shelf: b.windows[winId].active_shelf, active_group: b.windows[winId].active_group, groups: b.windows[winId].groups, folders: b.windows[winId].folders }); - } - let TabsCount = w[wIndex].tabs.length; - for (let tabIndex = 0; tabIndex < TabsCount; tabIndex++) { - let tabId = w[wIndex].tabs[tabIndex].id; - if (b.tabs[tabId] != undefined && b.tabs[tabId].hash != undefined && b.tabs[tabId].parent != undefined && b.tabs[tabId].index != undefined && b.tabs[tabId].expand != undefined) { - Tabs.push({ id: tabId, hash: b.tabs[tabId].hash, parent: b.tabs[tabId].parent, index: b.tabs[tabId].index, expand: b.tabs[tabId].expand }); - counter++; - } - } - if (counter == t_count) { - chrome.storage.local.set({t_count: t_count}); - chrome.storage.local.set({w_count: WinCount}); - if (BAK == 0) { chrome.storage.local.set({windows: Windows}); chrome.storage.local.set({tabs: Tabs}); } - if (BAK == 1) { chrome.storage.local.set({windows_BAK1: Windows}); chrome.storage.local.set({tabs_BAK1: Tabs}); chrome.runtime.sendMessage({command: "backup_available", bak: 1}); } - if (BAK == 2) { chrome.storage.local.set({windows_BAK2: Windows}); chrome.storage.local.set({tabs_BAK2: Tabs}); chrome.runtime.sendMessage({command: "backup_available", bak: 2}); } - if (BAK == 3) { chrome.storage.local.set({windows_BAK3: Windows}); chrome.storage.local.set({tabs_BAK3: Tabs}); chrome.runtime.sendMessage({command: "backup_available", bak: 3}); } - } - } - b.schedule_save--; - }); - } - if (opt.debug == true) { chrome.storage.local.set({debug_log: b.debug}); } - }, LoopTimer); +// NEW TAB +function OnMessageTabCreated(NewTab, activeTabId) { + let ParentId; + let AfterId; + let append; + + if (b.windows[NewTab.windowId] && NewTab.active) { + b.windows[NewTab.windowId].groups[b.windows[NewTab.windowId].active_group].active_tab = NewTab.id; + } + + if (NewTab.url == b.newTabUrl) { + b.EmptyTabs.push(NewTab.id); + } + + if (NewTab.pinned) { + let PinTabs = GetChildren(b.tabs, "pin_list"); + b.tabs[NewTab.id].parent = "pin_list"; + if (opt.append_pinned_tab == "after") { + if (NewTab.openerTabId && b.tabs[NewTab.openerTabId]) { // has opener tab case + ShiftChildrenIndexes(PinTabs, b.tabs[NewTab.openerTabId].index, [], NewTab.windowId); + b.tabs[NewTab.id].index = NewTab.index; + AfterId = NewTab.openerTabId; + } else { + if (b.tabs[activeTabId]) { // after active case + ShiftChildrenIndexes(PinTabs, b.tabs[activeTabId].index, [], NewTab.windowId); + AfterId = activeTabId; + } + } + } + if (opt.append_pinned_tab == "first") { // as first + ShiftChildrenIndexes(PinTabs, -1, [], NewTab.windowId); + b.tabs[NewTab.id].index = 0; + append = false; + } + if (opt.append_pinned_tab == "last") { // as last + b.tabs[NewTab.id].index = PinTabs.length; + append = true; + } + } else { + + if (opt.append_orphan_tab == "as_child" && opt.orphaned_tabs_to_ungrouped == false) { + NewTab.openerTabId = activeTabId; + } + if (NewTab.openerTabId) { // child case + let OpenerSiblingTabs = GetChildren(b.tabs, b.tabs[NewTab.openerTabId].parent); + let OpenerSiblingFolders = GetChildren(b.windows[NewTab.windowId].folders, b.tabs[NewTab.openerTabId].parent); + if (opt.append_child_tab == "after") { // place tabs flat without automatic tree + b.tabs[NewTab.id].parent = b.tabs[NewTab.openerTabId].parent; + ShiftChildrenIndexes(OpenerSiblingTabs, b.tabs[NewTab.openerTabId].index, OpenerSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = b.tabs[NewTab.openerTabId].index + 1; + AfterId = NewTab.openerTabId; + } else { + if (opt.max_tree_depth == 0) { // place tabs flat if limit is set to 0 + b.tabs[NewTab.id].parent = b.tabs[NewTab.openerTabId].parent; + if (opt.append_child_tab_after_limit == "after") { // max tree depth, place tab after parent + ShiftChildrenIndexes(OpenerSiblingTabs, b.tabs[NewTab.openerTabId].index, OpenerSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = b.tabs[NewTab.openerTabId].index + 1; + AfterId = NewTab.openerTabId; + } + + if (opt.append_child_tab_after_limit == "top" && opt.append_child_tab != "after") { // max tree depth, place tab on top (above parent) + ShiftChildrenIndexes(OpenerSiblingTabs, -1, OpenerSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = 0; + ParentId = b.tabs[NewTab.id].parent; + append = false; + } + if (opt.append_child_tab_after_limit == "bottom" && opt.append_child_tab != "after") { // max tree depth, place tab on bottom (below parent) + b.tabs[NewTab.id].index = OpenerSiblingTabs.length + OpenerSiblingFolders.length; + ParentId = b.tabs[NewTab.id].parent; + append = true; + } + + } else { + + let Parents = GetTabParents(NewTab.openerTabId, NewTab.windowId); + let OpenerChildren = GetChildren(b.tabs, NewTab.openerTabId); + if (opt.max_tree_depth < 0 || (opt.max_tree_depth > 0 && Parents.length < opt.max_tree_depth)) { // append to tree on top and bottom + b.tabs[NewTab.id].parent = NewTab.openerTabId; + if (opt.append_child_tab == "top") { // place child tab at the top (reverse hierarchy) + ShiftChildrenIndexes(OpenerSiblingTabs, -1, OpenerSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = 0; + ParentId = b.tabs[NewTab.id].parent; + } + + if (opt.append_child_tab == "bottom") { // place child tab at the bottom + b.tabs[NewTab.id].index = OpenerSiblingTabs.length + OpenerSiblingFolders.length; + ParentId = b.tabs[NewTab.id].parent; + append = true; + } + + } else { + + if (opt.max_tree_depth > 0 && Parents.length >= opt.max_tree_depth) { // if reached depth limit of the tree + b.tabs[NewTab.id].parent = b.tabs[NewTab.openerTabId].parent; + if (opt.append_child_tab_after_limit == "after") { // tab will append after opener + ShiftChildrenIndexes(OpenerSiblingTabs, b.tabs[NewTab.openerTabId].index, OpenerSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = b.tabs[NewTab.openerTabId].index + 1; + AfterId = NewTab.openerTabId; + } + if (opt.append_child_tab_after_limit == "top") { // tab will append on top + ShiftChildrenIndexes(OpenerSiblingTabs, -1, OpenerSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = 0; + ParentId = b.tabs[NewTab.id].parent; + } + if (opt.append_child_tab_after_limit == "bottom") { // tab will append on bottom + b.tabs[NewTab.id].index = OpenerSiblingTabs.length + OpenerSiblingFolders.length; + ParentId = b.tabs[NewTab.id].parent; + append = true; + } + } + } + } + } + + } else { // ORPHAN TAB + + if (opt.orphaned_tabs_to_ungrouped == true) { // if set to append orphan tabs to ungrouped group + let TabListTabs = GetChildren(b.tabs, "tab_list"); + let TabListFolders = GetChildren(b.windows[NewTab.windowId].folders, "tab_list"); + b.tabs[NewTab.id].index = TabListTabs.length + TabListFolders.length; + ParentId = "tab_list"; + append = true; + } else { + + + if (opt.append_orphan_tab == "after_active" || opt.append_orphan_tab == "active_parent_top" || opt.append_orphan_tab == "active_parent_bottom") { + + if (b.windows[NewTab.windowId] && b.windows[NewTab.windowId].activeTabId) { + if (b.tabs[activeTabId]) { + let ActiveTabSiblings = GetChildren(b.tabs, b.tabs[activeTabId].parent); + let ActiveTabSiblingFolders = GetChildren(b.windows[NewTab.windowId].folders, b.tabs[activeTabId].parent); + b.tabs[NewTab.id].parent = b.tabs[activeTabId].parent; + if (opt.append_orphan_tab == "after_active") { + ShiftChildrenIndexes(ActiveTabSiblings, b.tabs[activeTabId].index, ActiveTabSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = b.tabs[activeTabId].index + 1; + AfterId = activeTabId; + } + if (opt.append_orphan_tab == "active_parent_top") { + ShiftChildrenIndexes(ActiveTabSiblings, -1, ActiveTabSiblingFolders, NewTab.windowId); + b.tabs[NewTab.id].index = 0; + ParentId = b.tabs[NewTab.id].parent; + } + if (opt.append_orphan_tab == "active_parent_bottom") { + b.tabs[NewTab.id].index = ActiveTabSiblings.length + ActiveTabSiblingFolders.length; + ParentId = b.tabs[NewTab.id].parent; + append = true; + } + + } else { // FAIL, no active tab! + let ActiveGroupTabs = GetChildren(b.tabs, b.windows[NewTab.windowId].active_group); + let ActiveGroupFolders = GetChildren(b.windows[NewTab.windowId].folders, b.windows[NewTab.windowId].active_group); + b.tabs[NewTab.id].parent = b.windows[NewTab.windowId].active_group; + b.tabs[NewTab.id].index = ActiveGroupTabs.length + ActiveGroupFolders.length; + ParentId = b.windows[NewTab.windowId].active_group; + } + } else { + b.tabs[NewTab.id].parent = "tab_list"; + b.tabs[NewTab.id].index = NewTab.index; + ParentId = "tab_list"; + } + } + + if (opt.append_orphan_tab == "top") { + let ActiveGroupTabs = GetChildren(b.tabs, b.windows[NewTab.windowId].active_group); + let ActiveGroupFolders = GetChildren(b.windows[NewTab.windowId].folders, b.tabs[activeTabId].parent); + b.tabs[NewTab.id].parent = b.windows[NewTab.windowId].active_group; + ShiftChildrenIndexes(ActiveGroupTabs, -1, ActiveGroupFolders, NewTab.windowId); + b.tabs[NewTab.id].index = 0; + ParentId = b.windows[NewTab.windowId].active_group; + } + + if (opt.append_orphan_tab == "bottom") { + let ActiveGroupTabs = GetChildren(b.tabs, b.windows[NewTab.windowId].active_group); + let ActiveGroupFolders = b.tabs[activeTabId] ? GetChildren(b.windows[NewTab.windowId].folders, b.tabs[activeTabId].parent) : []; + b.tabs[NewTab.id].parent = b.windows[NewTab.windowId].active_group; + b.tabs[NewTab.id].index = ActiveGroupTabs.length + ActiveGroupFolders.length; + ParentId = b.windows[NewTab.windowId].active_group; + append = true; + } + } + } + + if (opt.move_tabs_on_url_change === "all_new" && NewTab.pinned == false) { + setTimeout(function() { + chrome.tabs.get(NewTab.id, function(CheckTabsUrl) { + AppendTabToGroupOnRegexMatch(CheckTabsUrl.id, CheckTabsUrl.windowId, CheckTabsUrl.url); + }); + }, 100); + } + } + setTimeout(function() { + b.schedule_save++; + }, 500); + + chrome.runtime.sendMessage({ command: "tab_created", windowId: NewTab.windowId, tabId: NewTab.id, tab: NewTab, ParentId: ParentId, InsertAfterId: AfterId, Append: append }); } -function ChromiumAddWindowData(winId) { - b.windows[winId] = {activeTabId: 0, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: {tab_list: {id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: ""}}, folders: {}}; +function SafeModeCheck() { + setInterval(function() { + if (b.safe_mode) { + if (browserId == "F") { + chrome.windows.getAll({ windowTypes: ["normal"], populate: true }, function(w) { + for (win of w) { + Promise.resolve(browser.sessions.getWindowValue(win.id, "TTdata")).then(function(WindowData) { + if (WindowData != undefined) { + chrome.runtime.sendMessage({command: "reload_sidebar"}); + window.location.reload(); + } + }); + } + }); + } + if (browserId == "O") { + chrome.runtime.sendMessage({command: "reload_sidebar"}); + window.location.reload(); + } + if (browserId == "V") { + chrome.runtime.sendMessage({command: "reload_sidebar"}); + window.location.reload(); + } + } + }, 2000); } -function ChromiumHashURL(tab) { - if (b.tabs[tab.id] == undefined) { b.tabs[tab.id] = {hash: 0, parent: tab.pinned ? "pin_list" : (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), index: (Object.keys(b.tabs).length + 1), expand: "n"}; } - let hash = 0; - for (let charIndex = 0; charIndex < tab.url.length; charIndex++) { - hash += tab.url.charCodeAt(charIndex); - } - b.tabs[tab.id].hash = hash; -} + +// START BACKGROUND SCRIPT +document.addEventListener("DOMContentLoaded", function() { + StartBackgroundListeners(); + + if (browserId == "F") { + QuantumStart(); + } + if (browserId == "O") { + OperaStart(); + } + if (browserId == "V") { + VivaldiStart(); + } + +}); \ No newline at end of file diff --git a/background_firefox.js b/background_firefox.js new file mode 100644 index 0000000..27717ab --- /dev/null +++ b/background_firefox.js @@ -0,0 +1,335 @@ +// QUANTUM +function QuantumStart() { + chrome.storage.local.get(null, function(storage) { + chrome.windows.getAll({ windowTypes: ["normal"], populate: true }, function(w) { + + let windows_data = {}; + let tabs_data = {}; + + for (let win of w) { + Promise.resolve(browser.sessions.getWindowValue(win.id, "TTdata")).then(function(WindowData) { + windows_data[win.id] = WindowData; + for (let tab of win.tabs) { + Promise.resolve(browser.sessions.getTabValue(tab.id, "TTdata")).then(function(TData) { + if (TData != undefined) b.tt_ids[TData.ttid] = tab.id; + tabs_data[tab.id] = TData; + }); + } + }); + } + + setTimeout(function() { + + // LOAD PREFERENCES + Preferences_GetCurrentPreferences(storage); + + // CACHED COUNTS AND STUFF + let tabs_matched = 0; + let tabs_count = 0; + + for (let win of w) { + tabs_count += win.tabs.length; + } + + let lastWinId = w[w.length - 1].id; + let lastTabId = w[w.length - 1].tabs[w[w.length - 1].tabs.length - 1].id; + + if (opt.debug == true) { + if (storage.debug_log != undefined) b.debug = storage.debug_log; + // if (retry == 0) pushlog("TreeTabs background start"); + } + + for (let win of w) { + + // LOAD TTID FROM FIREFOX GET WINDOW VALUE + if (opt.skip_load == false && windows_data[win.id] != undefined) { + b.windows[win.id] = Object.assign({}, windows_data[win.id]); + } else { + QuantumAppendWinTTId(win.id); + } + + for (let tab of win.tabs) { + // LOAD TTID FROM FIREFOX GET TAB VALUE + if (opt.skip_load == false && tabs_data[tab.id] != undefined) { + b.tabs[tab.id] = Object.assign({}, tabs_data[tab.id]); + tabs_matched++; + + if (tabs_data[tab.id].parent_ttid != undefined && tabs_data[tab.id].parent_ttid != "") { // legacy + b.tabs[tab.id].parent = tabs_data[tab.id].parent_ttid; // legacy + delete b.tabs[tab.id].parent_ttid; // legacy + } // legacy + + } else { + QuantumAppendTabTTId(tab); + } + if (tab.active) b.windows[win.id].activeTabId = tab.id; + } + } + + // OK, DONE, NOW REPLACE OLD PARENTS IDS WITH THIS SESSION IDS + for (let tabId in b.tabs) { + if (b.tt_ids[b.tabs[tabId].parent] != undefined) { + b.tabs[tabId].parent = b.tt_ids[b.tabs[tabId].parent]; // is tab + } else { + b.tabs[tabId].parent = b.tabs[tabId].parent; // is not tab + } + } + + // OK, SAME THING FOR ACTIVE TABS IN GROUPS + for (let winId in b.windows) { + for (let group in b.windows[winId].groups) { + if (b.tt_ids[b.windows[winId].groups[group].active_tab] != undefined) b.windows[winId].groups[group].active_tab = b.tt_ids[b.windows[winId].groups[group].active_tab]; + if (b.tt_ids[b.windows[winId].groups[group].prev_active_tab] != undefined) b.windows[winId].groups[group].prev_active_tab = b.tt_ids[b.windows[winId].groups[group].prev_active_tab]; + } + } + + if (opt.skip_load == false && tabs_matched < tabs_count*0.5) { + b.safe_mode = true; + SafeModeCheck(); + // SAFE MODE IS DISABLED AFTER 10 MINUTES + setTimeout(function() { + b.safe_mode = false; + }, 600000); + + if (opt.debug) pushlog("started in safe mode"); + } + + b.bg_running = true; + QuantumAutoSaveData(); + QuantumStartListeners(); + delete DefaultToolbar; + delete DefaultTheme; + delete DefaultPreferences; + delete DefaultMenu; + chrome.runtime.sendMessage({ command: "bg_started" }); + + if (opt.debug) pushlog("QuantumStart, Current windows count is: " + w.length + "Current tabs count is: " + tabs_count + "Matching tabs: " + tabs_matched); + + }, 1000); + }); + }); +} + +// save every second if there is anything to save obviously +async function QuantumAutoSaveData() { + setInterval(function() { + if (b.schedule_save > 1) b.schedule_save = 1; + if (b.safe_mode == false && b.bg_running && b.schedule_save > 0 && Object.keys(b.tabs).length > 1) { + chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) { + for (let win of w) { + if (b.windows[win.id] != undefined) { + if (b.windows[win.id].ttid != undefined && b.windows[win.id].group_bar != undefined && b.windows[win.id].search_filter != undefined && b.windows[win.id].active_shelf != undefined && b.windows[win.id].active_group != undefined && b.windows[win.id].groups != undefined && b.windows[win.id].folders != undefined) { + let windowData = Object.assign({}, b.windows[win.id]); + for (let groupId in b.windows[win.id].groups) { + if (b.tabs[b.windows[win.id].groups[groupId].active_tab]) windowData.groups[groupId].active_tab = b.tabs[b.windows[win.id].groups[groupId].active_tab].ttid; + if (b.tabs[b.windows[win.id].groups[groupId].prev_active_tab]) windowData.groups[groupId].prev_active_tab = b.tabs[b.windows[win.id].groups[groupId].prev_active_tab].ttid; + } + browser.sessions.setWindowValue(win.id, "TTdata", windowData); + } + } else { + QuantumAppendWinTTId(win.id); + } + + for (let tab of win.tabs) { + if (b.tabs[tab.id] != undefined) { + if (b.tabs[tab.id].ttid != undefined && b.tabs[tab.id].parent != undefined && b.tabs[tab.id].index != undefined && b.tabs[tab.id].expand != undefined) { + browser.sessions.setTabValue(tab.id, "TTdata", { ttid: b.tabs[tab.id].ttid, parent: (b.tabs[b.tabs[tab.id].parent] ? b.tabs[b.tabs[tab.id].parent].ttid : b.tabs[tab.id].parent), index: b.tabs[tab.id].index, expand: b.tabs[tab.id].expand }); + } else { + QuantumAppendTabTTId(tab); + } + } + } + } + b.schedule_save--; + }); + } + if (opt.debug == true) chrome.storage.local.set({ debug_log: b.debug }); + }, 1000); +} + +function QuantumGenerateNewWindowID() { + let newID = ""; + while (newID == "") { + newID = "w_" + GenerateRandomID(); + for (let wId in b.windows) { + if (wId == newID) newID = ""; + } + } + return newID; +} + +function QuantumGenerateNewTabID() { + let newID = ""; + while (newID == "") { + newID = "t_" + GenerateRandomID(); + for (let tId in b.tabs) { + if (tId == newID) newID = ""; + } + } + return newID; +} + +function QuantumAppendTabTTId(tab) { + let NewTTTabId = QuantumGenerateNewTabID(); + if (b.tabs[tab.id] != undefined) { + b.tabs[tab.id].ttid = NewTTTabId; + } else { + b.tabs[tab.id] = { ttid: NewTTTabId, parent: (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), index: tab.index, expand: "" }; + } + b.tt_ids[NewTTTabId] = tab.id; + return NewTTTabId; +} + +function QuantumAppendWinTTId(windowId) { + let NewTTWindowId = QuantumGenerateNewWindowID(); + if (b.windows[windowId] != undefined) { + b.windows[windowId].ttid = NewTTWindowId; + } else { + b.windows[windowId] = { activeTabId: 0, ttid: NewTTWindowId, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: { tab_list: { id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: "" } }, folders: {} }; + } +} + + +function QuantumStartListeners() { + browser.browserAction.onClicked.addListener(function() { + browser.sidebarAction.setPanel({ panel: (browser.extension.getURL("/sidebar.html")) }); + browser.sidebarAction.open(); + }); + chrome.tabs.onCreated.addListener(function(tab) { + if (b.windows[tab.windowId] == undefined) { + QuantumAppendWinTTId(tab.windowId); + } + let prevActiveTabId = b.windows[tab.windowId].activeTabId; + let t = Promise.resolve(browser.sessions.getTabValue(tab.id, "TTdata")).then(function(TabData) { + if (TabData != undefined) { + b.tabs[tab.id] = Object.assign({}, TabData); + let originalParent = b.tt_ids[TabData.parent] ? b.tt_ids[TabData.parent] : TabData.parent; + let AfterId = undefined; + let append = undefined; + if (originalParent) { + let originalParentChildren = GetChildren(b.tabs, originalParent); + if (TabData.index > 0 && TabData.index < originalParentChildren.length) { + for (let i = TabData.index + 1; i < originalParentChildren.length; i++) { // shift next siblings indexes + b.tabs[originalParentChildren[i]].index += 1; + } + AfterId = originalParentChildren[TabData.index]; + } + if (TabData.index == 0) { + append = false; + } + if (TabData.index > originalParentChildren.length) { + append = true; + } + } + chrome.runtime.sendMessage({ command: "tab_created", windowId: tab.windowId, tabId: tab.id, tab: tab, ParentId: originalParent, InsertAfterId: AfterId, Append: append }); + } else { + QuantumAppendTabTTId(tab); + chrome.tabs.get(tab.id, function(NewTab) { // get tab again as reported tab's url is empty! Also for some reason firefox sends tab with "active == false" even if tab is active (THIS IS POSSIBLY A NEW BUG IN FF 60!) + if (NewTab) { + OnMessageTabCreated(NewTab, prevActiveTabId); + } + }); + } + }); + }); + chrome.tabs.onAttached.addListener(function(tabId, attachInfo) { + let oldId = tabId; + chrome.tabs.get(oldId, function(tab) { + ReplaceParents(oldId, tab.id); + chrome.runtime.sendMessage({ command: "tab_attached", windowId: attachInfo.newWindowId, tab: tab, tabId: tab.id, ParentId: b.tabs[tab.id].parent }); + b.schedule_save++; + }); + }); + + chrome.tabs.onDetached.addListener(function(tabId, detachInfo) { + chrome.runtime.sendMessage({ command: "tab_detached", windowId: detachInfo.oldWindowId, tabId: tabId }); + }); + + chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) { + // if (b.windows[removeInfo.windowId].activeTabId == tabId) { + // chrome.runtime.sendMessage({command: "switch_active_tab", windowId: removeInfo.windowId, tabId: tabId}); + // } + let SiblingTabs = GetChildren(b.tabs, b.tabs[tabId].parent); + let SiblingFolders = GetChildren(b.windows[removeInfo.windowId].folders, b.tabs[tabId].parent); + UnshiftChildrenIndexes(SiblingTabs, b.tabs[tabId].index, SiblingFolders, removeInfo.windowId); + if (b.EmptyTabs.indexOf(tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); + } + setTimeout(function() { + chrome.runtime.sendMessage({ command: "tab_removed", windowId: removeInfo.windowId, tabId: tabId }); + }, 5); + delete b.tabs[tabId]; + b.schedule_save++; + }); + chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { + if (changeInfo.pinned == true) { + if (b.tabs[tabId]) { + b.tabs[tabId].parent = "pin_list"; + b.schedule_save++; + } + } + if (changeInfo.pinned == false) { + if (b.tabs[tabId]) { + b.tabs[tabId].parent = "tab_list"; + b.schedule_save++; + } + } + if (changeInfo.url != undefined) { // if set to append when url changes and matches pre-set group + if (tab.pinned == false) { + if (opt.move_tabs_on_url_change == "always" || ((opt.move_tabs_on_url_change == "from_empty" || opt.move_tabs_on_url_change == "from_empty_b") && b.EmptyTabs.indexOf(tabId) != -1)) { + AppendTabToGroupOnRegexMatch(tabId, tab.windowId, changeInfo.url); + } + } + if (changeInfo.url != b.newTabUrl && b.EmptyTabs.indexOf(tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); + } + } + if (changeInfo.title != undefined && !tab.active) { + chrome.runtime.sendMessage({ command: "tab_attention", windowId: tab.windowId, tabId: tabId }); + } + chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tabId, changeInfo: changeInfo }); + }); + + chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) { + chrome.tabs.get(addedTabId, function(tab) { + if (addedTabId == removedTabId) { + chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tab.id, changeInfo: { status: tab.status, url: tab.url, title: tab.title, audible: tab.audible, mutedInfo: tab.mutedInfo } }); + } else { + if (b.tabs[removedTabId]) { + b.tabs[addedTabId] = b.tabs[removedTabId]; + } + ReplaceParents(tabId, tab.id); + chrome.runtime.sendMessage({ command: "tab_removed", windowId: tab.windowId, tabId: removedTabId }); + chrome.runtime.sendMessage({ command: "tab_attached", windowId: tab.windowId, tab: tab, tabId: addedTabId, ParentId: b.tabs[addedTabId].parent }); + // delete ttid[b.tabs[removedTabId].ttid]; + // delete b.tabs[removedTabId]; + } + setTimeout(function() { + QuantumAppendTabTTId(tab); + b.schedule_save++; + }, 100); + + }); + }); + chrome.tabs.onActivated.addListener(function(activeInfo) { + if (b.windows[activeInfo.windowId]) { + b.windows[activeInfo.windowId].activeTabId = activeInfo.tabId; + } + chrome.runtime.sendMessage({ command: "tab_activated", windowId: activeInfo.windowId, tabId: activeInfo.tabId }); + b.schedule_save++; + }); + chrome.windows.onCreated.addListener(function(window) { + let win = Promise.resolve(browser.sessions.getWindowValue(window.id, "TTdata")).then(function(WindowData) { + if (WindowData != undefined) { + b.windows[window.id] = Object.assign({}, WindowData); + } else { + QuantumAppendWinTTId(window.id); + } + b.schedule_save++; + }); + }); + chrome.windows.onRemoved.addListener(function(windowId) { + delete b.windows[windowId]; + b.schedule_save++; + }); +} \ No newline at end of file diff --git a/background_opera.js b/background_opera.js new file mode 100644 index 0000000..70278a5 --- /dev/null +++ b/background_opera.js @@ -0,0 +1,266 @@ +// OPERA +function OperaStart() { + chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) { + chrome.storage.local.get(null, function(storage) { + // LOAD PREFERENCES + Preferences_GetCurrentPreferences(storage); + + // load tabs and windows from storage + let refTabs = {}; + let refWins = {}; + let tabs_matched = 0; + let LoadedWindows = storage.windows ? storage.windows : []; + let LoadedTabs = storage.tabs ? storage.tabs : []; + let CurrentTabsCount = 0; + for (let win of w) { + CurrentTabsCount += win.tabs.length; + } + + if (opt.debug == true) { + if (storage.debug_log != undefined) b.debug = storage.debug_log; + // if (retry == 0) pushlog("TreeTabs background start"); + } + for (let win of w) { + if (win.tabs[0].url != "chrome://videopopout/") { // this is for opera for their extra video popup, which is weirdly queried as a "normal" window + let url1 = win.tabs[0].url; + let url2 = win.tabs[win.tabs.length - 1].url; + OperaAddWindowData(win.id); + if (opt.skip_load == false) { + for (let loadedWin of LoadedWindows) { + if ((loadedWin.url1 == url1 || loadedWin.url2 == url2) && refWins[loadedWin.id] == undefined) { + refWins[loadedWin.id] = win.id; + if (loadedWin.group_bar) b.windows[win.id].group_bar = loadedWin.group_bar; + if (loadedWin.search_filter) b.windows[win.id].search_filter = loadedWin.search_filter; + if (loadedWin.active_shelf) b.windows[win.id].active_shelf = loadedWin.active_shelf; + if (loadedWin.active_group) b.windows[win.id].active_group = loadedWin.active_group; + if (Object.keys(loadedWin.groups).length > 0) b.windows[win.id].groups = Object.assign({}, loadedWin.groups); + if (Object.keys(loadedWin.folders).length > 0) b.windows[win.id].folders = Object.assign({}, loadedWin.folders); + break; + } + } + } + } + } + + // add new hashes for current tabs + for (let win of w) { + for (let tab of win.tabs) { + OperaHashURL(tab); + if (tab.active) b.windows[win.id].activeTabId = tab.id; + } + } + + // compare saved tabs from storage to current session tabs, but can be skipped if set in options + if (opt.skip_load == false && LoadedTabs.length > 0) { + for (let win of w) { + for (tab of win.tabs) { + for (let loadedTab of LoadedTabs) { + if (loadedTab.hash == b.tabs[tab.id].hash && refTabs[loadedTab.id] == undefined) { + refTabs[loadedTab.id] = tab.id; + if (loadedTab.parent) b.tabs[tab.id].parent = loadedTab.parent; + if (loadedTab.index) b.tabs[tab.id].index = loadedTab.index; + if (loadedTab.expand) b.tabs[tab.id].expand = loadedTab.expand; + tabs_matched++; + break; + } + } + } + } + // replace parents tabIds for new ones, for that purpose refTabs was made before + for (let tabId in b.tabs) { + if (refTabs[b.tabs[tabId].parent] != undefined) b.tabs[tabId].parent = refTabs[b.tabs[tabId].parent]; + } + // replace active tab ids for each group using refTabs + for (let windowId in b.windows) { + for (let group in b.windows[windowId].groups) { + if (refTabs[b.windows[windowId].groups[group].active_tab]) b.windows[windowId].groups[group].active_tab = refTabs[b.windows[windowId].groups[group].active_tab]; + if (refTabs[b.windows[windowId].groups[group].prev_active_tab]) b.windows[windowId].groups[group].prev_active_tab = refTabs[b.windows[windowId].groups[group].prev_active_tab]; + } + } + } + + if (opt.skip_load == false && tabs_matched < LoadedTabs.length*0.5) { + b.safe_mode = true; + SafeModeCheck(); + if (opt.debug) pushlog("started in safe mode"); + if (storage.recovered_BAK) { + chrome.storage.local.set({ tabs: storage["tabs_BAK"+storage.recovered_BAK] }); + chrome.storage.local.set({ windows: storage["windows_BAK"+storage.recovered_BAK] }); + if (storage.recovered_BAK == 3) { + chrome.storage.local.remove("recovered_BAK"); + } else { + chrome.storage.local.set({ recovered_BAK: (storage.recovered_BAK+1) }); + } + } else { + chrome.storage.local.set({ recovered_BAK: 1 }); + } + } else { + chrome.storage.local.remove("recovered_BAK"); + } + + if (opt.debug) pushlog("OperaStart, Current windows count is: " + w.length + "Saved windows count is: " + LoadedWindows.length + "Current tabs count is: " + CurrentTabsCount + "Loaded tabs count is: " + LoadedTabs.length + "Matching tabs: " + tabs_matched); + + b.bg_running = true; + OperaAutoSaveData(0, 1000); + OperaAutoSaveData(1, 300000); + OperaAutoSaveData(2, 600000); + OperaAutoSaveData(3, 1800000); + OperaStartListeners(); + delete DefaultToolbar; + delete DefaultTheme; + delete DefaultPreferences; + delete DefaultMenu; + chrome.runtime.sendMessage({ command: "bg_started" }); + }); + }); +} + +async function OperaAutoSaveData(BAK, LoopTimer) { + setInterval(function() { + if (b.schedule_save > 1 || BAK > 0) { + b.schedule_save = 1; + } + if (b.bg_running && b.schedule_save > 0 && Object.keys(b.tabs).length > 1) { + chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) { + let Windows = []; + let Tabs = []; + + for (let win of w) { + if (b.windows[win.id] != undefined) { + if (b.windows[win.id].group_bar != undefined && b.windows[win.id].search_filter != undefined && b.windows[win.id].active_shelf != undefined && b.windows[win.id].active_group != undefined && b.windows[win.id].groups != undefined && b.windows[win.id].folders != undefined) { + Windows.push({ url1: win.tabs[0].url, url2: win.tabs[win.tabs.length - 1].url, group_bar: b.windows[win.id].group_bar, search_filter: b.windows[win.id].search_filter, active_shelf: b.windows[win.id].active_shelf, active_group: b.windows[win.id].active_group, groups: b.windows[win.id].groups, folders: b.windows[win.id].folders }); + } + } else { + OperaAddWindowData(win.id); + } + + for (let tab of win.tabs) { + if (b.tabs[tab.id] != undefined) { + if (b.tabs[tab.id].hash != undefined && b.tabs[tab.id].parent != undefined && b.tabs[tab.id].index != undefined && b.tabs[tab.id].expand != undefined) { + Tabs.push({ id: tab.id, hash: b.tabs[tab.id].hash, parent: b.tabs[tab.id].parent, index: b.tabs[tab.id].index, expand: b.tabs[tab.id].expand }); + } + } else { + OperaHashURL(tab); + } + } + } + chrome.storage.local.set((BAK == 0 ? { windows: Windows, tabs: Tabs } : (BAK == 1 ? { windows_BAK1: Windows, tabs_BAK1: Tabs } : (BAK == 2 ? { windows_BAK2: Windows, tabs_BAK2: Tabs } : { windows_BAK3: Windows, tabs_BAK3: Tabs })))); + b.schedule_save--; + }); + } + if (opt.debug == true) chrome.storage.local.set({ debug_log: b.debug }); + }, LoopTimer); +} + +function OperaAddWindowData(winId) { + b.windows[winId] = { activeTabId: 0, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: { tab_list: { id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: "" } }, folders: {} }; +} + +function OperaHashURL(tab) { + if (b.tabs[tab.id] == undefined) b.tabs[tab.id] = { hash: 0, parent: tab.pinned ? "pin_list" : (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), index: (Object.keys(b.tabs).length + 1), expand: "n" }; + let hash = 0; + for (let charIndex = 0; charIndex < tab.url.length; charIndex++) { + hash += tab.url.charCodeAt(charIndex); + } + b.tabs[tab.id].hash = hash; +} + +function OperaStartListeners() { // start all listeners + chrome.tabs.onCreated.addListener(function(tab) { + if (b.windows[tab.windowId] == undefined) { + OperaAddWindowData(tab.windowId); + } + let prevActiveTabId = b.windows[tab.windowId].activeTabId; + OperaHashURL(tab); + OnMessageTabCreated(tab, prevActiveTabId); + }); + chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) { + let SiblingTabs = GetChildren(b.tabs, b.tabs[tabId].parent); + let SiblingFolders = GetChildren(b.windows[removeInfo.windowId].folders, b.tabs[tabId].parent); + UnshiftChildrenIndexes(SiblingTabs, b.tabs[tabId].index, SiblingFolders, removeInfo.windowId); + if (b.EmptyTabs.indexOf(tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); + } + setTimeout(function() { chrome.runtime.sendMessage({ command: "tab_removed", windowId: removeInfo.windowId, tabId: tabId }); }, 5); + delete b.tabs[tabId]; + b.schedule_save++; + }); + chrome.tabs.onAttached.addListener(function(tabId, attachInfo) { + chrome.tabs.get(tabId, function(tab) { + chrome.runtime.sendMessage({ command: "tab_attached", windowId: attachInfo.newWindowId, tab: tab, tabId: tabId, ParentId: b.tabs[tabId].parent }); + }); + b.schedule_save++; + }); + chrome.tabs.onDetached.addListener(function(tabId, detachInfo) { + chrome.runtime.sendMessage({ command: "tab_detached", windowId: detachInfo.oldWindowId, tabId: tabId }); + b.schedule_save++; + }); + chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { + if (b.tabs[tabId] == undefined || changeInfo.url != undefined) { + OperaHashURL(tab); + } + if (changeInfo.pinned != undefined) { + if (changeInfo.pinned == true) { + b.tabs[tabId].parent = "pin_list"; + } + if (changeInfo.pinned == false) { + b.tabs[tabId].parent = "tab_list"; + } + b.schedule_save++; + } + if (changeInfo.url != undefined) { // if set to append when url changes and matches pre-set group + if (tab.pinned == false) { + if (opt.move_tabs_on_url_change == "always" || ((opt.move_tabs_on_url_change == "from_empty" || opt.move_tabs_on_url_change == "from_empty_b") && b.EmptyTabs.indexOf(tabId) != -1)) { + AppendTabToGroupOnRegexMatch(tabId, tab.windowId, changeInfo.url); + } + } + if (changeInfo.url != b.newTabUrl && b.EmptyTabs.indexOf(tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); + } + } + if (changeInfo.title != undefined && !tab.active) { + chrome.runtime.sendMessage({ command: "tab_attention", windowId: tab.windowId, tabId: tabId }); + } + chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tabId, changeInfo: changeInfo }); + }); + chrome.tabs.onMoved.addListener(function(tabId, moveInfo) { + b.schedule_save++; + }); + chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) { + chrome.tabs.get(addedTabId, function(tab) { + if (addedTabId == removedTabId) { + chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tab.id, changeInfo: { status: tab.status, url: tab.url, title: tab.title, audible: tab.audible, mutedInfo: tab.mutedInfo } }); + } else { + ReplaceParents(tabId, tab.id); + if (b.tabs[removedTabId]) { + b.tabs[addedTabId] = b.tabs[removedTabId]; + } else { + OperaHashURL(tab); + } + chrome.runtime.sendMessage({ command: "tab_removed", windowId: tab.windowId, tabId: removedTabId }); + chrome.runtime.sendMessage({ command: "tab_attached", windowId: tab.windowId, tab: tab, tabId: addedTabId }); + delete b.tabs[removedTabId]; + } + b.schedule_save++; + }); + }); + chrome.tabs.onActivated.addListener(function(activeInfo) { + if (b.windows[activeInfo.windowId]) { + b.windows[activeInfo.windowId].activeTabId = activeInfo.tabId; + } + chrome.runtime.sendMessage({ command: "tab_activated", windowId: activeInfo.windowId, tabId: activeInfo.tabId }); + b.schedule_save++; + }); + chrome.windows.onCreated.addListener(function(window) { + OperaAddWindowData(window.id); + // b.windows[window.id] = {group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: {tab_list: {id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: ""}}, folders: {}}; + b.schedule_save++; + }); + chrome.windows.onRemoved.addListener(function(windowId) { + delete b.windows[windowId]; + b.schedule_save++; + }); + chrome.runtime.onSuspend.addListener(function() { + b.bg_running = false; + }); +} \ No newline at end of file diff --git a/background_vivaldi.js b/background_vivaldi.js new file mode 100644 index 0000000..3346ec6 --- /dev/null +++ b/background_vivaldi.js @@ -0,0 +1,377 @@ +// VIVALDI +function VivaldiLegacyAddWindowData(win) { + b.windows[win.id] = { activeTabId: 0, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: { tab_list: { id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: "" } }, folders: {} }; +} +function VivaldiLegacyHashURL(tab) { + if (b.tabs[tab.id] == undefined) { b.tabs[tab.id] = { hash: 0, parent: tab.pinned ? "pin_list" : (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), index: (Object.keys(b.tabs).length + 1), expand: "n" }; } + let hash = 0; + for (let charIndex = 0; charIndex < tab.url.length; charIndex++) { + hash += tab.url.charCodeAt(charIndex); + } + b.tabs[tab.id].hash = hash; +} + +function VivaldiStart() { + chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) { + chrome.storage.local.get(null, function(storage) { + // LOAD PREFERENCES + Preferences_GetCurrentPreferences(storage); + + // LEGACY START TO CONVERT DATA + if ((storage.data_version == undefined && storage.tabs != undefined) || storage.data_version < 2) { + b.safe_mode = true; + let refTabs = {}; + let refWins = {}; + let tabs_matched = 0; + let LoadedWindows = storage.windows ? storage.windows : []; + let LoadedTabs = storage.tabs ? storage.tabs : []; + let CurrentTabsCount = 0; + for (let win of w) { + CurrentTabsCount += win.tabs.length; + } + for (let win of w) { + let url1 = win.tabs[0].url; + let url2 = win.tabs[win.tabs.length - 1].url; + VivaldiLegacyAddWindowData(win); + if (opt.skip_load == false) { + for (let loadedWin of LoadedWindows) { + if ((loadedWin.url1 == url1 || loadedWin.url2 == url2) && refWins[loadedWin.id] == undefined) { + refWins[loadedWin.id] = win.id; + if (loadedWin.group_bar) b.windows[win.id].group_bar = loadedWin.group_bar; + if (loadedWin.search_filter) b.windows[win.id].search_filter = loadedWin.search_filter; + if (loadedWin.active_shelf) b.windows[win.id].active_shelf = loadedWin.active_shelf; + if (loadedWin.active_group) b.windows[win.id].active_group = loadedWin.active_group; + if (Object.keys(loadedWin.groups).length > 0) b.windows[win.id].groups = Object.assign({}, loadedWin.groups); + if (Object.keys(loadedWin.folders).length > 0) b.windows[win.id].folders = Object.assign({}, loadedWin.folders); + break; + } + } + } + } + for (let win of w) { + for (let tab of win.tabs) { + VivaldiLegacyHashURL(tab); + if (tab.active) b.windows[win.id].activeTabId = tab.id; + } + } + if (opt.skip_load == false && LoadedTabs.length > 0) { + for (let win of w) { + for (tab of win.tabs) { + for (let loadedTab of LoadedTabs) { + if (loadedTab.hash == b.tabs[tab.id].hash && refTabs[loadedTab.id] == undefined) { + refTabs[loadedTab.id] = tab.id; + if (loadedTab.parent) b.tabs[tab.id].parent = loadedTab.parent; + if (loadedTab.index) b.tabs[tab.id].index = loadedTab.index; + if (loadedTab.expand) b.tabs[tab.id].expand = loadedTab.expand; + tabs_matched++; + break; + } + } + } + } + for (let tabId in b.tabs) { + if (refTabs[b.tabs[tabId].parent] != undefined) b.tabs[tabId].parent = refTabs[b.tabs[tabId].parent]; + } + for (let windowId in b.windows) { + for (let group in b.windows[windowId].groups) { + if (refTabs[b.windows[windowId].groups[group].active_tab]) b.windows[windowId].groups[group].active_tab = refTabs[b.windows[windowId].groups[group].active_tab]; + if (refTabs[b.windows[windowId].groups[group].prev_active_tab]) b.windows[windowId].groups[group].prev_active_tab = refTabs[b.windows[windowId].groups[group].prev_active_tab]; + } + } + } + for (let win of w) { + if (b.windows[win.id]) b.windows[win.id].ttid = JSON.parse(win.extData).ext_id; + for (let tab of win.tabs) { + if (b.tabs[tab.id]) b.tabs[tab.id].ttid = JSON.parse(tab.extData).ext_id; + } + } + let Windows = {}; + let Tabs = {}; + for (let win of w) { + if (b.windows[win.id] != undefined && b.windows[win.id].ttid != undefined && b.windows[win.id].group_bar != undefined && b.windows[win.id].search_filter != undefined && b.windows[win.id].active_shelf != undefined && b.windows[win.id].active_group != undefined && b.windows[win.id].groups != undefined && b.windows[win.id].folders != undefined) { + Windows[b.windows[win.id].ttid] = { ttid: b.windows[win.id].ttid, group_bar: b.windows[win.id].group_bar, search_filter: b.windows[win.id].search_filter, active_shelf: b.windows[win.id].active_shelf, active_group: b.windows[win.id].active_group, groups: b.windows[win.id].groups, folders: b.windows[win.id].folders }; + for (let groupId in b.windows[win.id].groups) { + if (b.tabs[b.windows[win.id].groups[groupId].active_tab]) Windows[b.windows[win.id].ttid].groups[groupId].active_tab = b.tabs[b.windows[win.id].groups[groupId].active_tab].ttid; + if (b.tabs[b.windows[win.id].groups[groupId].prev_active_tab]) Windows[b.windows[win.id].ttid].groups[groupId].prev_active_tab = b.tabs[b.windows[win.id].groups[groupId].prev_active_tab].ttid; + } + } + for (let tab of win.tabs) { + if (b.tabs[tab.id] != undefined && b.tabs[tab.id].ttid != undefined && b.tabs[tab.id].parent != undefined && b.tabs[tab.id].index != undefined && b.tabs[tab.id].expand != undefined) { + Tabs[b.tabs[tab.id].ttid] = { ttid: b.tabs[tab.id].ttid, parent: (b.tabs[b.tabs[tab.id].parent] ? b.tabs[b.tabs[tab.id].parent].ttid : b.tabs[tab.id].parent), index: b.tabs[tab.id].index, expand: b.tabs[tab.id].expand }; + } + } + } + chrome.storage.local.set({ data_version: 2, windows: Windows, tabs: Tabs }); + chrome.storage.local.remove("t_count"); + chrome.storage.local.remove("w_count"); + chrome.runtime.sendMessage({command: "reload_sidebar"}); + window.location.reload(); + } + + if (storage.data_version == undefined || storage.data_version == 2) { + // load tabs and windows from storage + let refTabs = {}; + let tabs_matched = 0; + let LoadedWindows = storage.windows ? storage.windows : {}; + let LoadedTabs = storage.tabs ? storage.tabs : {}; + + // load debug log + if (opt.debug == true) { + if (storage.debug_log != undefined) b.debug = storage.debug_log; + } + + // add data + for (let win of w) { + VivaldiAddWindowData(win); + for (let tab of win.tabs) { + VivaldiAddTabData(tab); + } + } + + // if not skipping loading data + if (opt.skip_load == false) { + + for (let win of w) { + if (LoadedWindows[b.windows[win.id].ttid] != undefined) { + b.windows[win.id] = Object.assign({}, LoadedWindows[b.windows[win.id].ttid]); + } + for (let tab of win.tabs) { + if (LoadedTabs[b.tabs[tab.id].ttid] != undefined) { + b.tabs[tab.id] = Object.assign({}, LoadedTabs[b.tabs[tab.id].ttid]); + refTabs[b.tabs[tab.id].ttid] = tab.id; + tabs_matched++; + } else { + if (LoadedTabs["_"+tab.index+"_"+b.windows[win.id].ttid] != undefined) { + b.tabs[tab.id] = Object.assign({}, LoadedTabs["_"+tab.index+"_"+b.windows[win.id].ttid]); + refTabs["_"+tab.index+"_"+b.windows[win.id].ttid] = tab.id; + tabs_matched++; + } + } + if (tab.active) b.windows[tab.windowId].activeTabId = tab.id; + } + } + + // replace ttids to browser tabIds for parents + for (let tabId in b.tabs) { + if (refTabs[b.tabs[tabId].parent] != undefined) { + b.tabs[tabId].parent = refTabs[b.tabs[tabId].parent]; + } + } + + // replace ttids to browser tabIds, but of active tabs in groups + for (let winId in b.windows) { + for (let group in b.windows[winId].groups) { + if (refTabs[b.windows[winId].groups[group].active_tab] != undefined) { + b.windows[winId].groups[group].active_tab = refTabs[b.windows[winId].groups[group].active_tab]; + } + if (refTabs[b.windows[winId].groups[group].prev_active_tab] != undefined) { + b.windows[winId].groups[group].prev_active_tab = refTabs[b.windows[winId].groups[group].prev_active_tab]; + } + } + } + + if (tabs_matched < LoadedTabs.length*0.5) { + b.safe_mode = true; + SafeModeCheck(); + if (opt.debug) pushlog("started in safe mode"); + if (storage.recovered_BAK) { + chrome.storage.local.set({ tabs: storage["tabs_BAK"+storage.recovered_BAK] }); + chrome.storage.local.set({ windows: storage["windows_BAK"+storage.recovered_BAK] }); + if (storage.recovered_BAK == 3) { + chrome.storage.local.remove("recovered_BAK"); + } else { + chrome.storage.local.set({ recovered_BAK: (storage.recovered_BAK+1) }); + } + } else { + chrome.storage.local.set({ recovered_BAK: 1 }); + } + } else { + chrome.storage.local.remove("recovered_BAK"); + } + + if (opt.debug) pushlog("VivaldiStart, Current windows count is: " + w.length + "Saved windows count is: " + LoadedWindows.length + "Loaded tabs count is: " + LoadedTabs.length + "Matching tabs: " + tabs_matched); + + } + } + + b.bg_running = true; + VivaldiAutoSaveData(0, 1000); + VivaldiAutoSaveData(1, 300000); + VivaldiAutoSaveData(2, 600000); + VivaldiAutoSaveData(3, 1800000); + VivaldiStartListeners(); + delete DefaultToolbar; + delete DefaultTheme; + delete DefaultPreferences; + delete DefaultMenu; + chrome.runtime.sendMessage({ command: "bg_started" }); + }); + }); +} + +async function VivaldiAutoSaveData(BAK, LoopTimer) { + setInterval(function() { + if (b.schedule_save > 1 || BAK > 0) { + b.schedule_save = 1; + } + if (b.bg_running && b.schedule_save > 0 && Object.keys(b.tabs).length > 1) { + chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) { + let Windows = {}; + let Tabs = {}; + for (let win of w) { + if (b.windows[win.id] != undefined) { + if (b.windows[win.id].ttid != undefined && b.windows[win.id].group_bar != undefined && b.windows[win.id].search_filter != undefined && b.windows[win.id].active_shelf != undefined && b.windows[win.id].active_group != undefined && b.windows[win.id].groups != undefined && b.windows[win.id].folders != undefined) { + Windows[b.windows[win.id].ttid] = { ttid: b.windows[win.id].ttid, group_bar: b.windows[win.id].group_bar, search_filter: b.windows[win.id].search_filter, active_shelf: b.windows[win.id].active_shelf, active_group: b.windows[win.id].active_group, groups: b.windows[win.id].groups, folders: b.windows[win.id].folders }; + for (let groupId in b.windows[win.id].groups) { + if (b.tabs[b.windows[win.id].groups[groupId].active_tab]) Windows[b.windows[win.id].ttid].groups[groupId].active_tab = b.tabs[b.windows[win.id].groups[groupId].active_tab].ttid; + if (b.tabs[b.windows[win.id].groups[groupId].prev_active_tab]) Windows[b.windows[win.id].ttid].groups[groupId].prev_active_tab = b.tabs[b.windows[win.id].groups[groupId].prev_active_tab].ttid; + } + } + } else { + VivaldiAddWindowData(win); + b.schedule_save++; + } + for (let tab of win.tabs) { + if (b.tabs[tab.id] != undefined) { + if (b.tabs[tab.id].ttid != undefined && b.tabs[tab.id].parent != undefined && b.tabs[tab.id].index != undefined && b.tabs[tab.id].expand != undefined) { + Tabs[b.tabs[tab.id].ttid] = { ttid: b.tabs[tab.id].ttid, parent: (b.tabs[b.tabs[tab.id].parent] ? b.tabs[b.tabs[tab.id].parent].ttid : b.tabs[tab.id].parent), index: b.tabs[tab.id].index, expand: b.tabs[tab.id].expand }; + } + } else { + VivaldiAddTabData(tab); + } + } + } + chrome.storage.local.set((BAK == 0 ? { windows: Windows, tabs: Tabs } : (BAK == 1 ? { windows_BAK1: Windows, tabs_BAK1: Tabs } : (BAK == 2 ? { windows_BAK2: Windows, tabs_BAK2: Tabs } : { windows_BAK3: Windows, tabs_BAK3: Tabs })))); + b.schedule_save--; + }); + } + if (opt.debug == true) chrome.storage.local.set({ debug_log: b.debug }); + }, LoopTimer); +} + + +function VivaldiAddWindowData(win) { + let extData = JSON.parse(win.extData); + if (b.windows[win.id] == undefined) b.windows[win.id] = { ttid: (win.extData.match("ext_id") != null ? JSON.parse(win.extData).ext_id : win.index), activeTabId: 0, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: { tab_list: { id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: "" } }, folders: {} }; + return b.windows[win.id].ttid; +} + +function VivaldiAddTabData(tab) { + if (b.tabs[tab.id] == undefined) { + b.tabs[tab.id] = { ttid: "_", parent: tab.pinned ? "pin_list" : (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), index: (Object.keys(b.tabs).length + 1), expand: "n" }; + } + if (tab.extData.match("ext_id") != null) { + b.tabs[tab.id].ttid = JSON.parse(tab.extData).ext_id; + b.schedule_save++; + } else { + b.tabs[tab.id].ttid = "_"+tab.index+"_"+b.windows[tab.windowId].ttid; + b.schedule_save++; + } + return b.tabs[tab.id].ttid; +} + +function VivaldiStartListeners() { // start all listeners + chrome.tabs.onCreated.addListener(function(tab) { + // VivaldiAddWindowData(tab.windowId); + // let extData = tab.extData.match("ext_id") != null ? JSON.parse(tab.extData).ext_id : false; + // if (extData) { + // for (let tabId in b.tabs) { + // if (extData === b.tabs[tabId].ttid) { + // b.tabs[tab.id] = b.tabs[tabId]; + // delete b.tabs[tabId]; + // break; + // } + // } + // } + let prevActiveTabId = b.windows[tab.windowId].activeTabId; + VivaldiAddTabData(tab); + OnMessageTabCreated(tab, prevActiveTabId); + }); + chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) { + let SiblingTabs = b.tabs[tabId] ? GetChildren(b.tabs, b.tabs[tabId].parent) : []; + let SiblingFolders = b.tabs[tabId] ? GetChildren(b.windows[removeInfo.windowId].folders, b.tabs[tabId].parent) : []; + UnshiftChildrenIndexes(SiblingTabs, b.tabs[tabId].index, SiblingFolders, removeInfo.windowId); + if (b.EmptyTabs.indexOf(tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); + } + setTimeout(function() { chrome.runtime.sendMessage({ command: "tab_removed", windowId: removeInfo.windowId, tabId: tabId }); }, 5); + delete b.tabs[tabId]; + b.schedule_save++; + }); + chrome.tabs.onAttached.addListener(function(tabId, attachInfo) { + chrome.tabs.get(tabId, function(tab) { + chrome.runtime.sendMessage({ command: "tab_attached", windowId: attachInfo.newWindowId, tab: tab, tabId: tabId, ParentId: b.tabs[tabId].parent }); + }); + b.schedule_save++; + }); + chrome.tabs.onDetached.addListener(function(tabId, detachInfo) { + chrome.runtime.sendMessage({ command: "tab_detached", windowId: detachInfo.oldWindowId, tabId: tabId }); + b.schedule_save++; + }); + chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { + if (changeInfo.pinned != undefined) { + if (changeInfo.pinned == true) { + b.tabs[tabId].parent = "pin_list"; + } + if (changeInfo.pinned == false) { + b.tabs[tabId].parent = "tab_list"; + } + b.schedule_save++; + } + if (changeInfo.url != undefined) { // if set to append when url changes and matches pre-set group + if (tab.pinned == false) { + if (opt.move_tabs_on_url_change == "always" || ((opt.move_tabs_on_url_change == "from_empty" || opt.move_tabs_on_url_change == "from_empty_b") && b.EmptyTabs.indexOf(tabId) != -1)) { + AppendTabToGroupOnRegexMatch(tabId, tab.windowId, changeInfo.url); + } + } + if (changeInfo.url != b.newTabUrl && b.EmptyTabs.indexOf(tabId) != -1) { + b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); + } + } + if (changeInfo.title != undefined && !tab.active) { + chrome.runtime.sendMessage({ command: "tab_attention", windowId: tab.windowId, tabId: tabId }); + } + chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tabId, changeInfo: changeInfo }); + }); + chrome.tabs.onMoved.addListener(function(tabId, moveInfo) { + b.schedule_save++; + }); + chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) { + chrome.tabs.get(addedTabId, function(tab) { + if (addedTabId == removedTabId) { + chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tab.id, changeInfo: { status: tab.status, url: tab.url, title: tab.title, audible: tab.audible, mutedInfo: tab.mutedInfo } }); + } else { + ReplaceParents(tabId, tab.id); + if (b.tabs[removedTabId]) { + b.tabs[addedTabId] = b.tabs[removedTabId]; + } else { + VivaldiAddTabData(tab); + } + chrome.runtime.sendMessage({ command: "tab_removed", windowId: tab.windowId, tabId: removedTabId }); + chrome.runtime.sendMessage({ command: "tab_attached", windowId: tab.windowId, tab: tab, tabId: addedTabId }); + delete b.tabs[removedTabId]; + } + b.schedule_save++; + }); + }); + chrome.tabs.onActivated.addListener(function(activeInfo) { + if (b.windows[activeInfo.windowId]) { + b.windows[activeInfo.windowId].activeTabId = activeInfo.tabId; + } + chrome.runtime.sendMessage({ command: "tab_activated", windowId: activeInfo.windowId, tabId: activeInfo.tabId }); + setTimeout(function() {chrome.tabs.query({windowId: activeInfo.windowId}, function(tabs) {for (let tab of tabs) {if ((b.tabs[tab.id].ttid).startsWith("_") || tab.id === activeInfo.tabId) VivaldiAddTabData(tab);}});}, 500); + b.schedule_save++; + }); + chrome.windows.onCreated.addListener(function(window) { + VivaldiAddWindowData(window); + b.schedule_save++; + }); + chrome.windows.onRemoved.addListener(function(windowId) { + delete b.windows[windowId]; + b.schedule_save++; + }); + chrome.runtime.onSuspend.addListener(function() { + b.bg_running = false; + }); +} + diff --git a/global.js b/global.js new file mode 100644 index 0000000..52b3b7f --- /dev/null +++ b/global.js @@ -0,0 +1,92 @@ +// GLOBAL VARIABLES +let browserId = navigator.userAgent.match("Opera|OPR") !== null ? "O" : (navigator.userAgent.match("Vivaldi") !== null ? "V" : (navigator.userAgent.match("Firefox") !== null ? "F" : "C")) +let opt = {}; + +let labels = { + clear_filter: chrome.i18n.getMessage("caption_clear_filter"), + loading: chrome.i18n.getMessage("caption_loading"), + searchbox: chrome.i18n.getMessage("caption_searchbox"), + ungrouped_group: chrome.i18n.getMessage("caption_ungrouped_group"), + noname_group: chrome.i18n.getMessage("caption_noname_group") +}; + +// DEFAULTS NEEDED FOR START AND FOR OPTIONS PAGE +const DefaultToolbar = { + toolbar_main: ["button_new", "button_pin", "button_undo", "button_search", "button_tools", "button_groups", "button_backup", "button_folders"], + toolbar_search: ["button_filter_type", "filter_search_go_prev", "filter_search_go_next"], + toolbar_shelf_tools: (browserId == "F" ? ["button_manager_window", "button_options", "button_unload", "button_detach", "button_reboot"] : ["button_manager_window", "button_options", "button_bookmarks", "button_downloads", "button_history", "button_settings", "button_extensions", "button_unload", "button_detach", "button_reboot"]), + toolbar_shelf_groups: ["button_groups_toolbar_hide", "button_new_group", "button_remove_group", "button_edit_group", "button_import_group", "button_export_group"], + toolbar_shelf_backup: (browserId == "F" ? ["button_import_bak", "button_import_merge_bak", "button_export_bak"] : ["button_import_bak", "button_import_merge_bak", "button_export_bak", "button_load_bak1", "button_load_bak2", "button_load_bak3"]), + toolbar_shelf_folders: ["button_new_folder", "button_remove_folder", "button_edit_folder"] +}; + +const DefaultMenu = { + all_entries: [["s_pin","menu_new_pin"],["s_newt","menu_new_tab"],["s_unpt","menu_unpin_tab"],["s_pit","menu_pin_tab"],["s_newf","menu_new_folder"],["s_renf","menu_rename_folder"],["s_delf","menu_delete_folder"],["s_dupt","menu_duplicate_tab"],["s_undclo","menu_undo_close_tab"],["s_bkt","menu_bookmark_tree"],["s_expat","menu_expand_tree"],["s_collt","menu_collapse_tree"],["s_expaa","menu_expand_all"],["s_colla","menu_collapse_all"],["s_deta","menu_detach_tab"],["s_rel","menu_reload_tab"],["s_unlo","menu_unload"],["s_unlt","menu_unload_tree"],["s_clo","menu_close"],["s_clot","menu_close_tree"],["s_cloo","menu_close_other"],["s_mut","menu_mute_tab"],["s_mutt","menu_mute_tree"],["s_unmu","menu_unmute_tab"],["s_unmut","menu_unmute_tree"],["s_mutot","menu_mute_other"],["s_unmutot","menu_unmute_other"],["s_newg","menu_new_group"],["s_reng","menu_rename_group"],["s_delg","menu_delete_group"],["s_delgclo","menu_delete_group_tabs_close"],["s_gunlo","menu_groups_unload"],["s_ghiber","menu_groups_hibernate"],["s_gtbcl","menu_group_tabs_close"],["s_gbk","menu_bookmark_group"],["s_mngr_wnd","menu_manager_window"],["s_tts","menu_treetabs_settings"]], + pin: [[ false,true ],[ false,false ],[ true,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ true,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ true,false ],[ false,false ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,true ],[ true,true ]], + tab: [[ false,false ],[ false,true ],[ true,false ],[ false,true ],[ true,true ],[ false, false ],[ false,false ],[ true,true ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ true,true ],[ false,false ],[ false,true ],[ false,false ],[ false, false ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,true ],[ true,true ]], + folder: [[ false,false ],[ false,true ],[ false,false ],[ false,false ],[ false,true ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ true,true ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ true,true ],[ false,false ],[ true,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,true ],[ false,false ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,true ],[ true,true ]], + global: [[ false,true ],[ false,true ],[ false,false ],[ false,false ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ true,true ],[ false,true ],[ true,true ]], + group: [[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,true ],[ false,true ],[ false,true ],[ false,true ],[ true,true ],[ false,true ],[ true,true ],[ true,true ],[ false,true ],[ true,true ]] +// name: [[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ],[ false,false ]] +}; + +const DefaultTheme = { + ToolbarShow: true, + ColorsSet: {}, + TabsSizeSetNumber: 2, + TabsMargins: "2", + theme_name: "untitled", + theme_version: 4 +}; + +const DefaultPreferences = { + hide_other_groups_tabs_firefox: false, + show_toolbar: true, + skip_load: false, + pin_attention_blinking: true, + audio_blinking: true, + pin_list_multi_row: true, + append_pinned_tab: "last", + always_show_close: false, + never_show_close: false, + allow_pin_close: false, + append_child_tab: "bottom", + append_child_tab_after_limit: "after", + append_orphan_tab: "bottom", + after_closing_active_tab: "below_seek_in_parent", + append_tab_from_toolbar: "group_root", + collapse_other_trees: false, + open_tree_on_hover: true, + promote_children: true, + promote_children_in_first_child: true, + max_tree_depth: -1, + max_tree_drag_drop: true, + switch_with_scroll: false, + syncro_tabbar_tabs_order: true, + show_counter_groups: true, + show_counter_tabs: true, + show_counter_tabs_hints: true, + groups_toolbar_default: true, + syncro_tabbar_groups_tabs_order: true, + midclick_tab: "close_tab", + dbclick_tab: "new_tab", + dbclick_group: "new_tab", + // dbclick_group_bar: "new_group", + midclick_group: "nothing", + midclick_folder: "nothing", + dbclick_folder: "rename_folder", + debug: false, + orphaned_tabs_to_ungrouped: false, + tab_group_regexes: [], + move_tabs_on_url_change: "never", + autosave_max_to_keep: 5, + autosave_interval: 15 +}; + +// GLOBAL FUNCTIONS +function GenerateRandomID() { + let letters = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "K", "L", "M", "N", "O", "P", "R", "S", "T", "Q", "U", "V", "W", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "r", "s", "t", "q", "u", "v", "w", "y", "z"]; + let random = ""; + for (let letter = 0; letter < 14; letter++) { random += letters[Math.floor(Math.random() * letters.length)]; } + return random; +} \ No newline at end of file diff --git a/listeners_bg.js b/listeners_bg.js deleted file mode 100644 index 76ba87b..0000000 --- a/listeners_bg.js +++ /dev/null @@ -1,716 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -function StartBackgroundListeners() { - chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { - if (message.command == "reload") { - window.location.reload(); - return; - } - if (message.command == "reload_options") { - opt = Object.assign({}, message.opt); - return; - } - if (message.command == "get_windows") { - sendResponse(b.windows); - return; - } - if (message.command == "get_folders") { - if (b.windows[message.windowId]) { - sendResponse(b.windows[message.windowId].folders); - } - return; - } - if (message.command == "save_folders") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].folders = Object.assign({}, message.folders); - b.schedule_save++; - } - return; - } - if (message.command == "get_groups") { - if (b.windows[message.windowId]) { - sendResponse(b.windows[message.windowId].groups); - } - return; - } - if (message.command == "save_groups" && browserId == "F") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].groups = Object.assign({}, message.groups); - for (let group in b.windows[message.windowId].groups) { - if (b.tabs[b.windows[message.windowId].groups[group].active_tab]) { - b.windows[message.windowId].groups[group].active_tab_ttid = b.tabs[b.windows[message.windowId].groups[group].active_tab].ttid; - } - if (b.tabs[b.windows[message.windowId].groups[group].prev_active_tab]) { - b.windows[message.windowId].groups[group].prev_active_tab_ttid = b.tabs[b.windows[message.windowId].groups[group].prev_active_tab].ttid; - } - } - b.schedule_save++; - } - return; - } - if (message.command == "save_groups" && browserId != "F") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].groups = Object.assign({}, message.groups); - b.schedule_save++; - } - return; - } - if (message.command == "set_active_group") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].active_group = message.active_group; - b.schedule_save++; - } - return; - } - if (message.command == "get_active_group") { - if (b.windows[message.windowId]) { - sendResponse(b.windows[message.windowId].active_group); - } - return; - } - if (message.command == "set_search_filter") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].search_filter = message.search_filter; - b.schedule_save++; - } - return; - } - if (message.command == "get_search_filter") { - if (b.windows[message.windowId]) { - sendResponse(b.windows[message.windowId].search_filter); - } - return; - } - if (message.command == "set_active_shelf") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].active_shelf = message.active_shelf; - b.schedule_save++; - } - return; - } - if (message.command == "get_active_shelf") { - if (b.windows[message.windowId]) { - sendResponse(b.windows[message.windowId].active_shelf); - } - return; - } - if (message.command == "set_group_bar") { - if (b.windows[message.windowId]) { - b.windows[message.windowId].group_bar = message.group_bar; - b.schedule_save++; - } - return; - } - if (message.command == "get_group_bar") { - if (b.windows[message.windowId]) { - sendResponse(b.windows[message.windowId].group_bar); - } - return; - } - if (message.command == "get_browser_tabs") { - sendResponse(b.tabs); - return; - } - if (message.command == "is_bg_ready") { - sendResponse(b.running); - return; - } - if (message.command == "update_tab" && browserId == "F") { - if (b.tabs[message.tabId]) { - if (message.tab.index) { - b.tabs[message.tabId].index = message.tab.index; - } - if (message.tab.expand) { - b.tabs[message.tabId].expand = message.tab.expand; - } - if (message.tab.parent) { - b.tabs[message.tabId].parent = message.tab.parent; - if (b.tabs[message.tab.parent]) { - b.tabs[message.tabId].parent_ttid = b.tabs[message.tab.parent].ttid; - } else { - b.tabs[message.tabId].parent_ttid = ""; - } - } - b.schedule_save++; - } else { - b.tabs[tabId] = {ttid: "", parent: message.tab.parent, parent_ttid: "", index: message.tab.index, expand: message.tab.expand}; - b.schedule_save++; - } - return; - } - if (message.command == "update_tab" && browserId != "F") { - if (b.tabs[message.tabId]) { - if (message.tab.index) { - b.tabs[message.tabId].index = message.tab.index; - } - if (message.tab.expand) { - b.tabs[message.tabId].expand = message.tab.expand; - } - if (message.tab.parent) { - b.tabs[message.tabId].parent = message.tab.parent; - } - b.schedule_save++; - } else { - b.tabs[tabId] = {hash: 0, parent: message.tab.parent, index: message.tab.index, expand: message.tab.expand}; - b.schedule_save++; - } - return; - } - if (message.command == "update_all_tabs" && browserId == "F") { - for (let i = 0; i < message.pins.length; i++) { - if (b.tabs[message.pins[i].id]) { - b.tabs[message.pins[i].id].parent = "pin_list"; - b.tabs[message.pins[i].id].parent_ttid = ""; - b.tabs[message.pins[i].id].expand = ""; - b.tabs[message.pins[i].id].index = message.pins[i].index; - } - } - for (let j = 0; j < message.tabs.length; j++) { - if (b.tabs[message.tabs[j].id]) { - b.tabs[message.tabs[j].id].parent = message.tabs[j].parent; - b.tabs[message.tabs[j].id].expand = message.tabs[j].expand; - b.tabs[message.tabs[j].id].index = message.tabs[j].index; - if (b.tabs[message.tabs[j].parent]) { - b.tabs[message.tabs[j].id].parent_ttid = b.tabs[message.tabs[j].parent].ttid; - } else { - b.tabs[message.tabs[j].id].parent_ttid = ""; - } - } - } - b.schedule_save++; - return; - } - if (message.command == "update_all_tabs" && browserId != "F") { - for (let i = 0; i < message.pins.length; i++) { - if (b.tabs[message.pins[i].id]) { - b.tabs[message.pins[i].id].parent = "pin_list"; - b.tabs[message.pins[i].id].expand = ""; - b.tabs[message.pins[i].id].index = message.pins[i].index; - } - } - for (let j = 0; j < message.tabs.length; j++) { - if (b.tabs[message.tabs[j].id]) { - b.tabs[message.tabs[j].id].parent = message.tabs[j].parent; - b.tabs[message.tabs[j].id].expand = message.tabs[j].expand; - b.tabs[message.tabs[j].id].index = message.tabs[j].index; - } - } - b.schedule_save++; - return; - } - if (message.command == "discard_tab") { - DiscardTab(message.tabId); - return; - } - if (message.command == "discard_window") { - DiscardWindow(message.windowId); - return; - } - if (message.command == "remove_tab_from_empty_tabs") { - setTimeout(function() { - if (b.EmptyTabs.indexOf(message.tabId) != -1) { - b.EmptyTabs.splice(b.EmptyTabs.indexOf(message.tabId), 1); - } - }, 100); - return; - } - if (message.command == "debug") { - pushlog(message.log); - return; - } - }); -} - -function QuantumStartListeners() { - browser.browserAction.onClicked.addListener(function() { - browser.sidebarAction.setPanel({panel: (browser.extension.getURL("/sidebar.html")) }); - browser.sidebarAction.open(); - }); - chrome.tabs.onCreated.addListener(function(tab) { - let prevActiveTabId = b.windows[tab.windowId].activeTabId; - b.NewTabsQueue.push(tab.id); - let t = Promise.resolve(browser.sessions.getTabValue(tab.id, "TTdata")).then(function(TabData) { - if (TabData != undefined) { - b.tabs[tab.id] = Object.assign({}, TabData); - let originalParent = TabData.parent_ttid == "" ? undefined : (b.tt_ids[TabData.parent_ttid] ? b.tt_ids[TabData.parent_ttid] : TabData.parent_ttid); - chrome.runtime.sendMessage({command: "tab_created", windowId: tab.windowId, tabId: tab.id, tab: tab, ParentId: originalParent, InsertAfterId: undefined, Append: undefined}); - } else { - QuantumAppendTabTTId(tab); - OnMessageTabCreated(tab.id, prevActiveTabId); - } - }); - }); - chrome.tabs.onAttached.addListener(function(tabId, attachInfo) { - let oldId = tabId; - chrome.tabs.get(oldId, function(tab) { - ReplaceParents(oldId, tab.id); - chrome.runtime.sendMessage({command: "tab_attached", windowId: attachInfo.newWindowId, tab: tab, tabId: tab.id, ParentId: b.tabs[tab.id].parent}); - b.schedule_save++; - }); - }); - - chrome.tabs.onDetached.addListener(function(tabId, detachInfo) { - chrome.runtime.sendMessage({command: "tab_detached", windowId: detachInfo.oldWindowId, tabId: tabId}); - }); - - chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) { - if (b.EmptyTabs.indexOf(tabId) != -1) { - b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); - } - setTimeout(function() { - chrome.runtime.sendMessage({command: "tab_removed", windowId: removeInfo.windowId, tabId: tabId}); - }, 5); - // setTimeout(function() { - // delete b.tabs[tabId]; - // },60000); - b.schedule_save++; - }); - chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { - if (changeInfo.pinned == true) { - if (b.tabs[tabId]) { - b.tabs[tabId].parent = "pin_list"; - b.tabs[tabId].parent_ttid = ""; - b.schedule_save++; - } - } - if (changeInfo.pinned == false) { - if (b.tabs[tabId]) { - b.tabs[tabId].parent = "tab_list"; - b.tabs[tabId].parent_ttid = ""; - b.schedule_save++; - } - } - if (changeInfo.url != undefined) { // if set to append when url changes and matches pre-set group - if (opt.move_tabs_on_url_change == "always" || ((opt.move_tabs_on_url_change == "from_empty" || opt.move_tabs_on_url_change == "from_empty_b") && b.EmptyTabs.indexOf(tabId) != -1)) { - AppendTabToGroupOnRegexMatch(tabId, tab.windowId, changeInfo.url); - } - if (changeInfo.url != b.newTabUrl && b.EmptyTabs.indexOf(tabId) != -1) { - b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); - } - } - if (changeInfo.title != undefined && !tab.active) { - chrome.runtime.sendMessage({command: "tab_attention", windowId: tab.windowId, tabId: tabId}); - } - chrome.runtime.sendMessage({command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tabId, changeInfo: changeInfo}); - }); - - chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) { - chrome.tabs.get(addedTabId, function(tab) { - if (addedTabId == removedTabId) { - chrome.runtime.sendMessage({command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tab.id, changeInfo: {status: tab.status, url: tab.url, title: tab.title, audible: tab.audible, mutedInfo: tab.mutedInfo}}); - } else { - if (b.tabs[removedTabId]) { - b.tabs[addedTabId] = b.tabs[removedTabId]; - } - ReplaceParents(tabId, tab.id); - chrome.runtime.sendMessage({command: "tab_removed", windowId: tab.windowId, tabId: removedTabId}); - chrome.runtime.sendMessage({command: "tab_attached", windowId: tab.windowId, tab: tab, tabId: addedTabId, ParentId: b.tabs[addedTabId].parent}); - // delete ttid[b.tabs[removedTabId].ttid]; - // delete b.tabs[removedTabId]; - } - setTimeout(function() { - QuantumAppendTabTTId(tab); - b.schedule_save++; - }, 100); - - }); - }); - chrome.tabs.onActivated.addListener(function(activeInfo) { - if (b.windows[activeInfo.windowId]) { - b.windows[activeInfo.windowId].activeTabId = activeInfo.tabId; - } - chrome.runtime.sendMessage({command: "tab_activated", windowId: activeInfo.windowId, tabId: activeInfo.tabId}); - b.schedule_save++; - }); - chrome.windows.onCreated.addListener(function(window) { - let win = Promise.resolve(browser.sessions.getWindowValue(window.id, "TTdata")).then(function(WindowData) { - if (WindowData != undefined) { - b.windows[window.id] = Object.assign({}, WindowData); - } else { - QuantumAppendWinTTId(window.id); - } - b.schedule_save++; - }); - }); - chrome.windows.onRemoved.addListener(function(windowId) { - // delete b.windows[windowId]; - b.schedule_save++; - }); - // chrome.sessions.onChanged.addListener(function(session) { - // chrome.windows.getAll({windowTypes: ['normal'], populate: false}, function(w) { - // chrome.tabs.query({}, function(t) { - // for (let wiInd = 0; wiInd < w.length; wiInd++) { - // if (b.windows[w[wiInd].id] == undefined) { - // chrome.runtime.sendMessage({command: "reload_sidebar"}); - // window.location.reload(); - // } - // } - // for (let tbInd = 0; tbInd < t.length; tbInd++) { - // if (b.tabs[t[tbInd].id] == undefined) { - // chrome.runtime.sendMessage({command: "reload_sidebar"}); - // window.location.reload(); - // } - // } - // }); - // }); - // }); -} - - -function ChromiumStartListeners() { // start all listeners - chrome.tabs.onCreated.addListener(function(tab) { - b.NewTabsQueue.push(tab.id); - ChromiumHashURL(tab); - OnMessageTabCreated(tab.id, b.windows[tab.windowId].activeTabId); - }); - chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) { - if (b.EmptyTabs.indexOf(tabId) != -1) { - b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); - } - setTimeout(function() { chrome.runtime.sendMessage({command: "tab_removed", windowId: removeInfo.windowId, tabId: tabId}); },5); - delete b.tabs[tabId]; - b.schedule_save++; - }); - chrome.tabs.onAttached.addListener(function(tabId, attachInfo) { - chrome.tabs.get(tabId, function(tab) { - chrome.runtime.sendMessage({command: "tab_attached", windowId: attachInfo.newWindowId, tab: tab, tabId: tabId, ParentId: b.tabs[tabId].parent}); - }); - b.schedule_save++; - }); - chrome.tabs.onDetached.addListener(function(tabId, detachInfo) { - chrome.runtime.sendMessage({command: "tab_detached", windowId: detachInfo.oldWindowId, tabId: tabId}); - b.schedule_save++; - }); - chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { - if (b.tabs[tabId] == undefined || changeInfo.url != undefined) { - ChromiumHashURL(tab); - } - if (changeInfo.pinned != undefined) { - if (changeInfo.pinned == true) { - b.tabs[tabId].parent = "pin_list"; - } - if (changeInfo.pinned == false) { - b.tabs[tabId].parent = "tab_list"; - } - b.schedule_save++; - } - if (changeInfo.url != undefined) { // if set to append when url changes and matches pre-set group - if (opt.move_tabs_on_url_change == "always" || ((opt.move_tabs_on_url_change == "from_empty" || opt.move_tabs_on_url_change == "from_empty_b") && b.EmptyTabs.indexOf(tabId) != -1)) { - AppendTabToGroupOnRegexMatch(tabId, tab.windowId, changeInfo.url); - } - if (changeInfo.url != b.newTabUrl && b.EmptyTabs.indexOf(tabId) != -1) { - b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1); - } - } - if (changeInfo.title != undefined && !tab.active) { - chrome.runtime.sendMessage({command: "tab_attention", windowId: tab.windowId, tabId: tabId}); - } - chrome.runtime.sendMessage({command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tabId, changeInfo: changeInfo}); - }); - chrome.tabs.onMoved.addListener(function(tabId, moveInfo) { - b.schedule_save++; - }); - chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) { - chrome.tabs.get(addedTabId, function(tab) { - if (addedTabId == removedTabId) { - chrome.runtime.sendMessage({command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tab.id, changeInfo: {status: tab.status, url: tab.url, title: tab.title, audible: tab.audible, mutedInfo: tab.mutedInfo}}); - } else { - ReplaceParents(tabId, tab.id); - if (b.tabs[removedTabId]) { - b.tabs[addedTabId] = b.tabs[removedTabId]; - } else { - ChromiumHashURL(tab); - } - chrome.runtime.sendMessage({command: "tab_removed", windowId: tab.windowId, tabId: removedTabId}); - chrome.runtime.sendMessage({command: "tab_attached", windowId: tab.windowId, tab: tab, tabId: addedTabId}); - delete b.tabs[removedTabId]; - } - b.schedule_save++; - }); - }); - chrome.tabs.onActivated.addListener(function(activeInfo) { - if (b.windows[activeInfo.windowId]) { - b.windows[activeInfo.windowId].activeTabId = activeInfo.tabId; - } - chrome.runtime.sendMessage({command: "tab_activated", windowId: activeInfo.windowId, tabId: activeInfo.tabId}); - b.schedule_save++; - }); - chrome.windows.onCreated.addListener(function(window) { - ChromiumAddWindowData(window.id); - // b.windows[window.id] = {group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: {tab_list: {id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: ""}}, folders: {}}; - b.schedule_save++; - }); - chrome.windows.onRemoved.addListener(function(windowId) { - delete b.windows[windowId]; - b.schedule_save++; - }); - chrome.runtime.onSuspend.addListener(function() { - b.running = false; - }); -} - - - - -function OnMessageTabCreated(tabId, activeTabId) { - if (b.NewTabsQueue.length > 0 && b.NewTabsQueue[0] == tabId) { - chrome.tabs.get(tabId, function(NewTab) { // get tab again as reported tab's url is empty! Also for some reason firefox sends tab with "active == false" even if tab is active (THIS IS POSSIBLY A NEW BUG IN FF 60!) - - let ParentId; - let AfterId; - let append; - - if (b.windows[NewTab.windowId] && NewTab.active) { - b.windows[NewTab.windowId].groups[b.windows[NewTab.windowId].active_group].active_tab = NewTab.id; - } - - if (NewTab.url == b.newTabUrl) { - b.EmptyTabs.push(tabId); - } - - if (NewTab.pinned) { - let PinTabs = GetChildren("pin_list"); - b.tabs[NewTab.id].parent = "pin_list"; - if (browserId == "F") { - b.tabs[NewTab.id].parent_ttid = ""; - } - for (let i = PinTabs.indexOf(NewTab.openerTabId)+1; i < PinTabs.length; i++) { // shift next siblings indexes - b.tabs[PinTabs[i]].index += 1; - } - b.tabs[NewTab.id].index = NewTab.index; - - } else { - - if (opt.append_orphan_tab == "as_child" && opt.orphaned_tabs_to_ungrouped == false) { - NewTab.openerTabId = activeTabId; - } - - if (NewTab.openerTabId) { // child case - - let OpenerSiblings = GetChildren(b.tabs[NewTab.openerTabId].parent); - - if (opt.append_child_tab == "after") { // place tabs flat - b.tabs[NewTab.id].parent = b.tabs[NewTab.openerTabId].parent; - if (browserId == "F") { - b.tabs[NewTab.id].parent_ttid = b.tabs[NewTab.openerTabId].parent_ttid; - } - for (let i = OpenerSiblings.indexOf(NewTab.openerTabId)+1; i < OpenerSiblings.length; i++) { // shift next siblings indexes - b.tabs[OpenerSiblings[i]].index += 1; - } - b.tabs[NewTab.id].index = b.tabs[NewTab.openerTabId].index+1; - AfterId = NewTab.openerTabId; - - } else { - - if (opt.max_tree_depth == 0) { // place tabs flat if limit is set to 0 - - b.tabs[NewTab.id].parent = b.tabs[NewTab.openerTabId].parent; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = b.tabs[NewTab.openerTabId].parent_ttid; - } - - if (opt.append_child_tab_after_limit == "after") { // max tree depth, place tab after parent - for (let i = OpenerSiblings.indexOf(NewTab.openerTabId)+1; i < OpenerSiblings.length; i++) { // shift next siblings indexes - b.tabs[OpenerSiblings[i]].index += 1; - } - b.tabs[NewTab.id].index = b.tabs[NewTab.openerTabId].index+1; - AfterId = NewTab.openerTabId; - } - - if (opt.append_child_tab_after_limit == "top" && opt.append_child_tab != "after") { // max tree depth, place tab on top (above parent) - for (let i = 0; i < OpenerSiblings.length; i++) { // shift all siblings indexes - b.tabs[OpenerSiblings[i]].index += 1; - } - b.tabs[NewTab.id].index = 0; - ParentId = b.tabs[NewTab.id].parent; - } - - if (opt.append_child_tab_after_limit == "bottom" && opt.append_child_tab != "after") { // max tree depth, place tab on bottom (below parent) - if (OpenerSiblings.length > 0) { - b.tabs[NewTab.id].index = b.tabs[OpenerSiblings[OpenerSiblings.length-1]].index+1; - } else { - b.tabs[NewTab.id].index = 1; - } - ParentId = b.tabs[NewTab.id].parent; - append = true; - } - - } else { - - let Parents = GetTabParents(NewTab.openerTabId); - let OpenerChildren = GetChildren(NewTab.openerTabId); - - if (opt.max_tree_depth < 0 || (opt.max_tree_depth > 0 && Parents.length < opt.max_tree_depth)) { // append to tree on top and bottom - - b.tabs[NewTab.id].parent = NewTab.openerTabId; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = b.tabs[NewTab.openerTabId].ttid; - } - - if (opt.append_child_tab == "top") { // place child tab at the top (reverse hierarchy) - for (let i = 0; i < OpenerChildren.length; i++) { // shift all siblings indexes - b.tabs[OpenerChildren[i]].index += 1; - } - b.tabs[NewTab.id].index = 0; - ParentId = b.tabs[NewTab.id].parent; - } - - if (opt.append_child_tab == "bottom") { // place child tab at the bottom - if (OpenerChildren.length > 0) { - b.tabs[NewTab.id].index = b.tabs[OpenerChildren[OpenerChildren.length-1]].index+1; - } else { - b.tabs[NewTab.id].index = 0; - } - ParentId = b.tabs[NewTab.id].parent; - append = true; - } - - } else { - - if (opt.max_tree_depth > 0 && Parents.length >= opt.max_tree_depth) { // if reached depth limit of the tree - - b.tabs[NewTab.id].parent = b.tabs[NewTab.openerTabId].parent; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = b.tabs[NewTab.openerTabId].parent_ttid; - } - - if (opt.append_child_tab_after_limit == "after") { // tab will append after opener - for (let i = OpenerSiblings.indexOf(NewTab.openerTabId)+1; i < OpenerSiblings.length; i++) { // shift next siblings indexes - b.tabs[OpenerSiblings[i]].index += 1; - } - b.tabs[NewTab.id].index = b.tabs[NewTab.openerTabId].index+1; - AfterId = NewTab.openerTabId; - } - - if (opt.append_child_tab_after_limit == "top") { // tab will append on top - for (let i = 0; i < OpenerChildren.length; i++) { // shift all siblings indexes - b.tabs[OpenerChildren[i]].index += 1; - } - b.tabs[NewTab.id].index = 0; - ParentId = b.tabs[NewTab.id].parent; - } - - if (opt.append_child_tab_after_limit == "bottom") { // tab will append on bottom - if (OpenerSiblings.length > 0) { - b.tabs[NewTab.id].index = b.tabs[OpenerSiblings[OpenerSiblings.length-1]].index+1; - } else { - b.tabs[NewTab.id].index = 1; - } - ParentId = b.tabs[NewTab.id].parent; - append = true; - } - - } - } - } - } - - } else { // orphan tab - - if (opt.orphaned_tabs_to_ungrouped == true) { // if set to append orphan tabs to ungrouped group - let TabListTabs = GetChildren("tab_list"); - b.tabs[NewTab.id].index = b.tabs[TabListTabs[TabListTabs.length-1]].index+1; - ParentId = "tab_list"; - append = true; - } else { - - if (opt.append_orphan_tab == "after_active") { - - if (b.windows[NewTab.windowId] && b.windows[NewTab.windowId].activeTabId) { - if (b.tabs[activeTabId]) { - - let ActiveSiblings = GetChildren(b.tabs[activeTabId].parent); - b.tabs[NewTab.id].parent = b.tabs[activeTabId].parent; - for (let i = ActiveSiblings.indexOf(activeTabId)+1; i < ActiveSiblings.length; i++) { // shift next siblings indexes - b.tabs[ActiveSiblings[i]].index += 1; - } - b.tabs[NewTab.id].index = b.tabs[activeTabId].index+1; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = b.tabs[activeTabId].parent_ttid; - } - - AfterId = activeTabId; - - } else { // FAIL, no active tab! - let GroupTabs = GetChildren(b.windows[NewTab.windowId].active_group); - b.tabs[NewTab.id].parent = b.windows[NewTab.windowId].active_group; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = ""; - } - if (GroupTabs.length > 0) { - b.tabs[NewTab.id].index = b.tabs[GroupTabs[GroupTabs.length-1]].index+1; - } else { - b.tabs[NewTab.id].index = 0; - } - ParentId = b.windows[NewTab.windowId].active_group; - } - } else { - b.tabs[NewTab.id].parent = "tab_list"; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = ""; - } - b.tabs[NewTab.id].index = NewTab.index; - ParentId = "tab_list"; - } - } - - if (opt.append_orphan_tab == "top") { - let GroupTabs = GetChildren(b.windows[NewTab.windowId].active_group); - b.tabs[NewTab.id].parent = b.windows[NewTab.windowId].active_group; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = ""; - } - for (let i = 0; i < GroupTabs.length; i++) { // shift all tabs indexes in group - b.tabs[GroupTabs[i]].index += 1; - } - b.tabs[NewTab.id].index = 0; - ParentId = b.windows[NewTab.windowId].active_group; - } - - if (opt.append_orphan_tab == "bottom") { - let GroupTabs = GetChildren(b.windows[NewTab.windowId].active_group); - b.tabs[NewTab.id].parent = b.windows[NewTab.windowId].active_group; - if (browserId == "F"){ - b.tabs[NewTab.id].parent_ttid = ""; - } - if (GroupTabs.length > 0) { - b.tabs[NewTab.id].index = b.tabs[GroupTabs[GroupTabs.length-1]].index+1; - } else { - b.tabs[NewTab.id].index = 0; - } - ParentId = b.windows[NewTab.windowId].active_group; - append = true; - } - } - } - - if (opt.move_tabs_on_url_change === "all_new") { - setTimeout(function() { - chrome.tabs.get(NewTab.id, function(CheckTabsUrl) { - AppendTabToGroupOnRegexMatch(CheckTabsUrl.id, CheckTabsUrl.windowId, CheckTabsUrl.url); - }); - }, 100); - } - } - setTimeout(function() { - b.schedule_save++; - }, 500); - - chrome.runtime.sendMessage({command: "tab_created", windowId: NewTab.windowId, tabId: NewTab.id, tab: NewTab, ParentId: ParentId, InsertAfterId: AfterId, Append: append}); - - if (b.NewTabsQueue.indexOf(NewTab.id) != -1) { - b.NewTabsQueue.splice(b.NewTabsQueue.indexOf(NewTab.id), 1); - } - - }); - - } else { - console.log("tab_created in queue"); - setTimeout(function() { - OnMessageTabCreated(tabId, activeTabId); - }, 100); - - } -} \ No newline at end of file diff --git a/manifest.json b/manifest.json index 0e7a66c..754c56d 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "default_locale": "en", "background": { - "scripts": [ "listeners_bg.js", "scripts/common.js", "background.js" ], + "scripts": [ "global.js", "./scripts/preferences.js", "background_firefox.js", "background_opera.js", "background_vivaldi.js", "background.js" ], "persistent": true }, "name": "Tree Tabs", @@ -14,8 +14,7 @@ "19": "icons/16.png", "16": "icons/16.png" }, - "permissions": [ "", "tabs", "sessions", "storage", "unlimitedStorage", "bookmarks", "tabHide" ], - + "permissions": [ "tabs", "sessions", "storage", "unlimitedStorage", "bookmarks", "tabHide" ], "sidebar_action": { "default_icon": { "16": "icons/16.png", @@ -29,21 +28,25 @@ "browser_action": { "default_icon": "icons/24.png" }, - "applications": { - "gecko": { - "id": "TreeTabs@jagiello.it", - "strict_min_version": "57.0" - } - }, - "options_ui": { - "page": "options.html", - "open_in_tab": true - }, "commands": { + "_execute_browser_action": { + "suggested_key": { "default": "F1" }, + "description": "toggle Tree Tabs" + }, "close_tree": { "suggested_key": { "default": "Alt+W" }, "description": "close tree" } }, - "version": "100" + "applications": { + "gecko": { + "id": "TreeTabs@jagiello.it", + "strict_min_version": "63.0" + } + }, + "options_ui": { + "page": "options/options.html", + "open_in_tab": true + }, + "version": "1.8.7" } \ No newline at end of file diff --git a/options.html b/options.html deleted file mode 100644 index 09e0531..0000000 --- a/options.html +++ /dev/null @@ -1,858 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
- - - - - - - -
- - - - - - - - - - - - -
-
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
    -
  • - - -
  • -
  • - - -
  • -
-
- - - -
- -
    -
  • - - -
  • -
  • - - -
  • -
- - - - - - -
-
-
- - - -
- -
    -
  • - - -
  • -
  • - - -
  • -
- - - - - - - - - - - - - - - - -
-
-
-
-
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • -
    -
    - - - - - -
    - -
  • -
  • - - -
  • -
- - - - - - -
- - -
- - - - - - -
-
- -
-

-
    -
  • -
  • -
  • - -
  • -
- - -
- - - -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
- - -
- - - - - - - -
-
- -
-
- - - -
- - - -
- - - - - - - - - - -
-
- -
- - - -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
- -
-
-
- - - - -
- - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
- -
-
- -
- -
- -
-
-
-
-
- -
-
- - - -
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- - - -
- -
- - -
- - - - - - - - -
-
- -
- - - - - - - -
-
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/options/options.css b/options/options.css index b843ec7..088b8f3 100644 --- a/options/options.css +++ b/options/options.css @@ -425,7 +425,7 @@ ul:not(.menu) li { /* TAB LIST AND SCROLLBAR */ #groups { position: absolute; - height: 850px; + height: calc(100% - var(--pin_height) - 80px); width: calc(771px - var(--scrollbar_width)); top: calc(var(--scrollbar_height) + var(--pin_height) + 33px); left: 40px; @@ -434,7 +434,7 @@ ul:not(.menu) li { #group_scrollbar { position: absolute; - height: 850px; + height: calc(100% - var(--pin_height) - 80px); width: var(--scrollbar_width); top: calc(var(--scrollbar_height) + var(--pin_height) + 33px); left: calc(810px - var(--scrollbar_width)); @@ -602,7 +602,7 @@ ul:not(.menu) li { left: 20px; top: calc(var(--scrollbar_height) + var(--pin_height) + 33px); width: 19px; - height: 850px; + height: calc(100% - var(--pin_height) - 80px); background-color: var(--group_list_background); border-right: 1px solid var(--group_list_borders); overflow: visible; diff --git a/options/options.html b/options/options.html new file mode 100644 index 0000000..dc3a213 --- /dev/null +++ b/options/options.html @@ -0,0 +1,905 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tree Tabs
+
+ + + + +
+ + + + + + + + + + + + + + + + + +
-
-
-
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + +
-
-
-
-
+
    +
  • + + +
  • +
  • + + +
  • +
+
+ + + +
+ +
    +
  • + + +
  • +
  • + + +
  • +
+ +
+ + + +
+ +
    +
  • + + +
  • +
  • + + +
  • +
+ + + + + + + + + + + + + + + + +
-
-
-
+ +

+
    +
  • +
  • +
  • + +
  • +
  • +
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + + +
  • + + + + + + + +
  • + + +
  • +
  • + + +
  • +
  • +
    +
    + + + + + +
    + +
  • +
  • + + +
  • +
+ + + + + + +
+ + -
+ + + + + + +
-
+ + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
-
-
-
-
-
-
-
-
-
+
+ + +
+ + + + + + + +
+
+ +
+
+ + + +
+ + + +
+ + + + + + + + + + +
+
+ +
+ + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+
+
+ + + + +
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+ +
+
+
+
+
+ +
+
+ + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ + + +
+ +
+ + +
+ + + + + + +
+
+ + +
+ + + + + + + +
+ -
+
+ + +
+
Your language is not available? Can you help? Translate here. +
+ Themes +
+ Forum +
+ Support Email +
+ Report a bug +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/options/options.js b/options/options.js index 43bd70c..9f06ee2 100644 --- a/options/options.js +++ b/options/options.js @@ -1,1081 +1,1266 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - // ********** OPTIONS *************** var current_theme = ""; var themes = []; var SelectedTheme = Object.assign({}, DefaultTheme); -var dragged_button = {id: ""}; +var dragged_button = { id: "" }; +let tt = { + CurrentWindowId: 0, + active_group: "tab_list", + tabs: {}, + groups: {}, + folders: {} +}; // options for all drop down menus -let DropDownList = ["dbclick_folder", "midclick_folder", "midclick_tab", "dbclick_group", "midclick_group", "dbclick_tab", "append_child_tab", "append_child_tab_after_limit", "append_orphan_tab", "append_tab_from_toolbar", "after_closing_active_tab", "move_tabs_on_url_change"]; +let DropDownList = ["dbclick_folder", "midclick_folder", "midclick_tab", "dbclick_group", "midclick_group", "dbclick_tab", "append_pinned_tab", "append_child_tab", "append_child_tab_after_limit", "append_orphan_tab", "append_tab_from_toolbar", "after_closing_active_tab", "move_tabs_on_url_change"]; document.addEventListener("DOMContentLoaded", function() { - document.title = "Tree Tabs"; - chrome.storage.local.get(null, function(storage) { - - AppendGroupToList("tab_list", labels.ungrouped_group, "", false); - AppendGroupToList("tab_list2", labels.noname_group, "", false); - AppendSampleTabs(); - - GetCurrentPreferences(storage); + document.title = "Tree Tabs"; + chrome.storage.local.get(null, function(storage) { - if (storage["themes"]) { - for (var themeName in storage["themes"]) { - themes.push(themeName); - } - } - if (storage["current_theme"]) { - current_theme = storage["current_theme"]; - LoadTheme(storage["current_theme"]); - } - + Groups_AppendGroupToList("tab_list", labels.ungrouped_group, "", false); + Groups_AppendGroupToList("tab_list2", labels.noname_group, "", false); + AppendSampleTabs(); - if (storage["unused_buttons"]) { - RecreateToolbarUnusedButtons(storage["unused_buttons"]); - } + Preferences_GetCurrentPreferences(storage); - RecreateToolbar(GetCurrentToolbar(storage)); - SetToolbarEvents(false, false, true, "click"); - AddEditToolbarEditEvents(); + if (storage["themes"]) { + for (var themeName in storage["themes"]) { + themes.push(themeName); + } + } + if (storage["current_theme"]) { + current_theme = storage["current_theme"]; + Theme_LoadTheme(storage["current_theme"]); + } - - GetOptions(storage); - RefreshFields(); - SetEvents(); - - setTimeout(function() { - document.querySelectorAll(".on").forEach(function(s){ - s.classList.remove("on"); - }); - RefreshGUI(); - }, 100); - }); + if (storage["unused_buttons"]) { + Toolbar_RecreateToolbarUnusedButtons(storage["unused_buttons"]); + } + + Toolbar_RecreateToolbar(Theme_GetCurrentToolbar(storage)); + Toolbar_SetToolbarEvents(false, false, true, "click", false, true); + AddEditToolbarEditEvents(); + + + GetOptions(storage); + RefreshFields(); + SetEvents(); + + + setTimeout(function() { + document.querySelectorAll(".on").forEach(function(s) { + s.classList.remove("on"); + }); + RefreshGUI(); + }, 100); + }); }); function SetRegexes() { - let regexes = document.getElementById('tab_group_regexes'); - opt.tab_group_regexes = []; - for (let child of regexes.children) { - var regex = child.children[0].value.trim(); - var groupName = child.children[1].value.trim(); - if (regex !== "" && groupName !== "") { - opt.tab_group_regexes.push([regex, groupName]); - } - } - SavePreferences(); + let regexes = document.getElementById('tab_group_regexes'); + opt.tab_group_regexes = []; + for (let child of regexes.children) { + var regex = child.children[0].value.trim(); + var groupName = child.children[1].value.trim(); + if (regex !== "" && groupName !== "") { + opt.tab_group_regexes.push([regex, groupName]); + } + } + Preferences_SavePreferences(opt); } function AddRegexPair() { - let regexes = document.getElementById('tab_group_regexes'); - let outer = document.createElement("div"); + let regexes = document.getElementById('tab_group_regexes'); + let outer = document.createElement("div"); - let input = document.createElement("input"); - input.type = "text"; - input.style.width = '200px'; - input.onchange = SetRegexes; - input.onkeyup = SetRegexes; - outer.appendChild(input); + let input = document.createElement("input"); + input.type = "text"; + input.style.width = '200px'; + input.onchange = SetRegexes; + input.onkeyup = SetRegexes; + outer.appendChild(input); - input = document.createElement("input"); - input.type = "text"; - input.style.width = '200px'; - input.onchange = SetRegexes; - input.onkeyup = SetRegexes; - outer.appendChild(input); - - let deleteButton = document.createElement("input"); - deleteButton.type = "button"; - deleteButton.style.width = '75px'; - deleteButton.className = "set_button theme_buttons"; - deleteButton.value = chrome.i18n.getMessage("options_Remove_button"); - deleteButton.onclick = function() { regexes.removeChild(outer); } - outer.appendChild(deleteButton); - - regexes.appendChild(outer); - return outer; + input = document.createElement("input"); + input.type = "text"; + input.style.width = '200px'; + input.onchange = SetRegexes; + input.onkeyup = SetRegexes; + outer.appendChild(input); + + let deleteButton = document.createElement("input"); + deleteButton.type = "button"; + deleteButton.style.width = '75px'; + deleteButton.className = "set_button theme_buttons"; + deleteButton.value = chrome.i18n.getMessage("options_Remove_button"); + deleteButton.onclick = function() { regexes.removeChild(outer); } + outer.appendChild(deleteButton); + + regexes.appendChild(outer); + return outer; } // document events function GetOptions(storage) { - // get language labels - document.querySelectorAll(".label, .set_button, .bg_opt_drop_down_menu, .hint_explanation").forEach(function(s){ - s.textContent = chrome.i18n.getMessage(s.id); - }); + // get language labels + document.querySelectorAll(".label, .set_button, .bg_opt_drop_down_menu, .hint_explanation").forEach(function(s) { + s.textContent = chrome.i18n.getMessage(s.id); + }); - // get language for menu labels - document.querySelectorAll(".menu_item").forEach(function(s){ - s.textContent = chrome.i18n.getMessage("options_example_menu_item"); - }); - - // get checkboxes from saved states - document.querySelectorAll(".opt_checkbox").forEach(function(s){ - s.checked = opt[s.id]; - if (s.checked) { - if (s.id == "never_show_close") { - document.getElementById("always_show_close").disabled = true; - } - } else { - if (s.id == "promote_children") { - document.getElementById("promote_children_in_first_child").disabled = true; - } - } - }); - - // get language labels - document.querySelectorAll(".pick_col, #close_x, #close_hover_x, .options_button_minus, .options_button_plus, .tabs_margin_spacing").forEach(function(s){ - s.title = chrome.i18n.getMessage(s.id); - }); - + // get language for menu labels + document.querySelectorAll(".menu_item").forEach(function(s) { + s.textContent = chrome.i18n.getMessage("options_example_menu_item"); + }); - // get options for all drop down menus (loop through all drop down items that are in DropDownList array) - for (let i = 0; i < DropDownList.length; i++) { - let DropDownOption = document.getElementById(DropDownList[i]); - for (let j = 0; j < DropDownOption.options.length; j++) { - if (DropDownOption.options[j].value == opt[DropDownList[i]]) { - DropDownOption.selectedIndex = j; - break; - } - } - RefreshFields(); - } - - for (let i = 0; i < opt.tab_group_regexes.length; i++) { - let regexPair = opt.tab_group_regexes[i]; - let outer = AddRegexPair(); - outer.children[0].value = regexPair[0]; - outer.children[1].value = regexPair[1] - } + // get checkboxes from saved states + document.querySelectorAll(".opt_checkbox").forEach(function(s) { + s.checked = opt[s.id]; + if (s.checked) { + if (s.id == "never_show_close") { + document.getElementById("always_show_close").disabled = true; + } + } else { + if (s.id == "promote_children") { + document.getElementById("promote_children_in_first_child").disabled = true; + } + } + }); - // get options for tabs tree depth option - document.getElementById("max_tree_depth").value = opt.max_tree_depth; + // get language labels + document.querySelectorAll(".pick_col, #close_x, #close_hover_x, .options_button_minus, .options_button_plus, .tabs_margin_spacing").forEach(function(s) { + s.title = chrome.i18n.getMessage(s.id); + }); - // append themes to dropdown menu - let ThemeList = document.getElementById("theme_list"); - for (var i = 0; i < themes.length; i++) { - let theme_name = document.createElement("option"); - theme_name.value = themes[i]; - theme_name.text = storage.themes[themes[i]].theme_name; - ThemeList.add(theme_name); - } - // select current theme in dropdown list - for (var i = 0; i < ThemeList.options.length; i++) { - if (ThemeList.options[i].value == current_theme) { - ThemeList.selectedIndex = i; - break; - } - } + // get options for all drop down menus (loop through all drop down items that are in DropDownList array) + for (let i = 0; i < DropDownList.length; i++) { + let DropDownOption = document.getElementById(DropDownList[i]); + for (let j = 0; j < DropDownOption.options.length; j++) { + if (DropDownOption.options[j].value == opt[DropDownList[i]]) { + DropDownOption.selectedIndex = j; + break; + } + } + RefreshFields(); + } + + for (let i = 0; i < opt.tab_group_regexes.length; i++) { + let regexPair = opt.tab_group_regexes[i]; + let outer = AddRegexPair(); + outer.children[0].value = regexPair[0]; + outer.children[1].value = regexPair[1] + } + + // get options for tabs tree depth option + document.getElementById("max_tree_depth").value = opt.max_tree_depth; + + + // append themes to dropdown menu + let ThemeList = document.getElementById("theme_list"); + for (var i = 0; i < themes.length; i++) { + let theme_name = document.createElement("option"); + theme_name.value = themes[i]; + theme_name.text = storage.themes[themes[i]].theme_name; + ThemeList.add(theme_name); + } + // select current theme in dropdown list + for (var i = 0; i < ThemeList.options.length; i++) { + if (ThemeList.options[i].value == current_theme) { + ThemeList.selectedIndex = i; + break; + } + } } function RemovePreview() { - document.querySelectorAll(".hover_blinking").forEach(function(s){s.classList.remove("hover_blinking");}); - document.querySelectorAll(".hover_border_blinking").forEach(function(s){s.classList.remove("hover_border_blinking");}); - document.querySelectorAll(".red_preview").forEach(function(s){ - s.style.backgroundColor = ""; - s.style.border = ""; - s.style.borderBottom = ""; - s.style.borderRight = ""; - s.style.color = ""; - s.style.animation = ""; - s.style.fontWeight = ""; - s.style.fontStyle = ""; - // s.style.zIndex = ""; - s.classList.remove("red_preview"); - }); + document.querySelectorAll(".hover_blinking").forEach(function(s) { s.classList.remove("hover_blinking"); }); + document.querySelectorAll(".hover_border_blinking").forEach(function(s) { s.classList.remove("hover_border_blinking"); }); + document.querySelectorAll(".red_preview").forEach(function(s) { + s.style.backgroundColor = ""; + s.style.border = ""; + s.style.borderBottom = ""; + s.style.borderRight = ""; + s.style.color = ""; + s.style.animation = ""; + s.style.fontWeight = ""; + s.style.fontStyle = ""; + // s.style.zIndex = ""; + s.classList.remove("red_preview"); + }); } function AddRedStylePreview(Id, style, value, removePreview) { - if (removePreview) RemovePreview(); - let d = document.getElementById(Id); - d.classList.add("red_preview"); - d.style[style] = value; + if (removePreview) RemovePreview(); + let d = document.getElementById(Id); + d.classList.add("red_preview"); + d.style[style] = value; } function AddBlueBackgroundPreview(Id, removePreview) { - if (removePreview) RemovePreview(); - document.getElementById(Id).classList.add("hover_blinking"); + if (removePreview) RemovePreview(); + document.getElementById(Id).classList.add("hover_blinking"); } + function AddBlueBorderPreview(Id, removePreview) { - if (removePreview) RemovePreview(); - document.getElementById(Id).classList.add("hover_border_blinking"); + if (removePreview) RemovePreview(); + document.getElementById(Id).classList.add("hover_border_blinking"); } // document events function SetEvents() { -// --------------------------------DONATIONS----------------------------------------------------------------------------- - - document.getElementById("donate_paypal").onclick = function(event) {if (event.which == 1) { - chrome.tabs.create({url: "https://www.paypal.me/KarolJagiello/1"}); - }} - document.getElementById("donate_litecoin").onclick = function(event) {if (event.which == 1) { - copyStringToClipboard("LdQ1ZH1CgSneBbmmVBFrg5BFDFHZMa6h76"); - alert(chrome.i18n.getMessage("options_copied_wallet_address")); - }} - document.getElementById("donate_bitcoin").onclick = function(event) {if (event.which == 1) { - copyStringToClipboard("19Z8w1RJEcBQpKSdiWa3UTBuKRJUkr96nJ"); - alert(chrome.i18n.getMessage("options_copied_wallet_address")); - }} - document.getElementById("donate_ethereum").onclick = function(event) {if (event.which == 1) { - copyStringToClipboard("0x70B05eAD03bF08220d5aF4E1E868C351bfe145D6"); - alert(chrome.i18n.getMessage("options_copied_wallet_address")); - }} - -// --------------------------------COPY VIVALDI LINK---------------------------------------------------------------------- - - document.getElementById("copy_vivaldi_url_for_web_panel").onclick = function(event) {if (event.which == 1) { - copyStringToClipboard(chrome.runtime.getURL("sidebar.html")); - alert(chrome.i18n.getMessage("options_vivaldi_copied_url")); - }} - -// --------------------------------ADD RED AND BLUE PREVIEWS--------------------------------------------------------------- - // document.body.onmousedown = function(event) { - // if (event.which == 1 && (event.target.id || event.target.classList)) { - // console.log(event.target); - // } - // } - - - document.querySelectorAll("#scrollbar_thumb_hover, #options_tab_list_scrollbar_height_up, #options_tab_list_scrollbar_height_down, #options_tab_list_scrollbar_width_up, #options_tab_list_scrollbar_width_down, .pick_col, .font_weight_normal, .font_weight_bold, .font_style_normal, .font_style_italic, #filter_box_font").forEach(function(s){s.onmouseleave = function(event) { - RemovePreview(); - }}); - - // toolbar buttons - document.getElementById("button_background").onmouseenter = function(event) { - AddRedStylePreview("button_theme_plus", "backgroundColor", "red", true); - } - document.getElementById("button_hover_background").onmouseenter = function(event) { - AddBlueBackgroundPreview("button_theme_plus", true); - } - - document.getElementById("button_on_background").onmouseenter = function(event) { - AddRedStylePreview("button_theme_search", "backgroundColor", "red", true); - } - - document.getElementById("button_icons").onmouseenter = function(event) { - AddRedStylePreview("button_theme_plus_img", "backgroundColor", "red", true); - } - document.getElementById("button_icons_hover").onmouseenter = function(event) { - AddBlueBackgroundPreview("button_theme_plus_img", true); - } - document.getElementById("button_on_icons").onmouseenter = function(event) { - AddRedStylePreview("button_theme_search_img", "backgroundColor", "red", true); - } - - document.getElementById("button_border").onmouseenter = function(event) { - AddRedStylePreview("button_theme_plus", "border", "1px solid red", true); - } - document.getElementById("button_hover_border").onmouseenter = function(event) { - AddBlueBorderPreview("button_theme_plus", true); - } - - - // search box - document.getElementById("filter_box_font").onmouseenter = function(event) { - AddRedStylePreview("filter_box_theme", "color", "red", true); - } - document.getElementById("filter_box_background").onmouseenter = function(event) { - AddRedStylePreview("filter_box_theme", "backgroundColor", "red", true); - } - document.getElementById("filter_box_border").onmouseenter = function(event) { - AddRedStylePreview("filter_box_theme", "border", "1px solid red", true); - } - document.getElementById("filter_clear_icon").onmouseenter = function(event) { - AddRedStylePreview("button_filter_clear_theme", "backgroundColor", "red", true); - } - - // toolbar background - document.getElementById("toolbar_background").onmouseenter = function(event) { - AddRedStylePreview("toolbar_main_theme", "backgroundColor", "red", true); - } - - // shelf toolbar background - document.getElementById("toolbar_shelf_background").onmouseenter = function(event) { - AddRedStylePreview("toolbar_search_input_box_theme", "backgroundColor", "red", true); - } - - // toolbar's border - document.getElementById("toolbar_border_bottom").onmouseenter = function(event) { - AddRedStylePreview("button_theme_search", "border", "1px solid red", true); - AddRedStylePreview("toolbar_main_theme", "borderBottom", "1px solid red"); - AddRedStylePreview("toolbar_theme", "borderBottom", "1px solid red"); - } - - // shelf toolbar buttons - document.getElementById("button_shelf_background").onmouseenter = function(event) { - AddRedStylePreview("button_theme_pen", "backgroundColor", "red", true); - } - document.getElementById("button_shelf_hover_background").onmouseenter = function(event) { - AddBlueBackgroundPreview("button_theme_pen", true); - } - document.getElementById("button_shelf_icons").onmouseenter = function(event) { - AddRedStylePreview("button_theme_pen_img", "backgroundColor", "red", true); - } - document.getElementById("button_shelf_icons_hover").onmouseenter = function(event) { - AddBlueBackgroundPreview("button_theme_pen_img", true); - } - document.getElementById("button_shelf_border").onmouseenter = function(event) { - AddRedStylePreview("button_theme_pen", "border", "1px solid red", true); - } - document.getElementById("button_shelf_hover_border").onmouseenter = function(event) { - AddBlueBorderPreview("button_theme_pen", true); - } - - // pinned tab attention_background - document.getElementById("attention_background").onmouseenter = function(event) { - AddRedStylePreview("tab_header10", "backgroundColor", "red", true); - document.getElementById("tab_header10").style.animation = "none"; - } - - // pinned tab attention_border - document.getElementById("attention_border").onmouseenter = function(event) { - AddRedStylePreview("tab_header10", "border", "1px solid red", true); - document.getElementById("tab_header10").style.animation = "none"; - } - - // pin_list border bottom - document.getElementById("pin_list_border_bottom").onmouseenter = function(event) { - AddRedStylePreview("pin_list", "borderBottom", "1px solid red", true); - } - - // pin_list background - document.getElementById("pin_list_background").onmouseenter = function(event) { - AddRedStylePreview("pin_list", "backgroundColor", "red", true); - } - - - // tab row font_color - document.querySelectorAll(".tab_col.font_color").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "color", "red", true); - }}); - - // tab row font not bold - document.querySelectorAll(".tab_col.font_weight_normal").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "color", "red", true); - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "fontWeight", "normal", false); - }}); - - // tab row font bold - document.querySelectorAll(".tab_col.font_weight_bold").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "color", "red", true); - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "fontWeight", "bold", false); - }}); - - // tab row font style normal - document.querySelectorAll(".tab_col.font_style_normal").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "color", "red", true); - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "fontStyle", "normal", false); - }}); - // tab row font style italic - document.querySelectorAll(".tab_col.font_style_italic").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "color", "red", true); - AddRedStylePreview("tab_title" + this.parentNode.id.substr(1), "fontStyle", "italic", false); - }}); - - - // tab border - document.querySelectorAll(".tab_col.color_border").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_header" + this.parentNode.id.substr(1), "border", "1px solid red", true); - }}); - - // tab background - document.querySelectorAll(".tab_col.color_bucket").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("tab_header" + this.parentNode.id.substr(1), "backgroundColor", "red", true); - }}); - - // scrollbars hover - document.getElementById("scrollbar_thumb_hover").onmouseenter = function(event) { - AddBlueBackgroundPreview("group_scrollbar_thumb", true); - AddBlueBackgroundPreview("pin_list_scrollbar_thumb"); - } - - // scrollbars thumb - document.getElementById("scrollbar_thumb").onmouseenter = function(event) { - AddRedStylePreview("group_scrollbar_thumb", "backgroundColor", "red", true); - AddRedStylePreview("pin_list_scrollbar_thumb", "backgroundColor", "red"); - } - - - // scrollbars track - document.getElementById("scrollbar_track").onmouseenter = function(event) { - AddRedStylePreview("group_scrollbar", "backgroundColor", "red", true); - AddRedStylePreview("pin_list_scrollbar", "backgroundColor", "red"); - } - - - // tab_list scrollbars - document.querySelectorAll("#options_tab_list_scrollbar_width_up, #options_tab_list_scrollbar_width_down").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("group_scrollbar", "backgroundColor", "red", true); - AddRedStylePreview("group_scrollbar_thumb", "backgroundColor", "red"); - }}); - - // pin_list scrollbars - document.querySelectorAll("#options_tab_list_scrollbar_height_up, #options_tab_list_scrollbar_height_down").forEach(function(s){s.onmouseenter = function(event) { - AddRedStylePreview("pin_list_scrollbar", "backgroundColor", "red", true); - AddRedStylePreview("pin_list_scrollbar_thumb", "backgroundColor", "red"); - }}); - - - - // folder icon open - document.getElementById("folder_icon_open").onmouseenter = function(event) { - AddRedStylePreview("fopf_folder1", "backgroundColor", "red", true); - } - // folder icon closed - document.getElementById("folder_icon_closed").onmouseenter = function(event) { - AddRedStylePreview("fopf_folder2", "backgroundColor", "red", true); - } - // folder icon hover - document.getElementById("folder_icon_hover").onmouseenter = function(event) { - AddBlueBackgroundPreview("fopf_folder3", true); - } - - - // tab expand closed - document.getElementById("expand_closed_background").onmouseenter = function(event) { - AddRedStylePreview("exp14", "backgroundColor", "red", true); - } - // tab expand hover - document.getElementById("expand_hover_background").onmouseenter = function(event) { - AddBlueBackgroundPreview("exp16", true); - } - // tab expand open - document.getElementById("expand_open_background").onmouseenter = function(event) { - AddRedStylePreview("exp5", "backgroundColor", "red", true); - } - - - - - - // drag indicator - document.getElementById("drag_indicator").onmouseenter = function(event) { - AddRedStylePreview("di19", "borderBottom", "1px solid red", true); - } - - - // close x - document.getElementById("close_x").onmouseenter = function(event) { - AddRedStylePreview("close_img11", "backgroundColor", "red", true); - } - // close x hover - document.getElementById("close_hover_x").onmouseenter = function(event) { - AddBlueBackgroundPreview("close_img13", true); - } - // close border hover - document.getElementById("close_hover_border").onmouseenter = function(event) { - AddBlueBorderPreview("close13", true); - } - // close border hover - document.getElementById("close_hover_background").onmouseenter = function(event) { - AddBlueBackgroundPreview("close13", true); - } - - - - - // group button hover - document.getElementById("group_list_button_hover_background").onmouseenter = function(event) { - AddBlueBackgroundPreview("_tab_list2", true); - } - // group buttons borders - document.getElementById("group_list_borders").onmouseenter = function(event) { - AddRedStylePreview("toolbar_groups_block", "borderRight", "1px solid red", true); - AddRedStylePreview("_tab_list", "border", "1px solid red"); - } - // group buttons font - document.getElementById("group_list_default_font_color").onmouseenter = function(event) { - AddRedStylePreview("_gtetab_list", "color", "red", true); - AddRedStylePreview("_gtetab_list2", "color", "red"); - } - // group list background - document.getElementById("group_list_background").onmouseenter = function(event) { - AddRedStylePreview("toolbar_groups_block", "backgroundColor", "red", true); - } - // tab_list background - document.getElementById("tab_list_background").onmouseenter = function(event) { - AddRedStylePreview("tab_list", "backgroundColor", "red", true); - AddRedStylePreview("_tab_list", "backgroundColor", "red"); - } - - - - - - // menu hover border - document.getElementById("tabs_menu_hover_border").onmouseenter = function(event) { - AddRedStylePreview("menu_hover_sample", "border", "1px solid red", true); - } - // menu hover background - document.getElementById("tabs_menu_hover_background").onmouseenter = function(event) { - AddRedStylePreview("menu_hover_sample", "backgroundColor", "red", true); - } - - // menu separator - document.getElementById("tabs_menu_separator").onmouseenter = function(event) { - AddRedStylePreview("menu_separator1", "backgroundColor", "red", true); - AddRedStylePreview("menu_separator2", "backgroundColor", "red"); - } - - // menu font - document.getElementById("tabs_menu_font").onmouseenter = function(event) { - AddRedStylePreview("menu_hover_sample", "color", "red", true); - AddRedStylePreview("menu_sample1", "color", "red"); - AddRedStylePreview("menu_sample2", "color", "red"); - } - - - // menu border - document.getElementById("tabs_menu_border").onmouseenter = function(event) { - AddRedStylePreview("tabs_menu", "border", "1px solid red", true); - } - - // menu background - document.getElementById("tabs_menu_background").onmouseenter = function(event) { - AddRedStylePreview("tabs_menu", "backgroundColor", "red", true); - } - - - -// --------------------------------------COLOR PICKER--------------------------------------------------------------------- - - // change fonts weight && style - document.querySelectorAll(".font_weight_normal, .font_weight_bold, .font_style_normal, .font_style_italic").forEach(function(s){s.onmousedown = function(event) { - event.stopPropagation(); - // if this.classList.contains("font_weight_normal") || this.classList.contains("font_style_normal") - let FontStyle = "normal"; - if (this.classList.contains("font_weight_bold")) { - FontStyle = "bold"; - } - if (this.classList.contains("font_style_italic")) { - FontStyle = "italic"; - } - SelectedTheme["ColorsSet"][this.id] = FontStyle; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - }}); - - // show color picker - document.querySelectorAll(".pick_col").forEach(function(s){s.onclick = function(event) {if (event.which == 1) { - RemovePreview(); - event.stopPropagation(); - let bod = document.getElementById("body"); - let color = window.getComputedStyle(bod, null).getPropertyValue("--"+this.id); - let ColorPicker = document.getElementById("color_picker"); - ColorPicker.setAttribute("PickColor", this.id); - ColorPicker.value = color.replace(" ", ""); - ColorPicker.click(); - }}}); - - document.getElementById("color_picker").oninput = function(event) { - let ColorPicker = document.getElementById("color_picker"); - SelectedTheme["ColorsSet"][this.getAttribute("PickColor")] = ColorPicker.value; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - // SaveTheme(document.getElementById("theme_list").value); - } - document.getElementById("color_picker").onchange = function(event) { - SaveTheme(document.getElementById("theme_list").value); - } - - -// ----------------------------------EVENTS FOR CHECKBOXES AND DROPDOWN MENUS--------------------------------------------- - - // set checkbox options on/off and save - document.querySelectorAll(".bg_opt").forEach(function(s){s.onclick = function(event) {if (event.which == 1) { - opt[this.id] = this.checked ? true : false; - if (this.checked) { - if (this.id == "never_show_close") { - document.getElementById("always_show_close").disabled = true; - } - if (this.id == "promote_children") { - document.getElementById("promote_children_in_first_child").disabled = false; - } - } else { - if (this.id == "never_show_close") { - document.getElementById("always_show_close").disabled = false; - } - if (this.id == "promote_children") { - document.getElementById("promote_children_in_first_child").disabled = true; - } - } - SavePreferences(); - if (this.id == "show_toolbar") { - SaveToolbar(); - RefreshFields(); - - - // setTimeout(function() { - // chrome.runtime.sendMessage({command: "reload_toolbar", toolbar: toolbar, opt: opt}); - // }, 300); - } - }}}); - - - // options that need reload - document.onclick = function(event) {if (event.which == 1) { - if (event.target.id == "syncro_tabbar_tabs_order" || event.target.id == "allow_pin_close" || event.target.id == "switch_with_scroll" || event.target.id == "always_show_close" || event.target.id == "never_show_close" || event.target.id == "hide_other_groups_tabs_firefox" || - event.target.id == "collapse_other_trees" || event.target.id == "show_counter_tabs" || event.target.id == "show_counter_tabs_hints" || event.target.id == "syncro_tabbar_tabs_order" || event.target.id == "syncro_tabbar_groups_tabs_order" || event.target.id == "groups_toolbar_default") { - setTimeout(function() { - chrome.runtime.sendMessage({command: "reload_sidebar"}); - }, 50); - } - if (event.target.id == "groups_toolbar_default") { - chrome.runtime.sendMessage({command: "reload"}); - setTimeout(function() { - location.reload(); - }, 300); - } - }} - - // set dropdown menu options - for (let i = 0; i < DropDownList.length; i++) { - document.getElementById(DropDownList[i]).onchange = function(event) { - opt[this.id] = this.value; - RefreshFields(); - setTimeout(function() { - SavePreferences(); - // chrome.runtime.sendMessage({command: "reload_sidebar"}); - }, 50); - } - } - - // set tabs tree depth option - document.getElementById("max_tree_depth").oninput = function(event) { - opt.max_tree_depth = parseInt(this.value); - setTimeout(function() { - SavePreferences(); - }, 50); - } - - // set toolbar on/off and show/hide all toolbar options - // document.getElementById("show_toolbar").onclick = function(event) {if (event.which == 1) { - // SelectedTheme.ToolbarShow = this.checked ? true : false; - // RefreshFields(); - // SaveTheme(document.getElementById("theme_list").value); - // }} - - -// ------------------------------OTHER----------------------------------------------------------------------------------- - - // block system dragging - document.ondrop = function(event) { - event.preventDefault(); - } - document.ondragover = function(event) { - event.preventDefault(); - } - -// ------------------------------ADD REGEX FILTER------------------------------------------------------------------------- - - document.getElementById("add_tab_group_regex").onclick = AddRegexPair; - -// ----------------------------RESET TOOLBAR BUTTON----------------------------------------------------------------------- - - document.getElementById("options_reset_toolbar_button").onclick = function(event) {if (event.which == 1) { - - SetToolbarEvents(true, false, false, ""); - RemoveToolbarEditEvents(); - - - let unused_buttons = document.getElementById("toolbar_unused_buttons"); - while(unused_buttons.hasChildNodes()) { - unused_buttons.removeChild(unused_buttons.firstChild); - } - - RemoveToolbar(); - RecreateToolbar(DefaultToolbar); - SetToolbarEvents(false, false, true, "click"); - AddEditToolbarEditEvents(); - - SaveToolbar(); - - - }} - - -// --------------------------------------THEME BUTTONS-------------------------------------------------------------------- - - - // add new theme preset button - document.getElementById("options_add_theme_button").onclick = function(event) {if (event.which == 1) { - AddNewTheme(); - }} - - // remove theme preset button - document.getElementById("options_remove_theme_button").onclick = function(event) {if (event.which == 1) { - DeleteSelectedTheme(); - }} - - // select theme from list - document.getElementById("theme_list").onchange = function(event) { - LoadTheme(this.value, true); - chrome.storage.local.set({current_theme: this.value}); - } - - // import theme preset button - document.getElementById("options_import_theme_button").onclick = function(event) {if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".tt_theme"); - inputFile.onchange = function(event) { - ImportTheme(); - } - }} - - // export theme preset button - document.getElementById("options_export_theme_button").onclick = function(event) {if (event.which == 1) { - let ThemeList = document.getElementById("theme_list"); - if (ThemeList.options.length == 0) { - alert(chrome.i18n.getMessage("options_no_theme_to_export")); - } else { - SaveFile(ThemeList.options[ThemeList.selectedIndex].text, "tt_theme", SelectedTheme); - } - }} - - // rename theme preset button - document.getElementById("options_rename_theme_button").onclick = function(event) {if (event.which == 1) { - RenameSelectedTheme(); - }} - // get themes - document.getElementById("options_share_theme_link").onclick = function(event) {if (event.which == 1) { - chrome.tabs.create({url: "https://drive.google.com/drive/folders/0B3jXQpRtOfvSelFrTEVHZEx3Nms?usp=sharing"}); - }} - - -// -------------------------------INDENTATION ADJUSTMENT------------------------------------------------------------------ - - // change tabs size preset(down) - document.getElementById("options_tabs_indentation_down").onmousedown = function(event) { - let bod = document.getElementById("body"); - var indentation = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--children_padding_left")).replace("p","").replace("x","")); - if (indentation > 0) { - indentation--; - SelectedTheme["ColorsSet"]["children_padding_left"] = indentation+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - // change tabs size preset(up) - document.getElementById("options_tabs_indentation_up").onmousedown = function(event) { - let bod = document.getElementById("body"); - var indentation = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--children_padding_left")).replace("p","").replace("x","")); - if (indentation < 50) { - indentation++; - SelectedTheme["ColorsSet"]["children_padding_left"] = indentation+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - -// --------------------------TABS ROUNDNESS ADJUSTMENT-------------------------------------------------------------------- - - // change tabs roundness preset(down) - document.getElementById("options_tabs_roundness_down").onmousedown = function(event) { - let bod = document.getElementById("body"); - var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--tab_header_border_radius").replace("p","").replace("x",""))); - if (border_radius > 0) { - border_radius--; - SelectedTheme["ColorsSet"]["tab_header_border_radius"] = border_radius+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - // change tabs roundness preset(up) - document.getElementById("options_tabs_roundness_up").onmousedown = function(event) { - let bod = document.getElementById("body"); - var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--tab_header_border_radius")).replace("p","").replace("x","")); - if (border_radius < 25) { - border_radius++; - SelectedTheme["ColorsSet"]["tab_header_border_radius"] = border_radius+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - -// -------------------------------SIZE ADJUSTMENT------------------------------------------------------------------------- - - // set tabs margins - document.getElementById("tabs_margin_spacing").onchange = function(event) { - let size = "0"; - if (this[1].checked) { - size = "1"; - } else { - if (this[2].checked) { - size = "2"; - } - } - SelectedTheme["TabsMargins"] = size; - ApplyTabsMargins(size); - SaveTheme(document.getElementById("theme_list").value); - } - - - // change tabs size preset(down) - document.getElementById("options_tabs_size_down").onmousedown = function(event) { - if (SelectedTheme["TabsSizeSetNumber"] > 0) { - SelectedTheme["TabsSizeSetNumber"]--; - ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - // change tabs size preset(up) - document.getElementById("options_tabs_size_up").onmousedown = function(event) { - if (SelectedTheme["TabsSizeSetNumber"] < 4) { - SelectedTheme["TabsSizeSetNumber"]++; - ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - -// -------------------------------TABS SCROLLBAR SIZE ADJUSTMENT---------------------------------------------------------- - - // change tab list scrollbar preset(down) - document.getElementById("options_tab_list_scrollbar_width_down").onmousedown = function(event) { - let bod = document.getElementById("body"); - var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_width").replace("p","").replace("x",""))); - if (border_radius > 0) { - border_radius--; - SelectedTheme["ColorsSet"]["scrollbar_width"] = border_radius+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - // change tab list scrollbar preset(up) - document.getElementById("options_tab_list_scrollbar_width_up").onmousedown = function(event) { - let bod = document.getElementById("body"); - var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_width")).replace("p","").replace("x","")); - if (border_radius < 20) { - border_radius++; - SelectedTheme["ColorsSet"]["scrollbar_width"] = border_radius+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - // change pin list scrollbar preset(down) - document.getElementById("options_tab_list_scrollbar_height_down").onmousedown = function(event) { - let bod = document.getElementById("body"); - var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_height").replace("p","").replace("x",""))); - if (border_radius > 0) { - border_radius--; - SelectedTheme["ColorsSet"]["scrollbar_height"] = border_radius+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - // change pin list scrollbar preset(up) - document.getElementById("options_tab_list_scrollbar_height_up").onmousedown = function(event) { - let bod = document.getElementById("body"); - var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_height")).replace("p","").replace("x","")); - if (border_radius < 20) { - border_radius++; - SelectedTheme["ColorsSet"]["scrollbar_height"] = border_radius+"px"; - ApplyColorsSet(SelectedTheme["ColorsSet"]); - SaveTheme(document.getElementById("theme_list").value); - } - } - - - -// ----------------------EXPORT DEBUG LOG--------------------------------------------------------------------------------- - document.getElementById("options_export_debug").onclick = function(event) {if (event.which == 1) { - chrome.storage.local.get(null, function(storage) { - SaveFile("TreeTabs", "log", storage.debug_log); - }); - }} - -// ----------------------IMPORT DEBUG LOG---------------------------------------------------------------------------- - document.getElementById("options_print_debug").onclick = function(event) {if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".log"); - inputFile.onchange = function(event) { - let file = document.getElementById("file_import"); - let fr = new FileReader(); - if (file.files[0] == undefined) return; - fr.readAsText(file.files[file.files.length - 1]); - fr.onload = function() { - let data = fr.result; - file.parentNode.removeChild(file); - let LoadedData = JSON.parse(data); - // LoadedData.forEach(function(d){ - // console.log(d); - // }); - // LoadedData.forEach(function(d){ - console.log(LoadedData); - // }); - } - } - - }} - -// ----------------------CLEAR DATA BUTTON-------------------------------------------------------------------------------- - - // clear data - document.getElementById("options_clear_data").onclick = function(event) {if (event.which == 1) { - chrome.storage.local.clear(); - setTimeout(function() { - chrome.runtime.sendMessage({command: "reload"}); - chrome.runtime.sendMessage({command: "reload_sidebar"}); - location.reload(); - }, 100); - }} + // --------------------------------DONATIONS----------------------------------------------------------------------------- + + document.getElementById("donate_paypal").onclick = function(event) { + if (event.which == 1) { + chrome.tabs.create({ url: "https://www.paypal.me/KarolJagiello/1" }); + } + } + document.getElementById("donate_litecoin").onclick = function(event) { + if (event.which == 1) { + copyStringToClipboard("LdQ1ZH1CgSneBbmmVBFrg5BFDFHZMa6h76"); + alert(chrome.i18n.getMessage("options_copied_wallet_address")); + } + } + document.getElementById("donate_bitcoin").onclick = function(event) { + if (event.which == 1) { + copyStringToClipboard("19Z8w1RJEcBQpKSdiWa3UTBuKRJUkr96nJ"); + alert(chrome.i18n.getMessage("options_copied_wallet_address")); + } + } + document.getElementById("donate_ethereum").onclick = function(event) { + if (event.which == 1) { + copyStringToClipboard("0x70B05eAD03bF08220d5aF4E1E868C351bfe145D6"); + alert(chrome.i18n.getMessage("options_copied_wallet_address")); + } + } + + // --------------------------------COPY VIVALDI LINK---------------------------------------------------------------------- + + document.getElementById("copy_vivaldi_url_for_web_panel").onclick = function(event) { + if (event.which == 1) { + copyStringToClipboard(chrome.runtime.getURL("sidebar.html")); + alert(chrome.i18n.getMessage("options_vivaldi_copied_url")); + } + } + + // --------------------------------ADD RED AND BLUE PREVIEWS--------------------------------------------------------------- + // document.body.onmousedown = function(event) { + // if (event.which == 1 && (event.target.id || event.target.classList)) { + // console.log(event.target); + // } + // } + + + document.querySelectorAll("#scrollbar_thumb_hover, #options_tab_list_scrollbar_height_up, #options_tab_list_scrollbar_height_down, #options_tab_list_scrollbar_width_up, #options_tab_list_scrollbar_width_down, .pick_col, .font_weight_normal, .font_weight_bold, .font_style_normal, .font_style_italic, #filter_box_font").forEach(function(s) { + s.onmouseleave = function(event) { + RemovePreview(); + } + }); + + // toolbar buttons + document.getElementById("button_background").onmouseenter = function(event) { + AddRedStylePreview("button_theme_plus", "backgroundColor", "red", true); + } + document.getElementById("button_hover_background").onmouseenter = function(event) { + AddBlueBackgroundPreview("button_theme_plus", true); + } + + document.getElementById("button_on_background").onmouseenter = function(event) { + AddRedStylePreview("button_theme_search", "backgroundColor", "red", true); + } + + document.getElementById("button_icons").onmouseenter = function(event) { + AddRedStylePreview("button_theme_plus_img", "backgroundColor", "red", true); + } + document.getElementById("button_icons_hover").onmouseenter = function(event) { + AddBlueBackgroundPreview("button_theme_plus_img", true); + } + document.getElementById("button_on_icons").onmouseenter = function(event) { + AddRedStylePreview("button_theme_search_img", "backgroundColor", "red", true); + } + + document.getElementById("button_border").onmouseenter = function(event) { + AddRedStylePreview("button_theme_plus", "border", "1px solid red", true); + } + document.getElementById("button_hover_border").onmouseenter = function(event) { + AddBlueBorderPreview("button_theme_plus", true); + } + + + // search box + document.getElementById("filter_box_font").onmouseenter = function(event) { + AddRedStylePreview("filter_box_theme", "color", "red", true); + } + document.getElementById("filter_box_background").onmouseenter = function(event) { + AddRedStylePreview("filter_box_theme", "backgroundColor", "red", true); + } + document.getElementById("filter_box_border").onmouseenter = function(event) { + AddRedStylePreview("filter_box_theme", "border", "1px solid red", true); + } + document.getElementById("filter_clear_icon").onmouseenter = function(event) { + AddRedStylePreview("button_filter_clear_theme", "backgroundColor", "red", true); + } + + // toolbar background + document.getElementById("toolbar_background").onmouseenter = function(event) { + AddRedStylePreview("toolbar_main_theme", "backgroundColor", "red", true); + } + + // shelf toolbar background + document.getElementById("toolbar_shelf_background").onmouseenter = function(event) { + AddRedStylePreview("toolbar_search_input_box_theme", "backgroundColor", "red", true); + } + + // toolbar's border + document.getElementById("toolbar_border_bottom").onmouseenter = function(event) { + AddRedStylePreview("button_theme_search", "border", "1px solid red", true); + AddRedStylePreview("toolbar_main_theme", "borderBottom", "1px solid red"); + AddRedStylePreview("toolbar_theme", "borderBottom", "1px solid red"); + } + + // shelf toolbar buttons + document.getElementById("button_shelf_background").onmouseenter = function(event) { + AddRedStylePreview("button_theme_pen", "backgroundColor", "red", true); + } + document.getElementById("button_shelf_hover_background").onmouseenter = function(event) { + AddBlueBackgroundPreview("button_theme_pen", true); + } + document.getElementById("button_shelf_icons").onmouseenter = function(event) { + AddRedStylePreview("button_theme_pen_img", "backgroundColor", "red", true); + } + document.getElementById("button_shelf_icons_hover").onmouseenter = function(event) { + AddBlueBackgroundPreview("button_theme_pen_img", true); + } + document.getElementById("button_shelf_border").onmouseenter = function(event) { + AddRedStylePreview("button_theme_pen", "border", "1px solid red", true); + } + document.getElementById("button_shelf_hover_border").onmouseenter = function(event) { + AddBlueBorderPreview("button_theme_pen", true); + } + + // pinned tab attention_background + document.getElementById("attention_background").onmouseenter = function(event) { + AddRedStylePreview("tab_header_10", "backgroundColor", "red", true); + document.getElementById("tab_header_10").style.animation = "none"; + } + + // pinned tab attention_border + document.getElementById("attention_border").onmouseenter = function(event) { + AddRedStylePreview("tab_header_10", "border", "1px solid red", true); + document.getElementById("tab_header_10").style.animation = "none"; + } + + // pin_list border bottom + document.getElementById("pin_list_border_bottom").onmouseenter = function(event) { + AddRedStylePreview("pin_list", "borderBottom", "1px solid red", true); + } + + // pin_list background + document.getElementById("pin_list_background").onmouseenter = function(event) { + AddRedStylePreview("pin_list", "backgroundColor", "red", true); + } + + + // tab row font_color + document.querySelectorAll(".tab_col.font_color").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true); + } + }); + + // tab row font not bold + document.querySelectorAll(".tab_col.font_weight_normal").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true); + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontWeight", "normal", false); + } + }); + + // tab row font bold + document.querySelectorAll(".tab_col.font_weight_bold").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true); + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontWeight", "bold", false); + } + }); + + // tab row font style normal + document.querySelectorAll(".tab_col.font_style_normal").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true); + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontStyle", "normal", false); + } + }); + // tab row font style italic + document.querySelectorAll(".tab_col.font_style_italic").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true); + AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontStyle", "italic", false); + } + }); + + + // tab border + document.querySelectorAll(".tab_col.color_border").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_header_" + this.parentNode.id.substr(1), "border", "1px solid red", true); + } + }); + + // tab background + document.querySelectorAll(".tab_col.color_bucket").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("tab_header_" + this.parentNode.id.substr(1), "backgroundColor", "red", true); + } + }); + + // scrollbars hover + document.getElementById("scrollbar_thumb_hover").onmouseenter = function(event) { + AddBlueBackgroundPreview("group_scrollbar_thumb", true); + AddBlueBackgroundPreview("pin_list_scrollbar_thumb"); + } + + // scrollbars thumb + document.getElementById("scrollbar_thumb").onmouseenter = function(event) { + AddRedStylePreview("group_scrollbar_thumb", "backgroundColor", "red", true); + AddRedStylePreview("pin_list_scrollbar_thumb", "backgroundColor", "red"); + } + + + // scrollbars track + document.getElementById("scrollbar_track").onmouseenter = function(event) { + AddRedStylePreview("group_scrollbar", "backgroundColor", "red", true); + AddRedStylePreview("pin_list_scrollbar", "backgroundColor", "red"); + } + + + // tab_list scrollbars + document.querySelectorAll("#options_tab_list_scrollbar_width_up, #options_tab_list_scrollbar_width_down").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("group_scrollbar", "backgroundColor", "red", true); + AddRedStylePreview("group_scrollbar_thumb", "backgroundColor", "red"); + } + }); + + // pin_list scrollbars + document.querySelectorAll("#options_tab_list_scrollbar_height_up, #options_tab_list_scrollbar_height_down").forEach(function(s) { + s.onmouseenter = function(event) { + AddRedStylePreview("pin_list_scrollbar", "backgroundColor", "red", true); + AddRedStylePreview("pin_list_scrollbar_thumb", "backgroundColor", "red"); + } + }); + + + + // folder icon open + document.getElementById("folder_icon_open").onmouseenter = function(event) { + AddRedStylePreview("folder_expand_f_folder1", "backgroundColor", "red", true); + } + // folder icon closed + document.getElementById("folder_icon_closed").onmouseenter = function(event) { + AddRedStylePreview("folder_expand_f_folder2", "backgroundColor", "red", true); + } + // folder icon hover + document.getElementById("folder_icon_hover").onmouseenter = function(event) { + AddBlueBackgroundPreview("folder_expand_f_folder3", true); + } + + + // tab expand closed + document.getElementById("expand_closed_background").onmouseenter = function(event) { + AddRedStylePreview("exp_14", "backgroundColor", "red", true); + } + // tab expand hover + document.getElementById("expand_hover_background").onmouseenter = function(event) { + AddBlueBackgroundPreview("exp_16", true); + } + // tab expand open + document.getElementById("expand_open_background").onmouseenter = function(event) { + AddRedStylePreview("exp_5", "backgroundColor", "red", true); + } + + + + + + // drag indicator + document.getElementById("drag_indicator").onmouseenter = function(event) { + AddRedStylePreview("drag_indicator_19", "borderBottom", "1px solid red", true); + } + + + // close x + document.getElementById("close_x").onmouseenter = function(event) { + AddRedStylePreview("close_img_11", "backgroundColor", "red", true); + } + // close x hover + document.getElementById("close_hover_x").onmouseenter = function(event) { + AddBlueBackgroundPreview("close_img_13", true); + } + // close border hover + document.getElementById("close_hover_border").onmouseenter = function(event) { + AddBlueBorderPreview("close_13", true); + } + // close border hover + document.getElementById("close_hover_background").onmouseenter = function(event) { + AddBlueBackgroundPreview("close_13", true); + } + + + + + // group button hover + document.getElementById("group_list_button_hover_background").onmouseenter = function(event) { + AddBlueBackgroundPreview("_tab_list2", true); + } + // group buttons borders + document.getElementById("group_list_borders").onmouseenter = function(event) { + AddRedStylePreview("toolbar_groups_block", "borderRight", "1px solid red", true); + AddRedStylePreview("_tab_list", "border", "1px solid red"); + } + // group buttons font + document.getElementById("group_list_default_font_color").onmouseenter = function(event) { + AddRedStylePreview("_gtetab_list", "color", "red", true); + AddRedStylePreview("_gtetab_list2", "color", "red"); + } + // group list background + document.getElementById("group_list_background").onmouseenter = function(event) { + AddRedStylePreview("toolbar_groups_block", "backgroundColor", "red", true); + } + // tab_list background + document.getElementById("tab_list_background").onmouseenter = function(event) { + AddRedStylePreview("tab_list", "backgroundColor", "red", true); + AddRedStylePreview("_tab_list", "backgroundColor", "red"); + } + + + + + + // menu hover border + document.getElementById("tabs_menu_hover_border").onmouseenter = function(event) { + AddRedStylePreview("menu_hover_sample", "border", "1px solid red", true); + } + // menu hover background + document.getElementById("tabs_menu_hover_background").onmouseenter = function(event) { + AddRedStylePreview("menu_hover_sample", "backgroundColor", "red", true); + } + + // menu separator + document.getElementById("tabs_menu_separator").onmouseenter = function(event) { + AddRedStylePreview("menu_separator1", "backgroundColor", "red", true); + AddRedStylePreview("menu_separator2", "backgroundColor", "red"); + } + + // menu font + document.getElementById("tabs_menu_font").onmouseenter = function(event) { + AddRedStylePreview("menu_hover_sample", "color", "red", true); + AddRedStylePreview("menu_sample1", "color", "red"); + AddRedStylePreview("menu_sample2", "color", "red"); + } + + + // menu border + document.getElementById("tabs_menu_border").onmouseenter = function(event) { + AddRedStylePreview("tabs_menu", "border", "1px solid red", true); + } + + // menu background + document.getElementById("tabs_menu_background").onmouseenter = function(event) { + AddRedStylePreview("tabs_menu", "backgroundColor", "red", true); + } + + + + // --------------------------------------COLOR PICKER--------------------------------------------------------------------- + + // change fonts weight && style + document.querySelectorAll(".font_weight_normal, .font_weight_bold, .font_style_normal, .font_style_italic").forEach(function(s) { + s.onmousedown = function(event) { + event.stopPropagation(); + // if this.classList.contains("font_weight_normal") || this.classList.contains("font_style_normal") + let FontStyle = "normal"; + if (this.classList.contains("font_weight_bold")) { + FontStyle = "bold"; + } + if (this.classList.contains("font_style_italic")) { + FontStyle = "italic"; + } + SelectedTheme["ColorsSet"][this.id] = FontStyle; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + }); + + // show color picker + document.querySelectorAll(".pick_col").forEach(function(s) { + s.onclick = function(event) { + if (event.which == 1) { + RemovePreview(); + event.stopPropagation(); + let bod = document.getElementById("body"); + let color = window.getComputedStyle(bod, null).getPropertyValue("--" + this.id); + let ColorPicker = document.getElementById("color_picker"); + ColorPicker.setAttribute("PickColor", this.id); + ColorPicker.value = color.replace(" ", ""); + ColorPicker.click(); + } + } + }); + + document.getElementById("color_picker").oninput = function(event) { + let ColorPicker = document.getElementById("color_picker"); + SelectedTheme["ColorsSet"][this.getAttribute("PickColor")] = ColorPicker.value; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + // Theme_SaveTheme(document.getElementById("theme_list").value); + } + document.getElementById("color_picker").onchange = function(event) { + Theme_SaveTheme(document.getElementById("theme_list").value); + } + + + // ----------------------------------EVENTS FOR CHECKBOXES AND DROPDOWN MENUS--------------------------------------------- + + // set checkbox options on/off and save + document.querySelectorAll(".bg_opt").forEach(function(s) { + s.onclick = function(event) { + if (event.which == 1) { + opt[this.id] = this.checked ? true : false; + if (this.checked) { + if (this.id == "never_show_close") { + document.getElementById("always_show_close").disabled = true; + } + if (this.id == "promote_children") { + document.getElementById("promote_children_in_first_child").disabled = false; + } + } else { + if (this.id == "never_show_close") { + document.getElementById("always_show_close").disabled = false; + } + if (this.id == "promote_children") { + document.getElementById("promote_children_in_first_child").disabled = true; + } + } + Preferences_SavePreferences(opt); + if (this.id == "show_toolbar") { + Toolbar_SaveToolbar(); + RefreshFields(); + + + // setTimeout(function() { + // chrome.runtime.sendMessage({command: "reload_toolbar", toolbar: toolbar, opt: opt}); + // }, 300); + } + } + } + }); + + + // options that need reload + document.onclick = function(event) { + if (event.which == 1) { + if (event.target.id == "syncro_tabbar_tabs_order" || event.target.id == "allow_pin_close" || event.target.id == "switch_with_scroll" || event.target.id == "always_show_close" || event.target.id == "never_show_close" || event.target.id == "hide_other_groups_tabs_firefox" || + event.target.id == "collapse_other_trees" || event.target.id == "show_counter_tabs" || event.target.id == "show_counter_tabs_hints" || event.target.id == "syncro_tabbar_tabs_order" || event.target.id == "syncro_tabbar_groups_tabs_order" || event.target.id == "groups_toolbar_default") { + setTimeout(function() { + chrome.runtime.sendMessage({ command: "reload_sidebar" }); + }, 50); + } + if (event.target.id == "groups_toolbar_default") { + chrome.runtime.sendMessage({ command: "reload" }); + setTimeout(function() { + location.reload(); + }, 300); + } + } + } + + // set dropdown menu options + for (let i = 0; i < DropDownList.length; i++) { + document.getElementById(DropDownList[i]).onchange = function(event) { + opt[this.id] = this.value; + RefreshFields(); + setTimeout(function() { + Preferences_SavePreferences(opt); + // chrome.runtime.sendMessage({command: "reload_sidebar"}); + }, 50); + } + } + + // set tabs tree depth option + document.getElementById("max_tree_depth").oninput = function(event) { + opt.max_tree_depth = parseInt(this.value); + setTimeout(function() { + Preferences_SavePreferences(opt); + }, 50); + } + + // set toolbar on/off and show/hide all toolbar options + // document.getElementById("show_toolbar").onclick = function(event) {if (event.which == 1) { + // SelectedTheme.ToolbarShow = this.checked ? true : false; + // RefreshFields(); + // Theme_SaveTheme(document.getElementById("theme_list").value); + // }} + + + // ------------------------------OTHER----------------------------------------------------------------------------------- + + // block system dragging + document.ondrop = function(event) { + event.preventDefault(); + } + document.ondragover = function(event) { + event.preventDefault(); + } + + // ------------------------------ADD REGEX FILTER------------------------------------------------------------------------- + + document.getElementById("add_tab_group_regex").onclick = AddRegexPair; + + // ----------------------------RESET TOOLBAR BUTTON----------------------------------------------------------------------- + + document.getElementById("options_reset_toolbar_button").onclick = function(event) { + if (event.which == 1) { + + Toolbar_SetToolbarEvents(true, false, false, "", false, false); + RemoveToolbarEditEvents(); + + + let unused_buttons = document.getElementById("toolbar_unused_buttons"); + while (unused_buttons.hasChildNodes()) { + unused_buttons.removeChild(unused_buttons.firstChild); + } + + Toolbar_RemoveToolbar(); + Toolbar_RecreateToolbar(DefaultToolbar); + Toolbar_SetToolbarEvents(false, false, true, "click", false, true); + AddEditToolbarEditEvents(); + + Toolbar_SaveToolbar(); + + + } + } + + + // --------------------------------------THEME BUTTONS-------------------------------------------------------------------- + + + // add new theme preset button + document.getElementById("options_add_theme_button").onclick = function(event) { + if (event.which == 1) { + Theme_AddNewTheme(); + } + } + + // remove theme preset button + document.getElementById("options_remove_theme_button").onclick = function(event) { + if (event.which == 1) { + Theme_DeleteSelectedTheme(); + } + } + + // select theme from list + document.getElementById("theme_list").onchange = function(event) { + Theme_LoadTheme(this.value, true); + chrome.storage.local.set({ current_theme: this.value }); + } + + // import theme preset button + document.getElementById("options_import_theme_button").onclick = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".tt_theme"); + inputFile.onchange = function(event) { + Theme_ImportTheme(); + } + } + } + + // export theme preset button + document.getElementById("options_export_theme_button").onclick = function(event) { + if (event.which == 1) { + let ThemeList = document.getElementById("theme_list"); + if (ThemeList.options.length == 0) { + alert(chrome.i18n.getMessage("options_no_theme_to_export")); + } else { + File_SaveFile(ThemeList.options[ThemeList.selectedIndex].text, "tt_theme", SelectedTheme); + } + } + } + + // rename theme preset button + document.getElementById("options_rename_theme_button").onclick = function(event) { + if (event.which == 1) { + Theme_RenameSelectedTheme(); + } + } + // get themes + document.getElementById("options_share_theme_link").onclick = function(event) { + if (event.which == 1) { + chrome.tabs.create({ url: "https://drive.google.com/drive/folders/0B3jXQpRtOfvSelFrTEVHZEx3Nms?usp=sharing" }); + } + } + + + // -------------------------------INDENTATION ADJUSTMENT------------------------------------------------------------------ + + // change tabs size preset(down) + document.getElementById("options_tabs_indentation_down").onmousedown = function(event) { + let bod = document.getElementById("body"); + var indentation = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--children_padding_left")).replace("p", "").replace("x", "")); + if (indentation > 0) { + indentation--; + SelectedTheme["ColorsSet"]["children_padding_left"] = indentation + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // change tabs size preset(up) + document.getElementById("options_tabs_indentation_up").onmousedown = function(event) { + let bod = document.getElementById("body"); + var indentation = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--children_padding_left")).replace("p", "").replace("x", "")); + if (indentation < 50) { + indentation++; + SelectedTheme["ColorsSet"]["children_padding_left"] = indentation + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + + // --------------------------TABS ROUNDNESS ADJUSTMENT-------------------------------------------------------------------- + + // change tabs roundness preset(down) + document.getElementById("options_tabs_roundness_down").onmousedown = function(event) { + let bod = document.getElementById("body"); + var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--tab_header_border_radius").replace("p", "").replace("x", ""))); + if (border_radius > 0) { + border_radius--; + SelectedTheme["ColorsSet"]["tab_header_border_radius"] = border_radius + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // change tabs roundness preset(up) + document.getElementById("options_tabs_roundness_up").onmousedown = function(event) { + let bod = document.getElementById("body"); + var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--tab_header_border_radius")).replace("p", "").replace("x", "")); + if (border_radius < 25) { + border_radius++; + SelectedTheme["ColorsSet"]["tab_header_border_radius"] = border_radius + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // -------------------------------SIZE ADJUSTMENT------------------------------------------------------------------------- + + // set tabs margins + document.getElementById("tabs_margin_spacing").onchange = function(event) { + let size = "0"; + if (this[1].checked) { + size = "1"; + } else { + if (this[2].checked) { + size = "2"; + } + } + SelectedTheme["TabsMargins"] = size; + Theme_ApplyTabsMargins(size); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + + + // change tabs size preset(down) + document.getElementById("options_tabs_size_down").onmousedown = function(event) { + if (SelectedTheme["TabsSizeSetNumber"] > 0) { + SelectedTheme["TabsSizeSetNumber"]--; + Theme_ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // change tabs size preset(up) + document.getElementById("options_tabs_size_up").onmousedown = function(event) { + if (SelectedTheme["TabsSizeSetNumber"] < 5) { + SelectedTheme["TabsSizeSetNumber"]++; + Theme_ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + + // -------------------------------TABS SCROLLBAR SIZE ADJUSTMENT---------------------------------------------------------- + + // change tab list scrollbar preset(down) + document.getElementById("options_tab_list_scrollbar_width_down").onmousedown = function(event) { + let bod = document.getElementById("body"); + var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_width").replace("p", "").replace("x", ""))); + if (border_radius > 0) { + border_radius--; + SelectedTheme["ColorsSet"]["scrollbar_width"] = border_radius + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // change tab list scrollbar preset(up) + document.getElementById("options_tab_list_scrollbar_width_up").onmousedown = function(event) { + let bod = document.getElementById("body"); + var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_width")).replace("p", "").replace("x", "")); + if (border_radius < 20) { + border_radius++; + SelectedTheme["ColorsSet"]["scrollbar_width"] = border_radius + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // change pin list scrollbar preset(down) + document.getElementById("options_tab_list_scrollbar_height_down").onmousedown = function(event) { + let bod = document.getElementById("body"); + var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_height").replace("p", "").replace("x", ""))); + if (border_radius > 0) { + border_radius--; + SelectedTheme["ColorsSet"]["scrollbar_height"] = border_radius + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + // change pin list scrollbar preset(up) + document.getElementById("options_tab_list_scrollbar_height_up").onmousedown = function(event) { + let bod = document.getElementById("body"); + var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_height")).replace("p", "").replace("x", "")); + if (border_radius < 20) { + border_radius++; + SelectedTheme["ColorsSet"]["scrollbar_height"] = border_radius + "px"; + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + Theme_SaveTheme(document.getElementById("theme_list").value); + } + } + + + + // ----------------------EXPORT DEBUG LOG--------------------------------------------------------------------------------- + document.getElementById("options_export_debug").onclick = function(event) { + if (event.which == 1) { + chrome.storage.local.get(null, function(storage) { + File_SaveFile("TreeTabs", "log", storage.debug_log); + }); + } + } + + // ----------------------IMPORT DEBUG LOG---------------------------------------------------------------------------- + document.getElementById("options_print_debug").onclick = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".log"); + inputFile.onchange = function(event) { + let file = document.getElementById("file_import"); + let fr = new FileReader(); + if (file.files[0] == undefined) return; + fr.readAsText(file.files[file.files.length - 1]); + fr.onload = function() { + let data = fr.result; + file.parentNode.removeChild(file); + let LoadedData = JSON.parse(data); + // LoadedData.forEach(function(d) { + // console.log(d); + // }); + // LoadedData.forEach(function(d) { + console.log(LoadedData); + // }); + } + } + + } + } + + // ----------------------CLEAR DATA BUTTON-------------------------------------------------------------------------------- + + // clear data + document.getElementById("options_clear_data").onclick = function(event) { + if (event.which == 1) { + chrome.storage.local.clear(); + setTimeout(function() { + chrome.runtime.sendMessage({ command: "reload" }); + chrome.runtime.sendMessage({ command: "reload_sidebar" }); + location.reload(); + }, 100); + } + } } function RemoveToolbarEditEvents() { - document.querySelectorAll("#button_filter_clear").forEach(function(s){ - s.style.opacity = "0"; - }); - document.querySelectorAll(".button").forEach(function(s){ - s.removeAttribute("draggable"); - }); + document.querySelectorAll("#button_filter_clear").forEach(function(s) { + s.style.opacity = "0"; + }); + document.querySelectorAll(".button").forEach(function(s) { + s.removeAttribute("draggable"); + }); } // ----------------------EDIT TOOLBAR------------------------------------------------------------------------------------- function AddEditToolbarEditEvents() { - document.querySelectorAll("#button_filter_clear").forEach(function(s){ - s.style.opacity = "1"; - }); + document.querySelectorAll("#button_filter_clear").forEach(function(s) { + s.style.opacity = "1"; + }); - document.querySelectorAll("#toolbar_main .button_img, #toolbar_shelf_tools .button_img, #toolbar_shelf_groups .button_img, #toolbar_shelf_backup .button_img, #toolbar_shelf_folders .button_img").forEach(function(s){ - s.setAttribute("draggable", true); - s.onmousedown = function(event) { - if (event.which == 1) { - dragged_button = document.getElementById(this.parentNode.id); - } - } - s.ondragstart = function(event) { - event.dataTransfer.setData(" "," "); - event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); - } - // move (flip) buttons - s.ondragenter = function(event) { - if ((dragged_button.id == "button_tools" || dragged_button.id == "button_search" || dragged_button.id == "button_groups" || dragged_button.id == "button_backup" || dragged_button.id == "button_folders") && this.parentNode.parentNode.classList.contains("toolbar_shelf")) { - return; - } - let dragged_buttonIndex = Array.from(dragged_button.parentNode.children).indexOf(dragged_button); - let Index = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode); - - if (Index <= dragged_buttonIndex) { - InsterBeforeNode(dragged_button, this.parentNode); - } else { - InsterAfterNode(dragged_button, this.parentNode); - } - } - // save toolbar - s.ondragend = function(event) { - RemoveToolbarEditEvents(); - SaveToolbar(); - AddEditToolbarEditEvents(); - } - }); - - - document.querySelectorAll("#toolbar_main, .toolbar_shelf:not(#toolbar_search), #toolbar_unused_buttons").forEach(function(s){s.ondragenter = function(event) { - if ((dragged_button.id == "button_tools" || dragged_button.id == "button_search" || dragged_button.id == "button_groups" || dragged_button.id == "button_backup" || dragged_button.id == "button_folders") && this.classList.contains("toolbar_shelf")) { - return; - } - if (dragged_button.parentNode.id != this.id) { - this.appendChild(dragged_button); - } + document.querySelectorAll("#toolbar_main .button_img, #toolbar_shelf_tools .button_img, #toolbar_shelf_groups .button_img, #toolbar_shelf_backup .button_img, #toolbar_shelf_folders .button_img").forEach(function(s) { + s.setAttribute("draggable", true); + s.onmousedown = function(event) { + if (event.which == 1) { + dragged_button = document.getElementById(this.parentNode.id); + } + } + s.ondragstart = function(event) { + event.dataTransfer.setData(" ", " "); + event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); + } + // move (flip) buttons + s.ondragenter = function(event) { + if ((dragged_button.id == "button_tools" || dragged_button.id == "button_search" || dragged_button.id == "button_groups" || dragged_button.id == "button_backup" || dragged_button.id == "button_folders") && this.parentNode.parentNode.classList.contains("toolbar_shelf")) { + return; + } + let dragged_buttonIndex = Array.from(dragged_button.parentNode.children).indexOf(dragged_button); + let Index = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode); - }}); + if (Index <= dragged_buttonIndex) { + DOM_InsterBeforeNode(dragged_button, this.parentNode); + } else { + DOM_InsterAfterNode(dragged_button, this.parentNode); + } + } + // save toolbar + s.ondragend = function(event) { + RemoveToolbarEditEvents(); + Toolbar_SaveToolbar(); + AddEditToolbarEditEvents(); + } + }); + + + document.querySelectorAll("#toolbar_main, .toolbar_shelf:not(#toolbar_search), #toolbar_unused_buttons").forEach(function(s) { + s.ondragenter = function(event) { + if ((dragged_button.id == "button_tools" || dragged_button.id == "button_search" || dragged_button.id == "button_groups" || dragged_button.id == "button_backup" || dragged_button.id == "button_folders") && this.classList.contains("toolbar_shelf")) { + return; + } + if (dragged_button.parentNode.id != this.id) { + this.appendChild(dragged_button); + } + + } + }); } function copyStringToClipboard(string) { - function handler (event){ - event.clipboardData.setData('text/plain', string); - event.preventDefault(); - document.removeEventListener('copy', handler, true); - } - document.addEventListener('copy', handler, true); - document.execCommand('copy'); + function handler(event) { + event.clipboardData.setData('text/plain', string); + event.preventDefault(); + document.removeEventListener('copy', handler, true); + } + document.addEventListener('copy', handler, true); + document.execCommand('copy'); } // shrink or expand theme field function RefreshFields() { - if (document.getElementById("theme_list").options.length == 0) { - document.getElementById("field_theme").style.height = "45px"; - } else { - document.getElementById("field_theme").style.height = ""; - } - if (browserId == "F") { - document.querySelectorAll("#scrollbar_size_indicator, #scrollbar_thumb, #scrollbar_thumb_hover, #scrollbar_track").forEach(function(s){ - s.style.display = "none"; - }); - } else { - document.querySelectorAll("#firefox_option_hide_other_groups_tabs_firefox").forEach(function(s){ - s.style.display = "none"; - }); - } - if (browserId == "V") { - let WebPanelUrlBox = document.getElementById("url_for_web_panel"); - WebPanelUrlBox.value = (chrome.runtime.getURL("sidebar.html")); - WebPanelUrlBox.setAttribute("readonly", true); - document.getElementById("field_vivaldi").style.display = "block"; - } - if (document.getElementById("show_toolbar").checked) { - document.querySelectorAll("#options_available_buttons, #sample_toolbar_block, #options_reset_toolbar_button").forEach(function(s){ - s.style.display = ""; - }); - document.getElementById("options_toolbar_look").style.display = ""; - document.getElementById("field_show_toolbar").style.height = ""; - } else{ - document.querySelectorAll("#options_available_buttons, #sample_toolbar_block, #options_reset_toolbar_button").forEach(function(s){ - s.style.display = "none"; - }); - document.getElementById("options_toolbar_look").style.display = "none"; - document.getElementById("field_show_toolbar").style.height = "6"; - } - - - if (document.getElementById("append_child_tab").value == "after") { - document.getElementById("append_child_tab_after_limit_dropdown").style.display = "none"; - document.getElementById("options_append_orphan_tab_as_child").style.display = "none"; + if (document.getElementById("theme_list").options.length == 0) { + document.getElementById("field_theme").style.height = "45px"; + } else { + document.getElementById("field_theme").style.height = ""; + } + if (browserId == "F") { + document.querySelectorAll("#scrollbar_size_indicator, #scrollbar_thumb, #scrollbar_thumb_hover, #scrollbar_track").forEach(function(s) { + s.style.display = "none"; + }); + } else { + document.querySelectorAll("#firefox_option_hide_other_groups_tabs_firefox").forEach(function(s) { + s.style.display = "none"; + }); + } + if (browserId == "V") { + let WebPanelUrlBox = document.getElementById("url_for_web_panel"); + WebPanelUrlBox.value = (chrome.runtime.getURL("sidebar.html")); + WebPanelUrlBox.setAttribute("readonly", true); + document.getElementById("field_vivaldi").style.display = "block"; + } + if (document.getElementById("show_toolbar").checked) { + document.querySelectorAll("#options_available_buttons, #sample_toolbar_block, #options_reset_toolbar_button").forEach(function(s) { + s.style.display = ""; + }); + document.getElementById("options_toolbar_look").style.display = ""; + document.getElementById("field_show_toolbar").style.height = ""; + } else { + document.querySelectorAll("#options_available_buttons, #sample_toolbar_block, #options_reset_toolbar_button").forEach(function(s) { + s.style.display = "none"; + }); + document.getElementById("options_toolbar_look").style.display = "none"; + document.getElementById("field_show_toolbar").style.height = "6"; + } - if (opt.append_child_tab == "after" && opt.append_orphan_tab == "as_child") { - opt.append_orphan_tab = "after_active"; - document.getElementById("append_orphan_tab").value = "after_active"; - SavePreferences(); - } - - } else { - document.getElementById("append_child_tab_after_limit_dropdown").style.display = ""; - document.getElementById("options_append_orphan_tab_as_child").style.display = ""; - } + + if (document.getElementById("append_child_tab").value == "after") { + document.getElementById("append_child_tab_after_limit_dropdown").style.display = "none"; + document.getElementById("options_append_orphan_tab_as_child").style.display = "none"; + + if (opt.append_child_tab == "after" && opt.append_orphan_tab == "as_child") { + opt.append_orphan_tab = "after_active"; + document.getElementById("append_orphan_tab").value = "after_active"; + Preferences_SavePreferences(opt); + } + + } else { + document.getElementById("append_child_tab_after_limit_dropdown").style.display = ""; + document.getElementById("options_append_orphan_tab_as_child").style.display = ""; + } } function RefreshGUI() { - let button_filter_type = document.getElementById("button_filter_type"); - if (button_filter_type != null) { - button_filter_type.classList.add("url"); - button_filter_type.classList.remove("title"); - } - if (document.querySelector(".on") != null) { - document.getElementById("toolbar").style.height = "53px"; - } else { - document.getElementById("toolbar").style.height = "26px"; - } + let button_filter_type = document.getElementById("button_filter_type"); + if (button_filter_type != null) { + button_filter_type.classList.add("url"); + button_filter_type.classList.remove("title"); + } + if (document.querySelector(".on") != null) { + document.getElementById("toolbar").style.height = "53px"; + } else { + document.getElementById("toolbar").style.height = "26px"; + } } +function AppendSampleTabs() { + + // folders + Folders_AddNewFolder({ folderId: "f_folder1", ParentId: "°tab_list", Name: labels.noname_group, Index: 0, ExpandState: "o", SkipSetEvents: true, AdditionalClass: "o" }); + Folders_AddNewFolder({ folderId: "f_folder2", ParentId: "f_folder1", Name: labels.noname_group, Index: 0, ExpandState: "c", SkipSetEvents: true, AdditionalClass: "c" }); + Folders_AddNewFolder({ folderId: "f_folder3", ParentId: "f_folder1", Name: labels.noname_group, Index: 0, ExpandState: "c", SkipSetEvents: true, AdditionalClass: "c" }); -// dummy functions -function BindTabsSwitchingToMouseWheel() {} -function GetFaviconAndTitle() {} -function RefreshMediaIcon() {} -function SetActiveTab() {} -function RefreshCounters() {} -function RefreshExpandStates() {} -function Loadi18n() {} \ No newline at end of file + // pins + tt.tabs["0"] = new Tabs_ttTab({ tab: { id: 0, pinned: true, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true }); + tt.tabs["1"] = new Tabs_ttTab({ tab: { id: 1, pinned: true, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true }); + tt.tabs["10"] = new Tabs_ttTab({ tab: { id: 10, pinned: true, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("10").classList.add("attention"); + + // regular tabs + tt.tabs["2"] = new Tabs_ttTab({ tab: { id: 2, pinned: false, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, addCounter: true, SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_2").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal"); + + tt.tabs["11"] = new Tabs_ttTab({ tab: { id: 11, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_11").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_hover"); + document.getElementById("tab_header_11").classList.add("tab_header_hover"); + document.getElementById("tab_header_11").classList.add("close_show"); + + tt.tabs["12"] = new Tabs_ttTab({ tab: { id: 12, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_12").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_selected"); + + tt.tabs["13"] = new Tabs_ttTab({ tab: { id: 13, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_13").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_selected_hover"); + document.getElementById("tab_header_13").classList.add("tab_header_hover") + document.getElementById("tab_header_13").classList.add("close_show"); + document.getElementById("close_13").classList.add("close_hover"); + + // regular active tabs + tt.tabs["3"] = new Tabs_ttTab({ tab: { id: 3, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_3").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active"); + + tt.tabs["15"] = new Tabs_ttTab({ tab: { id: 15, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_15").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_hover"); + document.getElementById("tab_header_15").classList.add("tab_header_hover"); + + tt.tabs["14"] = new Tabs_ttTab({ tab: { id: 14, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "c selected active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_14").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_selected"); + + tt.tabs["16"] = new Tabs_ttTab({ tab: { id: 16, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "c selected active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_16").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_selected_hover"); + document.getElementById("tab_header_16").classList.add("tab_header_hover"); + document.getElementById("exp_16").classList.add("hover"); + + // discarded tabs + tt.tabs["5"] = new Tabs_ttTab({ tab: { id: 5, pinned: false, active: false, discarded: true }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_5").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded"); + + tt.tabs["17"] = new Tabs_ttTab({ tab: { id: 17, pinned: false, active: false, discarded: true }, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_17").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_hover"); + document.getElementById("tab_header_17").classList.add("tab_header_hover"); + + tt.tabs["19"] = new Tabs_ttTab({ tab: { id: 19, pinned: false, active: false, discarded: true }, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected highlighted_drop_target after", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_19").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_selected"); + + tt.tabs["20"] = new Tabs_ttTab({ tab: { id: 20, pinned: false, active: false, discarded: true }, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_20").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_selected_hover"); + document.getElementById("tab_header_20").classList.add("tab_header_hover"); + + // search result + tt.tabs["6"] = new Tabs_ttTab({ tab: { id: 6, pinned: false, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_6").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result"); + + tt.tabs["21"] = new Tabs_ttTab({ tab: { id: 21, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_21").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_hover"); + document.getElementById("tab_header_21").classList.add("tab_header_hover"); + + tt.tabs["22"] = new Tabs_ttTab({ tab: { id: 22, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_22").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_active"); + + tt.tabs["23"] = new Tabs_ttTab({ tab: { id: 23, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_23").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_active_hover"); + document.getElementById("tab_header_23").classList.add("tab_header_hover"); + + + // search result selected + tt.tabs["8"] = new Tabs_ttTab({ tab: { id: 8, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_8").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected"); + + tt.tabs["18"] = new Tabs_ttTab({ tab: { id: 18, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_18").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_hover"); + document.getElementById("tab_header_18").classList.add("tab_header_hover"); + + tt.tabs["25"] = new Tabs_ttTab({ tab: { id: 25, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_25").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_active"); + + + tt.tabs["26"] = new Tabs_ttTab({ tab: { id: 26, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_26").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_active_hover"); + document.getElementById("tab_header_26").classList.add("tab_header_hover"); + + // search result highlighted + tt.tabs["30"] = new Tabs_ttTab({ tab: { id: 30, pinned: false, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_30").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted"); + + tt.tabs["31"] = new Tabs_ttTab({ tab: { id: 31, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_31").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_hover"); + document.getElementById("tab_header_31").classList.add("tab_header_hover"); + + tt.tabs["32"] = new Tabs_ttTab({ tab: { id: 32, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_32").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_active"); + + tt.tabs["33"] = new Tabs_ttTab({ tab: { id: 33, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_33").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_active_hover"); + document.getElementById("tab_header_33").classList.add("tab_header_hover"); + + tt.tabs["34"] = new Tabs_ttTab({ tab: { id: 34, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_34").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected"); + + tt.tabs["35"] = new Tabs_ttTab({ tab: { id: 35, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_35").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_hover"); + document.getElementById("tab_header_35").classList.add("tab_header_hover"); + + tt.tabs["36"] = new Tabs_ttTab({ tab: { id: 36, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_36").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_active"); + + tt.tabs["37"] = new Tabs_ttTab({ tab: { id: 37, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true }); + document.getElementById("tab_title_37").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover"); + document.getElementById("tab_header_37").classList.add("tab_header_hover"); + + document.getElementById("_tab_list").classList.add("active_group"); + +} \ No newline at end of file diff --git a/options/options overwrite.css b/options/options_overwrite.css similarity index 100% rename from options/options overwrite.css rename to options/options_overwrite.css diff --git a/options/sample_tabs.js b/options/sample_tabs.js deleted file mode 100644 index ac3d56d..0000000 --- a/options/sample_tabs.js +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -function AppendSampleTabs() { - - // folders - AddNewFolder({folderId: "f_folder1", ParentId: "cftab_list", Name: labels.noname_group, Index: 0, ExpandState: "o", AdditionalClass: "o"}); - AddNewFolder({folderId: "f_folder2", ParentId: "f_folder1", Name: labels.noname_group, Index: 0, ExpandState: "c", AdditionalClass: "c"}); - AddNewFolder({folderId: "f_folder3", ParentId: "f_folder1", Name: labels.noname_group, Index: 0, ExpandState: "c", AdditionalClass: "c"}); - - - // pins - AppendTab({tab: {id: 0, pinned: true, active: false}, Append: true, SkipSetActive: true, SkipSetEvents: true}); - AppendTab({tab: {id: 1, pinned: true, active: false}, Append: true, SkipSetActive: true, SkipSetEvents: true}); - AppendTab({tab: {id: 10, pinned: true, active: false}, Append: true, SkipSetActive: true, SkipSetEvents: true}); - document.getElementById("10").classList.add("attention"); - - // regular tabs - AppendTab({tab: {id: 2, pinned: false, active: false}, Append: true, SkipSetActive: true, SkipSetEvents: true, addCounter: true}); - document.getElementById("tab_title2").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal"); - - AppendTab({tab: {id: 11, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true}); - document.getElementById("tab_title11").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_hover"); - document.getElementById("tab_header11").classList.add("tab_header_hover"); - document.getElementById("tab_header11").classList.add("close_show"); - - AppendTab({tab: {id: 12, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab"}); - document.getElementById("tab_title12").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_selected"); - - AppendTab({tab: {id: 13, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab"}); - document.getElementById("tab_title13").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_selected_hover"); - document.getElementById("tab_header13").classList.add("tab_header_hover") - document.getElementById("tab_header13").classList.add("close_show"); - document.getElementById("close13").classList.add("close_hover"); - - // regular active tabs - AppendTab({tab: {id: 3, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "active_tab"}); - document.getElementById("tab_title3").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active"); - - AppendTab({tab: {id: 15, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "active_tab"}); - document.getElementById("tab_title15").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_hover"); - document.getElementById("tab_header15").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 14, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "c selected_tab active_tab"}); - document.getElementById("tab_title14").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_selected"); - - AppendTab({tab: {id: 16, pinned: false, active: false}, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "c selected_tab active_tab"}); - document.getElementById("tab_title16").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_selected_hover"); - document.getElementById("tab_header16").classList.add("tab_header_hover"); - document.getElementById("exp16").classList.add("hover"); - - // discarded tabs - AppendTab({tab: {id: 5, pinned: false, active: false, discarded: true}, Append: true, SkipSetActive: true, SkipSetEvents: true}); - document.getElementById("tab_title5").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded"); - - AppendTab({tab: {id: 17, pinned: false, active: false, discarded: true}, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true}); - document.getElementById("tab_title17").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_hover"); - document.getElementById("tab_header17").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 19, pinned: false, active: false, discarded: true}, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab highlighted_drop_target after"}); - document.getElementById("tab_title19").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_selected"); - - AppendTab({tab: {id: 20, pinned: false, active: false, discarded: true}, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab"}); - document.getElementById("tab_title20").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_selected_hover"); - document.getElementById("tab_header20").classList.add("tab_header_hover"); - - // search result - AppendTab({tab: {id: 6, pinned: false, active: false}, Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered"}); - document.getElementById("tab_title6").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result"); - - AppendTab({tab: {id: 21, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered"}); - document.getElementById("tab_title21").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_hover"); - document.getElementById("tab_header21").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 22, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered active_tab"}); - document.getElementById("tab_title22").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_active"); - - AppendTab({tab: {id: 23, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered active_tab"}); - document.getElementById("tab_title23").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_active_hover"); - document.getElementById("tab_header23").classList.add("tab_header_hover"); - - - // search result selected - AppendTab({tab: {id: 8, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered"}); - document.getElementById("tab_title8").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected"); - - AppendTab({tab: {id: 18, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered"}); - document.getElementById("tab_title18").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_hover"); - document.getElementById("tab_header18").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 25, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered active_tab"}); - document.getElementById("tab_title25").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_active"); - - - AppendTab({tab: {id: 26, pinned: false, active: false}, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered active_tab"}); - document.getElementById("tab_title26").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_active_hover"); - document.getElementById("tab_header26").classList.add("tab_header_hover"); - - // search result highlighted - AppendTab({tab: {id: 30, pinned: false, active: false}, Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search"}); - document.getElementById("tab_title30").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted"); - - AppendTab({tab: {id: 31, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search"}); - document.getElementById("tab_title31").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_hover"); - document.getElementById("tab_header31").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 32, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search active_tab"}); - document.getElementById("tab_title32").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_active"); - - AppendTab({tab: {id: 33, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search active_tab"}); - document.getElementById("tab_title33").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_active_hover"); - document.getElementById("tab_header33").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 34, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered highlighted_search"}); - document.getElementById("tab_title34").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected"); - - AppendTab({tab: {id: 35, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered highlighted_search"}); - document.getElementById("tab_title35").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_hover"); - document.getElementById("tab_header35").classList.add("tab_header_hover"); - - AppendTab({tab: {id: 36, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered highlighted_search active_tab"}); - document.getElementById("tab_title36").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_active"); - - AppendTab({tab: {id: 37, pinned: false, active: false}, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected_tab filtered highlighted_search active_tab"}); - document.getElementById("tab_title37").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover"); - document.getElementById("tab_header37").classList.add("tab_header_hover"); - - document.getElementById("_tab_list").classList.add("active_group"); - -} \ No newline at end of file diff --git a/scripts/backup.js b/scripts/backup.js deleted file mode 100644 index 4743b11..0000000 --- a/scripts/backup.js +++ /dev/null @@ -1,580 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - - -function ExportGroup(groupId, filename, save_to_manager) { - let GroupToSave = { group: tt.groups[groupId], folders: {}, tabs: [] }; - document.querySelectorAll("#" + groupId + " .folder").forEach(function(s) { - if (tt.folders[s.id]) { - GroupToSave.folders[s.id] = tt.folders[s.id]; - } - }); - let Tabs = document.querySelectorAll("#" + groupId + " .tab"); - if (Tabs.length > 0) { - let lastId = parseInt(Tabs[Tabs.length - 1].id); - Tabs.forEach(function(s) { - chrome.tabs.get(parseInt(s.id), function(tab) { - if ((tab.url).startsWith("www") || (tab.url).startsWith("http") || (tab.url).startsWith("ftp")) { - (GroupToSave.tabs).push({ - id: tab.id, - parent: s.parentNode.parentNode.id, - index: Array.from(s.parentNode.children).indexOf(s), - expand: (s.classList.contains("c") ? "c" : (s.classList.contains("o") ? "o" : "")), - url: tab.url - }); - } - if (tab.id == lastId) { - if (filename) { - SaveFile(filename, "tt_group", GroupToSave); - } - if (save_to_manager) { - AddGroupToStorage(GroupToSave, true); - } - - if (opt.debug) { - log("f: ExportGroup, filename: "+filename+", groupId: "+groupId+", save_to_manager: "+save_to_manager); - } - } - }); - }); - } else { - if (filename) { - SaveFile(filename, "tt_group", GroupToSave); - } - if (save_to_manager) { - AddGroupToStorage(GroupToSave, true); - } - - if (opt.debug) { - log("f: ExportGroup, filename: "+filename+", groupId: "+groupId+", save_to_manager: "+save_to_manager); - } - - } -} - -function ImportGroup(recreate_group, save_to_manager) { - let file = document.getElementById("file_import"); - let fr = new FileReader(); - if (file.files[0] == undefined) return; - fr.readAsText(file.files[0]); - fr.onload = function() { - let data = fr.result; - let group = JSON.parse(data); - file.parentNode.removeChild(file); - if (recreate_group) { - RecreateGroup(group); - } - if (save_to_manager) { - AddGroupToStorage(group, true); - } - - if (opt.debug) { - log("f: ImportGroup, recreate_group: "+recreate_group+", save_to_manager: "+save_to_manager); - } - } -} - -function AddGroupToStorage(group, add_to_manager) { - chrome.storage.local.get(null, function(storage) { - if (storage["hibernated_groups"] == undefined) { - let hibernated_groups = []; - hibernated_groups.push(group); - chrome.storage.local.set({ hibernated_groups: hibernated_groups }); - if (add_to_manager) { - AddGroupToManagerList(group); - } - } else { - let hibernated_groups = storage["hibernated_groups"]; - hibernated_groups.push(group); - chrome.storage.local.set({ hibernated_groups: hibernated_groups }); - if (add_to_manager) { - AddGroupToManagerList(group); - } - } - if (opt.debug) { - log("f: AddGroupToStorage, add_to_manager: "+add_to_manager); - } - }); -} - - -function RecreateGroup(LoadedGroup) { - let NewFolders = {}; - let RefsTabs = {}; - let NewTabs = []; - let NewGroupId = AddNewGroup(LoadedGroup.group.name, LoadedGroup.group.font); - SetActiveGroup(NewGroupId, false, false); - for (var folder in LoadedGroup.folders) { - let newId = GenerateNewFolderID(); - NewFolders[folder] = { id: newId, parent: NewGroupId, index: (LoadedGroup.folders[folder].index), name: (LoadedGroup.folders[folder].name), expand: (LoadedGroup.folders[folder].expand) }; - } - for (var folder in NewFolders) { - if (NewFolders[LoadedGroup.folders[folder].parent]) { - NewFolders[folder].parent = NewFolders[LoadedGroup.folders[folder].parent].id; - } - } - (LoadedGroup.tabs).forEach(function(Tab) { - chrome.tabs.create({ url: Tab.url, active: false }, function(new_tab) { - if (new_tab) { - RefsTabs[Tab.id] = new_tab.id; - Tab.id = new_tab.id; - NewTabs.push(Tab); - setTimeout(function() { - let nt = document.getElementById(new_tab.id); - let NewGroupTabs = document.getElementById("ct" + NewGroupId); - if (nt != null && NewGroupTabs != null) { - NewGroupTabs.appendChild(nt); - } - }, 1000); - - if (browserId != "O") { - chrome.runtime.sendMessage({command: "discard_tab", tabId: new_tab.id}); - } - - } - if (NewTabs.length == LoadedGroup.tabs.length - 1) { - setTimeout(function() { - NewTabs.forEach(function(LTab) { - if (LTab.parent == LoadedGroup.group.id) { - LTab.parent = NewGroupId; - } - if (NewFolders[LTab.parent]) { - LTab.parent = NewFolders[LTab.parent].id; - } - if (RefsTabs[LTab.parent]) { - LTab.parent = RefsTabs[LTab.parent]; - } - }); - setTimeout(function() { - RcreateTreeStructure({}, NewFolders, NewTabs); - }, 1000); - setTimeout(function() { - RcreateTreeStructure({}, NewFolders, NewTabs); - }, 2000); - setTimeout(function() { - RcreateTreeStructure({}, NewFolders, NewTabs); - }, 5000); - }, 2000); - } - }); - }); - - if (opt.debug) { - log("f: RecreateGroup"); - } - -} - - -function ExportSession(name, save_to_file, save_to_manager, save_to_autosave_manager) { - chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(win) { - chrome.runtime.sendMessage({ command: "get_browser_tabs" }, function(t) { - let tabs = Object.assign({}, t); - chrome.runtime.sendMessage({ command: "get_windows" }, function(w) { - let windows = Object.assign({}, w); - let warn = true; - let ExportWindows = []; - win.forEach(function(CWin) { - if (CWin.tabs.length > 0) { - windows[CWin.id]["id"] = CWin.id; - windows[CWin.id]["tabs"] = []; - CWin.tabs.forEach(function(CTab) { - if ((CTab.url).startsWith("www") || (CTab.url).startsWith("http") || (CTab.url).startsWith("ftp")) { - windows[CWin.id]["tabs"].push({ id: CTab.id, url: CTab.url, parent: tabs[CTab.id].parent, index: tabs[CTab.id].index, expand: tabs[CTab.id].expand }); - } - }); - ExportWindows.push(windows[CWin.id]); - } - }); - if (save_to_file) { - SaveFile(name, "tt_session", ExportWindows); - } - if (save_to_manager) { - AddSessionToStorage(ExportWindows, name, true); - } - if (save_to_autosave_manager) { - AddAutosaveSessionToStorage(ExportWindows, name) - } - - if (opt.debug) { - log("f: ExportSession, name: "+name+", save_to_file: "+save_to_file+", save_to_manager: "+save_to_manager+", save_to_autosave_manager: "+save_to_autosave_manager); - } - - }); - }); - }); -} - -function ImportSession(recreate_session, save_to_manager, merge_session) { - let file = document.getElementById("file_import"); - let fr = new FileReader(); - if (file.files[0] == undefined) return; - fr.readAsText(file.files[file.files.length - 1]); - - fr.onload = function() { - let data = fr.result; - file.parentNode.removeChild(file); - - let LoadedSession = JSON.parse(data); - - if (opt.debug) { - log("f: ImportSession, recreate_session: "+recreate_session+", merge_session: "+merge_session); - } - - if (recreate_session) { - RecreateSession(LoadedSession); - } - if (merge_session) { - ImportMergeTabs(LoadedSession); - } - if (save_to_manager) { - AddSessionToStorage(LoadedSession, (file.files[file.files.length - 1].name).replace(".tt_session", ""), true); - } - } -} - -function AddSessionToStorage(session, name, add_to_manager) { - chrome.storage.local.get(null, function(storage) { - if (storage.saved_sessions == undefined) { - let saved_sessions = []; - saved_sessions.push({ name: name, session: session }); - chrome.storage.local.set({ saved_sessions: saved_sessions }); - if (add_to_manager) { - AddSessionToManagerList(saved_sessions[saved_sessions.length - 1]); - } - } else { - let saved_sessions = storage.saved_sessions; - saved_sessions.push({ name: name, session: session }); - - chrome.storage.local.set({ saved_sessions: saved_sessions }); - if (add_to_manager) { - AddSessionToManagerList(saved_sessions[saved_sessions.length - 1]); - } - } - - if (opt.debug) { - log("f: AddSessionToStorage, name: "+name+", add_to_manager: "+add_to_manager); - } - }); - -} - -function AddAutosaveSessionToStorage(session, name) { - chrome.storage.local.get(null, function(storage) { - if (storage.saved_sessions_automatic == undefined) { - let s = []; - s.push({ name: name, session: session }); - chrome.storage.local.set({ saved_sessions_automatic: s }); - } else { - let s = storage.saved_sessions_automatic; - s.unshift({ name: name, session: session }); - if (s[opt.autosave_max_to_keep]) { - s.splice(opt.autosave_max_to_keep, (s.length - opt.autosave_max_to_keep)); - } - chrome.storage.local.set({ saved_sessions_automatic: s }); - } - - if (opt.debug) { - log("f: AddAutosaveSessionToStorage, name: "+name); - } - }); -} - - -function RecreateSession(LoadedSession) { - let RefsTabs = {}; - - if (opt.debug) { - log("f: RecreateSession"); - } - - LoadedSession.forEach(function(LWin) { - let NewTabs = []; - let urls = []; - (LWin.tabs).forEach(function(Tab) { - urls.push(Tab.url); - NewTabs.push(Tab); - }); - - chrome.windows.create({ url: urls /* , discarded: true */ }, function(new_window) { - chrome.runtime.sendMessage({command: "save_groups", windowId: new_window.id, groups: LWin.groups}); - chrome.runtime.sendMessage({command: "save_folders", windowId: new_window.id, folders: LWin.folders}); - - for (let tInd = 0; tInd < new_window.tabs.length; tInd++) { - RefsTabs[NewTabs[tInd].id] = new_window.tabs[tInd].id; - NewTabs[tInd].id = new_window.tabs[tInd].id; - } - for (let tInd = 0; tInd < new_window.tabs.length; tInd++) { - if (RefsTabs[NewTabs[tInd].parent] != undefined) { - NewTabs[tInd].parent = RefsTabs[NewTabs[tInd].parent]; - } - } - for (let tInd = 0; tInd < new_window.tabs.length; tInd++) { - if (NewTabs[tInd].parent == "pin_list") { - chrome.tabs.update(new_window.tabs[tInd].id, { pinned: true }); - } - chrome.runtime.sendMessage({command: "update_tab", tabId: new_window.tabs[tInd].id, tab: {index: NewTabs[tInd].index, expand: NewTabs[tInd].expand, parent: NewTabs[tInd].parent}}); - - // if (browserId != "O") { - // chrome.runtime.sendMessage({command: "discard_tab", tabId: new_window.tabs[tInd].id}); - // } - } - - if (browserId != "O") { - setTimeout(function() { - chrome.runtime.sendMessage({command: "discard_window", windowId: new_window.id}); - }, urls.length * 300); - } - - }); - }); -} - -// groups and folders are in object, just like tt.groups and tt.folders, but tabs are in array of treetabs objects -function RcreateTreeStructure(groups, folders, tabs) { - if (opt.debug) { - log("f: RcreateTreeStructure"); - } - - ShowStatusBar({show: true, spinner: true, message: "Quick check and recreating structure..."}); - if (groups && Object.keys(groups).length > 0) { - for (var group in groups) { - tt.groups[groups[group].id] = Object.assign({}, groups[group]); - } - AppendGroups(tt.groups); - } - if (folders && Object.keys(folders).length > 0) { - for (var folder in folders) { - tt.folders[folders[folder].id] = Object.assign({}, folders[folder]); - } - AppendFolders(tt.folders); - } - let bgtabs = {}; - tabs.forEach(function(Tab) { - if (Tab.parent == "pin_list") { - chrome.tabs.update(Tab.id, { pinned: true }); - } - if (Tab.parent != "") { - let tb = document.getElementById(Tab.id); - let tbp = document.getElementById("ct" + Tab.parent); - if (tb && tbp) { - tbp.appendChild(tb); - if (Tab.expand != "") { - tb.classList.add(Tab.expand); - } - } - bgtabs[Tab.id] = { index: Tab.index, parent: Tab.parent, expand: Tab.expand }; - } - }); - RearrangeTreeTabs(bgtabs, false); - RearrangeFolders(true); - UpdateBgGroupsOrder(); - setTimeout(function() { - RefreshExpandStates(); - RefreshCounters(); - tt.schedule_update_data++; - SaveFolders(); - }, 3000); - // ShowStatusBar({show: true, spinner: true, message: "Sorting"}); - // ShowStatusBar(false, "Wait just a little more..."); -} - -function ImportMergeTabs(LoadedSession) { - if (opt.debug) { - log("f: ImportMergeTabs"); - } - let RefsWins = {}; - let RefsTabs = {}; - for (let LWI = 0; LWI < LoadedSession.length; LWI++) { // clear previous window ids - LoadedSession[LWI].id = ""; - } - ShowStatusBar({show: true, spinner: true, message: "Loaded Tree structure..."}); - chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(cw) { - for (let CWI = 0; CWI < cw.length; CWI++) { // Current Windows - - for (let LWI = 0; LWI < LoadedSession.length; LWI++) { // Loaded Windows - - if (LoadedSession[LWI].id == "") { - - let tabsMatch = 0; - for (let CTI = 0; CTI < cw[CWI].tabs.length; CTI++) { // loop Tabs of CWI Window - for (let LTI = 0; LTI < LoadedSession[LWI].tabs.length; LTI++) { // loop Tabs of Loaded Window - if (cw[CWI].tabs[CTI].url == LoadedSession[LWI].tabs[LTI].url) { - RefsTabs[LoadedSession[LWI].tabs[LTI].id] = cw[CWI].tabs[CTI].id; - LoadedSession[LWI].tabs[LTI].id = cw[CWI].tabs[CTI].id; - LoadedSession[LWI].tabs[LTI].url = ""; - tabsMatch++; - break; - } - } - } - if (opt.debug) { - log("f: ImportMergeTabs, tabsMatch: "+tabsMatch); - } - if (tabsMatch > LoadedSession[LWI].tabs.length * 0.6) { - LoadedSession[LWI].id = cw[CWI].id; - break; - } - - } - } - } - - LoadedSession.forEach(function(w) { - if (w.id == "") { // missing window, lets make one - if (opt.debug) { - log("f: ImportMergeTabs, missing window"); - } - - let NewTabs = []; - let urls = []; - (w.tabs).forEach(function(Tab) { - urls.push(Tab.url); - NewTabs.push(Tab); - }); - chrome.windows.create({ url: urls }, function(new_window) { - chrome.runtime.sendMessage({command: "save_groups", windowId: new_window.id, groups: w.groups}); - chrome.runtime.sendMessage({command: "save_folders", windowId: new_window.id, folders: w.folders}); - - for (let tInd = 0; tInd < new_window.tabs.length; tInd++) { - if (NewTabs[tInd]) { - RefsTabs[NewTabs[tInd].id] = new_window.tabs[tInd].id; - NewTabs[tInd].id = new_window.tabs[tInd].id; - } - } - for (let tInd = 0; tInd < NewTabs.length; tInd++) { - if (RefsTabs[NewTabs[tInd].parent] != undefined) { - NewTabs[tInd].parent = RefsTabs[NewTabs[tInd].parent]; - } - } - - for (let tInd = 0; tInd < new_window.tabs.length; tInd++) { - if (NewTabs[tInd].parent == "pin_list") { - chrome.tabs.update(new_window.tabs[tInd].id, { pinned: true }); - } - chrome.runtime.sendMessage({command: "update_tab", tabId: new_window.tabs[tInd].id, tab: {index: NewTabs[tInd].index, expand: NewTabs[tInd].expand, parent: NewTabs[tInd].parent}}); - } - - - let done = 3; - var Append = setInterval(function() { - chrome.runtime.sendMessage({command: "remote_update", groups: w.groups, folders: w.folders, tabs: NewTabs, windowId: w.id }); - if (done < 0) { clearInterval(Append); } - done--; - }, 2000); - }); - } else { // window exists, lets add missing tabs - let NewTabs = []; - let RefsTabs = {}; - - chrome.runtime.sendMessage({command: "get_folders", windowId: w.id}, function(f) { - chrome.runtime.sendMessage({command: "get_groups", windowId: w.id}, function(g) { - if (Object.keys(w.groups).length > 0) { - for (var group in w.groups) { - if (group != "" && group != "undefined" && w.groups[group] != undefined) { - g[w.groups[group].id] = Object.assign({}, w.groups[group]); - } - } - } - if (Object.keys(w.folders).length > 0) { - for (var folder in w.folders) { - if (folder != "" && folder != "undefined" && w.folders[folder] != undefined) { - w.folders[w.folders[folder].id] = Object.assign({}, w.folders[folder]); - } - } - } - - if (Object.keys(g).length > 0) { - for (var groupId in g) { - w.groups[groupId] = Object.assign({}, g[groupId]); - } - } - if (Object.keys(f).length > 0) { - for (var folderId in f) { - w.folders[folderId] = Object.assign({}, f[folderId]); - } - } - - chrome.runtime.sendMessage({command: "save_groups", windowId: w.id, groups: g}); - chrome.runtime.sendMessage({command: "save_folders", windowId: w.id, folders: f}); - chrome.runtime.sendMessage({ command: "remote_update", groups: w.groups, folders: w.folders, tabs: [], windowId: w.id }); - - if (w.id == tt.CurrentWindowId) { - RcreateTreeStructure(w.groups, w.folders, []); - } - - (w.tabs).forEach(function(Tab) { - if (Tab.url != "") { // missing tab, lets make one - chrome.tabs.create({ url: Tab.url, pinned: (Tab.parent == "pin_list" ? true : false), windowId: w.id }, function(tab) { - RefsTabs[Tab.id] = tab.id; - Tab.id = tab.id; - NewTabs.push(Tab); - chrome.runtime.sendMessage({command: "update_tab", tabId: tab.id, tab: {index: Tab.index, expand: Tab.expand, parent: Tab.parent}}); - }); - } else { - NewTabs.push(Tab); - } - }); - - setTimeout(function() { - ShowStatusBar({show: true, spinner: true, message: "Finding reference tabs..."}); - for (let tInd = 0; tInd < NewTabs.length; tInd++) { - if (RefsTabs[NewTabs[tInd].parent] != undefined) { - NewTabs[tInd].parent = RefsTabs[NewTabs[tInd].parent]; - } - } - }, 4000); - - setTimeout(function() { - for (let tInd = 0; tInd < NewTabs.length; tInd++) { - chrome.runtime.sendMessage({command: "update_tab", tabId: NewTabs[tInd].id, tab: {index: NewTabs[tInd].index, expand: NewTabs[tInd].expand, parent: NewTabs[tInd].parent}}); - } - let done = 10; - var Append = setInterval(function() { - ShowStatusBar({show: true, spinner: true, message: "Finding other windows to add tabs..."}); - - if (w.id == tt.CurrentWindowId) { - RcreateTreeStructure(w.groups, w.folders, NewTabs); - } else { - chrome.runtime.sendMessage({command: "remote_update", groups: w.groups, folders: w.folders, tabs: NewTabs, windowId: w.id }); - } - if (done < 0) { - ShowStatusBar({show: true, spinner: false, message: "All done.", hideTimeout: 2000}); - clearInterval(Append); - } - done--; - }, 500); - }, 6000); - - }); - }); - - } - }); - }); -} - - -function StartAutoSaveSession() { - if (opt.autosave_interval > 0 && opt.autosave_max_to_keep > 0) { - tt.AutoSaveSession = setInterval(function() { - if (opt.debug) { - log("f: AutoSaveSession, loop time is: "+opt.autosave_interval); - } - - let d = new Date(); - let newName = d.toLocaleString().replace("/", ".").replace("/", ".").replace(":", "꞉").replace(":", "꞉"); - ExportSession(newName, false, false, true); - - ShowStatusBar({show: true, spinner: false, message: "Autosave: "+newName, hideTimeout: 1500}); - - if (document.getElementById("manager_window").style.top != "-500px") { - chrome.storage.local.get(null, function(storage) { - ReAddSessionAutomaticToManagerList(storage); - }); - } - - }, opt.autosave_interval * 60000); - } -} \ No newline at end of file diff --git a/scripts/bookmark.js b/scripts/bookmark.js new file mode 100644 index 0000000..db943bd --- /dev/null +++ b/scripts/bookmark.js @@ -0,0 +1,80 @@ +function Bookmark(rootNode) { + let ToolbarId = browserId == "F" ? "toolbar_____" : "1"; + chrome.bookmarks.get(ToolbarId, function(list) { + chrome.bookmarks.search("TreeTabs", function(list) { + let TreeTabsId; + for (var elem in list) { + if (list[elem].parentId == ToolbarId) { + TreeTabsId = list[elem].id; + break; + } + } + if (TreeTabsId == undefined) { + chrome.bookmarks.create({parentId: ToolbarId, title: "TreeTabs"}, function(TreeTabsNew) { + TreeTabsId = TreeTabsNew.id; + }); + Bookmark(rootNode); + return; + } else { + let Tabs = document.querySelectorAll("#°" + rootNode.id + " .tab"); + if (rootNode.classList.contains("tab")) { + if (Tabs.length > 0) { + chrome.tabs.get(parseInt(rootNode.id), function(tab) { + if (tab) { + chrome.bookmarks.create({parentId: TreeTabsId, title: tab.title}, function(root) { + let TabNodes = document.querySelectorAll("[id='" + rootNode.id + "'], [id='" + rootNode.id + "'] .tab"); + for (let s of TabNodes) { + chrome.tabs.get(parseInt(s.id), function(tab) { + if (tab) chrome.bookmarks.create({parentId: root.id, title: tab.title, url: tab.url}); + }); + } + }); + } + }); + } else { + chrome.tabs.get(parseInt(rootNode.id), function(tab) { + if (tab) chrome.bookmarks.create({parentId: TreeTabsId, title: tab.title, url: tab.url}); + }); + } + } + if (rootNode.classList.contains("folder") || rootNode.classList.contains("group")) { + let rootName = labels.noname_group; + if (rootNode.classList.contains("folder") && tt.folders[rootNode.id]) rootName = tt.folders[rootNode.id].name; + if (rootNode.classList.contains("group") && tt.groups[rootNode.id]) rootName = tt.groups[rootNode.id].name; + chrome.bookmarks.create({parentId: TreeTabsId, title: rootName}, function(root) { + let Nodes = {}; + let folders = document.querySelectorAll("#°" + rootNode.id + " .folder"); + for (let f of folders) { + if (tt.folders[f.id]) { + chrome.bookmarks.create({parentId: root.id, title: tt.folders[f.id].name}, function(Bkfolder) { + Nodes[f.id] = {ttid: f.id, id: Bkfolder.id, ttparent: tt.folders[f.id].parent, parent: root.id}; + if (Object.keys(Nodes).length == folders.length) { + for (var elem in Nodes) { + if (Nodes[Nodes[elem].ttparent]) Nodes[Nodes[elem].ttid].parent = Nodes[Nodes[elem].ttparent].id; + } + for (var elem in Nodes) { + chrome.bookmarks.move(Nodes[elem].id, {parentId: Nodes[elem].parent}, function(BkFinalfolder) {}); + } + } + }); + } + } + setTimeout(function() { + let reverse_tabs = Array.from(Tabs).reverse(); + for (let t of reverse_tabs) { + chrome.tabs.get(parseInt(t.id), function(tab) { + if (tab) chrome.bookmarks.create({parentId: (Nodes[t.parentNode.parentNode.id] ? Nodes[t.parentNode.parentNode.id].id : root.id), title: tab.title, url: tab.url}); + }); + } + // Array.from(Tabs).reverse().forEach(function(t) { + // chrome.tabs.get(parseInt(t.id), function(tab) { + // if (tab) chrome.bookmarks.create({parentId: (Nodes[t.parentNode.parentNode.id] ? Nodes[t.parentNode.parentNode.id].id : root.id), title: tab.title, url: tab.url}); + // }); + // }); + }, 3000); + }); + } + } + }); + }); +} diff --git a/scripts/common.js b/scripts/common.js deleted file mode 100644 index 6e7a49e..0000000 --- a/scripts/common.js +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -// GLOBAL VARIABLES -let browserId = navigator.userAgent.match("Opera|OPR") !== null ? "O" : (navigator.userAgent.match("Vivaldi") !== null ? "V" : (navigator.userAgent.match("Firefox") !== null ? "F" : "C" )) -let opt = {}; - -let labels = { - clear_filter: chrome.i18n.getMessage("caption_clear_filter"), - loading: chrome.i18n.getMessage("caption_loading"), - searchbox: chrome.i18n.getMessage("caption_searchbox"), - ungrouped_group: chrome.i18n.getMessage("caption_ungrouped_group"), - noname_group: chrome.i18n.getMessage("caption_noname_group") -}; - -// BACKGROUND VARIABLES -let b = { - debug: [], - running: false, - schedule_save: -999, - windows: {}, - tabs: {}, - tt_ids: {}, - NewTabsQueue: [], - EmptyTabs: [], - newTabUrl: browserId == "F" ? "about:newtab" : "chrome://startpage/" -}; - -// DEFAULTS NEEDED FOR START AND FOR OPTIONS PAGE -const DefaultToolbar = { - toolbar_main: ["button_new", "button_pin", "button_undo", "button_search", "button_tools", "button_groups", "button_backup", "button_folders"], - toolbar_search: ["button_filter_type", "filter_search_go_prev", "filter_search_go_next"], - toolbar_shelf_tools: (browserId == "F" ? ["button_manager_window", "button_options", "button_unload", "button_detach", "button_reboot"] : ["button_manager_window", "button_options", "button_bookmarks", "button_downloads", "button_history", "button_settings", "button_extensions", "button_unload", "button_detach", "button_reboot"]), - toolbar_shelf_groups: ["button_groups_toolbar_hide", "button_new_group", "button_remove_group", "button_edit_group", "button_import_group", "button_export_group"], - toolbar_shelf_backup: (browserId == "F" ? ["button_import_bak", "button_import_merge_bak", "button_export_bak"] : ["button_import_bak", "button_import_merge_bak", "button_export_bak", "button_load_bak1", "button_load_bak2", "button_load_bak3"]), - toolbar_shelf_folders: ["button_new_folder", "button_remove_folder", "button_edit_folder"] -}; - -const DefaultTheme = { - ToolbarShow: true, - ColorsSet: {}, - TabsSizeSetNumber: 2, - TabsMargins: "2", - theme_name: "untitled", - theme_version: 4 -}; - -const DefaultPreferences = { - hide_other_groups_tabs_firefox: false, - show_toolbar: true, - skip_load: false, - pin_list_multi_row: true, - always_show_close: false, - never_show_close: false, - allow_pin_close: false, - append_child_tab: "bottom", - append_child_tab_after_limit: "after", - append_orphan_tab: "bottom", - after_closing_active_tab: "below_seek_in_parent", - append_tab_from_toolbar: "group_root", - collapse_other_trees: false, - open_tree_on_hover: true, - promote_children: true, - promote_children_in_first_child: true, - max_tree_depth: -1, - max_tree_drag_drop: true, - max_tree_drag_drop_folders: false, - switch_with_scroll: false, - syncro_tabbar_tabs_order: true, - show_counter_groups: true, - show_counter_tabs: true, - show_counter_tabs_hints: true, - groups_toolbar_default: true, - syncro_tabbar_groups_tabs_order: true, - midclick_tab: "close_tab", - dbclick_tab: "new_tab", - dbclick_group: "new_tab", - // dbclick_group_bar: "new_group", - midclick_group: "nothing", - midclick_folder: "nothing", - dbclick_folder: "rename_folder", - debug: false, - orphaned_tabs_to_ungrouped: false, - tab_group_regexes: [], - move_tabs_on_url_change: "never", - autosave_max_to_keep: 5, - autosave_interval: 15 -}; - -// SIDEBAR VARIABLES -// let active_group = "tab_list"; - -let tt = { - CurrentWindowId: 0, - active_group: "tab_list", - groups: {}, - folders: {}, - schedule_update_data: 0, - schedule_rearrange_tabs: 0, - DragNodeClass: "", - DragTreeDepth: 0, - DragOverId: "", - menuItemNode: undefined, - SearchIndex: 0, - DragOverTimer: undefined, - AutoSaveSession: undefined -}; - -// GLOBAL FUNCTIONS -function GenerateRandomID(){ - let letters = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","K","L","M","N","O","P","R","S","T","Q","U","V","W","Y","Z","a","b","c","d","e","f","g","h","i","k","l","m","n","o","p","r","s","t","q","u","v","w","y","z"]; - let random = ""; for (let letter = 0; letter < 6; letter++ ) {random += letters[Math.floor(Math.random() * letters.length)];} return random; -} - -function GetCurrentPreferences(storage) { - opt = Object.assign({}, DefaultPreferences); - if (storage["preferences"]) { - for (let parameter in storage["preferences"]) { - if (opt[parameter] != undefined) { - opt[parameter] = storage["preferences"][parameter]; - - // legacy, changed from "after_active" to "after", because it is a parent tab, not necessarily an active tab - if (parameter == "append_child_tab" && storage["preferences"][parameter] == "after_active") { - opt[parameter] = "after"; - } - } - } - } -} diff --git a/scripts/dom.js b/scripts/dom.js new file mode 100644 index 0000000..dde82d1 --- /dev/null +++ b/scripts/dom.js @@ -0,0 +1,720 @@ +function DOM_SetEvents() { + if (opt.debug) Utils_log("f: SetEvents, adding global events."); + let PinList = document.getElementById("pin_list"); + if (!opt.switch_with_scroll) { + PinList.onmousewheel = function(event) { + let pinList = document.getElementById("pin_list"); + let direction = (event.wheelDelta > 0 || event.detail < 0) ? -1 : 1; + let speed = 0.1; + for (let t = 1; t < 40; t++) { + setTimeout(function() { + if (t < 30) { + speed = speed + 0.1; // accelerate + } else { + speed = speed - 0.3; // decelerate + } + pinList.scrollLeft = pinList.scrollLeft + (direction * speed); + }, t); + } + } + } + window.addEventListener('contextmenu', function(event) { + if (event.target.classList.contains("text_input") == false && opt.debug == false) { + event.preventDefault(); + event.stopPropagation(); + event.stopImmediatePropagation(); + return false; + } + }, false); + document.getElementById("body").addEventListener('contextmenu', function(event) { + if (event.target.classList.contains("text_input") == false && opt.debug == false) { + event.preventDefault(); + event.stopPropagation(); + event.stopImmediatePropagation(); + return false; + } + }, false); + document.body.onresize = function(event) { + DOM_RefreshGUI(); + } + document.body.onmousedown = function(event) { + if (event.which == 2) event.preventDefault(); + if (event.which == 1 && event.target.classList.contains("menu_item") == false) Menu_HideMenus(); + event.stopImmediatePropagation(); + if (event.which == 1) DOM_RemoveHeadersHoverClass(); + } + document.getElementById("folder_edit_confirm").onmousedown = function(event) { + if (event.which == 1) Folders_FolderRenameConfirm(); + } + document.getElementById("folder_edit_discard").onmousedown = function(event) { + if (event.which == 1) DOM_HideRenameDialogs(); + } + document.getElementById("group_edit_confirm").onmousedown = function(event) { + if (event.which == 1) Groups_GroupEditConfirm(); + } + document.getElementById("group_edit_discard").onmousedown = function(event) { + if (event.which == 1) DOM_HideRenameDialogs(); + } + document.getElementById("folder_edit_name").onkeydown = function(event) { + if (event.keyCode == 13) Folders_FolderRenameConfirm(); + if (event.which == 27) DOM_HideRenameDialogs(); + } + document.getElementById("group_edit_name").onkeydown = function(event) { + if (event.keyCode == 13) Groups_GroupEditConfirm(); + if (event.which == 27) DOM_HideRenameDialogs(); + } + PinList.onclick = function(event) { + if (event.which == 1 && event.target == this) { + if (opt.pin_list_multi_row || (opt.pin_list_multi_row == false && event.clientY < (this.childNodes[0].getBoundingClientRect().height + this.getBoundingClientRect().top))) DOM_Deselect(); + } + } + PinList.onmousedown = function(event) { + if (event.which == 1 && event.target == this) { + if (opt.pin_list_multi_row || (opt.pin_list_multi_row == false && event.clientY < (this.childNodes[0].getBoundingClientRect().height + this.getBoundingClientRect().top))) Menu_HideMenus(); + } + if (event.which == 2 && event.target == this) Groups_ActionClickGroup(this, opt.midclick_group); + if (event.which == 3 && event.target == this) Menu_ShowFGlobalMenu(event); + } + PinList.ondragover = function(event) { + if (event.target.id == "pin_list" && tt.DraggingGroup == false && (tt.DraggingPin || tt.DraggingTab || tt.DraggingFolder) && this.classList.contains("highlighted_drop_target") == false) { + DOM_RemoveHighlight(); + this.classList.add("highlighted_drop_target"); + } + } + PinList.ondblclick = function(event) { + if (event.target == this) Groups_ActionClickGroup(this, opt.dbclick_group); + } + document.getElementById("group_edit_font").onclick = function(event) { + if (event.which == 1) { + event.stopPropagation(); + let ColorPicker = document.getElementById("color_picker"); + ColorPicker.setAttribute("PickColor", this.id); + ColorPicker.value = "#" + Utils_RGBtoHex(this.style.backgroundColor); + ColorPicker.focus(); + ColorPicker.click(); + } + } + document.getElementById("color_picker").oninput = function(event) { + document.getElementById(this.getAttribute("PickColor")).style.backgroundColor = this.value; + } + document.getElementById("group_list").ondragleave = function(event) { + if (opt.open_tree_on_hover) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = ""; + } + } + document.body.onkeydown = function(event) { + if (event.ctrlKey && event.which == 65) { // ctrl+a to select all + if (document.querySelector(".pin>.tab_header_hover") != null) { + let query = document.querySelectorAll(".pin"); + for (let s of query) { + s.classList.add("selected"); + } + } + if (document.querySelectorAll("#" + tt.active_group + " .tab>.tab_header_hover, #" + tt.active_group + " .folder>.folder_header_hover").length > 0) { + let rootId = document.querySelectorAll("#" + tt.active_group + " .tab>.tab_header_hover, #" + tt.active_group + " .folder>.folder_header_hover")[0].parentNode.parentNode.parentNode.id; + let query = document.querySelectorAll("#°" + rootId + ">.folder, #°" + rootId + ">.tab"); + for (let s of query) { + s.classList.add("selected"); + } + } + } + if (event.ctrlKey && event.which == 73) { // ctrl+i to invert selection + if (document.querySelector(".pin>.tab_header_hover") != null) { + let query = document.querySelectorAll(".pin"); + for (let s of query) { + s.classList.toggle("selected"); + } + } + if (document.querySelectorAll("#" + tt.active_group + " .tab>.tab_header_hover, #" + tt.active_group + " .folder>.folder_header_hover").length > 0) { + let rootId = document.querySelectorAll("#" + tt.active_group + " .tab>.tab_header_hover, #" + tt.active_group + " .folder>.folder_header_hover")[0].parentNode.parentNode.parentNode.id; + let query = document.querySelectorAll("#°" + rootId + ">.folder, #°" + rootId + ">.tab"); + for (let s of query) { + s.classList.toggle("selected"); + } + } + } + if (event.which == 27) DOM_Deselect(); // esc to unselect tabs and folders + if (event.altKey && event.which == 71) Groups_GroupsToolbarToggle(); // alt+g to toggle group bar + if (event.which == 192 || event.which == 70) { // new folder + if (tt.pressed_keys.indexOf(event.which) == -1) tt.pressed_keys.push(event.which); + if (tt.pressed_keys.indexOf(192) != -1 && tt.pressed_keys.indexOf(70) != -1) { + let FolderId = Folders_AddNewFolder({}); + Folders_ShowRenameFolderDialog(FolderId); + } + } + DOM_RefreshGUI(); + } + + document.body.onkeyup = function(event) { + if (tt.pressed_keys.indexOf(event.which) != -1) tt.pressed_keys.splice(tt.pressed_keys.indexOf(event.which), 1); + } + document.body.ondragover = function(event) { + if (opt.debug) Utils_log("drag over: " + event.target.id); + event.preventDefault(); + } + document.ondrop = function(event) { + if (opt.debug) Utils_log("dropped on window: " + tt.CurrentWindowId); + let Nodes = event.dataTransfer.getData("Nodes") ? JSON.parse(event.dataTransfer.getData("Nodes")) : []; + let NodesTypes = event.dataTransfer.getData("NodesTypes") ? JSON.parse(event.dataTransfer.getData("NodesTypes")) : {DraggingGroup: false, DraggingPin: false, DraggingTab: false, DraggingFolder: false}; + let Group = event.dataTransfer.getData("Group") ? JSON.parse(event.dataTransfer.getData("Group")) : {}; + let SourceWindowId = event.dataTransfer.getData("SourceWindowId") ? JSON.parse(event.dataTransfer.getData("SourceWindowId")) : 0; + let target = document.querySelector(".highlighted_drop_target"); + let where = target ? (target.classList.contains("before") ? "before" : (target.classList.contains("after") ? "after" : "inside")) : ""; + let ActiveGroup = document.getElementById(tt.active_group); + let Scroll = ActiveGroup.scrollTop; + clearTimeout(tt.DragOverTimer); + tt.DragOverId = ""; + tt.Dragging = false; + chrome.runtime.sendMessage({command: "drag_end"}); + event.preventDefault(); + if (SourceWindowId == tt.CurrentWindowId) { + DOM_DropToTarget({NodesTypes: NodesTypes, Nodes: Nodes, TargetNode: target, where: where, Group: Group, Scroll: Scroll}); + } else { + DOM_FreezeSelection(); + if (NodesTypes.DraggingGroup) { + tt.groups[Group.id] = Object.assign({}, Group); + Groups_AppendGroupToList(Group.id, Group.name, Group.font, true); + } + let TabsIds = []; + for (let i = 0; i < Nodes.length; i++) { + if (Nodes[i].NodeClass == "folder") { + Folders_AddNewFolder({folderId: Nodes[i].id, ParentId: Nodes[i].parent, Name: Nodes[i].name, Index: Nodes[i].index, ExpandState: Nodes[i].expand}); + chrome.runtime.sendMessage({command: "remove_folder", folderId: Nodes[i].id}); + } + if (Nodes[i].NodeClass == "pin") { + chrome.tabs.update(parseInt(Nodes[i].id), {pinned: false}); + TabsIds.push(parseInt(Nodes[i].id)); + } + if (Nodes[i].NodeClass == "tab") TabsIds.push(parseInt(Nodes[i].id)); + } + chrome.tabs.move(TabsIds, {windowId: tt.CurrentWindowId, index: -1}, function(MovedTab) { + let Stop = 500; + let DropNodes = setInterval(function() { + Stop--; + let all_ok = true; + for (let i = 0; i < Nodes.length; i++) { + if (document.getElementById(Nodes[i].id) == null) all_ok = false; + } + DOM_DropToTarget({NodesTypes: NodesTypes, Nodes: Nodes, TargetNode: target, where: where, Group: Group, Scroll: Scroll}); + if (NodesTypes.DraggingGroup) chrome.runtime.sendMessage({command: "remove_group", groupId: Group.id}); + if (all_ok || Stop < 0) { + setTimeout(function() { + clearInterval(DropNodes); + }, 300); + } + }, 100); + }); + } + } + document.ondragleave = function(event) { + if (opt.debug) Utils_log("global dragleave"); + DOM_RemoveHighlight(); + if (opt.open_tree_on_hover) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = ""; + } + } + document.ondragend = function(event) { + if (opt.debug) Utils_log("drag_end"); + let Nodes = event.dataTransfer.getData("Nodes") ? JSON.parse(event.dataTransfer.getData("Nodes")) : []; + let NodesTypes = event.dataTransfer.getData("NodesTypes") ? JSON.parse(event.dataTransfer.getData("NodesTypes")) : {DraggingGroup: false, DraggingPin: false, DraggingTab: false, DraggingFolder: false}; + let Group = event.dataTransfer.getData("Group") ? JSON.parse(event.dataTransfer.getData("Group")) : {}; + setTimeout(function() { + if (tt.Dragging && ((browserId == "F" && ( event.screenX < event.view.mozInnerScreenX || event.screenX > (event.view.mozInnerScreenX + window.innerWidth) || event.screenY < event.view.mozInnerScreenY || event.screenY > (event.view.mozInnerScreenY + window.innerHeight))) || (browserId != "F" && (event.pageX < 0 || event.pageX > window.outerWidth || event.pageY < 0 || event.pageY > window.outerHeight)))) Tabs_Detach(Nodes, NodesTypes, Group); + DOM_CleanUpDragAndDrop(); + tt.Dragging = false; + chrome.runtime.sendMessage({command: "drag_end"}); + }, 300); + if (opt.open_tree_on_hover) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = ""; + } + } +} + +function DOM_BindTabsSwitchingToMouseWheel(Id) { + if (opt.debug) Utils_log("f: BindTabsSwitchingToMouseWheel, binding tabs switch to group: " + Id); + document.getElementById(Id).onwheel = function(event) { + event.preventDefault(); + let prev = event.deltaY < 0; + if (prev) { + Tabs_ActivatePrevTab(true); + } else { + Tabs_ActivateNextTab(true); + } + } +} + +function DOM_InsertDropToTarget(p) { + if (p.AppendToTarget) { + for (let i = 0; i < p.Nodes.length; i++) { + let Node = document.getElementById(p.Nodes[i].id); + if (Node != null) { + if (p.Nodes[i].selected) { + DOM_AppendToNode(Node, p.TargetNode); + Node.classList.add("selected"); + if (p.Nodes[i].temporary) Node.classList.add("selected_temporarly"); + } else { + if (Node.parentNode.id != p.Nodes[i].parent) DOM_AppendToNode(Node, document.getElementById(p.Nodes[i].parent)); + } + } + } + } + if (p.BeforeTarget) { + for (i = 0; i < p.Nodes.length; i++) { + let Node = document.getElementById(p.Nodes[i].id); + if (Node != null) { + if (p.Nodes[i].selected) { + DOM_InsterBeforeNode(Node, p.TargetNode); + Node.classList.add("selected"); + if (p.Nodes[i].temporary) Node.classList.add("selected_temporarly"); + } else { + if (Node.parentNode.id != p.Nodes[i].parent) DOM_AppendToNode(Node, document.getElementById(p.Nodes[i].parent)); + } + } + } + } + if (p.AfterTarget) { + let i = p.after ? (p.Nodes.length - 1) : 0; + for (i = p.Nodes.length - 1; i >= 0; i--) { + let Node = document.getElementById(p.Nodes[i].id); + if (Node != null) { + if (p.Nodes[i].selected) { + DOM_InsterAfterNode(Node, p.TargetNode); + Node.classList.add("selected"); + if (p.Nodes[i].temporary) Node.classList.add("selected_temporarly"); + } else { + if (Node.parentNode.id != p.Nodes[i].parent) DOM_AppendToNode(Node, document.getElementById(p.Nodes[i].parent)); + } + } + } + } +} + +function DOM_New(type, parent, parameters, style) { + let NewElement = document.createElement(type); + for (param in parameters) { + NewElement[param] = parameters[param]; + } + for (param in style) { + NewElement.style[param] = style[param]; + } + if (parent) parent.appendChild(NewElement); + return NewElement; +} + +async function DOM_SetStyle(node, style) { + for (param in style) { + node.style[param] = style[param]; + } +} + +function DOM_SetClasses(node, add, remove, toggle) { + let Ind = 0; + for (Ind = 0; Ind < add.length; Ind++) { + node.classList.add(add[Ind]); + } + for (Ind = 0; Ind < remove.length; Ind++) { + node.classList.remove(remove[Ind]); + } + for (Ind = 0; Ind < toggle.length; Ind++) { + node.classList.toggle(toggle[Ind]); + } +} + +function DOM_DropToTarget(p) { // Class: ("group", "tab", "folder"), DraggedTabNode: TabId, TargetNode: query node, TabsIdsSelected: arr of selected tabIds, TabsIds: arr of tabIds, TabsIdsParents: arr of parent tabIds, Folders: object with folders objects, FoldersSelected: arr of selected folders ids, Group: groupId, Scroll: bool + if (p.TargetNode != null) { + let pinTabs = false; + if (p.NodesTypes.DraggingPin || p.NodesTypes.DraggingTab || p.NodesTypes.DraggingFolder) { + if (p.TargetNode.classList.contains("pin") || p.TargetNode.classList.contains("tab") || p.TargetNode.classList.contains("folder")) { + if (p.TargetNode.classList.contains("pin")) pinTabs = true; + if (p.where == "inside") DOM_InsertDropToTarget({TargetNode: p.TargetNode.childNodes[1], AppendToTarget: true, Nodes: p.Nodes}); // PINS NEVER HAVE INSIDE, SO WILL BE IGNORED + if (p.where == "before") DOM_InsertDropToTarget({TargetNode: p.TargetNode, BeforeTarget: true, Nodes: p.Nodes}); + if (p.where == "after") DOM_InsertDropToTarget({TargetNode: p.TargetNode, AfterTarget: true, Nodes: p.Nodes}); + } + if (p.TargetNode.id == "pin_list") { + DOM_InsertDropToTarget({TargetNode: p.TargetNode, AppendToTarget: true, Nodes: p.Nodes}); + pinTabs = true; + } + if (p.TargetNode.classList.contains("group")) DOM_InsertDropToTarget({TargetNode: p.TargetNode.childNodes[0], AppendToTarget: true, Nodes: p.Nodes}); + if (p.TargetNode.classList.contains("group_button")) { + let group = document.getElementById("°" + p.TargetNode.id.substr(1)); + DOM_InsertDropToTarget({TargetNode: group, Nodes: p.Nodes, AppendToTarget: true}); + } + setTimeout(function() {Folders_SaveFolders();}, 600); + } + if (p.NodesTypes.DraggingGroup) { + if (p.where == "before") DOM_InsterBeforeNode(document.getElementById("_" + p.Group.id), p.TargetNode); + if (p.where == "after") DOM_InsterAfterNode(document.getElementById("_" + p.Group.id), p.TargetNode); + Groups_UpdateBgGroupsOrder(); + Groups_RearrangeGroupsLists(); + } + for (i = 0; i < p.Nodes.length; i++) { + if (p.Nodes[i].NodeClass == "pin" || p.Nodes[i].NodeClass == "tab") { + if (tt.tabs[p.Nodes[i].id]) { + if (tt.tabs[p.Nodes[i].id].Node.classList.contains("pin") != pinTabs) { + tt.tabs[p.Nodes[i].id].SetTabClass(pinTabs); + tt.tabs[p.Nodes[i].id].pinned = pinTabs; + chrome.tabs.update(parseInt(p.Nodes[i].id), {pinned: pinTabs}); + } + } + } + } + if (opt.syncro_tabbar_tabs_order) { + let tabIds = Array.prototype.map.call(document.querySelectorAll(".pin, .tab"), function(s) {return parseInt(s.id);}); + for (i = 0; i < p.Nodes.length; i++) { + if (p.Nodes[i].NodeClass == "pin" || p.Nodes[i].NodeClass == "tab") chrome.tabs.move(parseInt(p.Nodes[i].id), {index: tabIds.indexOf(parseInt(p.Nodes[i].id))}); + } + setTimeout(function() {tt.schedule_rearrange_tabs++;}, 500); + } + } + Groups_KeepOnlyOneActiveTabInGroup(); + DOM_RefreshExpandStates(); + DOM_RefreshCounters(); + setTimeout(function() { + DOM_RemoveHighlight(); + }, 100); + setTimeout(function() { + if (opt.syncro_tabbar_groups_tabs_order) tt.schedule_rearrange_tabs++; + // DOM_RefreshExpandStates(); + // DOM_RefreshCounters(); + tt.schedule_update_data++; + DOM_RefreshGUI(); + DOM_CleanUpDragAndDrop(); + if (opt.debug) Utils_log("DropToTarget END"); + }, 500); +} + +function DOM_AppendToNode(Node, AppendNode) { + if (Node != null && AppendNode != null) AppendNode.appendChild(Node); +} + +function DOM_InsterBeforeNode(Node, BeforeNode) { + if (Node != null && BeforeNode != null) BeforeNode.parentNode.insertBefore(Node, BeforeNode); +} + +function DOM_InsterAfterNode(Node, AfterNode) { + if (Node != null && AfterNode != null) { + if (AfterNode.nextSibling != null) { + AfterNode.parentNode.insertBefore(Node, AfterNode.nextSibling); + } else { + AfterNode.parentNode.appendChild(Node); + } + } +} + +function DOM_PromoteChildrenToFirstChild(Node) { + let NewParent = Node.childNodes[1].firstChild.childNodes[1]; + Node.childNodes[1].parentNode.parentNode.insertBefore(Node.childNodes[1].firstChild, Node.childNodes[1].parentNode); + while (Node.childNodes[1].firstChild) { + NewParent.appendChild(Node.childNodes[1].firstChild); + } +} + +function DOM_GetAllParents(Node) { + let Parents = []; + let ParentNode = Node.parentNode; + while (ParentNode.parentNode != null) { + Parents.push(ParentNode.parentNode); + ParentNode = ParentNode.parentNode; + } + return Parents; +} + +function DOM_GetParentsByClass(Node, Class) { + let Parents = []; + let ParentNode = Node; + if (ParentNode == null) return Parents; + while (ParentNode.parentNode != null) { + if (ParentNode.parentNode.classList != undefined && ParentNode.parentNode.classList.contains(Class)) Parents.push(ParentNode.parentNode); + ParentNode = ParentNode.parentNode; + } + return Parents; +} + +function DOM_GetParentsBy2Classes(Node, ClassA, ClassB) { + let Parents = []; + let ParentNode = Node; + while (ParentNode.parentNode != null) { + if (ParentNode.parentNode.classList != undefined && ParentNode.parentNode.classList.contains(ClassA) && ParentNode.parentNode.classList.contains(ClassB)) Parents.push(ParentNode.parentNode); + ParentNode = ParentNode.parentNode; + } + return Parents; +} + +function DOM_HideRenameDialogs() { + let query = document.querySelectorAll(".edit_dialog"); + for (let s of query) { + DOM_SetStyle(s, {display: "none", top: "-500px", left: "-500px"}); + } +} + +function DOM_EventExpandBox(Node) { + if (Node.classList.contains("o")) { + Node.classList.remove("o"); Node.classList.add("c"); + if (Node.classList.contains("tab")) chrome.runtime.sendMessage({command: "update_tab", tabId: parseInt(Node.id), tab: {expand: "c"}}); + if (Node.classList.contains("folder")) Folders_SaveFolders(); + } else { + if (Node.classList.contains("c")) { + if (opt.collapse_other_trees) { + let thisTreeTabs = DOM_GetParentsByClass(Node.childNodes[0], "tab"); // start from tab's first child, instead of tab, important to include clicked tab as well + let thisTreeFolders = DOM_GetParentsByClass(Node.childNodes[0], "folder"); + let query = document.querySelectorAll("#" + tt.active_group + " .o.tab"); + for (let s of query) { + DOM_SetClasses(s, ["c"], ["o"], []); + chrome.runtime.sendMessage({command: "update_tab", tabId: parseInt(s.id), tab: {expand: "c"}}); + } + query = document.querySelectorAll("#" + tt.active_group + " .o.folder"); + for (let s of query) { + DOM_SetClasses(s, ["c"], ["o"], []); + } + for (let s of thisTreeTabs) { + DOM_SetClasses(s, ["o"], ["c"], []); + chrome.runtime.sendMessage({command: "update_tab", tabId: parseInt(s.id), tab: {expand: "o"}}); + } + for (let s of thisTreeFolders) { + DOM_SetClasses(s, ["o"], ["c"], []); + } + Folders_SaveFolders(); + if (Node.classList.contains("tab") && tt.tabs[Node.id]) tt.tabs[Node.id].ScrollToTab(); + } else { + DOM_SetClasses(Node, ["o"], ["c"], []); + if (Node.classList.contains("tab")) chrome.runtime.sendMessage({command: "update_tab", tabId: parseInt(Node.id), tab: {expand: "o"}}); + if (Node.classList.contains("folder")) Folders_SaveFolders(); + } + } + } +} + +function DOM_Select(event, TabNode) { + if (event.shiftKey) { // SET SELECTION WITH SHIFT + let LastSelected = document.querySelector("#" + tt.active_group + " .selected.selected_last"); + if (LastSelected == null) LastSelected = document.querySelector(".pin.active_tab, #" + tt.active_group + " .tab.active_tab"); + if (LastSelected != null && TabNode.parentNode.id == LastSelected.parentNode.id) { + if (!event.ctrlKey) { + let query = document.querySelectorAll(".pin.selected, #" + tt.active_group + " .selected"); + for (let s of query) { + DOM_SetClasses(s, [], ["selected_frozen", "selected_temporarly", "selected", "selected_last"], []); + } + } + let ChildrenArray = Array.from(TabNode.parentNode.children); + let activeTabIndex = ChildrenArray.indexOf(LastSelected); + let thisTabIndex = ChildrenArray.indexOf(TabNode); + let fromIndex = thisTabIndex >= activeTabIndex ? activeTabIndex : thisTabIndex; + let toIndex = thisTabIndex >= activeTabIndex ? thisTabIndex : activeTabIndex; + for (let i = fromIndex; i <= toIndex; i++) { + LastSelected.parentNode.childNodes[i].classList.add("selected"); + if (i == toIndex && event.ctrlKey) LastSelected.parentNode.childNodes[i].classList.add("selected_last"); + } + } + } + if (event.ctrlKey && !event.shiftKey) { // TOGGLE SELECTION WITH CTRL + TabNode.classList.toggle("selected"); + if (TabNode.classList.contains("selected")) { + let query = document.querySelectorAll(".selected_last"); + for (let s of query) { + s.classList.remove("selected_last"); + } + TabNode.classList.add("selected_last"); + } else { + TabNode.classList.remove("selected_last"); + } + } +} + +function DOM_Deselect() { + let query = document.querySelectorAll("#pin_list .selected"); + for (let s of query) { + s.classList.remove("selected"); + } + query = document.querySelectorAll("#" + tt.active_group + " .selected"); + for (let s of query) { + s.classList.remove("selected"); + } +} + +function DOM_FreezeSelection(all) { + if (all) { + let query = document.querySelectorAll(".selected"); + for (let s of query) { + DOM_SetClasses(s, ["selected_frozen"], ["selected", "selected_last"], []); + } + } else { + let query = document.querySelectorAll(".group:not(#" + tt.active_group + ") .selected"); + for (let s of query) { + DOM_SetClasses(s, ["selected_frozen"], ["selected", "selected_last"], []); + } + } +} + +function DOM_CleanUpDragAndDrop() { + if (opt.debug) Utils_log("f: CleanUpDragAndDrop, unfreezing and removing temporary classes..."); + let query = document.querySelectorAll(".selected_frozen"); + for (let s of query) { + DOM_SetClasses(s, ["selected"], ["selected_frozen"], []); + } + query = document.querySelectorAll(".selected_temporarly"); + for (let s of query) { + DOM_SetClasses(s, [], ["selected", "selected_frozen"], []); + } + query = document.querySelectorAll(".tab_header_hover"); + for (let s of query) { + s.classList.remove("tab_header_hover"); + } + query = document.querySelectorAll(".folder_header_hover"); + for (let s of query) { + s.classList.remove("folder_header_hover"); + } + query = document.querySelectorAll(".dragged_tree"); + for (let s of query) { + s.classList.remove("dragged_tree"); + } + query = document.querySelectorAll(".dragged_parents"); + for (let s of query) { + s.classList.remove("dragged_parents"); + } + if (opt.debug) Utils_log("f: removing DraggingParams..."); + tt.DragTreeDepth = 0; + tt.DraggingGroup = false; + tt.DraggingTab = false; + tt.DraggingFolder = false; + tt.DraggingPin = false; + tt.DragOverId = ""; +} + +function DOM_RemoveHighlight() { + let query = document.querySelectorAll(".highlighted_drop_target"); + for (let s of query) { + DOM_SetClasses(s, [], ["before", "after", "inside", "highlighted_drop_target"], []); + } +} + +function DOM_RemoveHeadersHoverClass() { + let query = document.querySelectorAll(".folder_header_hover, .tab_header_hover"); + for (let s of query) { + DOM_SetClasses(s, [], ["folder_header_hover", "tab_header_hover"], []); + } +} + +function DOM_Loadi18n() { + let query = document.querySelectorAll(".button, .manager_window_toolbar_button"); + for (let s of query) { + s.title = chrome.i18n.getMessage(s.id); + } + query = document.querySelectorAll(".menu_item, .edit_dialog_button, #manager_window_header_title, .manager_window_label"); + for (let s of query) { + s.textContent = chrome.i18n.getMessage(s.id); + } +} + +async function DOM_RefreshExpandStates() { // refresh open closed trees states + let query = document.querySelectorAll("#" + tt.active_group + " .folder, #" + tt.active_group + " .tab"); + for (let s of query) { + if (s.childNodes[1].children.length == 0) { + s.classList.remove("o"); s.classList.remove("c"); + } else { + if (s.classList.contains("o") == false && s.classList.contains("c") == false) s.classList.add("o"); + } + } + query = document.querySelectorAll(".pin"); + for (let s of query) { + s.classList.remove("o"); s.classList.remove("c"); + } +} + +async function DOM_RefreshCounters() { + if (opt.show_counter_tabs || opt.show_counter_tabs_hints) { + let query = document.querySelectorAll("#" + tt.active_group + " .o.tab, #" + tt.active_group + " .c.tab"); + for (let s of query) { + if (opt.show_counter_tabs) s.childNodes[0].childNodes[1].childNodes[0].textContent = document.querySelectorAll("[id='" + s.id + "'] .tab").length; + if (opt.show_counter_tabs_hints) { + let title = s.childNodes[0].getAttribute("tabTitle"); + s.childNodes[0].title = (document.querySelectorAll("[id='" + s.id + "'] .tab").length + " • ") + title; + } + } + query = document.querySelectorAll("#" + tt.active_group + " .folder"); + for (let s of query) { + if (opt.show_counter_tabs && tt.folders[s.id]) s.childNodes[0].childNodes[1].childNodes[0].textContent = document.querySelectorAll("[id='" + s.id + "'] .tab").length; + if (opt.show_counter_tabs_hints && tt.folders[s.id]) s.childNodes[0].title = (document.querySelectorAll("[id='" + s.id + "'] .tab").length + " • ") + tt.folders[s.id].name; + } + } +} + +async function DOM_RefreshGUI() { + let toolbar = document.getElementById("toolbar"); + let toolbarHeight = 27; + if (toolbar.children.length > 0) { + DOM_SetStyle(toolbar, {height: "", width: "", display: "", border: "", padding: ""}); + if (document.querySelector(".on.button") != null) { + toolbar.style.height = "53px"; + toolbarHeight = 54; + } else { + toolbar.style.height = "26px"; + } + } else { + DOM_SetStyle(toolbar, {height: "0px", width: "0px", display: "none", border: "none", padding: "0"}); + toolbar.style.height = "0px"; + toolbarHeight = 0; + } + let group_list = document.getElementById("group_list"); + group_list.style.width = document.body.clientWidth + 50 + "px"; + let pin_list = document.getElementById("pin_list"); + if (pin_list.children.length > 0) { + DOM_SetStyle(pin_list, {top: toolbarHeight + "px", height: "", width: "", display: "", border: "", padding: ""}); + } else { + DOM_SetStyle(pin_list, {top: "0px", height: "0px", width: "0px", display: "none", border: "none", padding: "0"}); + } + let pin_listHeight = pin_list.getBoundingClientRect().height; + let toolbar_groups = document.getElementById("toolbar_groups"); + DOM_SetStyle(toolbar_groups, {top: toolbarHeight + pin_listHeight + "px", height: document.body.clientHeight - toolbarHeight - pin_listHeight + "px"}); + let toolbar_groupsWidth = toolbar_groups.getBoundingClientRect().width; + if (opt.show_counter_groups) { + let query = document.querySelectorAll(".group"); + for (let s of query) { + let groupLabel = document.getElementById("_gte" + s.id); + if (groupLabel) groupLabel.textContent = (tt.groups[s.id] ? tt.groups[s.id].name : labels.noname_group) + " (" + document.querySelectorAll("#" + s.id + " .tab").length + ")"; + } + } else { + let query = document.querySelectorAll(".group"); + for (let s of query) { + let groupLabel = document.getElementById("_gte" + s.id); + if (groupLabel) groupLabel.textContent = tt.groups[s.id] ? tt.groups[s.id].name : labels.noname_group; + } + } + let query = document.querySelectorAll(".group_button"); + for (let s of query) { + s.style.height = s.firstChild.getBoundingClientRect().height + "px"; + } + let groups = document.getElementById("groups"); + let groupsHeight = document.body.clientHeight - toolbarHeight - pin_listHeight; + let groupsWidth = document.body.clientWidth - toolbar_groupsWidth - 1; + DOM_SetStyle(groups, {top: toolbarHeight + pin_listHeight + "px", left: toolbar_groupsWidth + "px", height: groupsHeight + "px", width: groupsWidth + "px"}); + let PanelList = document.querySelector(".mw_pan_on>.manager_window_list"); + let PanelListHeight = 3 + PanelList.children.length * 18; + let ManagerWindowPanelButtons = document.querySelector(".mw_pan_on>.manager_window_panel_buttons"); + let ManagerWindowPanelButtonsHeight = ManagerWindowPanelButtons.clientHeight; + let MaxAllowedHeight = document.body.clientHeight - 140; + if (PanelListHeight + ManagerWindowPanelButtonsHeight < MaxAllowedHeight) { + PanelList.style.height = PanelListHeight + "px"; + } else { + PanelList.style.height = MaxAllowedHeight - ManagerWindowPanelButtonsHeight + "px"; + } + let ManagerWindow = document.getElementById("manager_window"); + ManagerWindow.style.height = PanelList.clientHeight + ManagerWindowPanelButtonsHeight + 56 + "px"; +} + +function DOM_AutoRefreshMediaIcons() { // if changeInfo.audible listener does not work, this is my own implementation, hopefully this will not affect performance too much + setInterval(function() { + chrome.tabs.query({currentWindow: true, audible: true, discarded: false}, function(tabs) { + let query = document.querySelectorAll(".audible, .muted"); + for (let s of query) { + s.classList.remove("audible"); s.classList.remove("muted"); + } + for (let tab of tabs) { + if (tab.audible) document.getElementById(tab.id).classList.add("audible"); + if (tab.mutedInfo.muted) document.getElementById(tab.id).classList.add("muted"); + } + }); + }, 2000); +} \ No newline at end of file diff --git a/scripts/events.js b/scripts/events.js deleted file mode 100644 index 1c07bf9..0000000 --- a/scripts/events.js +++ /dev/null @@ -1,655 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -function SetEvents() { - if (opt.debug) { - log("f: SetEvents, adding global events."); - } - - let PinList = document.getElementById("pin_list"); - - if (!opt.switch_with_scroll) { - PinList.onmousewheel = function(event) { - let pinList = document.getElementById("pin_list"); - let direction = (event.wheelDelta > 0 || event.detail < 0) ? -1 : 1; - let speed = 0.1; - for (let t = 1; t < 40; t++) { - setTimeout(function() { - if (t < 30) { - speed = speed+0.1; // accelerate - } else { - speed = speed-0.3; // decelerate - } - pinList.scrollLeft = pinList.scrollLeft+(direction*speed); - }, t); - } - } - } - - document.oncontextmenu = function (event) { - if (!event.ctrlKey && event.target.classList.contains("text_input") == false) { - event.preventDefault(); - event.stopPropagation(); - return false; - } - }; - - window.addEventListener('contextmenu', function (event) { - if (!event.ctrlKey && event.target.classList.contains("text_input") == false) { - event.preventDefault(); - event.stopPropagation(); - return false; - } - }, false); - - - document.body.onresize = function(event) { - RefreshGUI(); - } - - // MOUSE DOWN EVENTS - document.body.onmousedown = function(event) { - if (event.which == 2) { - event.preventDefault(); - } - - if (event.which == 1 && event.target.classList.contains("menu_item") == false) { - HideMenus(); - } - event.stopImmediatePropagation(); - - if (event.which == 1) { - RemoveHeadersHoverClass(); - } - } - - // CONFIRM EDIT FOLDER - document.getElementById("folder_edit_confirm").onmousedown = function(event) { - if (event.which == 1) { - FolderRenameConfirm(); - } - } - - // DISCARD EDIT FOLDER - document.getElementById("folder_edit_discard").onmousedown = function(event) { - if (event.which == 1) { - HideRenameDialogs(); - } - } - - // CONFIRM EDIT GROUP - document.getElementById("group_edit_confirm").onmousedown = function(event) { - if (event.which == 1) { - GroupEditConfirm(); - } - } - // DISCARD EDIT GROUP - document.getElementById("group_edit_discard").onmousedown = function(event) { - if (event.which == 1) { - HideRenameDialogs(); - } - } - document.getElementById("folder_edit_name").onkeydown = function(event) { - if (event.keyCode == 13) { - FolderRenameConfirm(); - } - if (event.which == 27) { - HideRenameDialogs(); - } - } - document.getElementById("group_edit_name").onkeydown = function(event) { - if (event.keyCode == 13) { - GroupEditConfirm(); - } - if (event.which == 27) { - HideRenameDialogs(); - } - } - PinList.onclick = function(event) { - if (event.which == 1 && event.target == this) { - if (opt.pin_list_multi_row || (opt.pin_list_multi_row == false && event.clientY < (this.childNodes[0].getBoundingClientRect().height + this.getBoundingClientRect().top))) { - DeselectFolders(); - DeselectTabs(); - } - } - } - PinList.onmousedown = function(event) { - if (event.which == 1 && event.target == this) { - if (opt.pin_list_multi_row || (opt.pin_list_multi_row == false && event.clientY < (this.childNodes[0].getBoundingClientRect().height + this.getBoundingClientRect().top))) { - HideMenus(); - } - } - - if (event.which == 2 && event.target == this) { - ActionClickGroup(this, opt.midclick_group); - } - if (event.which == 3 && event.target == this) { - ShowFGlobalMenu(event); - } - } - PinList.ondragover = function(event) { - // PIN,TAB==>PINLIST - if (event.target.id == "pin_list" && tt.DragNodeClass == "tab" && this.classList.contains("highlighted_drop_target") == false) { - RemoveHighlight(); - this.classList.add("highlighted_drop_target"); - } - } - - // DOUBLE CLICK ACTION - PinList.ondblclick = function(event) { - if (event.target == this) { - ActionClickGroup(this, opt.dbclick_group); - } - } - - - // SHOW COLOR PICKER - document.getElementById("group_edit_font").onclick = function(event) { - if (event.which == 1) { - event.stopPropagation(); - let ColorPicker = document.getElementById("color_picker"); - ColorPicker.setAttribute("PickColor", this.id); - ColorPicker.value = "#"+RGBtoHex(this.style.backgroundColor); - ColorPicker.focus(); - ColorPicker.click(); - } - } - document.getElementById("color_picker").oninput = function(event) { - document.getElementById(this.getAttribute("PickColor")).style.backgroundColor = this.value; - } - - - document.getElementById("group_list").ondragleave = function(event) { - if (opt.open_tree_on_hover) { - clearTimeout(tt.DragOverTimer); - tt.DragOverId = ""; - } - } - - - // CATCH KEYBOARD GLOBAL KEYS - document.body.onkeydown = function(event) { - // ctrl+a to select all - if (event.ctrlKey && event.which == 65) { - if (document.querySelector(".pin>.tab_header_hover") != null) { - document.querySelectorAll(".pin").forEach(function(s){ - s.classList.add("selected_tab"); - }); - } - if (document.querySelector("#"+tt.active_group+" .tab>.tab_header_hover") != null) { - let rootId = document.querySelector("#"+tt.active_group+" .tab>.tab_header_hover").parentNode.parentNode.parentNode.id; - document.querySelectorAll("#ct"+rootId+">.tab").forEach(function(s){ - s.classList.add("selected_tab"); - }); - } - } - // ctrl+i to invert selection - if (event.ctrlKey && event.which == 73) { - if (document.querySelector(".pin>.tab_header_hover") != null) { - document.querySelectorAll(".pin").forEach(function(s){ - s.classList.toggle("selected_tab"); - }); - } - if (document.querySelector("#"+tt.active_group+" .tab>.tab_header_hover") != null) { - let rootId = document.querySelector("#"+tt.active_group+" .tab>.tab_header_hover").parentNode.parentNode.parentNode.id; - document.querySelectorAll("#ct"+rootId+">.tab").forEach(function(s){ - s.classList.toggle("selected_tab"); - }); - } - } - // esc to deselect tabs - if (event.which == 27) { - DeselectTabs(); - DeselectFolders(); - } - // alt+g to toggle group bar - if (event.altKey && event.which == 71) { - GroupsToolbarToggle(); - } - - // new folder - if (event.which == 192 && event.which == 70 && event.which == 69) { - let FolderId = AddNewFolder({SetEvents: true}); - ShowRenameFolderDialog(FolderId); - } - RefreshGUI(); - } - - - document.body.ondragover = function(event) { - if (opt.debug) { - log("drag over: "+event.target.id); - } - event.preventDefault(); - } - - document.ondrop = function(event) { - if (opt.debug) { - log("dropped on window: "+tt.CurrentWindowId); - } - - let Class = event.dataTransfer.getData("Class") ? event.dataTransfer.getData("Class") : ""; - let Group = event.dataTransfer.getData("Group") ? JSON.parse(event.dataTransfer.getData("Group")) : {}; - let DraggedTabNode = event.dataTransfer.getData("DraggedTabNode") ? event.dataTransfer.getData("DraggedTabNode") : false; - let TabsIds = event.dataTransfer.getData("TabsIds") ? JSON.parse(event.dataTransfer.getData("TabsIds")) : []; - let TabsIdsParents = event.dataTransfer.getData("TabsIdsParents") ? JSON.parse(event.dataTransfer.getData("TabsIdsParents")) : []; - let TabsIdsSelected = event.dataTransfer.getData("TabsIdsSelected") ? JSON.parse(event.dataTransfer.getData("TabsIdsSelected")) : []; - let Folders = event.dataTransfer.getData("Folders") ? JSON.parse(event.dataTransfer.getData("Folders")) : {}; - let FoldersSelected = event.dataTransfer.getData("FoldersSelected") ? JSON.parse(event.dataTransfer.getData("FoldersSelected")) : []; - let SourceWindowId = event.dataTransfer.getData("SourceWindowId") ? JSON.parse(event.dataTransfer.getData("SourceWindowId")) : 0; - let target = document.querySelector(".highlighted_drop_target"); - - let ActiveGroup = document.getElementById(tt.active_group); - let Scroll = ActiveGroup.scrollTop; - - clearTimeout(tt.DragOverTimer); - tt.DragOverId = ""; - - event.preventDefault(); - - if (SourceWindowId == tt.CurrentWindowId) { - if (Class == "group") { - DropToTarget({Class: Class, DraggedTabNode: DraggedTabNode, TargetNode: target, TabsIds: [], TabsIdsSelected: [], TabsIdsParents: [], Folders: {}, FoldersSelected: [], Group: Group, Scroll: Scroll}); - } else { - DropToTarget({Class: Class, DraggedTabNode: DraggedTabNode, TargetNode: target, TabsIds: TabsIds, TabsIdsSelected: TabsIdsSelected, TabsIdsParents: TabsIdsParents, Folders: Folders, FoldersSelected: FoldersSelected, Group: Group, Scroll: Scroll}); - } - } else { - FreezeSelected(); - - if (Object.keys(Group).length > 0) { - tt.groups[Group.id] = Object.assign({}, Group); - AppendGroupToList(Group.id, Group.name, Group.font, true); - } - - - if (Object.keys(Folders).length > 0) { - for (var folderId in Folders) { - AddNewFolder({folderId: folderId, ParentId: Folders[folderId].parent, Name: Folders[folderId].name, Index: Folders[folderId].index, ExpandState: Folders[folderId].expand, AdditionalClass: (FoldersSelected.indexOf(folderId) != -1 ? "selected_folder" : undefined), SetEvents: true}); - chrome.runtime.sendMessage({ command: "remove_folder", folderId: folderId }); - } - } - - if (opt.debug) { - log("DragAndDrop: will now move tabs"); - } - - chrome.tabs.move(TabsIds, { windowId: tt.CurrentWindowId, index: -1 }, function(MovedTab) { - setTimeout(function() { - DropToTarget({Class: Class, DraggedTabNode: DraggedTabNode, TargetNode: target, TabsIds: TabsIds, TabsIdsSelected: TabsIdsSelected, TabsIdsParents: TabsIdsParents, Folders: Folders, FoldersSelected: FoldersSelected, Group: Group, Scroll: Scroll}); - chrome.runtime.sendMessage({ command: "remove_group", groupId: Group.id }); - }, 2000); - }); - } - } - - - document.ondragleave = function(event) { - if (opt.debug) { - log("global dragleave"); - } - RemoveHighlight(); - if (opt.open_tree_on_hover) { - clearTimeout(tt.DragOverTimer); - tt.DragOverId = ""; - } - } - - document.ondragend = function(event) { - if (opt.open_tree_on_hover) { - clearTimeout(tt.DragOverTimer); - tt.DragOverId = ""; - } - // log("document dragend"); - // DETACHING TEMPORARILY DISABLED PLEASE USE MENU OR TOOLBAR! - // if (DragAndDrop.ComesFromWindowId == tt.CurrentWindowId && DragAndDrop.DroppedToWindowId == 0) { - // if ((browserId == "F" && ( event.screenX < event.view.mozInnerScreenX || event.screenX > (event.view.mozInnerScreenX + window.innerWidth) || event.screenY < event.view.mozInnerScreenY || event.screenY > (event.view.mozInnerScreenY + window.innerHeight)))|| (browserId != "F" && (event.pageX < 0 || event.pageX > window.outerWidth || event.pageY < 0 || event.pageY > window.outerHeight))) { - // log("dragged outside sidebar"); - // if (tt.DragNodeClass == "tab") { - // Detach(DragAndDrop.TabsIds, {}); - // } - // if (tt.DragNodeClass == "folder") { - // Detach(DragAndDrop.TabsIds, DragAndDrop.Folders); - // setTimeout(function() { - // SaveFolders(); - // }, 500); - // } - // } - // } - setTimeout(function() { - CleanUpDragClasses(); - chrome.runtime.sendMessage({command: "dragend"}); - }, 500); - } -} - - -function BindTabsSwitchingToMouseWheel(Id) { - if (opt.debug) { - log("f: BindTabsSwitchingToMouseWheel, binding tabs switch to group: "+Id); - } - - document.getElementById(Id).onwheel = function(event) { - event.preventDefault(); - let prev = event.deltaY < 0; - if (prev) { - ActivatePrevTab(); - } else { - ActivateNextTab(); - } - } -} - -function RemoveHighlight() { - document.querySelectorAll(".highlighted_drop_target").forEach(function(s){ - if (opt.debug) { - log("removing highlight of: " + s.id); - } - s.classList.remove("before"); - s.classList.remove("after"); - s.classList.remove("inside"); - s.classList.remove("highlighted_drop_target"); - }); -} - -function RemoveHeadersHoverClass() { - document.querySelectorAll(".folder_header_hover, .tab_header_hover").forEach(function(s){ - if (opt.debug) { - log("removing hover of: " + s.id); - } - s.classList.remove("folder_header_hover"); - s.classList.remove("tab_header_hover"); - }); -} - - - -function DropToTarget(p) { // Class: ("group", "tab", "folder"), DraggedTabNode: TabId, TargetNode: query node, TabsIdsSelected: arr of selected tabIds, TabsIds: arr of tabIds, TabsIdsParents: arr of parent tabIds, Folders: object with folders objects, FoldersSelected: arr of selected folders ids, Group: groupId, Scroll: bool - if (p.TargetNode != null) { - if (opt.debug) { - log("f: DropToTarget, DragNodeClass: "+p.Class+", TargetNode: "+p.TargetNode.id+", TabsIdsSelected: "+JSON.stringify(p.TabsIdsSelected)+", TabsIds: "+JSON.stringify(p.TabsIds)+", TabsIdsParents: "+JSON.stringify(p.TabsIdsParents)+", Folders: "+JSON.stringify(p.Folders)+", FoldersSelected: "+JSON.stringify(p.FoldersSelected) ); - } - - let ActiveGroup = document.getElementById(tt.active_group); - let pinTabs = false; - let SelectedTabsAppendTarget; - let FoldersSelectedAppendTarget; - - if (p.Class == "tab") { - if (p.TargetNode.classList.contains("pin")) { - pinTabs = true; - if (p.TargetNode.classList.contains("before")) { - p.TabsIds.forEach(function(tabId){ - InsterBeforeNode(document.getElementById(tabId), p.TargetNode); - }); - } - if (p.TargetNode.classList.contains("after")) { - for (let i = p.TabsIds.length-1; i >= 0; i--) { - InsterAfterNode(document.getElementById(p.TabsIds[i]), p.TargetNode); - } - } - } - - if (p.TargetNode.classList.contains("tab")) { - if (p.TargetNode.classList.contains("before")) { - p.TabsIdsSelected.forEach(function(tabId){ - InsterBeforeNode(document.getElementById(tabId), p.TargetNode); - }); - } - if (p.TargetNode.classList.contains("after")) { - for (let i = p.TabsIdsSelected.length-1; i >= 0; i--) { - InsterAfterNode(document.getElementById(p.TabsIdsSelected[i]), p.TargetNode); - } - } - if (p.TargetNode.classList.contains("inside")) { - SelectedTabsAppendTarget = p.TargetNode.childNodes[1]; - } - ActiveGroup.scrollTop = p.Scroll; - } - - if (p.TargetNode.id == "pin_list") { - pinTabs = true; - SelectedTabsAppendTarget = p.TargetNode; - } - - if (p.TargetNode.classList.contains("group")) { - SelectedTabsAppendTarget = p.TargetNode.childNodes[1]; - ActiveGroup.scrollTop = p.Scroll; - } - - if (p.TargetNode.classList.contains("folder")) { - SelectedTabsAppendTarget = p.TargetNode.childNodes[2]; - ActiveGroup.scrollTop = p.Scroll; - } - - if (p.TargetNode.classList.contains("group_button")) { // dropped on group button (group list) - SelectedTabsAppendTarget = document.getElementById("ct" + (p.TargetNode.id.substr(1))); - } - } - - - if (p.Class == "folder") { - if (p.TargetNode.classList.contains("folder")) { // dropped on folder - if (p.TargetNode.classList.contains("before")) { - p.FoldersSelected.forEach(function(folderId){ - InsterBeforeNode(document.getElementById(folderId), p.TargetNode); - }); - } - if (p.TargetNode.classList.contains("after")) { - for(let i = p.FoldersSelected.length-1; i >= 0; i--) { - InsterAfterNode(document.getElementById(p.FoldersSelected[i]), p.TargetNode); - } - } - if (p.TargetNode.classList.contains("inside")) { - FoldersSelectedAppendTarget = p.TargetNode.childNodes[1]; - } - ActiveGroup.scrollTop = p.Scroll; - } - - if (p.TargetNode.classList.contains("group")) { - FoldersSelectedAppendTarget = p.TargetNode.childNodes[0]; - ActiveGroup.scrollTop = p.Scroll; - } - - if (p.TargetNode.classList.contains("group_button")) { // dropped on group button (group list) - FoldersSelectedAppendTarget = document.getElementById("cf" + p.TargetNode.id.substr(1)); - } - - setTimeout(function() { - SaveFolders(); - }, 600); - } - - if (p.TargetNode.classList.contains("group_button") && (p.Class == "tab" || p.Class == "folder")) { - chrome.tabs.query({currentWindow: true, active: true}, function(activeTab) { - let Tab = document.getElementById(activeTab[0].id); - if (Tab != null && p.TabsIds.indexOf(activeTab[0].id) != -1) { - SetActiveGroup(p.TargetNode.id.substr(1), false, false); - SetActiveTab(activeTab[0].id, true); - } - }); - } - - if (p.Class == "group") { - if (p.TargetNode.classList.contains("before")) { - InsterBeforeNode(document.getElementById("_"+p.Group.id), p.TargetNode); - } - if (p.TargetNode.classList.contains("after")) { - InsterAfterNode(document.getElementById("_"+p.Group.id), p.TargetNode); - } - UpdateBgGroupsOrder(); - RearrangeGroupsLists(); - if (opt.syncro_tabbar_groups_tabs_order) { - tt.schedule_rearrange_tabs++; - } - } - - if (FoldersSelectedAppendTarget) { - p.FoldersSelected.forEach(function(folderId){ - AppendToNode(document.getElementById(folderId), FoldersSelectedAppendTarget); - }); - } - - if (SelectedTabsAppendTarget) { - p.TabsIdsSelected.forEach(function(tabId){ - AppendToNode(document.getElementById(tabId), SelectedTabsAppendTarget); - }); - } - - - // recheck new structure - if (Object.keys(p.Folders).length > 0) { - for (var folderId in p.Folders) { - if (p.FoldersSelected.indexOf(folderId) == -1) { - let Folder = document.getElementById(folderId); - if (Folder != null && Folder.parentNode.id != "cf" + p.Folders[folderId].parent) { - let FolderParent = document.getElementById("cf" + p.Folders[folderId].parent); - if (FolderParent != null) { - FolderParent.appendChild(Folder); - } - } - } - } - } - - - - - if (p.TabsIds.length) { - if (pinTabs) { - for (var ind = 0; ind < p.TabsIds.length; ind++) { - let Tab = document.getElementById(p.TabsIds[ind]); - if (Tab != null && Tab.parentNode.id != "pin_list") { - document.getElementById("pin_list").appendChild(Tab); - } - } - } else { - for (var ind = 0; ind < p.TabsIds.length; ind++) { - if (p.TabsIdsSelected.indexOf(p.TabsIds[ind]) == -1) { - let Tab = document.getElementById(p.TabsIds[ind]); - let TabParent = document.getElementById(p.TabsIdsParents[ind]); - if (TabParent != null && Tab != null && TabParent.id != Tab.parentNode.id) { - TabParent.appendChild(Tab); - } - } - } - } - } - - - - - SetMultiTabsClass(p.TabsIds, pinTabs); - - p.TabsIdsSelected.forEach(function(selectedTabId) { - let selectedTab = document.getElementById(selectedTabId); - if (selectedTab != null) { - selectedTab.classList.add("selected_tab"); - } - }); - - if (p.DraggedTabNode) { - let tabNode = document.getElementById(p.DraggedTabNode); - if (tabNode != null) { - tabNode.classList.add("selected_temporarly"); - } - } - - if (opt.syncro_tabbar_tabs_order && p.TabsIds[0] != undefined) { - let tabIds = Array.prototype.map.call(document.querySelectorAll(".pin, .tab"), function(s){ - return parseInt(s.id); - }); - - if (opt.debug) { - log( "f: DropToTarget, will Syncro tabbar tabs order, TabsIds array is:"+JSON.stringify(p.TabsIds) ); - } - - chrome.tabs.move(p.TabsIds, {index: tabIds.indexOf(p.TabsIds[0])}); - setTimeout(function() { - tt.schedule_rearrange_tabs++; - }, 500); - } - } - - KeepOnlyOneActiveTabInGroup(); - - setTimeout(function() { - RefreshExpandStates(); - RefreshCounters(); - tt.schedule_update_data++; - RefreshGUI(); - EmptyDragAndDrop(); - - if (opt.debug) { - log("DropToTarget END"); - } - }, 500); - - setTimeout(function() { - CleanUpDragClasses(); - RemoveHighlight(); - }, 100); -} - - - -function FreezeSelected() { - document.querySelectorAll(".selected_tab").forEach(function(s){ - if (opt.debug) { - log("freezing selected tab: " + s.id); - } - s.classList.add("selected_frozen"); - s.classList.remove("selected_tab"); - s.classList.remove("selected_last"); - }); - document.querySelectorAll(".selected_folder").forEach(function(s){ - if (opt.debug) { - log("freezing selected folder: " + s.id); - } - s.classList.add("selected_folder_frozen"); - s.classList.remove("selected_folder"); - }); -} - - -function CleanUpDragClasses() { - if (opt.debug) { - log("f: CleanUpDragClasses, unfreezing and removing temporary classes..."); - } - document.querySelectorAll(".selected_frozen").forEach(function(s){ - s.classList.add("selected_tab"); - s.classList.remove("selected_frozen"); - }); - document.querySelectorAll(".selected_temporarly").forEach(function(s){ - s.classList.remove("selected_tab"); - s.classList.remove("selected_temporarly"); - }); - document.querySelectorAll(".selected_folder_frozen").forEach(function(s){ - s.classList.add("selected_folder"); - s.classList.remove("selected_folder_frozen"); - }); - document.querySelectorAll(".selected_folder_temporarly").forEach(function(s){ - s.classList.remove("selected_folder"); - s.classList.remove("selected_folder_temporarly"); - }); - document.querySelectorAll(".tab_header_hover").forEach(function(s){ - s.classList.remove("tab_header_hover"); - }); - document.querySelectorAll(".folder_header").forEach(function(s){ - s.classList.remove("folder_header_hover"); - }); - document.querySelectorAll(".dragged_tree").forEach(function(s){ - s.classList.remove("dragged_tree"); - }); - document.querySelectorAll(".dragged_parents").forEach(function(s){ - s.classList.remove("dragged_parents"); - }); -} - -function EmptyDragAndDrop() { - if (opt.debug) { - log("f: EmptyDragAndDrop and removing DragNodeClass..."); - } - tt.DragNodeClass = ""; - tt.DragTreeDepth = 0; -} \ No newline at end of file diff --git a/scripts/file.js b/scripts/file.js new file mode 100644 index 0000000..780dd48 --- /dev/null +++ b/scripts/file.js @@ -0,0 +1,22 @@ +function File_ShowOpenFileDialog(extension) { + let inp = DOM_New("input", document.getElementById("body"), {id: "file_import", type: "file", accept: extension}, {display: "none"}); + inp.click(); + return inp; +} + +function File_SaveFile(filename, extension, data) { + if (browserId == "V") { + chrome.tabs.create({url: "vivaldi/save_file.html"}, async function(tab) { + setTimeout(function() { + chrome.runtime.sendMessage({command: "save_file", filename: filename, extension: extension, data: data}); + }, 500); + }); + } else { + let file = new File([JSON.stringify(data)], filename + "." + extension, {type: "text/" + extension + ";charset=utf-8"}); + let savelink = DOM_New("a", document.getElementById("body"), {href:URL.createObjectURL(file), fileSize: file.size, target: "_blank", type: "file", download: (filename + "." + extension)}, {display: "none"}); + savelink.click(); + setTimeout(function() { + savelink.parentNode.removeChild(savelink); + }, 60000); + } +} \ No newline at end of file diff --git a/scripts/folders.js b/scripts/folders.js index 8e780f8..016a9ac 100644 --- a/scripts/folders.js +++ b/scripts/folders.js @@ -1,504 +1,283 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -function AddNewFolder(p) { // folderId: string, ParentId: string, Name: string, Index: int, ExpandState: ("o","c"), AdditionalClass: string, SetEvents: bool - let newId = p.folderId ? p.folderId : GenerateNewFolderID(); - tt.folders[newId] = { id: newId, parent: (p.ParentId ? p.ParentId : ""), index: (p.Index ? p.Index : 0), name: (p.Name ? p.Name : labels.noname_group), expand: (p.ExpandState ? p.ExpandState : "") }; - if (opt.debug) { - log("f: AddNewFolder, folder: "+JSON.stringify(tt.folders[newId])); - } - AppendFolder(newId, labels.noname_group, (p.ParentId ? p.ParentId : ""), undefined, p.SetEvents, p.AdditionalClass); - SaveFolders(); - RefreshCounters(); - RefreshExpandStates(); - return newId; +function Folders_AddNewFolder(p) { // folderId: string, ParentId: string, Name: string, Index: int, ExpandState: ("o","c"), AdditionalClass: string, SetEvents: bool + let newId = p.folderId ? p.folderId : Folders_GenerateNewFolderID(); + tt.folders[newId] = {id: newId, parent: (p.ParentId ? p.ParentId : ""), index: (p.Index ? p.Index : 0), name: (p.Name ? p.Name : labels.noname_group), expand: (p.ExpandState ? p.ExpandState : "")}; + Folders_AppendFolder({folderId: newId, Name: tt.folders[newId].name, InsertAfterId: p.InsertAfterId, ParentId: p.ParentId, ExpandState: p.ExpandState, SkipSetEvents: p.SkipSetEvents, AdditionalClass: p.AdditionalClass}); + Folders_SaveFolders(); + DOM_RefreshCounters(); + DOM_RefreshExpandStates(); + return newId; } -function AppendFolder(folderId, Name, ParentId, Expand, SetEvents, AdditionalClass) { - if (opt.debug) { - log("f: AppendFolder, folder: "+JSON.stringify(tt.folders[folderId])); - } - let ClassList = "folder "; - if (AdditionalClass != undefined) { - ClassList = ClassList + AdditionalClass; - } - if (document.getElementById(folderId) == null) { - let fd = document.createElement("div"); fd.className = ClassList; if (Expand) { fd.className += Expand } fd.id = folderId; // FOLDER - let fh = document.createElement("div"); fh.className = (opt.always_show_close && !opt.never_show_close) ? "folder_header close_show" : "folder_header"; fh.id = "folder_header"+folderId; if (SetEvents) {fh.draggable = true;} fd.appendChild(fh); // HEADER - let ex = document.createElement("div"); ex.className = "folder_icon"; ex.id = "fop"+folderId; fh.appendChild(ex); - let ftbc = document.createElement("div"); ftbc.className = "folder_counter"; ftbc.id = "folder_counter"+folderId; fh.appendChild(ftbc); // TABS COUNTER - let fbcn = document.createElement("div"); fbcn.className = "counter_number"; fbcn.id = "counter_number"+folderId; ftbc.appendChild(fbcn); // TABS COUNTER NUMBER - - - let ft = document.createElement("div"); ft.className = "folder_title"; ft.id = "folder_title"+folderId; ft.textContent = Name; fh.appendChild(ft); // TITLE - let cf = document.createElement("div"); cf.className = "children_folders"; cf.id = "cf"+folderId; fd.appendChild(cf); - let ct = document.createElement("div"); ct.className = "children_tabs"; ct.id = "ct"+folderId; fd.appendChild(ct); - let di = document.createElement("div"); di.className = "drag_indicator"; di.id = "di"+folderId; fd.appendChild(di); // DROP TARGET INDICATOR - let cl = undefined; - if (!opt.never_show_close) { - cl = document.createElement("div"); cl.className = "close"; cl.id = "close"+folderId; fh.appendChild(cl); // CLOSE BUTTON - let ci = document.createElement("div"); ci.className = "close_img"; ci.id = "close_img"+folderId; cl.appendChild(ci); - } - - if (SetEvents) { - ct.ondblclick = function(event) { - if (event.target == this) { - ActionClickGroup(this.parentNode, opt.dbclick_group); - } - } - cf.ondblclick = function(event) { - if (event.target == this) { - ActionClickGroup(this.parentNode, opt.dbclick_group); - } - } - - cf.onclick = function(event) { - if (event.target == this && event.which == 1) { - DeselectFolders(); - DeselectTabs(); - } - } - ct.onclick = function(event) { - if (event.target == this && event.which == 1) { - DeselectFolders(); - DeselectTabs(); - } - } - cf.onmousedown = function(event) { - if (event.target == this) { - if (event.which == 2 && event.target == this) { - event.stopImmediatePropagation(); - ActionClickGroup(this.parentNode, opt.midclick_group); - } - if (event.which == 3) { - ShowFGlobalMenu(event); - } - } - } - ct.onmousedown = function(event) { - if (event.target == this) { - if (event.which == 2 && event.target == this) { - event.stopImmediatePropagation(); - ActionClickGroup(this.parentNode, opt.midclick_group); - } - if (event.which == 3) { - ShowFGlobalMenu(event); - } - } - } - - if (!opt.never_show_close && cl) { - cl.onmousedown = function(event) { - event.stopImmediatePropagation(); - if (event.which != 3) { - RemoveFolder(this.parentNode.parentNode.id); - } - } - cl.onmouseenter = function(event) { - this.classList.add("close_hover"); - } - cl.onmouseleave = function(event) { - this.classList.remove("close_hover"); - } - } - fh.onclick = function(event) { - // SELECT FOLDER - if (event.which == 1 && !event.shiftKey) { - DeselectTabs(); - if (!event.ctrlKey && this.parentNode.classList.contains("selected_folder") == false) { - DeselectFolders(); - } - if (event.ctrlKey) { - this.parentNode.classList.toggle("selected_folder"); - } - } - } - fh.onmousedown = function(event) { - if (document.getElementById("main_menu").style.top != "-1000px") { - HideMenus(); - } - if (event.which == 2) { - event.preventDefault(); - ActionClickFolder(this.parentNode, opt.midclick_folder); - } - // SHOW FOLDER MENU - if (event.which == 3) { - ShowFolderMenu(this.parentNode, event); - } - } - // edit folder - fh.ondblclick = function(event) { - if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target.classList.contains("folder_header")) { - ActionClickFolder(this.parentNode, opt.dbclick_folder); - } - } - fh.ondragstart = function(event) { // DRAG START - FolderStartDrag(this, event); - } - fh.ondragenter = function(event) { - this.classList.remove("folder_header_hover"); - } - fh.onmouseover = function(event) { - this.classList.add("folder_header_hover"); - if (opt.never_show_close == false && opt.always_show_close == false) { - this.classList.add("close_show"); - } - } - fh.onmouseleave = function(event) { - this.classList.remove("folder_header_hover"); - if (opt.never_show_close == false && opt.always_show_close == false) { - this.classList.remove("close_show"); - } - } - - fh.ondragleave = function(event) { - RemoveHighlight(); - } - - fh.ondragover = function(event) { - FolderDragOver(this, event); - if (opt.open_tree_on_hover && tt.DragOverId != this.id) { - if (this.parentNode.classList.contains("c") && this.parentNode.classList.contains("dragged_tree") == false) { - clearTimeout(tt.DragOverTimer); - tt.DragOverId = this.id; - let This = this; - tt.DragOverTimer = setTimeout(function() { - if (tt.DragOverId == This.id) { - This.parentNode.classList.add("o"); - This.parentNode.classList.remove("c"); - } - }, 1500); - } - } - } - - ex.onmousedown = function(event) { - event.stopPropagation(); - if (document.getElementById("main_menu").style.top != "-1000px") { - HideMenus(); - } - // EXPAND/COLLAPSE FOLDER - if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target == this) { - event.stopPropagation(); - EventExpandBox(this.parentNode.parentNode); - RefreshExpandStates(); - RefreshCounters(); - } - } - } - if (ParentId == "" || ParentId == undefined || document.getElementById("cf"+ParentId) == null) { - document.getElementById("cf"+tt.active_group).appendChild(fd); - } else { - document.getElementById("cf"+ParentId).appendChild(fd); - } - } +function Folders_AppendFolder(p) { // folderId: string, ParentId: string, Name: string, ExpandState: ("o","c"), AdditionalClass: string, SetEvents: bool + let ClassList = "folder"; + if (p.ExpandState) ClassList += " " + p.ExpandState; + if (p.AdditionalClass != undefined) ClassList += " " + p.AdditionalClass; + if (document.getElementById(p.folderId) == null) { + let DIV_folder = DOM_New("div", undefined, {id: p.folderId, className: ClassList}); + let DIV_header = DOM_New("div", DIV_folder, {id: ("folder_header_" + p.folderId), className: ((opt.always_show_close && !opt.never_show_close) ? "folder_header close_show" : "folder_header"), draggable: (!p.SkipSetEvents ? true : false)}); + let DIV_expand = DOM_New("div", DIV_header, {id: ("folder_expand_" + p.folderId), className: "folder_icon"}); + let DIV_counter = DOM_New("div", DIV_header, {id: ("folder_counter_" + p.folderId), className: "folder_counter"}); + DOM_New("div", DIV_counter, {id: ("folder_counter_number_" + p.folderId), className: "counter_number"}); + DOM_New("div", DIV_header, {id: ("folder_title_" + p.folderId), className: "folder_title", textContent: p.Name}); + let DIV_children = DOM_New("div", DIV_folder, {id: ("°" + p.folderId), className: "children"}); + DOM_New("div", DIV_folder, {id: (p.folderId + "_drag_indicator"), className: "drag_indicator"}); + let DIV_close_button = DOM_New("div", DIV_header, {id: ("close" + p.folderId), className : (opt.never_show_close ? "close hidden" : "close")}); + DOM_New("div", DIV_close_button, {id: ("close_img" + p.folderId), className: (opt.never_show_close ? "close_img hidden" : "close_img")}); + if (!p.SkipSetEvents) { + DIV_children.ondblclick = function(event) { + if (event.target == this) Groups_ActionClickGroup(this.parentNode, opt.dbclick_group); + } + DIV_children.onclick = function(event) { + if (event.target == this && event.which == 1) DOM_Deselect(); + } + DIV_children.onmousedown = function(event) { + event.stopImmediatePropagation(); + if (event.target == this) { + if (event.which == 2 && event.target == this) Groups_ActionClickGroup(this.parentNode, opt.midclick_group); + if (event.which == 3) Menu_ShowFGlobalMenu(event); + } + } + if (!opt.never_show_close) { + DIV_close_button.onmousedown = function(event) { + event.stopImmediatePropagation(); + if (event.which != 3) Folders_RemoveFolder(this.parentNode.parentNode.id); + } + DIV_close_button.onmouseenter = function(event) { + this.classList.add("close_hover"); + } + DIV_close_button.onmouseleave = function(event) { + this.classList.remove("close_hover"); + } + } + DIV_header.onclick = function(event) { + if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target.classList.contains("folder_header")) DOM_Deselect(); + } + DIV_header.onmousedown = function(event) { + event.stopImmediatePropagation(); + if (tt.DOMmenu.style.top != "-1000px") Menu_HideMenus(); + if (event.which == 1) DOM_Select(event, this.parentNode); + if (event.which == 2) { + event.preventDefault(); + Folders_ActionClickFolder(this.parentNode, opt.midclick_folder); + } + if (event.which == 3) Menu_ShowFolderMenu(this.parentNode, event); // SHOW FOLDER MENU + } + DIV_header.ondblclick = function(event) { // edit folder + if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target.classList.contains("folder_header")) Folders_ActionClickFolder(this.parentNode, opt.dbclick_folder); + } + DIV_header.ondragstart = function(event) { // DRAG START + event.stopPropagation(); + event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); + event.dataTransfer.setData("text", ""); + event.dataTransfer.setData("SourceWindowId", tt.CurrentWindowId); + DOM_CleanUpDragAndDrop(); + tt.Dragging = true; + tt.DraggingGroup = false; + tt.DragTreeDepth = -1; + let Nodes = []; + if (this.parentNode.classList.contains("selected")) { + DOM_FreezeSelection(false); + } else { + DOM_FreezeSelection(true); + DOM_SetClasses(this.parentNode, ["selected_temporarly", "selected"], [], []); + } + DOM_RemoveHeadersHoverClass(); + let selected = document.querySelectorAll(".selected, .selected .tab, .selected .folder"); + for (let s of selected) { + s.classList.add("dragged_tree"); + if (s.classList.contains("pin")) { + tt.DraggingPin = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "pin"}); + } + if (s.classList.contains("tab")) { + tt.DraggingTab = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "tab"}); + } + if (s.classList.contains("folder")) { + tt.DraggingFolder = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "folder", index: (tt.folders[s.id] ? tt.folders[s.id].index : 0), name: (tt.folders[s.id] ? tt.folders[s.id].name : labels.noname_group), expand: (tt.folders[s.id] ? tt.folders[s.id].expand : "")}); + } + } + let DraggedFolderParents = DOM_GetParentsByClass(this.parentNode, "folder"); + for (let s of DraggedFolderParents) { + s.classList.add("dragged_parents"); + } + event.dataTransfer.setData("Nodes", JSON.stringify(Nodes)); + event.dataTransfer.setData("NodesTypes", JSON.stringify({DraggingGroup: tt.DraggingGroup, DraggingPin: tt.DraggingPin, DraggingTab: tt.DraggingTab, DraggingFolder: tt.DraggingFolder})); + chrome.runtime.sendMessage({command: "drag_start", DragTreeDepth: tt.DragTreeDepth, DraggingGroup: tt.DraggingGroup, DraggingPin: tt.DraggingPin, DraggingTab: tt.DraggingTab, DraggingFolder: tt.DraggingFolder}); + } + DIV_header.ondragenter = function(event) { + this.classList.remove("folder_header_hover"); + } + DIV_header.ondragend = function(event) { + if (opt.open_tree_on_hover) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = ""; + } + setTimeout(function() {DOM_CleanUpDragAndDrop();}, 300); + setTimeout(function() {chrome.runtime.sendMessage({command: "drag_end"});}, 500); + } + DIV_header.onmouseover = function(event) { + this.classList.add("folder_header_hover"); + if (opt.never_show_close == false && opt.always_show_close == false) this.classList.add("close_show"); + } + DIV_header.onmouseleave = function(event) { + this.classList.remove("folder_header_hover"); + if (opt.never_show_close == false && opt.always_show_close == false) this.classList.remove("close_show"); + } + DIV_header.ondragleave = function(event) { + DOM_RemoveHighlight(); + } + DIV_header.ondragover = function(event) { + if (tt.DraggingGroup == false && (tt.DraggingPin || tt.DraggingTab || tt.DraggingFolder) && this.parentNode.classList.contains("dragged_tree") == false) { + if (this.parentNode.classList.contains("before") == false && event.layerY < this.clientHeight / 3) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["before", "highlighted_drop_target"], ["inside", "after"], []); + } + if (this.parentNode.classList.contains("inside") == false && event.layerY > this.clientHeight / 3 && event.layerY <= 2 * (this.clientHeight / 3)) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["inside", "highlighted_drop_target"], ["before", "after"], []); + } + if (this.parentNode.classList.contains("after") == false && this.parentNode.classList.contains("o") == false && event.layerY > 2 * (this.clientHeight / 3)) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["after", "highlighted_drop_target"], ["inside", "before"], []); + } + } + if (opt.open_tree_on_hover && tt.DragOverId != this.id) { + if (this.parentNode.classList.contains("c") && this.parentNode.classList.contains("dragged_tree") == false) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = this.id; + let This = this; + tt.DragOverTimer = setTimeout(function() { + if (tt.DragOverId == This.id) DOM_SetClasses(This.parentNode, ["o"], ["c"], []); + }, 1500); + } + } + } + DIV_expand.onmousedown = function(event) { + event.stopPropagation(); + if (tt.DOMmenu.style.top != "-1000px") Menu_HideMenus(); + if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target == this) { // EXPAND/COLLAPSE FOLDER + event.stopPropagation(); + DOM_EventExpandBox(this.parentNode.parentNode); + DOM_RefreshExpandStates(); + DOM_RefreshCounters(); + } + } + } + if (p.ParentId == "pin_list" || p.ParentId == "" || p.ParentId == undefined || document.getElementById("°" + p.ParentId) == null) { + document.getElementById("°" + tt.active_group).appendChild(DIV_folder); + } else { + document.getElementById("°" + p.ParentId).appendChild(DIV_folder); + } + if (p.InsertAfterId) { + let After = document.getElementById(p.InsertAfterId); + if (After != null) DOM_InsterAfterNode(DIV_folder, After); + } + } } -function GenerateNewFolderID() { - let newID = ""; - while (newID == "") { - newID = "f_"+GenerateRandomID(); - if (document.getElementById(newID) != null) { - newID = ""; - } - } - return newID; +function Folders_GenerateNewFolderID() { + let newID = ""; + while (newID == "") { + newID = "f_" + GenerateRandomID(); + if (document.getElementById(newID) != null) newID = ""; + } + return newID; } -function AppendFolders(Folders) { - if (opt.debug) { - log("f: AppendFolders, Folders: "+JSON.stringify(Folders)); - } - for (let folderId in Folders) { - AppendFolder(folderId, Folders[folderId].name, Folders[folderId].parent, Folders[folderId].expand, true, undefined); - } - for (let folderId in Folders) { - let f = document.getElementById(folderId); - let parent = document.getElementById("cf"+Folders[folderId].parent); - if (f != null && parent != null && Folders[folderId].parent != f.parentNode.parentNode.id) { - parent.appendChild(f); - } - } +function Folders_PreAppendFolders(folders) { + for (let folderId in folders) {Folders_AppendFolder({folderId: folderId, Name: folders[folderId].name, ParentId: "tab_list", ExpandState: folders[folderId].expand});} } -function SaveFolders() { - document.querySelectorAll(".folder").forEach(function(s){ - tt.folders[s.id].parent = s.parentNode.parentNode.id; - tt.folders[s.id].index = Array.from(s.parentNode.children).indexOf(s); - tt.folders[s.id].expand = (s.classList.contains("c") ? "c" : (s.classList.contains("o") ? "o" : "")); - }); - chrome.runtime.sendMessage({command: "save_folders", folders: tt.folders, windowId: tt.CurrentWindowId}); +function Folders_AppendFolders(folders) { + for (let folderId in folders) { + let f = document.getElementById(folderId); + let parent = document.getElementById("°" + folders[folderId].parent); + if (f != null && parent != null && folders[folderId].parent != f.parentNode.parentNode.id && parent.parentNode.classList.contains("pin") == false) parent.appendChild(f); + } } -function RearrangeFolders(first_loop) { - if (opt.debug) { - log("f: RearrangeFolders"); - } - document.querySelectorAll(".folder").forEach(function(s){ - if (tt.folders[s.id] && s.parentNode.childNodes[tt.folders[s.id].index]) { - let Ind = Array.from(s.parentNode.children).indexOf(s); - if (Ind > tt.folders[s.id].index) { - InsterBeforeNode(s, s.parentNode.childNodes[tt.folders[s.id].index]); - } else { - InsterAfterNode(s, s.parentNode.childNodes[tt.folders[s.id].index]); - } - } - let newInd = Array.from(s.parentNode.children).indexOf(s); - if (tt.folders[s.id] && newInd != tt.folders[s.id].index && first_loop) { - RearrangeFolders(false); - } - }); +function Folders_SaveFolders() { + let query = document.querySelectorAll(".folder"); + for (let s of query) { + tt.folders[s.id].parent = s.parentNode.parentNode.id; + tt.folders[s.id].index = Array.from(s.parentNode.children).indexOf(s); + tt.folders[s.id].expand = (s.classList.contains("c") ? "c" : (s.classList.contains("o") ? "o" : "")); + } + chrome.runtime.sendMessage({command: "save_folders", folders: tt.folders, windowId: tt.CurrentWindowId}); } -function RemoveFolder(FolderId) { - if (opt.debug) { - log("f: RemoveFolder, folderId "+FolderId); - } - let folder = document.getElementById(FolderId); - if (folder != null) { - let CF = folder.childNodes[1]; // CF stands for DIV with children folders - let CT = folder.childNodes[2]; // CT stands for DIV with children tabs - if (opt.promote_children == true) { - if (opt.promote_children_in_first_child == true && CF.children.length > 0) { - let FirstFolderChild = CF.firstChild; - folder.parentNode.insertBefore(FirstFolderChild, folder); - let NewCF = FirstFolderChild.childNodes[1]; - while (CF.firstChild) { - NewCF.appendChild(CF.firstChild); - } - if (CT.childNodes.length > 0) { - let NewCT = FirstFolderChild.childNodes[2]; - while (CT.firstChild) { - NewCT.appendChild(CT.firstChild); - } - } - } else { - let NewCT = document.getElementById("ct"+folder.parentNode.parentNode.id); - // let NewCT = folder.parentNode.parentNode.childNodes[2]; - while (CT.firstChild) { - NewCT.appendChild(CT.firstChild); - } - while (CF.lastChild) { - folder.parentNode.insertBefore(CF.lastChild, folder); - } - } - } else { - document.querySelectorAll("#"+FolderId+" .tab").forEach(function(s){ - chrome.tabs.remove(parseInt(s.id), null); - }); - - document.querySelectorAll("#"+FolderId+" .folder").forEach(function(s){ - delete tt.folders[s.id]; - }); - } - folder.parentNode.removeChild(folder); - delete tt.folders[FolderId]; - RefreshExpandStates(); - chrome.runtime.sendMessage({command: "save_folders", folders: tt.folders, windowId: tt.CurrentWindowId}); - } +function Folders_RemoveFolder(FolderId) { + if (opt.debug) Utils_log("f: RemoveFolder, folderId " + FolderId); + let folder = document.getElementById(FolderId); + if (folder != null) { + if (opt.promote_children == true) { + if (opt.promote_children_in_first_child == true && folder.childNodes[1].childNodes.length > 1) { + DOM_PromoteChildrenToFirstChild(folder); + } else { + let Children = folder.childNodes[1]; + while (Children.lastChild) { + DOM_InsterAfterNode(Children.lastChild, folder); + } + } + } else { + let query = document.querySelectorAll("#" + FolderId + " .tab"); + for (let s of query) { + chrome.tabs.remove(parseInt(s.id), null); + } + query = document.querySelectorAll("#" + FolderId + " .folder"); + for (let s of query) { + delete tt.folders[s.id]; + } + } + folder.parentNode.removeChild(folder); + delete tt.folders[FolderId]; + DOM_RefreshExpandStates(); + chrome.runtime.sendMessage({command: "save_folders", folders: tt.folders, windowId: tt.CurrentWindowId}); + } } - -function ShowRenameFolderDialog(FolderId) { // Rename folder popup - if (opt.debug) { - log("f: ShowRenameFolderDialog, folderId "+FolderId); - } - HideRenameDialogs(); - if (tt.folders[FolderId]) { - let name = document.getElementById("folder_edit_name"); - name.value = tt.folders[FolderId].name; - let folderEditDialog = document.getElementById("folder_edit"); - folderEditDialog.setAttribute("FolderId", FolderId); - folderEditDialog.style.display = "block"; - folderEditDialog.style.top = document.getElementById("toolbar").getBoundingClientRect().height + document.getElementById("pin_list").getBoundingClientRect().height + 8 + "px"; - // folderEditDialog.style.left = "22px"; - folderEditDialog.style.left = ""; - setTimeout(function(){ - document.getElementById("folder_edit_name").select(); - },5); - } +function Folders_ShowRenameFolderDialog(FolderId) { // Rename folder popup + if (opt.debug) Utils_log("f: ShowRenameFolderDialog, folderId " + FolderId); + DOM_HideRenameDialogs(); + if (tt.folders[FolderId]) { + let name = document.getElementById("folder_edit_name"); + name.value = tt.folders[FolderId].name; + let folderEditDialog = document.getElementById("folder_edit"); + folderEditDialog.setAttribute("FolderId", FolderId); + DOM_SetStyle(folderEditDialog, {display: "block", left: "", top: document.getElementById("toolbar").getBoundingClientRect().height + document.getElementById("pin_list").getBoundingClientRect().height + 8 + "px"}); + setTimeout(function() {document.getElementById("folder_edit_name").select();}, 5); + } } -function FolderRenameConfirm() { // when pressed OK in folder popup - let name = document.getElementById("folder_edit_name"); - let FolderId = document.getElementById("folder_edit").getAttribute("FolderId"); - // name.value = name.value.replace(/[\f\n\r\v\t\<\>\+\-\(\)\.\,\;\:\~\/\|\?\@\!\"\'\£\$\%\&\^\#\=\*\[\]]?/gi, ""); - tt.folders[FolderId].name = name.value; - document.getElementById("folder_title" + FolderId).textContent = name.value; - HideRenameDialogs(); - if (opt.debug) { - log("f: FolderRenameConfirm, folderId "+FolderId+", name: "+name.value); - } - chrome.runtime.sendMessage({command: "save_folders", folders: tt.folders, windowId: tt.CurrentWindowId}); - RefreshCounters(); +function Folders_FolderRenameConfirm() { // when pressed OK in folder popup + let name = document.getElementById("folder_edit_name"); + let FolderId = document.getElementById("folder_edit").getAttribute("FolderId"); + tt.folders[FolderId].name = name.value; + document.getElementById("folder_title_"+FolderId).textContent = name.value; + DOM_HideRenameDialogs(); + if (opt.debug) Utils_log("f: FolderRenameConfirm, folderId " + FolderId + ", name: " + name.value); + chrome.runtime.sendMessage({command: "save_folders", folders: tt.folders, windowId: tt.CurrentWindowId}); + DOM_RefreshCounters(); } -function DeselectFolders() { - if (opt.debug) { - log("f: DeselectFolders"); - } - document.querySelectorAll("#"+tt.active_group+" .selected_folder").forEach(function(s){ - s.classList.remove("selected_folder"); - }); -} - -function ActionClickFolder(FolderNode, bgOption) { - if (opt.debug) { - log("f: ActionClickFolder, folderId "+FolderNode.id+", bgOption: "+bgOption); - } - if (bgOption == "rename_folder") { - ShowRenameFolderDialog(FolderNode.id); - } - if (bgOption == "new_folder") { - let FolderId = AddNewFolder({ParentId: FolderNode.id, SetEvents: true}); - ShowRenameFolderDialog(FolderId); - } - if (bgOption == "new_tab") { - OpenNewTab(false, FolderNode.id); - } - if (bgOption == "expand_collapse") { - EventExpandBox(FolderNode); - } - if (bgOption == "close_folder") { - RemoveFolder(FolderNode.id); - } - if (bgOption == "unload_folder") { - let tabsArr = []; - document.querySelectorAll("#"+FolderNode.id+" .tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - }); - DiscardTabs(tabsArr); - } -} - -function FolderStartDrag(Node, event) { - if (opt.debug) { - log("f: FolderStartDrag, folderId "+Node.id); - } - event.stopPropagation(); - event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); - event.dataTransfer.setData("text", ""); - event.dataTransfer.setData("SourceWindowId", tt.CurrentWindowId); - CleanUpDragClasses(); - EmptyDragAndDrop(); - - tt.DragNodeClass = "folder"; - - let TabsIds = []; - let TabsIdsParents = []; - - let Folders = {}; - let FoldersSelected = []; - - - if (Node.parentNode.classList.contains("selected_folder")) { - document.querySelectorAll(".group:not(#"+tt.active_group+") .selected_folder").forEach(function(s){ - s.classList.add("selected_folder_frozen"); - s.classList.remove("selected_folder"); - }); - } else { - FreezeSelected(); - Node.parentNode.classList.add("selected_folder_temporarly"); - Node.parentNode.classList.add("selected_folder"); - } - - RemoveHeadersHoverClass(); - - document.querySelectorAll("[id='"+Node.parentNode.id+"'], [id='"+Node.parentNode.id+"'] .folder, [id='"+Node.parentNode.id+"'] .tab").forEach(function(s){ - s.classList.add("dragged_tree"); - }); - - if (opt.max_tree_drag_drop_folders || opt.max_tree_depth >= 0) { - document.querySelectorAll(".dragged_tree .folder").forEach(function(s){ - let parents = GetParentsByClass(s.parentNode, "dragged_tree"); - if (parents.length > tt.DragTreeDepth) { - tt.DragTreeDepth = parents.length; - } - }); - } else { - tt.DragTreeDepth = -1; - } - - // REST OF SELECTED FOLDERS+TABS THAT WILL BE DRAGGED - document.querySelectorAll(".selected_folder, .selected_folder .tab, .selected_folder .folder").forEach(function(s){ - s.classList.add("dragged_tree"); - }); - - document.querySelectorAll("#"+tt.active_group+" .selected_folder").forEach(function(s){ - FoldersSelected.push(s.id); - Folders[s.id] = Object.assign({}, tt.folders[s.id]); - let Fchildren = document.querySelectorAll("#cf"+s.id+" .folder"); - Fchildren.forEach(function(fc){ - Folders[fc.id] = Folders[fc.id] = Object.assign({}, tt.folders[fc.id]); - }); - let Tchildren = document.querySelectorAll("#ct"+s.id+" .tab"); - Tchildren.forEach(function(tc){ - TabsIds.push(parseInt(tc.id)); - TabsIdsParents.push(tc.parentNode.id); - }); - }); - - let DraggedFolderParents = GetParentsByClass(Node, "folder"); - DraggedFolderParents.forEach(function(s){ - s.classList.add("dragged_parents"); - }); - - event.dataTransfer.setData("Class", "folder"); - - event.dataTransfer.setData("TabsIds", JSON.stringify(TabsIds)); - event.dataTransfer.setData("TabsIdsParents", JSON.stringify(TabsIdsParents)); - - event.dataTransfer.setData("Folders", JSON.stringify(Folders)); - event.dataTransfer.setData("FoldersSelected", JSON.stringify(FoldersSelected)); - - chrome.runtime.sendMessage({ - command: "drag_drop", - DragNodeClass: "folder", - DragTreeDepth: tt.DragTreeDepth - }); -} - -function FolderDragOver(Node, event) { - if (opt.debug) { - log("f: debug, folderId "+Node.id); - } - if (Node.parentNode.classList.contains("dragged_tree") == false) { - - let PDepth = (GetParentsByClass(Node, "folder")).length + tt.DragTreeDepth; - let PIsGroup = Node.parentNode.parentNode.parentNode.classList.contains("group"); - let PIsDraggedParents = Node.parentNode.classList.contains("dragged_parents"); - - if (tt.DragNodeClass == "folder" && Node.parentNode.classList.contains("before") == false && event.layerY < Node.clientHeight/3 && (PDepth <= opt.max_tree_depth+1 || opt.max_tree_depth < 0 || PIsGroup || PIsDraggedParents || opt.max_tree_drag_drop_folders == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("inside"); - Node.parentNode.classList.remove("after"); - Node.parentNode.classList.add("before"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - - if (tt.DragNodeClass == "folder" && Node.parentNode.classList.contains("inside") == false && event.layerY > Node.clientHeight/3 && event.layerY <= 2*(Node.clientHeight/3) && (PDepth <= opt.max_tree_depth || opt.max_tree_depth < 0 || PIsDraggedParents || opt.max_tree_drag_drop_folders == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("before"); - Node.parentNode.classList.remove("after"); - Node.parentNode.classList.add("inside"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - - if (tt.DragNodeClass == "folder" && Node.parentNode.classList.contains("after") == false && Node.parentNode.classList.contains("o") == false && event.layerY > 2*(Node.clientHeight/3) && (PDepth <= opt.max_tree_depth+1 || opt.max_tree_depth < 0 || PIsGroup || PIsDraggedParents || opt.max_tree_drag_drop_folders == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("inside"); - Node.parentNode.classList.remove("before"); - Node.parentNode.classList.add("after"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - - if (tt.DragNodeClass == "tab" && Node.parentNode.classList.contains("inside") == false && (PDepth <= opt.max_tree_depth || opt.max_tree_depth < 0 || PIsDraggedParents || opt.max_tree_drag_drop_folders == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("before"); - Node.parentNode.classList.remove("after"); - Node.parentNode.classList.add("inside"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - } +function Folders_ActionClickFolder(FolderNode, bgOption) { + if (opt.debug) Utils_log("f: ActionClickFolder, folderId " + FolderNode.id + ", bgOption: " + bgOption); + if (bgOption == "rename_folder") Folders_ShowRenameFolderDialog(FolderNode.id); + if (bgOption == "new_folder") { + let FolderId = Folders_AddNewFolder({ParentId: FolderNode.id}); + Folders_ShowRenameFolderDialog(FolderId); + } + if (bgOption == "new_tab") Tabs_OpenNewTab(false, undefined, FolderNode.childNodes[1]); + if (bgOption == "expand_collapse") DOM_EventExpandBox(FolderNode); + if (bgOption == "close_folder") Folders_RemoveFolder(FolderNode.id); + if (bgOption == "unload_folder") { + let tabsArr = []; + let query = document.querySelectorAll("#" + FolderNode.id + " .tab"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_DiscardTabs(tabsArr); + } } \ No newline at end of file diff --git a/scripts/groups.js b/scripts/groups.js index 02fbb88..1d816ad 100644 --- a/scripts/groups.js +++ b/scripts/groups.js @@ -1,574 +1,394 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -// ********** GROUPS FUNCTIONS *************** - -function SaveGroups() { - chrome.runtime.sendMessage({command: "save_groups", groups: tt.groups, windowId: tt.CurrentWindowId}); +function Groups_AppendGroupToList(groupId, group_name, font_color, SetEvents) { + if (document.getElementById(groupId) == null) { + let grp = DOM_New("div", document.getElementById("groups"), {id: groupId, className: "group"}, {display: "none"}); + DOM_New("div", grp, {id: ("°" + groupId), className: "children"}); + if (SetEvents) { + grp.onclick = function(event) { + if (event.which == 1 && event.target == this && event.clientX < (this.childNodes[0].getBoundingClientRect().width + this.getBoundingClientRect().left)) DOM_Deselect(); + } + grp.onmousedown = function(event) { + event.stopImmediatePropagation(); + if (event.which == 1 && event.target == this && event.clientX < (this.childNodes[0].getBoundingClientRect().width + this.getBoundingClientRect().left)) { + Menu_HideMenus(); + return false; + } + if (event.which == 2) { + event.preventDefault(); + Groups_ActionClickGroup(this, opt.midclick_group); + } + if (event.which == 3 && event.target.id == this.id) Menu_ShowFGlobalMenu(event); + if (browserId == "V") { + chrome.windows.getCurrent({populate: false}, function(window) { + if (tt.CurrentWindowId != window.id && window.focused) location.reload(); + }); + } + } + grp.ondragover = function(event) { + if (event.target.id == this.id && (tt.DraggingGroup || tt.DraggingPin || tt.DraggingTab || tt.DraggingFolder)) { + DOM_RemoveHighlight(); + this.classList.add("highlighted_drop_target"); + } + } + grp.ondblclick = function(event) { + if (event.target.id == this.id) Groups_ActionClickGroup(this, opt.dbclick_group); + } + if (opt.switch_with_scroll) DOM_BindTabsSwitchingToMouseWheel(groupId); + } + } + if (document.getElementById("_" + groupId) == null) { + let gbn = DOM_New("div", document.getElementById("group_list"), {id: ("_" + groupId), className: "group_button", draggable: (SetEvents ? true : false)}); + DOM_New("span", gbn, {id: ("_gte" + groupId), className: "group_title", textContent: group_name}, {color: (font_color != "" ? ("#" + font_color) : (window.getComputedStyle(document.getElementById("body"), null).getPropertyValue("--group_list_default_font_color")))}); + DOM_New("div", gbn, {id: ("di" + groupId), className: "drag_indicator"}); + if (SetEvents) { + gbn.onclick = function(event) { + Groups_SetActiveGroup(this.id.substr(1), true, true); + } + gbn.onmousedown = function(event) { + if (event.which == 3) Menu_ShowFGroupMenu(document.getElementById(this.id.substr(1)), event); + } + gbn.ondblclick = function(event) { + if (event.which == 1 && this.id != "_tab_list") Groups_ShowGroupEditWindow((this.id).substr(1)); + } + gbn.ondragstart = function(event) { // DRAG START + event.stopPropagation(); + event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); + event.dataTransfer.setData("text", ""); + event.dataTransfer.setData("SourceWindowId", tt.CurrentWindowId); + DOM_CleanUpDragAndDrop(); + tt.Dragging = true; + tt.DraggingGroup = true; + tt.DragTreeDepth = -1; + let groupId = this.id.substr(1); + let Group = Object.assign({}, tt.groups[groupId]); + let Nodes = []; + let query = document.querySelectorAll("#" + groupId + " .tab, #" + groupId + " .folder"); + for (let s of query) { + if (s.classList.contains("tab")) { + tt.DraggingTab = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: false, temporary: false, NodeClass: "tab"}); + } + if (s.classList.contains("folder")) { + tt.DraggingFolder = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: false, temporary: false, NodeClass: "folder", index: (tt.folders[s.id] ? tt.folders[s.id].index : 0), name: (tt.folders[s.id] ? tt.folders[s.id].name : labels.noname_group), expand: (tt.folders[s.id] ? tt.folders[s.id].expand : "")}); + } + } + event.dataTransfer.setData("Group", JSON.stringify(Group)); + event.dataTransfer.setData("Nodes", JSON.stringify(Nodes)); + event.dataTransfer.setData("NodesTypes", JSON.stringify({DraggingGroup: tt.DraggingGroup, DraggingPin: tt.DraggingPin, DraggingTab: tt.DraggingTab, DraggingFolder: tt.DraggingFolder})); + chrome.runtime.sendMessage({command: "drag_start", DragTreeDepth: tt.DragTreeDepth, DraggingGroup: tt.DraggingGroup, DraggingPin: tt.DraggingPin, DraggingTab: tt.DraggingTab, DraggingFolder: tt.DraggingFolder}); + } + gbn.ondragover = function(event) { + if (this.classList.contains("inside") == false && tt.DraggingGroup == false && (tt.DraggingPin || tt.DraggingTab || tt.DraggingFolder)) { + DOM_RemoveHighlight(); + DOM_SetClasses(this, ["inside", "highlighted_drop_target"], ["before", "after"], []); + } + if (this.classList.contains("before") == false && event.layerY < this.clientHeight / 2 && tt.DraggingGroup) { + DOM_RemoveHighlight(); + DOM_SetClasses(this, ["before", "highlighted_drop_target"], ["inside", "after"], []); + } + if (this.classList.contains("after") == false && event.layerY > this.clientHeight / 2 && tt.DraggingGroup) { + DOM_RemoveHighlight(); + DOM_SetClasses(this, ["after", "highlighted_drop_target"], ["inside", "before"], []); + } + } + gbn.ondragenter = function(event) { + if (opt.open_tree_on_hover) { + if (this.classList.contains("active") == false && (tt.DraggingGroup || tt.DraggingPin || tt.DraggingTab || tt.DraggingFolder)) { + clearTimeout(tt.DragOverTimer); + let This = this; + tt.DragOverTimer = setTimeout(function() {Groups_SetActiveGroup(This.id.substr(1), false, false);}, 1500); + } + } + } + DOM_RefreshGUI(); + } + } } -function AppendGroups(Groups) { - if (opt.debug) { - log("f: AppendGroups, Groups: "+JSON.stringify(Groups)); - } - AppendGroupToList("tab_list", labels.ungrouped_group, "", true); - for (var group in Groups) { - AppendGroupToList(Groups[group].id, Groups[group].name, Groups[group].font, true); - if (document.querySelectorAll(".group").length == Object.keys(Groups).length) { - RearrangeGroupsButtons(); - setTimeout(function() { - RearrangeGroupsLists(); - }, 50); - } - } +function Groups_AddNewGroup(Name, FontColor) { + let newId = Groups_GenerateNewGroupID(); + tt.groups[newId] = {id: newId, index: 0, active_tab: 0, prev_active_tab: 0, name: (Name ? Name : labels.noname_group), font: (FontColor ? FontColor : "")}; + if (opt.debug) Utils_log("f: AddNewGroup, groupId: " + newId + ", Name: " + Name + ", FontColor: " + FontColor); + Groups_AppendGroupToList(newId, tt.groups[newId].name, tt.groups[newId].font, true); + Groups_UpdateBgGroupsOrder(); + return newId; } -function RearrangeGroupsButtons(first_loop) { - if (opt.debug) { - log("f: RearrangeGroupsButtons"); - } - document.querySelectorAll(".group_button").forEach(function(s){ - let groupId = (s.id).substr(1); - if (tt.groups[groupId]) { - if (s.parentNode.childNodes[tt.groups[groupId].index] != undefined) { - let Ind = Array.from(s.parentNode.children).indexOf(s); - if (Ind > tt.groups[groupId].index) { - InsterBeforeNode(s, s.parentNode.childNodes[tt.groups[groupId].index]); - } else { - InsterAfterNode(s, s.parentNode.childNodes[tt.groups[groupId].index]); - } - let newInd = Array.from(s.parentNode.children).indexOf(s); - if (newInd != tt.groups[groupId].index && first_loop) { - RearrangeGroupsButtons(false); - } - } - } - }); +function Groups_SaveGroups() { + chrome.runtime.sendMessage({command: "save_groups", groups: tt.groups, windowId: tt.CurrentWindowId}); } -function RearrangeGroupsLists() { - if (opt.debug) { - log("f: RearrangeGroupsLists"); - } - let activegroup = document.getElementById(tt.active_group); - let scroll = activegroup.scrollTop; - let groups = document.getElementById("groups"); - document.querySelectorAll(".group_button").forEach(function(s){ - let group = document.getElementById((s.id).substr(1)); - if (group != null) { - groups.appendChild(group); - } - }); - activegroup.scrollTop = scroll; +function Groups_AppendGroups(groups) { + Groups_AppendGroupToList("tab_list", labels.ungrouped_group, "", true); + for (var group in groups) { + Groups_AppendGroupToList(groups[group].id, groups[group].name, groups[group].font, true); + if (document.querySelectorAll(".group").length == Object.keys(groups).length) { + Groups_RearrangeGroupsButtons(); + setTimeout(function() {Groups_RearrangeGroupsLists();}, 50); + } + } } -function AppendGroupToList(groupId, group_name, font_color, SetEvents) { - if (opt.debug) { - log("f: AppendGroupToList, groupId: "+groupId+", group_name: "+group_name+", font_color: "+font_color+", SetEvents: "+SetEvents); - } - if (document.getElementById(groupId) == null) { - let grp = document.createElement("div"); grp.className = "group"; grp.id = groupId; grp.style.display = "none"; document.getElementById("groups").appendChild(grp); - let gcf = document.createElement("div"); gcf.className = "children_folders"; gcf.id = "cf"+groupId; grp.appendChild(gcf); - let gct = document.createElement("div"); gct.className = "children_tabs"; gct.id = "ct"+groupId; grp.appendChild(gct); - if (SetEvents) { - grp.onclick = function(event) { - if (event.which == 1 && event.target == this && event.clientX < (this.childNodes[0].getBoundingClientRect().width + this.getBoundingClientRect().left)) { - DeselectFolders(); - DeselectTabs(); - } - } - grp.onmousedown = function(event) { - event.stopImmediatePropagation(); - if (event.which == 1 && event.target == this && event.clientX < (this.childNodes[0].getBoundingClientRect().width + this.getBoundingClientRect().left)) { - HideMenus(); - return false; - } - if (event.which == 2) { - event.preventDefault(); - ActionClickGroup(this, opt.midclick_group); - } - if (event.which == 3 && event.target.id == this.id) { - // SHOW MENU - ShowFGlobalMenu(event); - } - if (browserId == "V") { - chrome.windows.getCurrent({populate: false}, function(window) { - if (tt.CurrentWindowId != window.id && window.focused) { - location.reload(); - } - }); - } - } - grp.ondragover = function(event) { - // PIN,TAB==>GROUP - if (event.target.id == this.id && (tt.DragNodeClass == "tab" || tt.DragNodeClass == "folder")) { - RemoveHighlight(); - this.classList.add("highlighted_drop_target"); - } - // tt.DragOverId = this.id; - } - // grp.ondragenter = function(event) { - // console.log("clearTimeout"); - // if (opt.open_tree_on_hover) { - // clearTimeout(tt.DragOverTimer); - // } - // } - - // DOUBLE CLICK ACTION - grp.ondblclick = function(event) { - if (event.target.id == this.id) { - ActionClickGroup(this, opt.dbclick_group); - } - } - - if (opt.switch_with_scroll) { - BindTabsSwitchingToMouseWheel(groupId); - } - - } - - } - - if (document.getElementById("_"+groupId) == null) { - let gbn = document.createElement("div"); gbn.className = "group_button"; if (SetEvents) {gbn.draggable = true;} gbn.id = "_"+groupId; document.getElementById("group_list").appendChild(gbn); - let gte = document.createElement("span"); gte.className = "group_title"; gte.id = "_gte"+groupId; gte.textContent = group_name; - if (font_color != "") { - gte.style.color = "#"+font_color; - } else { - gte.style.color = window.getComputedStyle(document.getElementById("body"), null).getPropertyValue("--group_list_default_font_color"); - } - gbn.appendChild(gte); - var di = document.createElement("div"); di.className = "drag_indicator"; di.id = "di"+groupId; gbn.appendChild(di); // DROP TARGET INDICATOR - - if (SetEvents) { - - // ACTIVATE GROUP - gbn.onclick = function(event) { - SetActiveGroup(this.id.substr(1), true, true); - } - - // SHOW GROUP MENU - gbn.onmousedown = function(event) { - if (event.which == 3) { - ShowFGroupMenu(document.getElementById(this.id.substr(1)), event); - } - } - - // EDIT GROUP - gbn.ondblclick = function(event) { - if (event.which == 1 && this.id != "_tab_list") { - ShowGroupEditWindow((this.id).substr(1)); - } - } - - // DRAGGING GROUPS - gbn.ondragstart = function(event) { // DRAG START - GroupStartDrag(this, event); - } - - gbn.ondragover = function(event) { - GroupButtonDragOver(this, event); - } - - gbn.ondragenter = function(event) { - // console.log("gbn.ondragenter"); - if (opt.open_tree_on_hover) { - if (this.classList.contains("active") == false && tt.DragNodeClass != "group") { - clearTimeout(tt.DragOverTimer); - let This = this; - tt.DragOverTimer = setTimeout(function() { - SetActiveGroup(This.id.substr(1), false, false); - }, 1500); - } - } - } - // gbn.ondragleave = function(event) { - // console.log("gbn.ondragleave"); - // if (opt.open_tree_on_hover) { - // clearTimeout(tt.DragOverTimer); - // } - // } - - } - } - RefreshGUI(); +function Groups_RearrangeGroupsButtons(first_loop) { + let query = document.querySelectorAll(".group_button"); + for (let s of query) { + let groupId = (s.id).substr(1); + if (tt.groups[groupId]) { + if (s.parentNode.childNodes[tt.groups[groupId].index] != undefined) { + let Ind = Array.from(s.parentNode.children).indexOf(s); + if (Ind > tt.groups[groupId].index) { + DOM_InsterBeforeNode(s, s.parentNode.childNodes[tt.groups[groupId].index]); + } else { + DOM_InsterAfterNode(s, s.parentNode.childNodes[tt.groups[groupId].index]); + } + let newInd = Array.from(s.parentNode.children).indexOf(s); + if (newInd != tt.groups[groupId].index && first_loop) Groups_RearrangeGroupsButtons(false); + } + } + } } -function GenerateNewGroupID(){ - let newID = ""; - while (newID == "") { - newID = "g_"+GenerateRandomID(); - if (document.getElementById(newID) != null) { - newID = ""; - } - } - return newID; +function Groups_RearrangeGroupsLists() { + if (opt.debug) Utils_log("f: RearrangeGroupsLists"); + let activegroup = document.getElementById(tt.active_group); + let scroll = activegroup.scrollTop; + let groups = document.getElementById("groups"); + let query = document.querySelectorAll(".group_button"); + for (let s of query) { + let group = document.getElementById((s.id).substr(1)); + if (group != null) groups.appendChild(group); + } + activegroup.scrollTop = scroll; } -function AddNewGroup(Name, FontColor) { - let newId = GenerateNewGroupID(); - tt.groups[newId] = { id: newId, index: 0, active_tab: 0, prev_active_tab: 0, active_tab_ttid: "", name: (Name ? Name : labels.noname_group), font: (FontColor ? FontColor : "") }; - if (opt.debug) { - log("f: AddNewGroup, groupId: "+newId+", Name: "+Name+", FontColor: "+FontColor); - } - AppendGroupToList(newId, tt.groups[newId].name, tt.groups[newId].font, true); - UpdateBgGroupsOrder(); - return newId; +function Groups_UpdateBgGroupsOrder() { + let query = document.querySelectorAll(".group_button"); + for (let s of query) { + if (tt.groups[(s.id).substr(1)]) tt.groups[(s.id).substr(1)].index = Array.from(s.parentNode.children).indexOf(s); + } + Groups_SaveGroups(); } -// remove group, delete tabs if close_tabs is true -function GroupRemove(groupId, close_tabs) { - if (close_tabs) { - let tabIds = Array.prototype.map.call(document.querySelectorAll("#"+groupId+" .tab"), function(s){ - return parseInt(s.id); - }); - CloseTabs(tabIds); - document.querySelectorAll("#"+groupId+" .folder").forEach(function(s){ - RemoveFolder(s.id); - }); - } else { - let TabListFolders = document.getElementById("cftab_list"); - let GroupFolders = document.getElementById("cf"+groupId); - if (GroupFolders != null) { - while (GroupFolders.firstChild) { - TabListFolders.appendChild(GroupFolders.firstChild); - } - } - let TabListTabs = document.getElementById("cttab_list"); - let GroupTabs = document.getElementById("ct"+groupId); - if (GroupTabs != null) { - while (GroupTabs.firstChild) { - TabListTabs.appendChild(GroupTabs.firstChild); - } - } - RefreshExpandStates(); - RefreshCounters(); - } - if (groupId != "tab_list") { - delete tt.groups[groupId]; - if (groupId == tt.active_group) { - if (document.getElementById("_"+groupId).previousSibling) { - SetActiveGroup((document.getElementById("_"+groupId).previousSibling.id).substr(1), true, true); - } else { - if (document.getElementById("_"+groupId).nextSibling) { - SetActiveGroup((document.getElementById("_"+groupId).nextSibling.id).substr(1), true, true); - } else { - SetActiveGroup("tab_list", true, true); - } - } - } - let group = document.getElementById(groupId); - if (group != null) { - group.parentNode.removeChild(group); - } - let groupButton = document.getElementById("_"+groupId); - if (groupButton != null) { - groupButton.parentNode.removeChild(groupButton); - } - } - SaveGroups(); - tt.schedule_update_data++; +function Groups_GenerateNewGroupID() { + let newID = ""; + while (newID == "") { + newID = "g_" + GenerateRandomID(); + if (document.getElementById(newID) != null) newID = ""; + } + return newID; } -function UpdateBgGroupsOrder() { - document.querySelectorAll(".group_button").forEach(function(s){ - if (tt.groups[(s.id).substr(1)]) { - tt.groups[(s.id).substr(1)].index = Array.from(s.parentNode.children).indexOf(s); - } - }); - SaveGroups(); +function Groups_GroupRemove(groupId, close_tabs) { // remove group, delete tabs if close_tabs is true + if (close_tabs) { + let tabIds = Array.prototype.map.call(document.querySelectorAll("#" + groupId + " .tab"), function(s) {return parseInt(s.id);}); + Tabs_CloseTabs(tabIds); + let query = document.querySelectorAll("#" + groupId + " .folder"); + for (let s of query) { + Folders_RemoveFolder(s.id); + } + } else { + let TabList = document.getElementById("°tab_list"); + let GroupList = document.getElementById("°" + groupId); + if (TabList != null && GroupList != null) { + while (GroupList.firstChild) { + TabList.appendChild(GroupList.firstChild); + } + } + DOM_RefreshExpandStates(); + DOM_RefreshCounters(); + } + if (groupId != "tab_list") { + delete tt.groups[groupId]; + let active_tab_is_pin = document.querySelector(".pin.active_tab"); + if (groupId == tt.active_group && active_tab_is_pin == null) { + if (document.getElementById("_" + groupId).previousSibling) { + Groups_SetActiveGroup((document.getElementById("_" + groupId).previousSibling.id).substr(1), true, true); + } else { + if (document.getElementById("_" + groupId).nextSibling) { + Groups_SetActiveGroup((document.getElementById("_" + groupId).nextSibling.id).substr(1), true, true); + } else { + Groups_SetActiveGroup("tab_list", true, true); + } + } + } + let group = document.getElementById(groupId); + if (group != null) group.parentNode.removeChild(group); + let groupButton = document.getElementById("_" + groupId); + if (groupButton != null) groupButton.parentNode.removeChild(groupButton); + } + Groups_SaveGroups(); + tt.schedule_update_data++; } -function KeepOnlyOneActiveTabInGroup() { - let active_tabs = document.querySelectorAll("#"+tt.active_group+" .active_tab"); - if (active_tabs.length > 1) { - chrome.tabs.query({currentWindow: true, active: true}, function(activeTab) { - SetActiveTab(activeTab[0].id, false); - }); - } +function Groups_KeepOnlyOneActiveTabInGroup() { + let active_tabs = document.querySelectorAll("#" + tt.active_group + " .active_tab"); + if (active_tabs.length > 1) { + chrome.tabs.query({currentWindow: true, active: true}, function(activeTab) { + Tabs_SetActiveTab(activeTab[0].id, false); + }); + } } -function SetActiveGroup(groupId, switch_to_active_in_group, scroll_to_active) { - if (opt.debug) { - log("f: SetActiveGroup, groupId: "+groupId+", switch_to_active_in_group: "+switch_to_active_in_group+", scroll_to_active: "+scroll_to_active); - } - let group = document.getElementById(groupId); - if (group != null) { - tt.active_group = groupId; - document.querySelectorAll(".group_button").forEach(function(s){ - s.classList.remove("active_group"); - }); - document.getElementById("_"+groupId).classList.add("active_group"); - document.querySelectorAll(".group").forEach(function(s){ - s.style.display = "none"; - }); - group.style.display = ""; - RefreshGUI(); - HideRenameDialogs() - let activeTab = document.querySelector("#"+groupId+" .active_tab"); - if (activeTab != null ){ - if (switch_to_active_in_group){ - chrome.tabs.update(parseInt(activeTab.id), {active: true}); - } - if (scroll_to_active){ - ScrollToTab(activeTab.id); - } - KeepOnlyOneActiveTabInGroup(); - } - if (groupId == "tab_list") { - document.querySelectorAll("#button_remove_group, #button_edit_group").forEach(function(s){ - s.classList.add("disabled"); - }); - } else { - document.querySelectorAll("#button_remove_group, #button_edit_group").forEach(function(s){ - s.classList.remove("disabled"); - }); - } - chrome.runtime.sendMessage({command: "set_active_group", active_group: groupId, windowId: tt.CurrentWindowId}); - RefreshExpandStates(); - RefreshCounters(); - - if (browserId == "F" && opt.hide_other_groups_tabs_firefox) { - let HideTabIds = Array.prototype.map.call(document.querySelectorAll(".group:not([id='"+groupId+"']) .tab"), function(s){ - return parseInt(s.id); - }); - let ShowTabIds = Array.prototype.map.call(document.querySelectorAll("#"+groupId+" .tab"), function(s){ - return parseInt(s.id); - }); - - browser.tabs.hide(HideTabIds); - browser.tabs.show(ShowTabIds); - } - } +function Groups_SetActiveGroup(groupId, switch_to_active_in_group, scroll_to_active) { + if (opt.debug) Utils_log("f: SetActiveGroup, groupId: " + groupId + ", switch_to_active_in_group: " + switch_to_active_in_group + ", scroll_to_active: " + scroll_to_active); + let group = document.getElementById(groupId); + if (group != null) { + tt.active_group = groupId; + let query = document.querySelectorAll(".group_button"); + for (let s of query) { + s.classList.remove("active_group"); + } + document.getElementById("_" + groupId).classList.add("active_group"); + query = document.querySelectorAll(".group"); + for (let s of query) { + s.style.display = "none"; + } + group.style.display = ""; + DOM_RefreshGUI(); + DOM_HideRenameDialogs() + let activeTab = document.querySelector("#" + groupId + " .active_tab"); + if (activeTab != null) { + if (switch_to_active_in_group) chrome.tabs.update(parseInt(activeTab.id), {active: true}); + if (scroll_to_active && tt.tabs[activeTab.id]) tt.tabs[activeTab.id].ScrollToTab(); + Groups_KeepOnlyOneActiveTabInGroup(); + } + if (groupId == "tab_list") { + let query = document.querySelectorAll("#button_remove_group, #button_edit_group"); + for (let s of query) { + s.classList.add("disabled"); + } + } else { + let query = document.querySelectorAll("#button_remove_group, #button_edit_group"); + for (let s of query) { + s.classList.remove("disabled"); + } + } + chrome.runtime.sendMessage({command: "set_active_group", active_group: groupId, windowId: tt.CurrentWindowId}); + DOM_RefreshExpandStates(); + DOM_RefreshCounters(); + if (browserId == "F" && opt.hide_other_groups_tabs_firefox) { + let HideTabIds = Array.prototype.map.call(document.querySelectorAll(".group:not([id='" + groupId + "']) .tab"), function(s) { + return parseInt(s.id); + }); + let ShowTabIds = Array.prototype.map.call(document.querySelectorAll("#" + groupId + " .tab"), function(s) { + return parseInt(s.id); + }); + browser.tabs.hide(HideTabIds); + browser.tabs.show(ShowTabIds); + } + } } -function SetActiveTabInGroup(groupId, tabId) { - if (document.querySelector("#"+groupId+" [id='"+tabId+"']") != null && tt.groups[groupId] != undefined) { - if (groupId != tt.active_group) { - SetActiveGroup(groupId, false, true); - } - if (tt.groups[groupId]) { - tt.groups[groupId].prev_active_tab = tt.groups[groupId].active_tab; - tt.groups[groupId].active_tab = parseInt(tabId); - } - SaveGroups(); - } +function Groups_SetActiveTabInGroup(groupId, tabId) { + if (document.querySelector("#" + groupId + " [id='" + tabId + "']") != null && tt.groups[groupId] != undefined) { + if (groupId != tt.active_group) Groups_SetActiveGroup(groupId, false, true); + if (tt.groups[groupId]) { + tt.groups[groupId].prev_active_tab = tt.groups[groupId].active_tab; + tt.groups[groupId].active_tab = parseInt(tabId); + } + Groups_SaveGroups(); + } } -// Edit group popup -function ShowGroupEditWindow(groupId) { - HideRenameDialogs(); - if (tt.groups[groupId]) { - let name = document.getElementById("group_edit_name"); - name.value = tt.groups[groupId].name; - let groupEditDialog = document.getElementById("group_edit"); - groupEditDialog.setAttribute("groupId", groupId); - groupEditDialog.style.display = "block"; - groupEditDialog.style.top = document.getElementById("toolbar").getBoundingClientRect().height + document.getElementById("pin_list").getBoundingClientRect().height + 8 + "px"; - // groupEditDialog.style.left = "22px"; - groupEditDialog.style.left = ""; - let DefaultGroupButtonFontColor = window.getComputedStyle(document.getElementById("body"), null).getPropertyValue("--group_list_default_font_color"); - let GroupEditFont = document.getElementById("group_edit_font"); - GroupEditFont.style.backgroundColor = (tt.groups[groupId].font == "" ? DefaultGroupButtonFontColor : "#"+tt.groups[groupId].font); - setTimeout(function(){ - document.getElementById("group_edit_name").select(); - },5); - } +function Groups_ShowGroupEditWindow(groupId) { // Edit group popup + DOM_HideRenameDialogs(); + if (tt.groups[groupId]) { + let name = document.getElementById("group_edit_name"); + name.value = tt.groups[groupId].name; + let groupEditDialog = document.getElementById("group_edit"); + groupEditDialog.setAttribute("groupId", groupId); + DOM_SetStyle(groupEditDialog, {display: "block", left: "", top: document.getElementById("toolbar").getBoundingClientRect().height + document.getElementById("pin_list").getBoundingClientRect().height + 8 + "px"}); + let DefaultGroupButtonFontColor = window.getComputedStyle(document.getElementById("body"), null).getPropertyValue("--group_list_default_font_color"); + let GroupEditFont = document.getElementById("group_edit_font"); + GroupEditFont.style.backgroundColor = (tt.groups[groupId].font == "" ? DefaultGroupButtonFontColor : "#" + tt.groups[groupId].font); + setTimeout(function() {document.getElementById("group_edit_name").select();}, 5); + } } -// when pressed OK in group popup -function GroupEditConfirm() { - let groupId = document.getElementById("group_edit").getAttribute("groupId"); - if (tt.groups[groupId]) { - let GroupEditName = document.getElementById("group_edit_name"); - // GroupEditName.value = GroupEditName.value.replace(/[\f\n\r\v\t\<\>\+\-\(\)\.\,\;\:\~\/\|\?\@\!\"\'\£\$\%\&\^\#\=\*\[\]]?/gi, ""); - tt.groups[groupId].name = GroupEditName.value; - let GroupEditFont = document.getElementById("group_edit_font"); - let DefaultGroupButtonFontColor = window.getComputedStyle(document.getElementById("body"), null).getPropertyValue("--group_list_default_font_color"); - let ThisGroupButtonFontColor = RGBtoHex(GroupEditFont.style.backgroundColor); - if ("#"+ThisGroupButtonFontColor != DefaultGroupButtonFontColor) { - tt.groups[groupId].font = ThisGroupButtonFontColor; - document.getElementById("_gte"+groupId).style.color = "#"+ThisGroupButtonFontColor; - } - HideRenameDialogs(); - RefreshGUI(); - SaveGroups(); - } +function Groups_GroupEditConfirm() { // when pressed OK in group popup + let groupId = document.getElementById("group_edit").getAttribute("groupId"); + if (tt.groups[groupId]) { + let GroupEditName = document.getElementById("group_edit_name"); + tt.groups[groupId].name = GroupEditName.value; + let GroupEditFont = document.getElementById("group_edit_font"); + let DefaultGroupButtonFontColor = window.getComputedStyle(document.getElementById("body"), null).getPropertyValue("--group_list_default_font_color"); + let ThisGroupButtonFontColor = Utils_RGBtoHex(GroupEditFont.style.backgroundColor); + if ("#" + ThisGroupButtonFontColor != DefaultGroupButtonFontColor) { + tt.groups[groupId].font = ThisGroupButtonFontColor; + document.getElementById("_gte" + groupId).style.color = "#" + ThisGroupButtonFontColor; + } + DOM_HideRenameDialogs(); + DOM_RefreshGUI(); + Groups_SaveGroups(); + } } -function RestoreStateOfGroupsToolbar() { - chrome.runtime.sendMessage({command: "get_group_bar", windowId: tt.CurrentWindowId}, function(response) { - let toolbarGroups = document.getElementById("toolbar_groups"); - if (response == true) { - toolbarGroups.style.display = "inline-block"; - toolbarGroups.style.width = "19px"; - toolbarGroups.style.borderRight = "1px solid var(--group_list_borders)"; - toolbarGroups.classList.remove("hidden"); - } else { - toolbarGroups.style.display = "none"; - toolbarGroups.style.width = "0px"; - toolbarGroups.style.borderRight = "none"; - toolbarGroups.classList.add("hidden"); - } - }); +function Groups_RestoreStateOfGroupsToolbar() { + chrome.runtime.sendMessage({command: "get_group_bar", windowId: tt.CurrentWindowId}, function(response) { + let toolbarGroups = document.getElementById("toolbar_groups"); + if (response == true) { + DOM_SetStyle(toolbarGroups, {display: "inline-block", width: "19px", borderRight: "1px solid var(--group_list_borders)"}); + toolbarGroups.classList.remove("hidden"); + } else { + DOM_SetStyle(toolbarGroups, {display: "none", width: "0px", borderRight: "none"}); + toolbarGroups.classList.add("hidden"); + } + }); } -function GroupsToolbarToggle() { - let toolbarGroups = document.getElementById("toolbar_groups"); - toolbarGroups.classList.toggle("hidden"); - if (toolbarGroups.classList.contains("hidden")) { - toolbarGroups.style.display = "none"; - toolbarGroups.style.width = "0px"; - toolbarGroups.style.borderRight = "none"; - chrome.runtime.sendMessage({command: "set_group_bar", group_bar: false, windowId: tt.CurrentWindowId}); - } else { - toolbarGroups.style.display = "inline-block"; - toolbarGroups.style.width = "19px"; - toolbarGroups.style.borderRight = "1px solid var(--group_list_borders)"; - chrome.runtime.sendMessage({command: "set_group_bar", group_bar: true, windowId: tt.CurrentWindowId}); - } - RefreshGUI(); +function Groups_GroupsToolbarToggle() { + let toolbarGroups = document.getElementById("toolbar_groups"); + toolbarGroups.classList.toggle("hidden"); + if (toolbarGroups.classList.contains("hidden")) { + DOM_SetStyle(toolbarGroups, {display: "none", width: "0px", borderRight: "none"}); + chrome.runtime.sendMessage({command: "set_group_bar", group_bar: false, windowId: tt.CurrentWindowId}); + } else { + DOM_SetStyle(toolbarGroups, {display: "inline-block", width: "19px", borderRight: "1px solid var(--group_list_borders)"}); + chrome.runtime.sendMessage({command: "set_group_bar", group_bar: true, windowId: tt.CurrentWindowId}); + } + DOM_RefreshGUI(); } -function ActionClickGroup(Node, bgOption) { - if (bgOption == "new_tab") { - if (Node.id == "pin_list") { - OpenNewTab(true, undefined); - } - if (Node.classList.contains("tab") || Node.classList.contains("folder") || Node.classList.contains("group")) { - OpenNewTab(false, Node.id); - } - } - if (bgOption == "activate_previous_active") { - chrome.tabs.update(parseInt(tt.groups[tt.active_group].prev_active_tab), {active: true}); - } - if (bgOption == "undo_close_tab") { - chrome.sessions.getRecentlyClosed( null, function(sessions) { - if (sessions.length > 0) { - chrome.sessions.restore(null, function(restored) {}); - } - }); - } +function Groups_ActionClickGroup(Node, bgOption) { + if (bgOption == "new_tab") { + if (Node.id == "pin_list") Tabs_OpenNewTab(true, undefined, undefined); + if (Node.classList.contains("tab")) Tabs_OpenNewTab(false, Node); + if (Node.classList.contains("folder")) Tabs_OpenNewTab(false, undefined, Node.childNodes[1]); + if (Node.classList.contains("group")) Tabs_OpenNewTab(false, undefined, Node.childNodes[0]); + } + if (bgOption == "activate_previous_active") { + chrome.tabs.update(parseInt(tt.groups[tt.active_group].prev_active_tab), {active: true}); + } + if (bgOption == "undo_close_tab") { + chrome.sessions.getRecentlyClosed(null, function(sessions) { + if (sessions.length > 0) chrome.sessions.restore(null, function(restored) {}); + }); + } } - - - -// SET ACTIVE TAB FOR EACH GROUP -function SetActiveTabInEachGroup() { - chrome.tabs.query({currentWindow: true, active: true}, function(tabs) { - if (tabs.length) { - SetActiveTab(tabs[0].id); - chrome.runtime.sendMessage({command: "get_active_group", windowId: tt.CurrentWindowId}, function(response) { - if (response) { - SetActiveGroup(response, false, true); - for (var group in tt.groups) { - let ActiveInGroup = document.querySelector("#"+group+" [id='"+tt.groups[group].active_tab+"']"); - if (ActiveInGroup != null) { - ActiveInGroup.classList.add("active_tab"); - } - } - if (tabs[0].pinned) { - let ActiveTabinActiveGroup = document.querySelectorAll("#"+tt.active_group+" .active_tab"); - if (ActiveTabinActiveGroup != null) { - ActiveTabinActiveGroup.forEach(function(s){ - s.classList.remove("active_tab"); - }); - } - } - } else { - SetActiveGroup("tab_list", false, true); - } - }); - } - }); -} - - -// function ActionClickGroup(GroupNode, bgOption) { - // if (opt.debug) { - // log("f: ActionClickGroup, GroupId "+GroupNode.id+", bgOption: "+bgOption); - // } - // if (bgOption == "rename_folder") { - // ShowRenameFolderDialog(FolderNode.id); - // } -// } - - -function GroupButtonDragOver(Node, event) { - if (Node.classList.contains("inside") == false && (tt.DragNodeClass == "tab" || tt.DragNodeClass == "folder")) { - RemoveHighlight(); - Node.classList.remove("before"); - Node.classList.remove("after"); - Node.classList.add("inside"); - Node.classList.add("highlighted_drop_target"); - } - - if (Node.classList.contains("before") == false && event.layerY < Node.clientHeight/2 && tt.DragNodeClass == "group") { - RemoveHighlight(); - Node.classList.add("before"); - Node.classList.remove("after"); - Node.classList.remove("inside"); - Node.classList.add("highlighted_drop_target"); - } - - if (Node.classList.contains("after") == false && event.layerY > Node.clientHeight/2 && tt.DragNodeClass == "group") { - RemoveHighlight(); - Node.classList.remove("before"); - Node.classList.add("after"); - Node.classList.remove("inside"); - Node.classList.add("highlighted_drop_target"); - } -} - -function GroupStartDrag(Node, event) { - if (opt.debug) { - log("f: GroupStartDrag, GroupId "+Node.id); - } - event.stopPropagation(); - event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); - event.dataTransfer.setData("text", ""); - event.dataTransfer.setData("SourceWindowId", tt.CurrentWindowId); - CleanUpDragClasses(); - EmptyDragAndDrop(); - - tt.DragNodeClass = "group"; - - let Group = Object.assign({}, tt.groups[Node.id.substr(1)]); - let TabsIds = []; - let TabsIdsParents = []; - let Folders = {}; - - - document.querySelectorAll("#"+Node.id.substr(1)+" .tab").forEach(function(s){ - TabsIds.push(parseInt(s.id)); - TabsIdsParents.push(s.parentNode.id); - }); - - document.querySelectorAll("#"+Node.id.substr(1)+" .folder").forEach(function(s){ - Folders[s.id] = Object.assign({}, tt.folders[s.id]); - }); - - // console.log(Group); - // console.log(TabsIds); - // console.log(TabsIdsParents); - // console.log(Folders); - - // let Group = document.getElementById(Node.id.substr(1)); - - event.dataTransfer.setData("Class", "group"); - - event.dataTransfer.setData("Group", JSON.stringify(Group)); - event.dataTransfer.setData("TabsIds", JSON.stringify(TabsIds)); - event.dataTransfer.setData("TabsIdsParents", JSON.stringify(TabsIdsParents)); - - event.dataTransfer.setData("Folders", JSON.stringify(Folders)); - - chrome.runtime.sendMessage({ - command: "drag_drop", - DragNodeClass: "group", - DragTreeDepth: 0 - }); - -} +function Groups_SetActiveTabInEachGroup() { // SET ACTIVE TAB FOR EACH GROUP + chrome.tabs.query({currentWindow: true, active: true}, function(tabs) { + if (tabs.length) { + Tabs_SetActiveTab(tabs[0].id); + chrome.runtime.sendMessage({command: "get_active_group", windowId: tt.CurrentWindowId}, function(response) { + if (response) { + Groups_SetActiveGroup(response, false, true); + for (var group in tt.groups) { + let ActiveInGroup = document.querySelector("#" + group + " [id='" + tt.groups[group].active_tab + "']"); + if (ActiveInGroup != null) ActiveInGroup.classList.add("active_tab"); + } + if (tabs[0].pinned) { + let ActiveTabinActiveGroup = document.querySelectorAll("#" + tt.active_group + " .active_tab"); + if (ActiveTabinActiveGroup != null) { + for (let s of ActiveTabinActiveGroup) { + s.classList.remove("active_tab"); + } + } + } + } else { + Groups_SetActiveGroup("tab_list", false, true); + } + }); + } + }); +} \ No newline at end of file diff --git a/scripts/listeners.js b/scripts/listeners.js deleted file mode 100644 index ce1ed94..0000000 --- a/scripts/listeners.js +++ /dev/null @@ -1,313 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -function StartSidebarListeners() { - if (browserId == "F") { - browser.browserAction.onClicked.addListener(function(tab) { - if (tab.windowId == tt.CurrentWindowId) { - browser.sidebarAction.close(); - } - }); - } - - chrome.commands.onCommand.addListener(function(command) { - chrome.windows.getCurrent({populate: false}, function(window) { - if (window.id == tt.CurrentWindowId && window.focused) { - chrome.tabs.query({windowId: tt.CurrentWindowId, active: true}, function(tabs) { - let tabsArr = []; - document.querySelectorAll("[id='"+tabs[0].id+"'] .tab, [id='"+tabs[0].id+"']").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - if (s.childNodes[1].childNodes.length > 0) { - document.querySelectorAll("#"+s.childNodes[1].id+" .tab").forEach(function(t){ - tabsArr.push(parseInt(t.id)); - }); - } - }); - CloseTabs(tabsArr); - }); - } - }); - }); - - chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { - if (message.command == "backup_available") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - let BAKbutton = document.getElementById("button_load_bak"+message.bak); - if (BAKbutton != null) { - BAKbutton.classList.remove("disabled"); - } - return; - } - if (message.command == "drag_drop") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - CleanUpDragClasses(); - tt.DragNodeClass = message.DragNodeClass; - tt.DragTreeDepth = message.DragTreeDepth; - return; - } - if (message.command == "dragend") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - CleanUpDragClasses(); - EmptyDragAndDrop(); - return; - } - if (message.command == "remove_folder") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command+" folderId: "+message.folderId); - } - RemoveFolder(message.folderId); - return; - } - if (message.command == "remove_group") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command+" groupId: "+message.groupId); - } - setTimeout(function() { - GroupRemove(message.groupId, false); - }, 2000); - return; - } - if (message.command == "reload_sidebar") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - window.location.reload(); - return; - } - if (message.command == "reload_options") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - opt = Object.assign({}, message.opt); - setTimeout(function() { - RestorePinListRowSettings(); - }, 100); - return; - } - if (message.command == "reload_toolbar") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - opt = Object.assign({}, message.opt); - - if (opt.show_toolbar) { - RemoveToolbar(); - RecreateToolbar(message.toolbar); - SetToolbarEvents(false, true, true, "mousedown"); - RestoreToolbarShelf(); - RestoreToolbarSearchFilter(); - } else { - RemoveToolbar(); - } - RefreshGUI(); - return; - } - if (message.command == "reload_theme") { - if (opt.debug) { - log("message to sidebar "+tt.CurrentWindowId+": message: "+message.command); - } - RestorePinListRowSettings(); - ApplyTheme(message.theme); - return; - } - if (message.windowId == tt.CurrentWindowId) { - - if (message.command == "append_group") { - if (tt.groups[message.groupId] == undefined) { - tt.groups[message.groupId] = {id: message.groupId, index: Object.keys(tt.groups).length, active_tab: 0, prev_active_tab: 0, active_tab_ttid: "", name: message.group_name, font: message.font_color}; - AppendGroupToList(message.groupId, message.group_name, message.font_color, true); - } - return; - } - - if (message.command == "append_tab_to_group") { - let Group = document.getElementById("ct"+message.groupId); - let Tab = document.getElementById(message.tabId); - if (Group && Tab) { - Group.appendChild(Tab); - SetActiveGroup(message.groupId, false, true); - } - return; - } - - if (message.command == "tab_created") { - - if (message.InsertAfterId && document.querySelectorAll("#"+tt.active_group+" .tab").length == 0) { - message.InsertAfterId = undefined; - message.ParentId = tt.active_group; - } - - - AppendTab({tab: message.tab, ParentId: message.ParentId, InsertAfterId: message.InsertAfterId, Append: message.Append, Scroll: true}); - - RefreshExpandStates(); - setTimeout(function() { - RefreshCounters(); - RefreshGUI(); - },50); - - if (opt.syncro_tabbar_tabs_order) { - let tabIds = Array.prototype.map.call(document.querySelectorAll(".pin, .tab"), function(s){ - return parseInt(s.id); - }); - chrome.tabs.move(message.tab.id, {index: tabIds.indexOf(message.tab.id)}); - } - - setTimeout(function() { - tt.schedule_update_data++; - }, 1000); - - return; - } - if (message.command == "tab_attached") { - if (opt.debug) { - log("chrome event: "+message.command+", tabId: "+message.tabId+", tab is pinned: "+message.tab.pinned+", ParentId: "+message.ParentId); - } - - AppendTab({tab: message.tab, ParentId: message.ParentId, Append: true, SkipSetActive: true, SkipMediaIcon: true}); - RefreshGUI(); - return; - } - if (message.command == "tab_detached") { - if (opt.debug) { - log("chrome event: "+message.command+ ", tabId: " + message.tabId); - } - let Tab = document.getElementById(message.tabId); - if (Tab != null) { - let ctDetachedParent = Tab.childNodes[1]; - if (opt.promote_children_in_first_child == true && ctDetachedParent.childNodes.length > 1) { - let ctNewParent = document.getElementById(ctDetachedParent.firstChild.id).childNodes[1]; - ctDetachedParent.parentNode.parentNode.insertBefore(ctDetachedParent.firstChild, ctDetachedParent.parentNode); - while (ctDetachedParent.firstChild) { - ctNewParent.appendChild(ctDetachedParent.firstChild); - } - } else { - while (ctDetachedParent.firstChild) { - ctDetachedParent.parentNode.parentNode.insertBefore(ctDetachedParent.firstChild, ctDetachedParent.parentNode); - } - } - } - RemoveTabFromList(message.tabId); - setTimeout(function() { - tt.schedule_update_data++; - }, 300); - RefreshGUI(); - return; - } - if (message.command == "tab_removed") { - if (opt.debug) { - log("chrome event: "+message.command+ ", tabId: " + message.tabId); - } - - - let mTab = document.getElementById(message.tabId); - if (mTab != null) { - let ctParent = mTab.childNodes[1]; - if (opt.debug) { - log("tab_removed, promote children: " +opt.promote_children); - } - if (opt.promote_children == true) { - if (opt.promote_children_in_first_child == true && ctParent.childNodes.length > 1) { - let ctNewParent = document.getElementById(ctParent.firstChild.id).childNodes[1]; - ctParent.parentNode.parentNode.insertBefore(ctParent.firstChild, ctParent.parentNode); - while (ctParent.firstChild) { - ctNewParent.appendChild(ctParent.firstChild); - } - } else { - while (ctParent.firstChild) { - ctParent.parentNode.parentNode.insertBefore(ctParent.firstChild, ctParent.parentNode); - } - } - } else { - document.querySelectorAll("[id='"+message.tabId+"'] .tab").forEach(function(s) { - chrome.tabs.remove(parseInt(s.id)); - }); - } - RemoveTabFromList(message.tabId); - RefreshExpandStates(); - setTimeout(function() { - tt.schedule_update_data++; - }, 300); - RefreshGUI(); - RefreshCounters(); - } - return; - } - if (message.command == "tab_activated") { - if (opt.debug) { - log("chrome event: "+message.command+ ", tabId: " + message.tabId); - } - SetActiveTab(message.tabId, true); - return; - } - if (message.command == "tab_attention") { - if (opt.debug) { - log("chrome event: "+message.command+ ", tabId: " + message.tabId); - } - SetAttentionIcon(message.tabId); - return; - } - if (message.command == "tab_updated") { - if (opt.debug) { - log("chrome event: "+message.command+ ", tabId: " + message.tabId); - // + ", changeInfo: "+JSON.stringify(message.changeInfo)); - // log(message.changeInfo); - } - - if (message.changeInfo.favIconUrl != undefined || message.changeInfo.url != undefined) { - setTimeout(function() { - GetFaviconAndTitle(message.tabId, true); - }, 100); - } - if (message.changeInfo.title != undefined) { - setTimeout(function() { - GetFaviconAndTitle(message.tabId, true); - }, 1000); - } - if (message.changeInfo.audible != undefined || message.changeInfo.mutedInfo != undefined) { - RefreshMediaIcon(message.tabId); - } - if (message.changeInfo.discarded != undefined) { - RefreshDiscarded(message.tabId); - // RefreshMediaIcon(message.tabId); - } - if (message.changeInfo.pinned != undefined) { - let updateTab = document.getElementById(message.tabId); - if (updateTab != null) { - if (message.tab.pinned && updateTab.classList.contains("pin") == false) { - SetTabClass(message.tabId, true); - tt.schedule_update_data++; - } - if (!message.tab.pinned && updateTab.classList.contains("tab") == false) { - SetTabClass(message.tabId, false); - tt.schedule_update_data++; - } - } - RefreshExpandStates(); - } - return; - } - // if (message.command == "set_active_group") { - // SetActiveGroup(message.groupId, false, false); - // return; - // } - if (message.command == "remote_update") { - if (opt.debug) { - log("chrome event: "+message.command+ ", tabId: " + message.tabId); - log(message); - } - RcreateTreeStructure(message.groups, message.folders, message.tabs); - sendResponse(true); - tt.schedule_update_data++; - return; - } - } - }); -} \ No newline at end of file diff --git a/scripts/manager.js b/scripts/manager.js index 5f3c399..f82decb 100644 --- a/scripts/manager.js +++ b/scripts/manager.js @@ -1,373 +1,744 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - - -function OpenManagerWindow() { - HideRenameDialogs(); - - if (opt.debug) { - log("f: OpenManagerWindow"); - } - - chrome.storage.local.get(null, function(storage) { - let ManagerWindow = document.getElementById("manager_window"); - ManagerWindow.style.display = "block"; - - // ManagerWindow.style.top = document.getElementById("toolbar").getBoundingClientRect().height - 13 + "px"; - ManagerWindow.style.top = ""; - ManagerWindow.style.left = ""; - - let GroupList = document.getElementById("manager_window_groups_list"); - while (GroupList.hasChildNodes()) { - GroupList.removeChild(GroupList.firstChild); - } - - let SessionsList = document.getElementById("manager_window_sessions_list"); - while (SessionsList.hasChildNodes()) { - SessionsList.removeChild(SessionsList.firstChild); - } - - - if (storage.hibernated_groups != undefined) { - storage.hibernated_groups.forEach(function(hibernated_group){ - AddGroupToManagerList(hibernated_group); - }); - } - if (storage.saved_sessions != undefined) { - (storage.saved_sessions).forEach(function(saved_session){ - AddSessionToManagerList(saved_session); - }); - } - - ReAddSessionAutomaticToManagerList(storage); - }); +function Manager_OpenManagerWindow() { + DOM_HideRenameDialogs(); + if (opt.debug) Utils_log("f: Manager_OpenManagerWindow"); + chrome.storage.local.get(null, function(storage) { + DOM_SetStyle(document.getElementById("manager_window"), {display: "block", top: "", left: ""}); + let GroupList = document.getElementById("manager_window_groups_list"); + while (GroupList.hasChildNodes()) { + GroupList.removeChild(GroupList.firstChild); + } + let SessionsList = document.getElementById("manager_window_sessions_list"); + while (SessionsList.hasChildNodes()) { + SessionsList.removeChild(SessionsList.firstChild); + } + if (storage.hibernated_groups != undefined) { + for (let hibernated_group of storage.hibernated_groups) { + Manager_AddGroupToManagerList(hibernated_group); + } + } + if (storage.saved_sessions != undefined) { + for (let saved_session of storage.saved_sessions) { + Manager_AddSessionToManagerList(saved_session); + } + } + Manager_ReAddSessionAutomaticToManagerList(storage); + }); } - - -function AddGroupToManagerList(hibernated_group) { - - let GroupList = document.getElementById("manager_window_groups_list"); - - let HibernatedGroupRow = document.createElement("li"); - HibernatedGroupRow.classList = "hibernated_group_row" - GroupList.appendChild(HibernatedGroupRow); - - let DeleteGroupIcon = document.createElement("div"); - DeleteGroupIcon.classList = "manager_window_list_button delete_hibernated_group"; - DeleteGroupIcon.title = chrome.i18n.getMessage("manager_window_delete_icon"); - - DeleteGroupIcon.onmousedown = function(event) { - if (event.which == 1) { - let hib_group = this.parentNode; - let HibernategGroupIndex = Array.from(hib_group.parentNode.children).indexOf(hib_group); - - chrome.storage.local.get(null, function(storage) { - let hibernated_groups = storage.hibernated_groups; - hibernated_groups.splice(HibernategGroupIndex, 1); - - chrome.storage.local.set({hibernated_groups: hibernated_groups}); - hib_group.parentNode.removeChild(hib_group); - RefreshGUI(); - }); - } - } - HibernatedGroupRow.appendChild(DeleteGroupIcon); - - - let ExportGroupIcon = document.createElement("div"); - ExportGroupIcon.classList = "manager_window_list_button export_hibernated_group"; - ExportGroupIcon.title = chrome.i18n.getMessage("manager_window_savetofile_icon"); - ExportGroupIcon.onmousedown = function(event) { - if (event.which == 1) { - let HibernategGroupIndex = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode); - chrome.storage.local.get(null, function(storage) { - let filename = storage.hibernated_groups[HibernategGroupIndex].group.name == "" ? labels.noname_group : storage.hibernated_groups[HibernategGroupIndex].group.name; - SaveFile(filename, "tt_group", storage.hibernated_groups[HibernategGroupIndex]); - }); - } - } - HibernatedGroupRow.appendChild(ExportGroupIcon); - - let LoadGroupIcon = document.createElement("div"); - LoadGroupIcon.classList = "manager_window_list_button load_hibernated_group"; - LoadGroupIcon.title = chrome.i18n.getMessage("manager_window_load_icon"); - LoadGroupIcon.onmousedown = function(event) { - if (event.which == 1) { - let HibernategGroupIndex = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode); - chrome.storage.local.get(null, function(storage) { - RecreateGroup(storage.hibernated_groups[HibernategGroupIndex]); - }); - } - } - HibernatedGroupRow.appendChild(LoadGroupIcon); - - - let name = document.createElement("div"); - name.contentEditable = true; - name.textContent = hibernated_group.group.name; - name.classList = "manager_window_group_name text_input"; - name.onkeydown = function(event) { return event.which != 13; } - name.oninput = function(event) { - // this.textContent = (this.textContent).replace(/\n/g,' '); - let hib_group_name = this.textContent; - let hib_group = this.parentNode; - let HibernategGroupIndex = Array.from(hib_group.parentNode.children).indexOf(hib_group); - chrome.storage.local.get(null, function(storage) { - let hibernated_groups = storage.hibernated_groups; - hibernated_groups[HibernategGroupIndex].group.name = hib_group_name; - chrome.storage.local.set({hibernated_groups: hibernated_groups}); - }); - } - HibernatedGroupRow.appendChild(name); - let tabsCounter = document.createElement("div"); - tabsCounter.textContent = " - ("+ hibernated_group.tabs.length + ")"; - tabsCounter.classList = "manager_window_group_name"; - HibernatedGroupRow.appendChild(tabsCounter); - RefreshGUI(); +function Manager_AddGroupToManagerList(hibernated_group) { + let HibernatedGroupRow = DOM_New("li", document.getElementById("manager_window_groups_list"), {className: "hibernated_group_row"}); + let DeleteGroupIcon = DOM_New("div", HibernatedGroupRow, {className: "manager_window_list_button delete_hibernated_group", title: chrome.i18n.getMessage("manager_window_delete_icon")}); + DeleteGroupIcon.onmousedown = function(event) { + if (event.which == 1) { + let hib_group = this.parentNode; + let HibernategGroupIndex = Array.from(hib_group.parentNode.children).indexOf(hib_group); + chrome.storage.local.get(null, function(storage) { + let hibernated_groups = storage.hibernated_groups; + hibernated_groups.splice(HibernategGroupIndex, 1); + chrome.storage.local.set({hibernated_groups: hibernated_groups}); + hib_group.parentNode.removeChild(hib_group); + DOM_RefreshGUI(); + }); + } + } + let ExportGroupIcon = DOM_New("div", HibernatedGroupRow, {className: "manager_window_list_button export_hibernated_group", title: chrome.i18n.getMessage("manager_window_savetofile_icon")}); + ExportGroupIcon.onmousedown = function(event) { + if (event.which == 1) { + let HibernategGroupIndex = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode); + chrome.storage.local.get(null, function(storage) { + let filename = storage.hibernated_groups[HibernategGroupIndex].group.name == "" ? labels.noname_group : storage.hibernated_groups[HibernategGroupIndex].group.name; + File_SaveFile(filename, "tt_group", storage.hibernated_groups[HibernategGroupIndex]); + }); + } + } + let LoadGroupIcon = DOM_New("div", HibernatedGroupRow, {className: "manager_window_list_button load_hibernated_group", title: chrome.i18n.getMessage("manager_window_load_icon")}); + LoadGroupIcon.onmousedown = function(event) { + if (event.which == 1) { + let HibernategGroupIndex = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode); + chrome.storage.local.get(null, function(storage) { + Manager_RecreateGroup(storage.hibernated_groups[HibernategGroupIndex]); + }); + } + } + let name = DOM_New("div", HibernatedGroupRow, {className: "manager_window_group_name text_input", contentEditable: true, textContent: hibernated_group.group.name}); + name.onkeydown = function(event) { + return event.which != 13; + } + name.oninput = function(event) { + let hib_group_name = this.textContent; + let hib_group = this.parentNode; + let HibernategGroupIndex = Array.from(hib_group.parentNode.children).indexOf(hib_group); + chrome.storage.local.get(null, function(storage) { + let hibernated_groups = storage.hibernated_groups; + hibernated_groups[HibernategGroupIndex].group.name = hib_group_name; + chrome.storage.local.set({hibernated_groups: hibernated_groups}); + }); + } + DOM_New("div", HibernatedGroupRow, {className: "manager_window_group_name", textContent: " - (" + hibernated_group.tabs.length + ")"}); + DOM_RefreshGUI(); } - - -function AddSessionToManagerList(saved_session) { - let SessionsList = document.getElementById("manager_window_sessions_list"); - - let SavedSessionRow = document.createElement("li"); - SavedSessionRow.classList = "saved_session_row" - SessionsList.appendChild(SavedSessionRow); - - - let DeleteSessionIcon = document.createElement("div"); - DeleteSessionIcon.classList = "manager_window_list_button delete_saved_session"; - DeleteSessionIcon.title = chrome.i18n.getMessage("manager_window_delete_icon"); - DeleteSessionIcon.onmousedown = function(event) { - if (event.which == 1) { - let saved_session = this.parentNode; - let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); - chrome.storage.local.get(null, function(storage) { - let S_Sessions = storage.saved_sessions; - S_Sessions.splice(SessionIndex, 1); - chrome.storage.local.set({saved_sessions: S_Sessions}); - saved_session.parentNode.removeChild(saved_session); - RefreshGUI(); - - }); - } - } - SavedSessionRow.appendChild(DeleteSessionIcon); - - - let ExportSessionIcon = document.createElement("div"); - ExportSessionIcon.classList = "manager_window_list_button export_saved_session"; - ExportSessionIcon.title = chrome.i18n.getMessage("manager_window_savetofile_icon"); - ExportSessionIcon.onmousedown = function(event) { - if (event.which == 1) { - let saved_session = this.parentNode; - let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); - chrome.storage.local.get(null, function(storage) { - let filename = storage.saved_sessions[SessionIndex].name == "" ? labels.noname_group : storage.saved_sessions[SessionIndex].name; - SaveFile(filename, "tt_session", storage.saved_sessions[SessionIndex].session); - }); - } - } - SavedSessionRow.appendChild(ExportSessionIcon); - - - let LoadSessionIcon = document.createElement("div"); - LoadSessionIcon.classList = "manager_window_list_button load_saved_session"; - LoadSessionIcon.title = chrome.i18n.getMessage("manager_window_load_icon"); - LoadSessionIcon.onmousedown = function(event) { - if (event.which == 1) { - let saved_session = this.parentNode; - let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); - chrome.storage.local.get(null, function(storage) { - let S_Sessions = storage.saved_sessions; - RecreateSession(S_Sessions[SessionIndex].session); - }); - } - } - SavedSessionRow.appendChild(LoadSessionIcon); - - let MergeSessionIcon = document.createElement("div"); - MergeSessionIcon.classList = "manager_window_list_button merge_saved_session"; - MergeSessionIcon.title = chrome.i18n.getMessage("manager_window_merge_icon"); - MergeSessionIcon.onmousedown = function(event) { - if (event.which == 1) { - let saved_session = this.parentNode; - let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); - chrome.storage.local.get(null, function(storage) { - let S_Sessions = storage.saved_sessions; - ImportMergeTabs(S_Sessions[SessionIndex].session); - }); - } - } - SavedSessionRow.appendChild(MergeSessionIcon); - - let name = document.createElement("div"); - name.contentEditable = true; - name.textContent = saved_session.name; - name.classList = "manager_window_session_name"; - name.onkeydown = function(event) { return event.which != 13; } - name.oninput = function(event) { - // this.textContent = (this.textContent).replace(/\n/g,' '); - let session_name = this.textContent; - let s = this.parentNode; - let SessionIndex = Array.from(s.parentNode.children).indexOf(s); - chrome.storage.local.get(null, function(storage) { - let S_Sessions = storage.saved_sessions; - S_Sessions[SessionIndex].name = session_name; - chrome.storage.local.set({saved_sessions: S_Sessions}); - }); - } - SavedSessionRow.appendChild(name); - - RefreshGUI(); +function Manager_AddSessionToManagerList(saved_session) { + let SavedSessionRow = DOM_New("li", document.getElementById("manager_window_sessions_list"), {className: "saved_session_row"}); + let DeleteSessionIcon = DOM_New("div", SavedSessionRow, {className: "manager_window_list_button delete_saved_session", title: chrome.i18n.getMessage("manager_window_delete_icon")}); + DeleteSessionIcon.onmousedown = function(event) { + if (event.which == 1) { + let saved_session = this.parentNode; + let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); + chrome.storage.local.get(null, function(storage) { + let S_Sessions = storage.saved_sessions; + S_Sessions.splice(SessionIndex, 1); + chrome.storage.local.set({saved_sessions: S_Sessions}); + saved_session.parentNode.removeChild(saved_session); + DOM_RefreshGUI(); + }); + } + } + let ExportSessionIcon = DOM_New("div", SavedSessionRow, {className: "manager_window_list_button export_saved_session", title: chrome.i18n.getMessage("manager_window_savetofile_icon")}); + ExportSessionIcon.onmousedown = function(event) { + if (event.which == 1) { + let saved_session = this.parentNode; + let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); + chrome.storage.local.get(null, function(storage) { + let filename = storage.saved_sessions[SessionIndex].name == "" ? labels.noname_group : storage.saved_sessions[SessionIndex].name; + File_SaveFile(filename, "tt_session", storage.saved_sessions[SessionIndex].session); + }); + } + } + let LoadSessionIcon = DOM_New("div", SavedSessionRow, {className: "manager_window_list_button load_saved_session", title: chrome.i18n.getMessage("manager_window_load_icon")}); + LoadSessionIcon.onmousedown = function(event) { + if (event.which == 1) { + let saved_session = this.parentNode; + let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); + chrome.storage.local.get(null, function(storage) { + let S_Sessions = storage.saved_sessions; + Manager_RecreateSession(S_Sessions[SessionIndex].session); + }); + } + } + let MergeSessionIcon = DOM_New("div", SavedSessionRow, {className: "manager_window_list_button merge_saved_session", title: chrome.i18n.getMessage("manager_window_merge_icon")}); + MergeSessionIcon.onmousedown = function(event) { + if (event.which == 1) { + let saved_session = this.parentNode; + let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); + chrome.storage.local.get(null, function(storage) { + let S_Sessions = storage.saved_sessions; + Manager_ImportMergeTabs(S_Sessions[SessionIndex].session); + }); + } + } + let name = DOM_New("div", SavedSessionRow, {className: "manager_window_session_name", contentEditable: true, textContent: saved_session.name}); + name.onkeydown = function(event) { + return event.which != 13; + } + name.oninput = function(event) { + let session_name = this.textContent; + let s = this.parentNode; + let SessionIndex = Array.from(s.parentNode.children).indexOf(s); + chrome.storage.local.get(null, function(storage) { + let S_Sessions = storage.saved_sessions; + S_Sessions[SessionIndex].name = session_name; + chrome.storage.local.set({saved_sessions: S_Sessions}); + }); + } + DOM_RefreshGUI(); } - -function ReAddSessionAutomaticToManagerList(storage) { - let SessionsAutomaticList = document.getElementById("manager_window_autosessions_list"); - while (SessionsAutomaticList.hasChildNodes()) { - SessionsAutomaticList.removeChild(SessionsAutomaticList.firstChild); - } - if (storage.saved_sessions_automatic != undefined) { - (storage.saved_sessions_automatic).forEach(function(saved_sessions_automatic){ - AddSessionAutomaticToManagerList(saved_sessions_automatic); - }); - } - RefreshGUI(); +function Manager_ReAddSessionAutomaticToManagerList(storage) { + let SessionsAutomaticList = document.getElementById("manager_window_autosessions_list"); + while (SessionsAutomaticList.hasChildNodes()) { + SessionsAutomaticList.removeChild(SessionsAutomaticList.firstChild); + } + if (storage.saved_sessions_automatic != undefined) { + for (let saved_sessions_automatic of storage.saved_sessions_automatic) { + Manager_AddSessionAutomaticToManagerList(saved_sessions_automatic); + } + } + DOM_RefreshGUI(); } - -function AddSessionAutomaticToManagerList(saved_session) { - let SessionsList = document.getElementById("manager_window_autosessions_list"); - - let SavedSessionRow = document.createElement("li"); - SavedSessionRow.classList = "saved_session_row" - SessionsList.appendChild(SavedSessionRow); - - - let LoadSessionIcon = document.createElement("div"); - LoadSessionIcon.classList = "manager_window_list_button load_saved_session"; - LoadSessionIcon.title = chrome.i18n.getMessage("manager_window_load_icon"); - LoadSessionIcon.onmousedown = function(event) { - if (event.which == 1) { - let saved_session = this.parentNode; - let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); - chrome.storage.local.get(null, function(storage) { - let S_Sessions = storage.saved_sessions_automatic; - RecreateSession(S_Sessions[SessionIndex].session); - }); - } - } - SavedSessionRow.appendChild(LoadSessionIcon); - - - let MergeSessionIcon = document.createElement("div"); - MergeSessionIcon.classList = "manager_window_list_button merge_saved_session"; - MergeSessionIcon.title = chrome.i18n.getMessage("manager_window_merge_icon"); - MergeSessionIcon.onmousedown = function(event) { - if (event.which == 1) { - let saved_session = this.parentNode; - let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); - chrome.storage.local.get(null, function(storage) { - let S_Sessions = storage.saved_sessions_automatic; - // RecreateSession(S_Sessions[SessionIndex].session); - ImportMergeTabs(S_Sessions[SessionIndex].session); - }); - } - } - SavedSessionRow.appendChild(MergeSessionIcon); - - - - let name = document.createElement("div"); - name.textContent = saved_session.name; - name.classList = "manager_window_session_name"; - SavedSessionRow.appendChild(name); - - RefreshGUI(); +function Manager_AddSessionAutomaticToManagerList(saved_session) { + let SavedSessionRow = DOM_New("li", document.getElementById("manager_window_autosessions_list"), {className: "saved_session_row"}); + let LoadSessionIcon = DOM_New("div", SavedSessionRow, {className: "manager_window_list_button load_saved_session", title: chrome.i18n.getMessage("manager_window_load_icon")}); + LoadSessionIcon.onmousedown = function(event) { + if (event.which == 1) { + let saved_session = this.parentNode; + let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); + chrome.storage.local.get(null, function(storage) { + let S_Sessions = storage.saved_sessions_automatic; + Manager_RecreateSession(S_Sessions[SessionIndex].session); + }); + } + } + let MergeSessionIcon = DOM_New("div", SavedSessionRow, {className: "manager_window_list_button merge_saved_session", title: chrome.i18n.getMessage("manager_window_merge_icon")}); + MergeSessionIcon.onmousedown = function(event) { + if (event.which == 1) { + let saved_session = this.parentNode; + let SessionIndex = Array.from(saved_session.parentNode.children).indexOf(saved_session); + chrome.storage.local.get(null, function(storage) { + let S_Sessions = storage.saved_sessions_automatic; + Manager_ImportMergeTabs(S_Sessions[SessionIndex].session); + }); + } + } + DOM_New("div", SavedSessionRow, {className: "manager_window_session_name", textContent: saved_session.name}); + DOM_RefreshGUI(); } - -function SetManagerEvents() { - document.getElementById("manager_window_close").onmousedown = function(event) { - if (event.which == 1) { - HideRenameDialogs(); - } - } - - document.querySelectorAll(".manager_window_toolbar_button").forEach(function(s){ - s.onmousedown = function(event) { - if (event.which == 1) { - document.querySelectorAll(".manager_window_panel").forEach(function(s){ - s.classList.remove("mw_pan_on"); - }); - document.getElementById((this.id).replace("button", "panel")).classList.add("mw_pan_on"); - - document.querySelectorAll(".mw_on").forEach(function(s){ - s.classList.remove("mw_on"); - }); - this.classList.add("mw_on"); - RefreshGUI(); - } - } - }); - - - document.getElementById("manager_window_button_import_group").onmousedown = function(event) { - if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".tt_group"); - inputFile.onchange = function(event) { - ImportGroup(false, true); - } - } - } - document.getElementById("manager_window_button_hibernate_group").onmousedown = function(event) { - if (event.which == 1) { - ExportGroup(tt.active_group, false, true); - setTimeout(function() { - GroupRemove(tt.active_group, true); - }, 100); - setTimeout(function() { - OpenManagerWindow(); - }, 150); - } - } - - - document.getElementById("manager_window_button_save_current_session").onmousedown = function(event) { - if (event.which == 1) { - let d = new Date(); - ExportSession((d.toLocaleString().replace("/", ".").replace("/", ".").replace(":", "꞉").replace(":", "꞉")), false, true, false); - } - } - document.getElementById("manager_window_button_import_session").onmousedown = function(event) { - if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".tt_session"); - inputFile.onchange = function(event) { - ImportSession(false, true, false); - } - } - } - - - let autosessions_save_max_to_keep = document.getElementById("manager_window_autosessions_maximum_saves"); - autosessions_save_max_to_keep.value = opt.autosave_max_to_keep; - autosessions_save_max_to_keep.oninput = function(event) { - opt.autosave_max_to_keep = parseInt(this.value); - SavePreferences(); - } - - - let autosessions_save_timer = document.getElementById("manager_window_autosessions_save_timer"); - autosessions_save_timer.value = opt.autosave_interval; - autosessions_save_timer.oninput = function(event) { - opt.autosave_interval = parseInt(this.value); - SavePreferences(); - clearInterval(tt.AutoSaveSession); - StartAutoSaveSession(); - } - +function Manager_SetManagerEvents() { + document.getElementById("manager_window_close").onmousedown = function(event) { + if (event.which == 1) DOM_HideRenameDialogs(); + } + let query = document.querySelectorAll(".manager_window_toolbar_button"); + for (let s of query) { + s.onmousedown = function(event) { + if (event.which == 1) { + let window_panels = document.querySelectorAll(".manager_window_panel"); + for (let s of window_panels) { + s.classList.remove("mw_pan_on"); + } + document.getElementById((this.id).replace("button", "panel")).classList.add("mw_pan_on"); + let panel_on = document.querySelectorAll(".mw_on"); + for (let s of panel_on) { + s.classList.remove("mw_on"); + } + this.classList.add("mw_on"); + DOM_RefreshGUI(); + } + } + } + document.getElementById("manager_window_button_import_group").onmousedown = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".tt_group"); + inputFile.onchange = function(event) { + Manager_ImportGroup(false, true); + } + } + } + document.getElementById("manager_window_button_hibernate_group").onmousedown = function(event) { + if (event.which == 1) { + Manager_ExportGroup(tt.active_group, false, true); + setTimeout(function() {Groups_GroupRemove(tt.active_group, true);}, 100); + setTimeout(function() {Manager_OpenManagerWindow();}, 150); + } + } + document.getElementById("manager_window_button_save_current_session").onmousedown = function(event) { + if (event.which == 1) { + let d = new Date(); + Manager_ExportSession((d.toLocaleString().replace(/\//g, ".").replace(/:/g, "꞉")), false, true, false); + } + } + document.getElementById("manager_window_button_import_session").onmousedown = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".tt_session"); + inputFile.onchange = function(event) { + Manager_ImportSession(false, true, false); + } + } + } + let autosessions_save_max_to_keep = document.getElementById("manager_window_autosessions_maximum_saves"); + autosessions_save_max_to_keep.value = opt.autosave_max_to_keep; + autosessions_save_max_to_keep.oninput = function(event) { + opt.autosave_max_to_keep = parseInt(this.value); + Preferences_SavePreferences(opt); + } + let autosessions_save_timer = document.getElementById("manager_window_autosessions_save_timer"); + autosessions_save_timer.value = opt.autosave_interval; + autosessions_save_timer.oninput = function(event) { + opt.autosave_interval = parseInt(this.value); + Preferences_SavePreferences(opt); + clearInterval(tt.AutoSaveSession); + Manager_StartAutoSaveSession(); + } } + +function Manager_ExportGroup(groupId, filename, save_to_manager) { + let GroupToSave = {group: tt.groups[groupId], folders: {}, tabs: [], favicons: []}; + let query = document.querySelectorAll("#" + groupId + " .folder"); + for (let s of query) { + if (tt.folders[s.id]) GroupToSave.folders[s.id] = tt.folders[s.id]; + } + let Tabs = document.querySelectorAll("#" + groupId + " .tab"); + if (Tabs.length > 0) { + let lastId = parseInt(Tabs[Tabs.length - 1].id); + for (let s of Tabs) { + chrome.tabs.get(parseInt(s.id), async function(tab) { + if ((tab.url).startsWith("www") || (tab.url).startsWith("http") || (tab.url).startsWith("ftp") || (tab.url).startsWith("file")) { + let favicon = (browserId == "F" ? await browser.sessions.getTabValue(tab.id, "CachedFaviconUrl") : tab.favIconUrl); + let favicon_index = GroupToSave.favicons.indexOf(favicon); + if (favicon_index == -1) { + GroupToSave.favicons.push(favicon); + favicon_index = GroupToSave.favicons.length; + } + (GroupToSave.tabs).push({id: tab.id,parent: s.parentNode.parentNode.id,index: Array.from(s.parentNode.children).indexOf(s), expand: (s.classList.contains("c") ? "c" : (s.classList.contains("o") ? "o" : "")), url: tab.url, title: tab.title, favicon: favicon_index}); + } + if (tab.id == lastId) { + if (filename) File_SaveFile(filename, "tt_group", GroupToSave); + if (save_to_manager) Manager_AddGroupToStorage(GroupToSave, true); + if (opt.debug) Utils_log("f: ExportGroup, filename: " + filename + ", groupId: " + groupId + ", save_to_manager: " + save_to_manager); + } + }); + } + } else { + if (filename) File_SaveFile(filename, "tt_group", GroupToSave); + if (save_to_manager) Manager_AddGroupToStorage(GroupToSave, true); + if (opt.debug) Utils_log("f: ExportGroup, filename: " + filename + ", groupId: " + groupId + ", save_to_manager: " + save_to_manager); + } +} + +function Manager_ImportGroup(recreate_group, save_to_manager) { + let file = document.getElementById("file_import"); + let fr = new FileReader(); + if (file.files[0] == undefined) return; + fr.readAsText(file.files[0]); + fr.onload = function() { + let data = fr.result; + let group = JSON.parse(data); + file.parentNode.removeChild(file); + if (recreate_group) Manager_RecreateGroup(group); + if (save_to_manager) Manager_AddGroupToStorage(group, true); + if (opt.debug) Utils_log("f: ImportGroup, recreate_group: " + recreate_group + ", save_to_manager: " + save_to_manager); + } +} + +function Manager_RecreateGroup(LoadedGroup) { + if (opt.debug) Utils_log("f: RecreateGroup"); + let RefFolders = {}; + let NewFolders = {}; + let RefTabs = {}; + let NewTabs = []; + let NewGroupId = Groups_AddNewGroup(LoadedGroup.group.name, LoadedGroup.group.font); + for (var folder in LoadedGroup.folders) { + let newId = Folders_AddNewFolder({parent: NewGroupId, name: LoadedGroup.folders[folder].name, expand: LoadedGroup.folders[folder].expand}); + RefFolders[folder] = newId; + NewFolders[newId] = {id: newId, parent: (((LoadedGroup.folders[folder].parent).startsWith("g_") || (LoadedGroup.folders[folder].parent == "tab_list")) ? NewGroupId : LoadedGroup.folders[folder].parent), index: LoadedGroup.folders[folder].index, name: LoadedGroup.folders[folder].name, expand: LoadedGroup.folders[folder].expand}; + } + for (var new_folder in NewFolders) { + if ((NewFolders[new_folder].parent).startsWith("f_") && RefFolders[NewFolders[new_folder].parent]) NewFolders[new_folder].parent = RefFolders[NewFolders[new_folder].parent]; + } + (LoadedGroup.tabs).forEach(function(Tab) { + let params; + if (browserId == "F") { + params = {active: false, windowId: tt.CurrentWindowId, url: Tab.url, discarded: true, title: Tab.title}; + } else { + params = {active: false, windowId: tt.CurrentWindowId, url: Tab.url}; + } + chrome.tabs.create(params, function(new_tab) { + if (browserId == "F") browser.sessions.setTabValue(new_tab.id, "CachedFaviconUrl", Tab.favicon); + RefTabs[Tab.id] = new_tab.id; + Tab.id = new_tab.id; + if ((Tab.parent).startsWith("g_") || Tab.parent == "tab_list") Tab.parent = NewGroupId; + if ((Tab.parent).startsWith("f_") && RefFolders[Tab.parent]) Tab.parent = RefFolders[Tab.parent]; + NewTabs.push(Tab); + if (browserId != "O" && browserId != "F") chrome.runtime.sendMessage({command: "discard_tab", tabId: new_tab.id}); + if (NewTabs.length == LoadedGroup.tabs.length - 1) { + NewTabs.forEach(function(LTab) { + if (RefTabs[LTab.parent]) LTab.parent = RefTabs[LTab.parent]; + }); + let GiveUp = 3000; // gives up after: 300*3000/1000/60 = 15 minutes + let RecreateTreeS = setInterval(function() { + GiveUp--; + let LastTab = document.getElementById(NewTabs[NewTabs.length - 1].id); + if (LastTab != null || GiveUp < 0) { + Manager_RecreateTreeStructure({}, NewFolders, NewTabs); + clearInterval(RecreateTreeS); + } + }, 300); + } + }); + }); +} + +function Manager_AddGroupToStorage(group, add_to_manager) { + chrome.storage.local.get(null, function(storage) { + if (storage["hibernated_groups"] == undefined) { + let hibernated_groups = []; + hibernated_groups.push(group); + chrome.storage.local.set({hibernated_groups: hibernated_groups}); + if (add_to_manager) Manager_AddGroupToManagerList(group); + } else { + let hibernated_groups = storage["hibernated_groups"]; + hibernated_groups.push(group); + chrome.storage.local.set({hibernated_groups: hibernated_groups}); + if (add_to_manager) Manager_AddGroupToManagerList(group); + } + if (opt.debug) Utils_log("f: AddGroupToStorage, add_to_manager: " + add_to_manager); + }); +} + +function Manager_ExportSession(name, save_to_file, save_to_manager, save_to_autosave_manager) { + chrome.windows.getAll({windowTypes: ['normal'], populate: true}, function(win) { + chrome.runtime.sendMessage({command: "get_browser_tabs"}, function(t) { + let tabs = Object.assign({}, t); + chrome.runtime.sendMessage({command: "get_windows"}, function(w) { + let windows = Object.assign({}, w); + let ExportWindows = []; + win.forEach(function(CWin) { + if (CWin.tabs.length > 0) { + windows[CWin.id]["id"] = CWin.id; + windows[CWin.id]["tabs"] = []; + windows[CWin.id]["favicons"] = []; + CWin.tabs.forEach(async function(CTab) { + if ((CTab.url).startsWith("www") || (CTab.url).startsWith("http") || (CTab.url).startsWith("ftp")) { + let favicon = (browserId == "F" ? await browser.sessions.getTabValue(CTab.id, "CachedFaviconUrl") : CTab.favIconUrl); + let favicon_index = windows[CWin.id].favicons.indexOf(favicon); + if (favicon_index == -1) { + windows[CWin.id].favicons.push(favicon); + favicon_index = windows[CWin.id].favicons.length; + } + windows[CWin.id]["tabs"].push({id: CTab.id, url: CTab.url, parent: tabs[CTab.id].parent, index: tabs[CTab.id].index, expand: tabs[CTab.id].expand, title: CTab.title, favicon: favicon_index}); + } + }); + ExportWindows.push(windows[CWin.id]); + } + }); + if (save_to_file) File_SaveFile(name, "tt_session", ExportWindows); + if (save_to_manager) Manager_AddSessionToStorage(ExportWindows, name, true); + if (save_to_autosave_manager) Manager_AddAutosaveSessionToStorage(ExportWindows, name); + }); + }); + }); +} + +function Manager_ImportSession(recreate_session, save_to_manager, merge_session) { + let file = document.getElementById("file_import"); + let fr = new FileReader(); + if (file.files[0] == undefined) return; + fr.readAsText(file.files[file.files.length - 1]); + fr.onload = function() { + let data = fr.result; + file.parentNode.removeChild(file); + let LoadedSession = JSON.parse(data); + if (recreate_session) Manager_RecreateSession(LoadedSession); + if (merge_session) Manager_ImportMergeTabs(LoadedSession); + if (save_to_manager) Manager_AddSessionToStorage(LoadedSession, (file.files[file.files.length - 1].name).replace(".tt_session", ""), true); + } +} + +function Manager_AddSessionToStorage(session, name, add_to_manager) { + chrome.storage.local.get(null, function(storage) { + if (storage.saved_sessions == undefined) { + let saved_sessions = []; + saved_sessions.push({name: name, session: session}); + chrome.storage.local.set({saved_sessions: saved_sessions}); + if (add_to_manager) Manager_AddSessionToManagerList(saved_sessions[saved_sessions.length - 1]); + } else { + let saved_sessions = storage.saved_sessions; + saved_sessions.push({name: name, session: session}); + chrome.storage.local.set({saved_sessions: saved_sessions}); + if (add_to_manager) Manager_AddSessionToManagerList(saved_sessions[saved_sessions.length - 1]); + } + if (opt.debug) Utils_log("f: AddSessionToStorage, name: " + name + ", add_to_manager: " + add_to_manager); + }); +} + +function Manager_AddAutosaveSessionToStorage(session, name) { + chrome.storage.local.get(null, function(storage) { + if (storage.saved_sessions_automatic == undefined) { + let s = []; + s.push({name: name, session: session}); + chrome.storage.local.set({saved_sessions_automatic: s}); + } else { + let s = storage.saved_sessions_automatic; + s.unshift({name: name, session: session}); + if (s[opt.autosave_max_to_keep]) s.splice(opt.autosave_max_to_keep, (s.length - opt.autosave_max_to_keep)); + chrome.storage.local.set({saved_sessions_automatic: s}); + } + if (opt.debug) Utils_log("f: AddAutosaveSessionToStorage, name: " + name); + }); +} + +function Manager_RecreateSession(LoadedWindows) { + if (opt.debug) Utils_log("f: RecreateSession"); + let RefTabs = {}; + LoadedWindows.forEach(function(LWin) { + let NewTabs = []; + let urls = []; + for (let Tab of LWin.tabs) { + urls.push(Tab.url); + NewTabs.push(Tab); + } + chrome.windows.create({url: urls[0]}, function(new_window) { + chrome.runtime.sendMessage({command: "save_groups", windowId: new_window.id, groups: LWin.groups}); + chrome.runtime.sendMessage({command: "save_folders", windowId: new_window.id, folders: LWin.folders}); + (LWin.tabs).forEach(function(Tab) { + if (Tab.id != LWin.tabs[0].id) { // skip first tab + let params; + if (browserId == "F") { + params = {active: false, windowId: new_window.id, url: Tab.url, discarded: true, title: Tab.title}; + } else { + params = {active: false, windowId: new_window.id, url: Tab.url}; + } + chrome.tabs.create(params, function(new_tab) { + if (browserId == "F") browser.sessions.setTabValue(new_tab.id, "CachedFaviconUrl", LWin.favicons[Tab.favicon]); + if (Tab.id == LWin.tabs[LWin.tabs.length - 1].id) { // last tab + chrome.windows.get(new_window.id, {populate: true}, function(new_window_with_new_tabs) { + for (let tInd = 0; tInd < new_window_with_new_tabs.tabs.length; tInd++) { + RefTabs[NewTabs[tInd].id] = new_window_with_new_tabs.tabs[tInd].id; + NewTabs[tInd].id = new_window_with_new_tabs.tabs[tInd].id; + } + for (let tInd = 0; tInd < new_window_with_new_tabs.tabs.length; tInd++) { + if (RefTabs[NewTabs[tInd].parent] != undefined) NewTabs[tInd].parent = RefTabs[NewTabs[tInd].parent]; + } + for (let tInd = 0; tInd < new_window_with_new_tabs.tabs.length; tInd++) { + if (NewTabs[tInd].parent == "pin_list") chrome.tabs.update(new_window_with_new_tabs.tabs[tInd].id, {pinned: true}); + chrome.runtime.sendMessage({command: "update_tab", tabId: new_window_with_new_tabs.tabs[tInd].id, tab: {index: NewTabs[tInd].index, expand: NewTabs[tInd].expand, parent: NewTabs[tInd].parent}}); + if (browserId != "O" && browserId != "F") chrome.runtime.sendMessage({command: "discard_tab", tabId: new_window_with_new_tabs.tabs[tInd].id}); + } + }); + } + }); + } + }); + }); + }); +} + +function Manager_ImportMergeTabs(LoadedWindows) { + if (opt.debug) Utils_log("f: ImportMergeTabs"); + let RefTabs = {}; + for (let LWI = 0; LWI < LoadedWindows.length; LWI++) { // clear previous window ids + LoadedWindows[LWI].id = ""; + } + Manager_ShowStatusBar({show: true, spinner: true, message: chrome.i18n.getMessage("status_bar_loaded_tree_structure")}); + chrome.windows.getAll({windowTypes: ['normal'], populate: true}, function(cw) { + for (let CWI = 0; CWI < cw.length; CWI++) { // Current Windows + for (let LWI = 0; LWI < LoadedWindows.length; LWI++) { // Loaded Windows + if (LoadedWindows[LWI].id == "") { + let tabsMatch = 0; + for (let CTI = 0; CTI < cw[CWI].tabs.length; CTI++) { // loop Tabs of CWI Window + for (let LTI = 0; LTI < LoadedWindows[LWI].tabs.length; LTI++) { // loop Tabs of Loaded Window + if (cw[CWI].tabs[CTI].url == LoadedWindows[LWI].tabs[LTI].url) { + RefTabs[LoadedWindows[LWI].tabs[LTI].id] = cw[CWI].tabs[CTI].id; + LoadedWindows[LWI].tabs[LTI].id = cw[CWI].tabs[CTI].id; + LoadedWindows[LWI].tabs[LTI].url = ""; + tabsMatch++; + break; + } + } + } + if (opt.debug) Utils_log("f: ImportMergeTabs, tabsMatch: " + tabsMatch); + if (tabsMatch > LoadedWindows[LWI].tabs.length * 0.6) { + LoadedWindows[LWI].id = cw[CWI].id; + break; + } + } + } + } + LoadedWindows.forEach(function(w) { + if (w.id == "") { // missing window, lets make one + if (opt.debug) Utils_log("f: ImportMergeTabs, missing window"); + let NewTabs = []; + let urls = []; + (w.tabs).forEach(function(Tab) { + urls.push(Tab.url); + NewTabs.push(Tab); + }); + chrome.windows.create({url: urls[0]}, function(new_window) { + chrome.runtime.sendMessage({command: "save_groups", windowId: new_window.id, groups: LWin.groups}); + chrome.runtime.sendMessage({command: "save_folders", windowId: new_window.id, folders: LWin.folders}); + (w.tabs).forEach(function(Tab) { + if (Tab.id != LWin.tabs[0].id) { // skip first tab + let params; + if (browserId == "F") { + params = {active: false, windowId: new_window.id, url: Tab.url, discarded: true, title: Tab.title}; + } else { + params = {active: false, windowId: new_window.id, url: Tab.url}; + } + chrome.tabs.create(params, function(new_tab) { + if (browserId == "F") browser.sessions.setTabValue(new_tab.id, "CachedFaviconUrl", w.favicons[Tab.favicon]); + if (Tab.id == LWin.tabs[LWin.tabs.length - 1].id) { // last tab + chrome.windows.get(new_window.id, {populate: true}, function(new_window_with_new_tabs) { + for (let tInd = 0; tInd < new_window_with_new_tabs.tabs.length; tInd++) { + RefTabs[NewTabs[tInd].id] = new_window_with_new_tabs.tabs[tInd].id; + NewTabs[tInd].id = new_window_with_new_tabs.tabs[tInd].id; + } + for (let tInd = 0; tInd < new_window_with_new_tabs.tabs.length; tInd++) { + if (RefTabs[NewTabs[tInd].parent] != undefined) NewTabs[tInd].parent = RefTabs[NewTabs[tInd].parent]; + } + for (let tInd = 0; tInd < new_window_with_new_tabs.tabs.length; tInd++) { + if (NewTabs[tInd].parent == "pin_list") chrome.tabs.update(new_window_with_new_tabs.tabs[tInd].id, {pinned: true}); + chrome.runtime.sendMessage({command: "update_tab", tabId: new_window_with_new_tabs.tabs[tInd].id, tab: {index: NewTabs[tInd].index, expand: NewTabs[tInd].expand, parent: NewTabs[tInd].parent}}); + if (browserId != "O" && browserId != "F") chrome.runtime.sendMessage({command: "discard_tab", tabId: new_window_with_new_tabs.tabs[tInd].id}); + } + }); + } + }); + } + }); + }); + } else { // window exists, lets add missing tabs + let NewTabs = []; + let RefTabs = {}; + chrome.runtime.sendMessage({command: "get_folders", windowId: w.id}, function(f) { + chrome.runtime.sendMessage({command: "get_groups", windowId: w.id}, function(g) { + if (Object.keys(w.groups).length > 0) { + for (var group in w.groups) { + if (group != "" && group != "undefined" && w.groups[group] != undefined) g[w.groups[group].id] = Object.assign({}, w.groups[group]); + } + } + if (Object.keys(w.folders).length > 0) { + for (var folder in w.folders) { + if (folder != "" && folder != "undefined" && w.folders[folder] != undefined) w.folders[w.folders[folder].id] = Object.assign({}, w.folders[folder]); + } + } + if (Object.keys(g).length > 0) { + for (var groupId in g) { + w.groups[groupId] = Object.assign({}, g[groupId]); + } + } + if (Object.keys(f).length > 0) { + for (var folderId in f) { + w.folders[folderId] = Object.assign({}, f[folderId]); + } + } + chrome.runtime.sendMessage({command: "save_groups", windowId: w.id, groups: g}); + chrome.runtime.sendMessage({command: "save_folders", windowId: w.id, folders: f}); + chrome.runtime.sendMessage({command: "remote_update", groups: w.groups, folders: w.folders, tabs: [], windowId: w.id}); + if (w.id == tt.CurrentWindowId) Manager_RecreateTreeStructure(w.groups, w.folders, []); + (w.tabs).forEach(function(Tab) { + // let LastTabId = w.tabs[w.tabs.length - 1].id; + // let OriginalTabId = Tab.id; + if (Tab.url != "") { // missing tab, lets make one + let params; + if (browserId == "F") { + params = {active: false, windowId: w.id, url: Tab.url, discarded: true, title: Tab.title}; + } else { + params = {active: false, windowId: w.id, url: Tab.url}; + } + chrome.tabs.create(params, function(tab) { + if (browserId == "F") browser.sessions.setTabValue(tab.id, "CachedFaviconUrl", w.favicons[Tab.favicon]); + if (Tab.parent == "pin_list") chrome.tabs.update(tab.id, {pinned: true}); + RefTabs[Tab.id] = tab.id; + Tab.id = tab.id; + NewTabs.push(Tab); + chrome.runtime.sendMessage({command: "update_tab", tabId: tab.id, tab: {index: Tab.index, expand: Tab.expand, parent: Tab.parent}}); + }); + } else { + NewTabs.push(Tab); + } + // if (OriginalTabId == LastTabId) { // loop is on last tab + // setTimeout(function() { + // Manager_ShowStatusBar({show: true, spinner: true, message: chrome.i18n.getMessage("status_bar_finding_ref_tabs")}); + // for (let tInd = 0; tInd < NewTabs.length; tInd++) { + // if (RefTabs[NewTabs[tInd].parent] != undefined) { + // NewTabs[tInd].parent = RefTabs[NewTabs[tInd].parent]; + // } + // } + // }, 1000); + // } + }); + setTimeout(function() { + Manager_ShowStatusBar({show: true, spinner: true, message: chrome.i18n.getMessage("status_bar_finding_ref_tabs")}); + for (let tInd = 0; tInd < NewTabs.length; tInd++) { + if (RefTabs[NewTabs[tInd].parent] != undefined) NewTabs[tInd].parent = RefTabs[NewTabs[tInd].parent]; + } + }, 2000); + setTimeout(function() { + for (let NewTab of NewTabs) { + chrome.runtime.sendMessage({command: "update_tab", tabId: NewTab.id, tab: {index: NewTab.index, expand: NewTab.expand, parent: NewTab.parent}}); + } + Manager_ShowStatusBar({show: true, spinner: true, message: chrome.i18n.getMessage("status_bar_finding_other_windows")}); + if (w.id == tt.CurrentWindowId) { + Manager_RecreateTreeStructure(w.groups, w.folders, NewTabs); + } else { + chrome.runtime.sendMessage({command: "remote_update", groups: w.groups, folders: w.folders, tabs: NewTabs, windowId: w.id}); + } + Manager_ShowStatusBar({show: true, spinner: false, message: chrome.i18n.getMessage("status_bar_all_done"), hideTimeout: 2000}); + }, 6000); + }); + }); + } + }); + }); +} + +function Manager_StartAutoSaveSession() { + if (opt.autosave_interval > 0 && opt.autosave_max_to_keep > 0) { + tt.AutoSaveSession = setInterval(function() { + if (opt.debug) Utils_log("f: AutoSaveSession, loop time is: " + opt.autosave_interval); + let d = new Date(); + let newName = d.toLocaleString().replace(/\//g, ".").replace(/:/g, "꞉"); + Manager_ExportSession(newName, false, false, true); + Manager_ShowStatusBar({show: true, spinner: false, message: chrome.i18n.getMessage("status_bar_autosave") + newName, hideTimeout: 1500}); + if (document.getElementById("manager_window").style.top != "-500px") chrome.storage.local.get(null, function(storage) {Manager_ReAddSessionAutomaticToManagerList(storage);}); + }, opt.autosave_interval * 60000); + } +} + +function Manager_RecreateTreeStructure(groups, folders, tabs) { // groups and folders are in object, just like tt.groups and tt.folders, but tabs are in array of treetabs objects + if (opt.debug) Utils_log("f: RecreateTreeStructure"); + Manager_ShowStatusBar({show: true, spinner: true, message: chrome.i18n.getMessage("status_bar_quick_check_recreate_structure"), hideTimeout: 3000}); + if (groups && Object.keys(groups).length > 0) { + for (var group in groups) { + tt.groups[groups[group].id] = Object.assign({}, groups[group]); + } + Groups_AppendGroups(tt.groups); + } + if (folders && Object.keys(folders).length > 0) { + for (var folder in folders) { + tt.folders[folders[folder].id] = Object.assign({}, folders[folder]); + } + Folders_PreAppendFolders(tt.folders); + Folders_AppendFolders(tt.folders); + } + let ttTabs = {}; + tabs.forEach(function(Tab) { + if (Tab.parent == "pin_list") chrome.tabs.update(Tab.id, {pinned: true}); + if (Tab.parent != "") { + let AttemptNr = 20; + var Attempt = setInterval(function() { + AttemptNr--; + let tb = document.getElementById(Tab.id); + let tbp = document.getElementById("°" + Tab.parent); + if (tb != null && tbp != null) { + tbp.appendChild(tb); + if (Tab.expand != "") tb.classList.add(Tab.expand); + ttTabs[Tab.id] = {index: Tab.index, parent: Tab.parent, expand: Tab.expand}; + } + if (AttemptNr < 0 || (tb != null && tbp != null)) clearInterval(Attempt); + }, 500); + } + }); + let SortAttemptNr = 20; + var SortAttempt = setInterval(function() { + SortAttemptNr--; + if (SortAttemptNr < 0 || Object.keys(ttTabs).length == tabs.length || tabs.length == 0) { + Tabs_RearrangeTree(ttTabs, folders, false); + clearInterval(SortAttempt); + Groups_UpdateBgGroupsOrder(); + setTimeout(function() { + DOM_RefreshExpandStates(); + DOM_RefreshCounters(); + tt.schedule_update_data++; + Folders_SaveFolders(); + }, 3000); + } + }, 500); +} + +function Manager_ShowStatusBar(p) { // show, spinner, message + let status_bar = document.getElementById("status_bar"); + let busy_spinner = document.getElementById("busy_spinner"); + let status_message = document.getElementById("status_message"); + if (p.show) { + status_bar.style.display = "block"; + status_message.textContent = p.message; + if (p.spinner) { + busy_spinner.style.opacity = "1"; + } else { + busy_spinner.style.opacity = "0"; + } + } else { + busy_spinner.style.opacity = "0"; + status_message.textContent = ""; + status_bar.style.display = "none"; + } + if (p.hideTimeout) { + setTimeout(function() { + busy_spinner.style.opacity = "0"; + status_message.textContent = ""; + status_bar.style.display = "none"; + }, p.hideTimeout); + } +} \ No newline at end of file diff --git a/scripts/menu.js b/scripts/menu.js index 90b2ef1..554fde2 100644 --- a/scripts/menu.js +++ b/scripts/menu.js @@ -1,709 +1,496 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -// ********** MENU *************** - -function HideMenus() { - document.querySelectorAll(".separator, .menu_item").forEach(function(s){s.style.display = "none";}); - document.querySelectorAll(".menu").forEach(function(s){ - s.style.top = "-1000px"; - s.style.left = "-1000px"; - s.style.display = "none"; - }); +class Menu_ttMenu { + constructor(MenuItem) { + let SeparatorDIV = DOM_New("div", tt.DOMmenu, {id: MenuItem[0], className: "separator"}); + let MenuLI = DOM_New("li", tt.DOMmenu, {id: MenuItem[1], className: "menu_item"}); + this.id = MenuLI.id; + this.Menu = MenuLI; + this.Separator = SeparatorDIV; + + if (this.id == "menu_new_pin") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("pin")) { + console.log(tt.menuItemNode) + Tabs_OpenNewTab(true, tt.menuItemNode, undefined); + } else { + Tabs_OpenNewTab(true, undefined, undefined); + } + }}} + if (this.id == "menu_new_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("folder")) { + Tabs_OpenNewTab(false, undefined, tt.menuItemNode.childNodes[1]); + } else { + if (tt.menuItemNode.classList.contains("pin")) { + Tabs_OpenNewTab(true, tt.menuItemNode, undefined); + } else { + if (tt.menuItemNode.classList.contains("tab")) { + Tabs_OpenNewTab(false, tt.menuItemNode, undefined); + } else { + Tabs_OpenNewTab(false, undefined, document.getElementById("°"+tt.active_group)); + } + } + } + }}} + if (this.id == "menu_unpin_tab" || this.id == "menu_pin_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {pinned: (tt.menuItemNode.classList.contains("tab"))}); + } + } else { + chrome.tabs.update(parseInt(tt.menuItemNode.id), {pinned: (tt.menuItemNode.classList.contains("tab"))}); + } + }}} + if (this.id == "menu_duplicate_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + tt.tabs[s.id].DuplicateTab(); + } + } else { + tt.tabs[tt.menuItemNode.id].DuplicateTab(); + } + }}} + if (this.id == "menu_detach_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + DOM_FreezeSelection(false); + let Nodes = []; + let NodesTypes = {DraggingPin: false, DraggingTab: false, DraggingFolder: false}; + let query = []; + if (tt.menuItemNode.classList.contains("selected")) { + query = document.querySelectorAll(".selected, .selected .tab, .selected .folder"); + } else { + query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'], [id='" + tt.menuItemNode.id + "'] .tab, [id='" + tt.menuItemNode.id + "'] .folder"); + } + for (let s of query) { + if (s.classList.contains("pin")) { + NodesTypes.DraggingPin = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "pin"}); + } + if (s.classList.contains("tab")) { + NodesTypes.DraggingTab = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "tab"}); + } + if (s.classList.contains("folder")) { + NodesTypes.DraggingFolder = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "folder", index: (tt.folders[s.id] ? tt.folders[s.id].index : 0), name: (tt.folders[s.id] ? tt.folders[s.id].name : labels.noname_group), expand: (tt.folders[s.id] ? tt.folders[s.id].expand : "")}); + } + } + Tabs_Detach(Nodes, NodesTypes, {}); + }}} + if (this.id == "menu_reload_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + chrome.tabs.reload(parseInt(s.id)); + } + } else { + chrome.tabs.reload(parseInt(tt.menuItemNode.id)); + } + }}} + if (this.id == "menu_unload") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { + if (tt.menuItemNode.classList.contains("selected")) { + let tabsArr = []; + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + let children = document.querySelectorAll("[id='" + s.id + "'] .tab"); + if (children.length > 0) { + for (let t of children) { + tabsArr.push(parseInt(t.id)); + } + } + } + Tabs_DiscardTabs(tabsArr); + } else { + Tabs_DiscardTabs([parseInt(tt.menuItemNode.id)]); + } + } + if (tt.menuItemNode.classList.contains("folder")) { + let tabsArr = []; + let query = document.querySelectorAll("[id='"+ tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_DiscardTabs(tabsArr); + } + }}} + if (this.id == "menu_unload_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { + if (tt.menuItemNode.classList.contains("selected")) { + let tabsArr = []; + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + let children = document.querySelectorAll("[id='" + s.id + "'] .tab"); + if (children.length > 0) { + for (let t of children) { + tabsArr.push(parseInt(t.id)); + } + } + } + Tabs_DiscardTabs(tabsArr); + } else { + let tabsArr = []; + tabsArr.push(parseInt(tt.menuItemNode.id)); + let children = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab"); + if (children.length > 0) { + for (let t of children) { + tabsArr.push(parseInt(t.id)); + } + } + Tabs_DiscardTabs(tabsArr); + } + } + if (tt.menuItemNode.classList.contains("folder")) { + let tabsArr = []; + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_DiscardTabs(tabsArr); + } + }}} + if (this.id == "menu_close") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let tabsArr = []; + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_CloseTabs(tabsArr); + } else { + Tabs_CloseTabs([parseInt(tt.menuItemNode.id)]); + } + }}} + if (this.id == "menu_mute_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: true}); + } + } else { + chrome.tabs.update(parseInt(tt.menuItemNode.id), {muted: true}); + } + } + if (tt.menuItemNode.classList.contains("folder")) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: true}); + } + } + }}} + if (this.id == "menu_mute_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'], [id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: true}); + } + }}} + if (this.id == "menu_unmute_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin.selected, [id='" + tt.active_group + "'] .selected"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: false}); + } + } else { + chrome.tabs.update(parseInt(tt.menuItemNode.id), {muted: false}); + } + } + if (tt.menuItemNode.classList.contains("folder")) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: false}); + } + } + }}} + if (this.id == "menu_unmute_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'], [id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: false}); + } + }}} + if (this.id == "menu_mute_other") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin:not(.selected), [id='" + tt.active_group + "'] .tab:not(.selected)"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: true}); + } + } else { + let query = document.querySelectorAll(".pin:not([id='" + tt.menuItemNode.id + "']), [id='" + tt.active_group + "'] .tab:not([id='" + tt.menuItemNode.id + "'])"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: true}); + } + } + }}} + if (this.id == "menu_unmute_other") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll(".pin:not(.selected), [id='" + tt.active_group + "'] .tab:not(.selected)"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: false}); + } + } else { + let query = document.querySelectorAll(".pin:not([id='" + tt.menuItemNode.id + "']), [id='" + tt.active_group + "'] .tab:not([id='" + tt.menuItemNode.id + "'])"); + for (let s of query) { + chrome.tabs.update(parseInt(s.id), {muted: false}); + } + } + }}} + if (this.id == "menu_undo_close_tab") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + chrome.sessions.getRecentlyClosed(null, function(sessions) { + if (sessions.length > 0) { + chrome.sessions.restore(null, function() {}); + } + }); + }}} + if (this.id == "menu_new_folder") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("tab")) { + let FolderId = Folders_AddNewFolder({ParentId: tt.menuItemNode.parentNode.parentNode.id, InsertAfterId: tt.menuItemNode.id}); + Folders_ShowRenameFolderDialog(FolderId); + } else { + if (tt.menuItemNode.classList.contains("folder")) { + let FolderId = Folders_AddNewFolder({ParentId: tt.menuItemNode.id}); + Folders_ShowRenameFolderDialog(FolderId); + } else { + let FolderId = Folders_AddNewFolder({}); + Folders_ShowRenameFolderDialog(FolderId); + } + } + }}} + if (this.id == "menu_expand_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'], [id='" + tt.menuItemNode.id + "'] .folder.c, [id='" + tt.menuItemNode.id + "'] .tab.c"); + for (let s of query) { + DOM_SetClasses(s, ["o"], ["c"], []); + } + tt.schedule_update_data++; + Folders_SaveFolders(); + }}} + if (this.id == "menu_collapse_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'], [id='" + tt.menuItemNode.id + "'] .folder.c, [id='" + tt.menuItemNode.id + "'] .tab.c"); + for (let s of query) { + DOM_SetClasses(s, ["c"], ["o"], []); + } + tt.schedule_update_data++; + Folders_SaveFolders(); + }}} + if (this.id == "menu_expand_all") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let query = document.querySelectorAll("[id='" + tt.active_group + "'] .folder.c, [id='" + tt.active_group + "'] .tab.c"); + for (let s of query) { + DOM_SetClasses(s, ["o"], ["c"], []); + } + tt.schedule_update_data++; + Folders_SaveFolders(); + }}} + if (this.id == "menu_collapse_all") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let query = document.querySelectorAll("[id='" + tt.active_group + "'] .folder.o, [id='" + tt.active_group + "'] .tab.o"); + for (let s of query) { + DOM_SetClasses(s, ["c"], ["o"], []); + } + tt.schedule_update_data++; + Folders_SaveFolders(); + }}} + if (this.id == "menu_close_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let tabsArr = []; + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab, [id='" + tt.menuItemNode.id + "']"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_CloseTabs(tabsArr); + }}} + if (this.id == "menu_rename_folder") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Folders_ShowRenameFolderDialog(tt.menuItemNode.id); + }}} + if (this.id == "menu_delete_folder") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + if (tt.menuItemNode.classList.contains("selected")) { + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .selected, [id='" + tt.menuItemNode.id + "']"); + for (let s of query) { + Folders_RemoveFolder(s.id); + } + } else { + Folders_RemoveFolder(tt.menuItemNode.id); + } + }}} + if (this.id == "menu_close_other") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let tabsArr = []; + let query = []; + if (tt.menuItemNode.classList.contains("selected")) { + if (tt.menuItemNode.classList.contains("pin")) query = document.querySelectorAll(".pin:not(.selected)"); + if (tt.menuItemNode.classList.contains("tab")) query = document.querySelectorAll("[id='" + tt.active_group + "'] .tab:not(.selected)"); + for (let s of query) { + let children = document.querySelectorAll("[id='" + s.id + "'] .selected"); + if (children.length == 0 || opt.promote_children) tabsArr.push(parseInt(s.id)); + } + Tabs_CloseTabs(tabsArr); + } else { + if (tt.menuItemNode.classList.contains("pin")) query = document.querySelectorAll(".pin:not([id='" + tt.menuItemNode.id + "'])"); + if (tt.menuItemNode.classList.contains("tab")) { + query = document.querySelectorAll("[id='°" + tt.active_group + "'] .tab:not([id='" + tt.menuItemNode.id + "'])"); + document.getElementById("°" + tt.active_group).appendChild(tt.menuItemNode); + } + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_CloseTabs(tabsArr); + } + }}} + if (this.id == "menu_bookmark_tree") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Bookmark(tt.menuItemNode); + }}} + if (this.id == "menu_rename_group") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Groups_ShowGroupEditWindow(tt.menuItemNode.id); + }}} + if (this.id == "menu_delete_group") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Groups_GroupRemove(tt.menuItemNode.id, false); + }}} + if (this.id == "menu_delete_group_tabs_close") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Groups_GroupRemove(tt.menuItemNode.id, true); + }}} + if (this.id == "menu_groups_unload") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let tabsArr = []; + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_DiscardTabs(tabsArr); + }}} + if (this.id == "menu_group_tabs_close") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let tabsArr = []; + let query = document.querySelectorAll("[id='" + tt.menuItemNode.id + "'] .tab"); + for (let s of query) { + tabsArr.push(parseInt(s.id)); + } + Tabs_CloseTabs(tabsArr); + }}} + if (this.id == "menu_manager_window") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Manager_OpenManagerWindow(); + }}} + if (this.id == "menu_groups_hibernate") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Manager_ExportGroup(tt.menuItemNode.id, false, true); + setTimeout(function() {Groups_GroupRemove(tt.menuItemNode.id, true);}, 100); + }}} + if (this.id == "menu_bookmark_group") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + Bookmark(tt.menuItemNode); + }}} + if (this.id == "menu_new_group") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + let NewGroupId = Groups_AddNewGroup(); + Groups_ShowGroupEditWindow(NewGroupId); + }}} + if (this.id == "menu_treetabs_settings") { this.Menu.onmousedown = function(event) { if (event.which == 1) { + chrome.tabs.create({"url": "options/options.html"}); + }}} + } + MenuHide() { + this.Menu.style.display = "none"; + } + MenuShow() { + this.Menu.style.display = ""; + } + SeparatorHide() { + this.Separator.style.display = "none"; + } + SeparatorShow() { + this.Separator.style.display = ""; + } } -function ShowMenu(MenuNode, event) { - MenuNode.style.display = "block"; - let x = event.pageX >= (document.body.clientWidth - MenuNode.getBoundingClientRect().width - 5) ? (document.body.clientWidth - MenuNode.getBoundingClientRect().width - 5) : (event.pageX - 5); - let y = event.pageY >= (document.body.clientHeight - MenuNode.getBoundingClientRect().height - 16) ? (document.body.clientHeight - MenuNode.getBoundingClientRect().height - 16) : (event.pageY - 16); - MenuNode.style.top = y + "px"; - MenuNode.style.left = x + "px"; +function Menu_HideMenus() { + for (let MenuItem of DefaultMenu.all_entries) { + tt.menu[MenuItem[1]].MenuHide(); + tt.menu[MenuItem[1]].SeparatorHide(); + } + DOM_SetStyle(tt.menu[DefaultMenu.all_entries[0][1]].Menu.parentNode, {display: "none", top: "-1000px", left: "-1000px"}); } -function ShowTabMenu(TabNode, event) { - HideMenus(); - tt.menuItemNode = TabNode; - // $(".menu").hide(0); - - // MUTE TABS - // if (TabNode.classList.contains("audible") && !TabNode.classList.contains("muted")) { - // document.querySelector("#menu_mute_tab").style.display = ""; - // } - if (TabNode.classList.contains("muted")) { - document.querySelector("#menu_unmute_tab").style.display = ""; - } else { - document.querySelector("#menu_mute_tab").style.display = ""; - } - if (!TabNode.classList.contains("discarded")) { - document.querySelector("#menu_unload").style.display = ""; - } - - if (TabNode.classList.contains("pin")) { - if (opt.allow_pin_close) { - document.getElementById("menu_close").style.display = ""; - } - - document.querySelectorAll("#menu_new_pin, #separator_unpt, #menu_unpin_tab, #separator_dupt, #menu_duplicate_tab, #separator_undclo, #menu_undo_close_tab, #separator_deta, #menu_detach_tab, #menu_reload_tab, #separator_clo, #menu_close_other, #separator_mutot, #menu_mute_other, #menu_unmute_other, #separator_tts, #menu_manager_window, #menu_treetabs_settings").forEach(function(s){ - s.style.display = ""; - }); - } - - if (TabNode.classList.contains("tab")) { - - document.querySelectorAll("#menu_bookmark_tree, #menu_new_tab, #separator_pit, #menu_pin_tab, #separator_newf, #menu_new_folder, #separator_dupt, #menu_duplicate_tab, #separator_undclo, #menu_undo_close_tab, #separator_expaa, #menu_expand_all, #menu_collapse_all, #separator_deta, #menu_detach_tab, #menu_reload_tab, #separator_clo, #menu_close, #menu_close_other, #separator_mut, #separator_mutot, #menu_mute_other, #menu_unmute_other, #separator_tts, #menu_manager_window, #menu_treetabs_settings").forEach(function(s){ - s.style.display = ""; - }); - - if (TabNode.classList.contains("o")) { - document.querySelector("#separator_collt").style.display = ""; - document.querySelector("#menu_collapse_tree").style.display = ""; - } - if (TabNode.classList.contains("c")) { - document.querySelector("#separator_expat").style.display = ""; - document.querySelector("#menu_expand_tree").style.display = ""; - } - if (TabNode.classList.contains("c") || TabNode.classList.contains("o")) { - document.querySelector("#menu_close_tree").style.display = ""; - document.querySelector("#separator_bkt").style.display = ""; - // document.querySelector("#menu_bookmark_tree").style.display = ""; - document.querySelector("#separator_mutt").style.display = ""; - document.querySelector("#menu_mute_tree").style.display = ""; - document.querySelector("#menu_unmute_tree").style.display = ""; - } - } - ShowMenu(document.getElementById("main_menu"), event); +function Menu_ShowMenu(MenuItems, event, ) { + for (i = 0; i < DefaultMenu.all_entries.length; i++) { + if (MenuItems[i][1]) { + tt.menu[DefaultMenu.all_entries[i][1]].MenuShow(); + } else { + tt.menu[DefaultMenu.all_entries[i][1]].MenuHide(); + } + if (MenuItems[i][0]) { + tt.menu[DefaultMenu.all_entries[i][1]].SeparatorShow(); + } else { + tt.menu[DefaultMenu.all_entries[i][1]].SeparatorHide(); + } + } + setTimeout(function() { + tt.DOMmenu.style.display = "block"; + let x = event.pageX >= (document.body.clientWidth - tt.DOMmenu.getBoundingClientRect().width - 5) ? (document.body.clientWidth - tt.DOMmenu.getBoundingClientRect().width - 5) : (event.pageX - 5); + let y = event.pageY >= (document.body.clientHeight - tt.DOMmenu.getBoundingClientRect().height - 20) ? (document.body.clientHeight - tt.DOMmenu.getBoundingClientRect().height - 20) : (event.pageY - 20); + DOM_SetStyle(tt.DOMmenu, {top: y + "px", left: x + "px"}); + }, 10); } -function ShowFolderMenu(FolderNode, event) { - HideMenus(); - tt.menuItemNode = FolderNode; - - document.querySelectorAll("#menu_mute_tab, #menu_unmute_tab, #separator_unlo, #menu_unload, #menu_new_tab, #menu_new_folder, #separator_renf, #menu_rename_folder, #menu_delete_folder, #separator_bkt, #menu_bookmark_tree, #separator_expaa, #menu_expand_all, #menu_collapse_all, #menu_new_group, #separator_tts, #menu_manager_window, #menu_treetabs_settings").forEach(function(s){ - s.style.display = ""; - }); - - if (FolderNode.classList.contains("o")) { - document.querySelector("#folders_menu, #menu_collapse_tree").style.display = ""; - } - if (FolderNode.classList.contains("c")) { - document.querySelector("#folders_menu, #menu_expand_tree").style.display = ""; - } - - ShowMenu(document.getElementById("main_menu"), event); +function Menu_ShowTabMenu(TabNode, event) { + tt.menuItemNode = TabNode; + if (TabNode.classList.contains("pin")) { + Menu_ShowMenu(DefaultMenu.pin, event); + if (opt.allow_pin_close) tt.menu["menu_close"].MenuShow(); + } + if (TabNode.classList.contains("tab")) { + Menu_ShowMenu(DefaultMenu.tab, event); + if (TabNode.classList.contains("o")) { + tt.menu["menu_collapse_tree"].SeparatorShow(); + tt.menu["menu_collapse_tree"].MenuShow(); + } + if (TabNode.classList.contains("c")) { + tt.menu["menu_expand_tree"].SeparatorShow(); + tt.menu["menu_expand_tree"].MenuShow(); + } + if (TabNode.classList.contains("c") || TabNode.classList.contains("o")) { + tt.menu["menu_close_tree"].MenuShow(); + tt.menu["menu_mute_tree"].SeparatorShow(); + tt.menu["menu_mute_tree"].MenuShow(); + tt.menu["menu_unmute_tree"].MenuShow(); + tt.menu["menu_unload_tree"].MenuShow(); + } + } + if (TabNode.classList.contains("muted")) { + tt.menu["menu_unmute_tab"].MenuShow(); + } else { + tt.menu["menu_mute_tab"].MenuShow(); + } + if (!TabNode.classList.contains("discarded")) tt.menu["menu_unload"].MenuShow(); } -function ShowFGlobalMenu(event) { - tt.menuItemNode = event.target; - HideMenus(); - - - document.querySelectorAll("#menu_new_pin, #menu_new_tab, #menu_new_folder, #separator_undclo, #menu_undo_close_tab, #separator_expaa, #menu_expand_all, #menu_collapse_all, #separator_newg, #menu_new_group, #separator_gbk, #menu_bookmark_group, #separator_tts, #menu_manager_window, #menu_treetabs_settings").forEach(function(s){ - s.style.display = ""; - }); - ShowMenu(document.getElementById("main_menu"), event); +function Menu_ShowFolderMenu(FolderNode, event) { + tt.menuItemNode = FolderNode; + Menu_ShowMenu(DefaultMenu.folder, event); + if (FolderNode.classList.contains("o")) tt.menu["menu_collapse_tree"].MenuShow(); + if (FolderNode.classList.contains("c")) tt.menu["menu_expand_tree"].MenuShow(); + if (document.querySelectorAll("[id='" + FolderNode.id + "'] .tab").length == 0) { + tt.menu["menu_detach_tab"].SeparatorShow(); + tt.menu["menu_detach_tab"].MenuShow(); + } } -function ShowFGroupMenu(GroupNode, event) { - HideMenus(); - tt.menuItemNode = GroupNode; - - document.querySelectorAll("#menu_new_group, #menu_rename_group, #menu_delete_group, #separator_gtbcl, #menu_group_tabs_close, #menu_delete_group_tabs_close, #separator_gunlo, #menu_groups_unload, #separator_gbk, #separator_tts, #menu_bookmark_group, #separator_tts, #menu_groups_hibernate, #menu_manager_window, #menu_treetabs_settings").forEach(function(s){ - s.style.display = ""; - }); - if (tt.menuItemNode.id == "tab_list") { - document.querySelectorAll("#menu_groups_hibernate, #menu_rename_group, #menu_delete_group, #menu_delete_group_tabs_close").forEach(function(s){ - s.style.display = "none"; - }); - } - ShowMenu(document.getElementById("main_menu"), event); +function Menu_ShowFGlobalMenu(event) { + tt.menuItemNode = event.target; + Menu_ShowMenu(DefaultMenu.global, event); } -function SetMenu() { - document.querySelectorAll(".menu_item").forEach(function(m){ - if (m.id == "menu_new_pin") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("pin")) { - OpenNewTab(true, tt.menuItemNode.id); - } else { - OpenNewTab(true, undefined); - } - HideMenus(); - } - } - } - if (m.id == "menu_new_tab") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("folder")) { - OpenNewTab(false, tt.menuItemNode.id); - } else { - if (tt.menuItemNode.classList.contains("pin")) { - OpenNewTab(true, tt.menuItemNode.id); - } else { - if (tt.menuItemNode.classList.contains("tab")) { - OpenNewTab(false, tt.menuItemNode.id); - } else { - OpenNewTab(false, tt.active_group); - } - } - } - HideMenus(); - } - } - } +function Menu_ShowFGroupMenu(GroupNode, event) { + tt.menuItemNode = GroupNode; + Menu_ShowMenu(DefaultMenu.group, event); + if (tt.menuItemNode.id == "tab_list") { + tt.menu["menu_groups_hibernate"].MenuHide(); + tt.menu["menu_rename_group"].MenuHide(); + tt.menu["menu_delete_group"].MenuHide(); + tt.menu["menu_delete_group_tabs_close"].MenuHide(); + } +} - if (m.id == "menu_unpin_tab" || m.id == "menu_pin_tab") { - m.onmousedown = function(event) { - event.stopPropagation(); - if (event.which == 1) { - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { pinned: (tt.menuItemNode.classList.contains("tab")) }); - }); - } else { - chrome.tabs.update(parseInt(tt.menuItemNode.id), { pinned: (tt.menuItemNode.classList.contains("tab")) }); - } - HideMenus(); - } - } - } - - if (m.id == "menu_duplicate_tab") { - m.onmousedown = function(event) { - event.stopPropagation(); - if (event.which == 1) { - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - DuplicateTab(s); - }); - } else { - DuplicateTab(tt.menuItemNode); - } - HideMenus(); - } - } - } - - if (m.id == "menu_detach_tab") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - - if (tt.menuItemNode.classList.contains("selected_tab")) { - let tabsArr = []; - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - if (s.childNodes[1].childNodes.length > 0) { - document.querySelectorAll("#"+s.childNodes[1].id+" .tab").forEach(function(t){ - tabsArr.push(parseInt(t.id)); - }); - } - }); - Detach(tabsArr); - } else { - Detach([parseInt(tt.menuItemNode.id)]); - } - HideMenus(); - } - } - } - - if (m.id == "menu_reload_tab") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - chrome.tabs.reload(parseInt(s.id)); - }); - } else { - chrome.tabs.reload(parseInt(tt.menuItemNode.id)); - } - HideMenus(); - } - } - } - - if (m.id == "menu_unload") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { - if (tt.menuItemNode.classList.contains("selected_tab")) { - let tabsArr = []; - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - if (s.childNodes[1].childNodes.length > 0) { - document.querySelectorAll("#"+s.childNodes[1].id+" .tab").forEach(function(t){ - tabsArr.push(parseInt(t.id)); - }); - } - }); - DiscardTabs(tabsArr); - } else { - DiscardTabs([parseInt(tt.menuItemNode.id)]); - } - } - if (tt.menuItemNode.classList.contains("folder")) { - let tabsArr = []; - document.querySelectorAll("#"+tt.menuItemNode.id+" .tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - }); - DiscardTabs(tabsArr); - } - HideMenus(); - } - } - } - - if (m.id == "menu_close") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("selected_tab")) { - let tabsArr = []; - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - if (s.childNodes[1].childNodes.length > 0) { - document.querySelectorAll("#"+s.childNodes[1].id+" .tab").forEach(function(t){ - tabsArr.push(parseInt(t.id)); - }); - } - }); - CloseTabs(tabsArr); - } else { - CloseTabs([parseInt(tt.menuItemNode.id)]); - } - HideMenus(); - } - } - } - - if (m.id == "menu_mute_tab") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: true }); - }); - } else { - chrome.tabs.update(parseInt(tt.menuItemNode.id), { muted: true }); - } - } - if (tt.menuItemNode.classList.contains("folder")) { - document.querySelectorAll("#"+tt.menuItemNode.id+" .tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: true }); - }); - } - HideMenus(); - } - } - } - - if (m.id == "menu_mute_tree") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'], [id='"+tt.menuItemNode.id+"'] .tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: true }); - }); - HideMenus(); - } - } - } - - if (m.id == "menu_unmute_tab") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("pin") || tt.menuItemNode.classList.contains("tab")) { - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: false }); - }); - } else { - chrome.tabs.update(parseInt(tt.menuItemNode.id), { muted: false }); - } - } - if (tt.menuItemNode.classList.contains("folder")) { - document.querySelectorAll("#"+tt.menuItemNode.id+" .tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: false }); - }); - } - HideMenus(); - } - } - } - - if (m.id == "menu_unmute_tree") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'], [id='"+tt.menuItemNode.id+"'] .tab").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: false }); - }); - HideMenus(); - } - } - } - - - if (m.id == "menu_mute_other") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin:not(.selected_tab), #"+tt.active_group+" .tab:not(.selected_tab)").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: true }); - }); - } else { - document.querySelectorAll(".pin:not([id='"+tt.menuItemNode.id+"']), #"+tt.active_group+" .tab:not([id='"+tt.menuItemNode.id+"'])").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: true }); - }); - } - - HideMenus(); - } - } - } - - - if (m.id == "menu_unmute_other") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin:not(.selected_tab), #"+tt.active_group+" .tab:not(.selected_tab)").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: false }); - }); - } else { - document.querySelectorAll(".pin:not([id='"+tt.menuItemNode.id+"']), #"+tt.active_group+" .tab:not([id='"+tt.menuItemNode.id+"'])").forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { muted: false }); - }); - } - HideMenus(); - } - } - } - - - - - if (m.id == "menu_undo_close_tab") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - chrome.sessions.getRecentlyClosed(null, function(sessions) { - if (sessions.length > 0) { - chrome.sessions.restore(null, function() {}); - } - }); - HideMenus(); - } - } - } - - - if (m.id == "menu_new_folder") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("folder")) { - let FolderId = AddNewFolder({ParentId: tt.menuItemNode.id, SetEvents: true}); - tt.menuItemNode.classList.remove("c"); - tt.menuItemNode.classList.add("o"); - ShowRenameFolderDialog(FolderId); - } else { - if (tt.menuItemNode.classList.contains("tab")) { - let folders = GetParentsByClass(tt.menuItemNode, "folder"); - if (folders.length > 0) { - let FolderId = AddNewFolder({ParentId: folders[0].id, SetEvents: true}); - ShowRenameFolderDialog(FolderId); - } else { - let FolderId = AddNewFolder({SetEvents: true}); - ShowRenameFolderDialog(FolderId); - } - } else { - let FolderId = AddNewFolder({SetEvents: true}); - ShowRenameFolderDialog(FolderId); - } - } - HideMenus(); - } - } - } - - - if (m.id == "menu_expand_tree") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'], [id='"+tt.menuItemNode.id+"'] .folder.c, [id='"+tt.menuItemNode.id+"'] .tab.c").forEach(function(s){ - s.classList.add("o"); - s.classList.remove("c"); - }); - - tt.schedule_update_data++; - HideMenus(); - SaveFolders(); - } - } - } - - if (m.id == "menu_collapse_tree") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'], [id='"+tt.menuItemNode.id+"'] .folder.c, [id='"+tt.menuItemNode.id+"'] .tab.c").forEach(function(s){ - s.classList.add("c"); - s.classList.remove("o"); - }); - tt.schedule_update_data++; - HideMenus(); - SaveFolders(); - } - } - } - - if (m.id == "menu_expand_all") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - document.querySelectorAll("#"+tt.active_group+" .folder.c, #"+tt.active_group+" .tab.c").forEach(function(s){ - s.classList.add("o"); - s.classList.remove("c"); - }); - tt.schedule_update_data++; - HideMenus(); - SaveFolders(); - } - } - } - - if (m.id == "menu_collapse_all") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - document.querySelectorAll("#"+tt.active_group+" .folder.o, #"+tt.active_group+" .tab.o").forEach(function(s){ - s.classList.add("c"); - s.classList.remove("o"); - }); - tt.schedule_update_data++; - HideMenus(); - SaveFolders(); - } - } - } - - - - if (m.id == "menu_close_tree") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - - let tabsArr = []; - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'] .tab, [id='"+tt.menuItemNode.id+"']").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - if (s.childNodes[1].childNodes.length > 0) { - document.querySelectorAll("#"+s.childNodes[1].id+" .tab").forEach(function(t){ - tabsArr.push(parseInt(t.id)); - }); - } - }); - CloseTabs(tabsArr); - HideMenus(); - } - } - } - - if (m.id == "menu_rename_folder") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - ShowRenameFolderDialog(tt.menuItemNode.id); - HideMenus(); - } - } - } - - - if (m.id == "menu_delete_folder") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - if (tt.menuItemNode.classList.contains("selected_folder")) { - document.querySelectorAll("#"+tt.menuItemNode.id+" .selected_folder, #"+tt.menuItemNode.id).forEach(function(s){ - RemoveFolder(s.id); - }); - } else { - RemoveFolder(tt.menuItemNode.id); - } - HideMenus(); - } - } - } - - if (m.id == "menu_close_other") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - let tabsArr = []; - if (tt.menuItemNode.classList.contains("selected_tab")) { - document.querySelectorAll(".pin:not(.selected_tab), #"+tt.active_group+" .tab:not(.selected_tab)").forEach(function(s){ - let children = document.querySelectorAll("[id='"+s.id+"'] .selected_tab"); - if (children.length == 0 || opt.promote_children) { - tabsArr.push(parseInt(s.id)); - } - }); - CloseTabs(tabsArr); - } else { - if (tt.menuItemNode.classList.contains("tab")) { - document.getElementById(tt.active_group).appendChild(tt.menuItemNode); - } - document.querySelectorAll(".pin:not([id='"+tt.menuItemNode.id+"']), #"+tt.active_group+" .tab:not([id='"+tt.menuItemNode.id+"'])").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - }); - - CloseTabs(tabsArr); - } - HideMenus(); - } - } - } - - if (m.id == "menu_bookmark_tree") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - Bookmark(tt.menuItemNode); - HideMenus(); - } - } - } - - - if (m.id == "menu_rename_group") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - ShowGroupEditWindow(tt.menuItemNode.id); - HideMenus(); - } - } - } - - if (m.id == "menu_delete_group") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - GroupRemove(tt.menuItemNode.id, false); - HideMenus(); - } - } - } - - - if (m.id == "menu_delete_group_tabs_close") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - GroupRemove(tt.menuItemNode.id, true); - HideMenus(); - } - } - } - - - if (m.id == "menu_groups_unload") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - let tabsArr = []; - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'] .tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - }); - DiscardTabs(tabsArr); - HideMenus(); - } - } - } - - if (m.id == "menu_group_tabs_close") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - let tabsArr = []; - document.querySelectorAll("[id='"+tt.menuItemNode.id+"'] .tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - }); - CloseTabs(tabsArr); - HideMenus(); - } - } - } - - if (m.id == "menu_manager_window") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - OpenManagerWindow(); - HideMenus(); - } - } - } - - if (m.id == "menu_groups_hibernate") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - ExportGroup(tt.menuItemNode.id, false, true); - HideMenus(); - setTimeout(function() { - GroupRemove(tt.menuItemNode.id, true); - }, 100); - } - } - } - - - if (m.id == "menu_bookmark_group") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - Bookmark(tt.menuItemNode); - HideMenus(); - } - } - } - - if (m.id == "menu_new_group") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - AddNewGroup(); - HideMenus(); - } - } - } - - - if (m.id == "menu_treetabs_settings") { - m.onmousedown = function(event) { - if (event.which == 1) { - event.stopPropagation(); - chrome.tabs.create({ "url": "options.html" }); - HideMenus(); - } - } - } - - }); - +function Menu_CreateMenu() { + tt.DOMmenu = document.getElementById("main_menu"); + tt.DOMmenu.onmousedown = function(event) { + event.preventDefault(); + event.stopPropagation(); + event.stopImmediatePropagation(); + } + tt.DOMmenu.onclick = function(event) { + Menu_HideMenus(); + } + for (let MenuItem of DefaultMenu.all_entries) { + tt.menu[MenuItem[1]] = new Menu_ttMenu(MenuItem); + } } \ No newline at end of file diff --git a/scripts/preferences.js b/scripts/preferences.js new file mode 100644 index 0000000..781cd78 --- /dev/null +++ b/scripts/preferences.js @@ -0,0 +1,26 @@ +function Preferences_SavePreferences(options) { + chrome.storage.local.set({preferences: options}); + chrome.runtime.sendMessage({command: "reload_options", opt: options}); +} + +function Preferences_LoadDefaultPreferences() { + opt = Object.assign({}, DefaultPreferences); +} + +function Preferences_GetCurrentPreferences(storage) { + opt = Object.assign({}, DefaultPreferences); + if (storage.preferences) { + for (let parameter in storage["preferences"]) { + if (opt[parameter] != undefined) { + opt[parameter] = storage["preferences"][parameter]; + + // legacy, changed from "after_active" to "after", because it is a parent tab, not necessarily an active tab + if (parameter == "append_child_tab" && storage["preferences"][parameter] == "after_active") { + opt[parameter] = "after"; + } + } + } + } else { + Preferences_SavePreferences(opt); + } +} \ No newline at end of file diff --git a/scripts/refresh.js b/scripts/refresh.js deleted file mode 100644 index 085f861..0000000 --- a/scripts/refresh.js +++ /dev/null @@ -1,327 +0,0 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -// ********** REFRESH GUI *************** - -async function RefreshGUI() { - let toolbar = document.getElementById("toolbar"); - let toolbarHeight = 27; - if (toolbar.children.length > 0) { - toolbar.style.height = ""; - toolbar.style.width = ""; - toolbar.style.display = ""; - toolbar.style.border = ""; - toolbar.style.padding = ""; - if (document.querySelector(".on.button") != null) { - toolbar.style.height = "53px"; - toolbarHeight = 54; - } else { - toolbar.style.height = "26px"; - } - } else { - toolbar.style.height = "0px"; - toolbarHeight = 0; - toolbar.style.width = "0px"; - toolbar.style.display = "none"; - toolbar.style.border = "none"; - toolbar.style.padding = "0"; - } - - let group_list = document.getElementById("group_list"); - group_list.style.width = document.body.clientWidth + 50 + "px"; - - let pin_list = document.getElementById("pin_list"); - if (pin_list.children.length > 0) { - pin_list.style.top = toolbarHeight + "px"; - pin_list.style.height = ""; - pin_list.style.width = ""; - pin_list.style.display = ""; - pin_list.style.border = ""; - pin_list.style.padding = ""; - } else { - pin_list.style.top = "0px"; - pin_list.style.height = "0px"; - pin_list.style.width = "0px"; - pin_list.style.display = "none"; - pin_list.style.border = "none"; - pin_list.style.padding = "0"; - } - let pin_listHeight = pin_list.getBoundingClientRect().height; - - let toolbar_groups = document.getElementById("toolbar_groups"); - toolbar_groups.style.top = toolbarHeight + pin_listHeight + "px"; - toolbar_groups.style.height = document.body.clientHeight - toolbarHeight - pin_listHeight + "px"; - let toolbar_groupsWidth = toolbar_groups.getBoundingClientRect().width; - - if (opt.show_counter_groups) { - document.querySelectorAll(".group").forEach(function(s){ - let groupLabel = document.getElementById("_gte"+s.id); - if (groupLabel) { - groupLabel.textContent = (tt.groups[s.id] ? tt.groups[s.id].name : labels.noname_group) + " (" + document.querySelectorAll("#"+s.id+" .tab").length + ")"; - } - }); - } else { - document.querySelectorAll(".group").forEach(function(s){ - let groupLabel = document.getElementById("_gte"+s.id); - if (groupLabel) { - groupLabel.textContent = tt.groups[s.id] ? tt.groups[s.id].name : labels.noname_group; - } - }); - } - document.querySelectorAll(".group_button").forEach(function(s){ - s.style.height = s.firstChild.getBoundingClientRect().height + "px"; - }); - let groups = document.getElementById("groups"); - let groupsHeight = document.body.clientHeight - toolbarHeight - pin_listHeight; - let groupsWidth = document.body.clientWidth - toolbar_groupsWidth - 1; - - groups.style.top = toolbarHeight + pin_listHeight + "px"; - groups.style.left = toolbar_groupsWidth + "px"; - groups.style.height = groupsHeight + "px"; - groups.style.width = groupsWidth + "px"; - - // let bottom_floating_buttons = document.getElementById("status_bar"); - // let active_group_tabs = document.getElementById("ct"+tt.active_group); - // bottom_floating_buttons.style.left = toolbar_groupsWidth + "px"; - // bottom_floating_buttons.style.width = toolbar_groupsWidth + active_group_tabs.clientWidth + "px"; - - - let PanelList = document.querySelector(".mw_pan_on>.manager_window_list"); - let PanelListHeight = 3 + PanelList.children.length * 18; - - let ManagerWindowPanelButtons = document.querySelector(".mw_pan_on>.manager_window_panel_buttons"); - let ManagerWindowPanelButtonsHeight = ManagerWindowPanelButtons.clientHeight; - - let MaxAllowedHeight = document.body.clientHeight - 140; - - - if (PanelListHeight + ManagerWindowPanelButtonsHeight < MaxAllowedHeight) { - PanelList.style.height = PanelListHeight + "px"; - } else { - PanelList.style.height = MaxAllowedHeight - ManagerWindowPanelButtonsHeight + "px"; - } - - - let ManagerWindow = document.getElementById("manager_window"); - ManagerWindow.style.height = PanelList.clientHeight + ManagerWindowPanelButtonsHeight + 56 + "px"; -} - -// set discarded class -function RefreshDiscarded(tabId) { - let t = document.getElementById(tabId); - if (t != null) { - chrome.tabs.get(parseInt(tabId), function(tab) { - if (tab) { - if (tab.discarded) { - t.classList.add("discarded"); - } else { - t.classList.remove("discarded"); - t.classList.remove("audible"); - t.classList.remove("muted"); - } - } - }); - } -} - -// set discarded class -function SetAttentionIcon(tabId) { - let t = document.getElementById(tabId); - if (t != null) { - t.classList.add("attention"); - } -} - -// change media icon -function RefreshMediaIcon(tabId) { - let t = document.getElementById(tabId); - if (t != null) { - chrome.tabs.get(parseInt(tabId), function(tab) { - if (tab) { - if (tab.mutedInfo.muted && !tab.discarded) { - t.classList.remove("audible"); - t.classList.add("muted"); - } - if (!tab.mutedInfo.muted && tab.audible && !tab.discarded) { - t.classList.remove("muted"); - t.classList.add("audible"); - } - if ((!tab.mutedInfo.muted && !tab.audible) || tab.discarded) { - t.classList.remove("audible"); - t.classList.remove("muted"); - } - } - }); - } -} - - -// Vivaldi does not have changeInfo.audible listener, this is my own implementation, hopefully this will not affect performance too much -function VivaldiRefreshMediaIcons() { - setInterval(function() { - chrome.tabs.query({currentWindow: true, audible: true}, function(tabs) { - document.querySelectorAll(".audible, .muted").forEach(function(s){ - s.classList.remove("audible"); - s.classList.remove("muted"); - }); - let tc = tabs.length; - for (var ti = 0; ti < tc; ti++) { - if (tabs[ti].audible) { - document.getElementById(tabs[ti].id).classList.add("audible"); - } - if (tabs[ti].mutedInfo.muted) { - document.getElementById(tabs[ti].id).classList.add("muted"); - } - } - }); - }, 2000); -} - -async function LoadFavicon(tabId, Img, TryUrls, TabHeaderNode, i) { - if (TabHeaderNode){ - Img.src = TryUrls[i]; - Img.onload = function() { - TabHeaderNode.style.backgroundImage = "url(" + TryUrls[i] + ")"; - if (browserId == "F") { // cache Firefox favicon - solution for bug with empty favicons in unloaded tabs - browser.sessions.setTabValue(tabId, "CachedFaviconUrl", TryUrls[i]); - } - }; - Img.onerror = function() { - if (i < TryUrls.length) { - LoadFavicon(tabId, Img, TryUrls, TabHeaderNode, (i+1)); - } - } - } -} - -async function GetFaviconAndTitle(tabId, addCounter) { - let t = document.getElementById(tabId); - if (t != null) { - - let CachedFavicon; - if (browserId == "F") { - let ttf = Promise.resolve(browser.sessions.getTabValue(tabId, "CachedFaviconUrl")).then(function(FaviconUrl) { - CachedFavicon = FaviconUrl; - }); - } - - chrome.tabs.get(parseInt(tabId), function(tab) { - if (tab){ - let title = tab.title ? tab.title : tab.url; - let tHeader = t.childNodes[0]; - let tTitle = t.childNodes[0].childNodes[2]; - if (tab.status == "complete" || tab.discarded) { - t.classList.remove("loading"); - - tTitle.textContent = title; - tHeader.title = title; - if (opt.show_counter_tabs_hints) { - tHeader.setAttribute("tabTitle", title); - } - - let Img = new Image(); - - if (browserId != "F") { - CachedFavicon = "chrome://favicon/"+tab.url; - } - let TryCases = [tab.favIconUrl, CachedFavicon, , "./theme/icon_empty.svg"]; - LoadFavicon(tabId, Img, TryCases, tHeader, 0); - - } - if (tab.status == "loading" && tab.discarded == false) { - title = tab.title ? tab.title : labels.loading; - t.classList.add("loading"); - tHeader.style.backgroundImage = ""; - tHeader.title = labels.loading; - if (opt.show_counter_tabs_hints) { - tHeader.setAttribute("tabTitle", labels.loading); - } - tTitle.textContent = labels.loading; - setTimeout(function() { - if (document.getElementById(tab.id) != null) GetFaviconAndTitle(tab.id, addCounter); - }, 1000); - } - if (addCounter && (opt.show_counter_tabs || opt.show_counter_tabs_hints)) { - RefreshTabCounter(tabId); - } - } - }); - } -} - -// refresh open closed trees states -async function RefreshExpandStates() { - document.querySelectorAll("#"+tt.active_group+" .folder").forEach(function(s){ - if (s.childNodes[1].children.length == 0 && s.childNodes[2].children.length == 0) { - s.classList.remove("o"); - s.classList.remove("c"); - } else { - if (s.classList.contains("o") == false && s.classList.contains("c") == false) { - s.classList.add("o"); - } - } - }); - document.querySelectorAll("#"+tt.active_group+" .tab").forEach(function(s){ - if (s.childNodes[1].children.length == 0) { - s.classList.remove("o"); - s.classList.remove("c"); - } else { - if (s.classList.contains("o") == false && s.classList.contains("c") == false) { - s.classList.add("o"); - } - } - }); -} - -async function RefreshCounters() { - if (opt.show_counter_tabs || opt.show_counter_tabs_hints) { - // if (opt.show_counter_tabs_hints) { - // document.querySelectorAll("#"+tt.active_group+" .tab").forEach(function(s){ - // let title = s.childNodes[0].getAttribute("tabTitle"); - // if (title != null) { - // s.childNodes[0].title = title; - // s.childNodes[0].childNodes[1].textContent = title; - // } - // }); - // } - - document.querySelectorAll("#"+tt.active_group+" .o.tab, #"+tt.active_group+" .c.tab").forEach(function(s){ - if (opt.show_counter_tabs) { - s.childNodes[0].childNodes[1].childNodes[0].textContent = document.querySelectorAll("[id='" + s.id + "'] .tab").length; - } - if (opt.show_counter_tabs_hints) { - let title = s.childNodes[0].getAttribute("tabTitle"); - s.childNodes[0].title = (document.querySelectorAll("[id='" + s.id + "'] .tab").length +" • ") + title; - } - }); - // · - document.querySelectorAll("#"+tt.active_group+" .folder").forEach(function(s){ - if (opt.show_counter_tabs && tt.folders[s.id]) { - s.childNodes[0].childNodes[1].childNodes[0].textContent = document.querySelectorAll("[id='" + s.id + "'] .tab").length; - } - if (opt.show_counter_tabs_hints && tt.folders[s.id]) { - s.childNodes[0].title = (document.querySelectorAll("[id='" + s.id + "'] .tab").length +" • ") + tt.folders[s.id].name; - } - }); - } -} - -async function RefreshTabCounter(tabId) { - let t = document.getElementById(tabId); - if (t != null && t.childNodes[0]) { - let title = t.childNodes[0].getAttribute("tabTitle"); - if (t != null && title != null) { - if (t.classList.contains("o") || t.classList.contains("c")) { - if (opt.show_counter_tabs) { - t.childNodes[0].childNodes[1].childNodes[0].textContent = document.querySelectorAll("[id='" + t.id + "'] .tab").length; - } - if (opt.show_counter_tabs_hints) { - t.childNodes[0].title = (document.querySelectorAll("[id='" + t.id + "'] .tab").length +" • ") + title; - } - } else { - t.childNodes[0].title = title; - } - } - } -} diff --git a/scripts/tabs.js b/scripts/tabs.js index 981f4d4..c574b5d 100644 --- a/scripts/tabs.js +++ b/scripts/tabs.js @@ -1,1087 +1,974 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -// ********** TABS FUNCTIONS *************** - - -async function UpdateData() { - if (opt.debug) { - log("f: UpdateData"); - } - - setInterval(function() { - if (tt.schedule_update_data > 1) { - tt.schedule_update_data = 1; - } - if (tt.schedule_update_data > 0) { - let PinInd = 0; - let pins_data = []; - document.querySelectorAll(".pin").forEach(function(pin){ - pins_data.push({id: pin.id, index: PinInd}); - PinInd++; - }); - - let tabs_data = []; - document.querySelectorAll(".tab").forEach(function(tab){ - tabs_data.push({id: tab.id, parent: tab.parentNode.parentNode.id, index: Array.from(tab.parentNode.children).indexOf(tab), expand: (tab.classList.contains("c") ? "c" : (tab.classList.contains("o") ? "o" : ""))}); - }); - chrome.runtime.sendMessage({command: "update_all_tabs", pins: pins_data, tabs: tabs_data}); - tt.schedule_update_data--; - } - }, 1000); +class Tabs_ttTab { + constructor(p) { + this.id = p.tab.id; + this.pinned = p.tab.pinned; + if (document.getElementById(p.tab.id) != null && tt.tabs[p.tab.id]) { + tt.tabs[p.tab.id].GetFaviconAndTitle(p.addCounter); + return; + } + let ClassList = p.tab.pinned ? "pin" : "tab"; + if (p.tab.discarded) ClassList += " discarded"; + if (p.tab.attention) ClassList += " attention"; + if (p.AdditionalClass) ClassList += " " + p.AdditionalClass; + if (p.ExpandState) ClassList += " " + p.ExpandState; + let DIV_Tab = DOM_New("div", undefined, {id: p.tab.id, className: ClassList}); + let DIV_header = DOM_New("div", DIV_Tab, {id: ("tab_header_" + p.tab.id), className: (opt.always_show_close && !opt.never_show_close) ? "tab_header close_show" : "tab_header", draggable: (!p.SkipSetEvents ? true : false)}); + let DIV_expand = DOM_New("div", DIV_header, {id: ("exp_" + p.tab.id), className: "expand"}); + let DIV_counter = DOM_New("div", DIV_header, {id: ("tab_counter_" + p.tab.id), className: "tab_counter"}); + DOM_New("div", DIV_counter, {id: ("counter_number_" + p.tab.id), className: "counter_number"}); + let DIV_title = DOM_New("div", DIV_header, {id: ("tab_title_" + p.tab.id), className: "tab_title"}); + let DIV_close_button = DOM_New("div", DIV_header, {id: ("close_" + p.tab.id), className: (opt.never_show_close ? "close hidden" : "close")}); + DOM_New("div", DIV_close_button, {id: ("close_img_" + p.tab.id), className: (opt.never_show_close ? "close_img hidden" : "close_img")}); + let DIV_audio_indicator = DOM_New("div", DIV_header, {id: ("tab_mediaicon_" + p.tab.id), className: "tab_mediaicon"}); + let DIV_children = DOM_New("div", DIV_Tab, {id: ("°" + p.tab.id), className: "children"}); + DOM_New("div", DIV_Tab, {id: ("drag_indicator_" + p.tab.id), className: "drag_indicator"}); + if (!p.SkipSetEvents) { + DIV_children.onclick = function(event) { + if (event.target == this && event.which == 1) DOM_Deselect(); + } + DIV_children.onmousedown = function(event) { + if (event.target == this) { + if (event.which == 2 && event.target == this) { + event.stopImmediatePropagation(); + Groups_ActionClickGroup(this.parentNode, opt.midclick_group); + } + if (event.which == 3) Menu_ShowFGlobalMenu(event); + } + } + DIV_children.ondblclick = function(event) { + if (event.target == this) Groups_ActionClickGroup(this.parentNode, opt.dbclick_group); + } + DIV_expand.onmousedown = function(event) { + if (tt.DOMmenu.style.top != "-1000px") Menu_HideMenus(); + if (event.which == 1 && !event.shiftKey && !event.ctrlKey) DOM_EventExpandBox(this.parentNode.parentNode); + } + DIV_expand.onmouseenter = function(event) { + this.classList.add("hover"); + } + DIV_expand.onmouseleave = function(event) { + this.classList.remove("hover"); + } + if (!opt.never_show_close) { + DIV_close_button.onmousedown = function(event) { + event.stopImmediatePropagation(); + if (event.which != 3) Tabs_CloseTabs([parseInt(this.parentNode.parentNode.id)]); + } + DIV_close_button.onmouseenter = function(event) { + this.classList.add("close_hover"); + } + DIV_close_button.onmouseleave = function(event) { + this.classList.remove("close_hover"); + } + } + DIV_header.ondblclick = function(event) { + if (event.target.classList && event.target.classList.contains("tab_header")) Tabs_ActionClickTab(this.parentNode, opt.dbclick_tab); + } + DIV_header.onmousedown = function(event) { + if (browserId == "V") { + chrome.windows.getCurrent({populate: false}, function(window) { + if (tt.CurrentWindowId != window.id && window.focused) location.reload(); + }); + } + event.stopImmediatePropagation(); + if (event.which == 1) { + if (tt.DOMmenu.style.top != "-1000px") { + Menu_HideMenus(); + } else { + + if (event.shiftKey || event.ctrlKey) { + DOM_Select(event, this.parentNode); + } + + // let tabId = parseInt(this.parentNode.id); + // setTimeout(function() { + // if (tt.Dragging == false && !event.shiftKey && !event.ctrlKey && event.target.classList.contains("tab_header") && event.target.parentNode.classList.contains("selected") == false) { + // chrome.tabs.update(tabId, {active: true}); + // } + // }, 90); + } + } + if (event.which == 2) { + event.preventDefault(); + Tabs_ActionClickTab(this.parentNode, opt.midclick_tab); + } + if (event.which == 3) Menu_ShowTabMenu(this.parentNode, event); + } + + DIV_header.onclick = function(event) { + if (!event.shiftKey && !event.ctrlKey) { + DOM_Deselect(); + + // let tabId = parseInt(this.parentNode.id); + + if (event.target.classList.contains("tab_header")) { + chrome.tabs.update(parseInt(this.parentNode.id), {active: true}); + // , function(tab) { + // if (was_selected) tt.tab[tab.id].Node.classList.add("selected"); + // }); + } + } + } + + + + // DIV_header.onmouseup = function(event) { + // event.stopImmediatePropagation(); + // if (tt.DOMmenu.style.top != "-1000px") { + // Menu_HideMenus(); + // } else { + // if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target.classList.contains("tab_header")) { + // DOM_Deselect(); + // chrome.tabs.update(parseInt(this.parentNode.id), {active: true}); + // } + // } + // } + DIV_header.onmouseover = function(event) { + this.classList.add("tab_header_hover"); + if (opt.never_show_close == false && opt.always_show_close == false) this.classList.add("close_show"); + } + DIV_header.onmouseleave = function(event) { + this.classList.remove("tab_header_hover"); + if (opt.never_show_close == false && opt.always_show_close == false) this.classList.remove("close_show"); + } + DIV_header.ondragstart = function(event) { // DRAG START + tt.Dragging = true; + tt.DraggingGroup = false; + event.stopPropagation(); + event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); + event.dataTransfer.setData("text", ""); + event.dataTransfer.setData("SourceWindowId", tt.CurrentWindowId); + DOM_CleanUpDragAndDrop(); + let Nodes = []; + if (this.parentNode.classList.contains("selected")) { + DOM_FreezeSelection(false); + } else { + DOM_FreezeSelection(true); + DOM_SetClasses(this.parentNode, ["selected_temporarly", "selected"], [], []); + } + DOM_RemoveHeadersHoverClass(); + let selected = document.querySelectorAll(".selected, .selected .tab, .selected .folder"); + for (let s of selected) { + s.classList.add("dragged_tree"); + if (s.classList.contains("pin")) { + tt.DraggingPin = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "pin"}); + } + if (s.classList.contains("tab")) { + tt.DraggingTab = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "tab"}); + } + if (s.classList.contains("folder")) { + tt.DraggingFolder = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "folder", index: (tt.folders[s.id] ? tt.folders[s.id].index : 0), name: (tt.folders[s.id] ? tt.folders[s.id].name : labels.noname_group), expand: (tt.folders[s.id] ? tt.folders[s.id].expand : "")}); + } + } + if (opt.max_tree_drag_drop && opt.max_tree_depth >= 0) { + let dragged_tree = document.querySelectorAll(".dragged_tree .tab, .dragged_tree .folder"); + for (let s of dragged_tree) { + let parents = DOM_GetParentsByClass(s.parentNode, "dragged_tree"); + if (parents.length > tt.DragTreeDepth) tt.DragTreeDepth = parents.length; + } + } else { + tt.DragTreeDepth = -1; + } + let Parents = DOM_GetAllParents(this.parentNode); + for (let s of Parents) { + if (s.classList && (s.classList.contains("tab") || s.classList.contains("folder"))) s.classList.add("dragged_parents"); + } + event.dataTransfer.setData("Nodes", JSON.stringify(Nodes)); + event.dataTransfer.setData("NodesTypes", JSON.stringify({DraggingGroup: tt.DraggingGroup, DraggingPin: tt.DraggingPin, DraggingTab: tt.DraggingTab, DraggingFolder: tt.DraggingFolder})); + chrome.runtime.sendMessage({command: "drag_start", DragTreeDepth: tt.DragTreeDepth, DraggingGroup: tt.DraggingGroup, DraggingPin: tt.DraggingPin, DraggingTab: tt.DraggingTab, DraggingFolder: tt.DraggingFolder}); + } + DIV_header.ondragenter = function(event) { + this.classList.remove("tab_header_hover"); + } + DIV_header.ondragleave = function(event) { + DOM_RemoveHighlight(); + } + DIV_header.ondragover = function(event) { + if (tt.DraggingGroup == false && (tt.DraggingPin || tt.DraggingTab || tt.DraggingFolder) && this.parentNode.classList.contains("dragged_tree") == false) { + if (this.parentNode.classList.contains("pin")) { + if (this.parentNode.classList.contains("before") == false && event.layerX < this.clientWidth / 2) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["before", "highlighted_drop_target"], ["after"], []); + } + if (this.parentNode.classList.contains("after") == false && event.layerX >= this.clientWidth / 2) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["after", "highlighted_drop_target"], ["before"], []); + } + } + if (this.parentNode.classList.contains("tab")) { + let TabDepth = Tabs_GetTabDepthInTree(this); + let PDepth = TabDepth + tt.DragTreeDepth; + let PIsGroup = this.parentNode.parentNode.parentNode.classList.contains("group"); + // let PIsTab = this.parentNode.parentNode.parentNode.classList.contains("tab"); + let PIsFolder = this.parentNode.parentNode.parentNode.classList.contains("folder"); + let PIsDraggedParents = this.parentNode.classList.contains("dragged_parents"); + if ((PIsFolder == tt.DraggingFolder || tt.DraggingFolder == false || PIsGroup == true) && this.parentNode.classList.contains("before") == false && event.layerY < this.clientHeight / 3 && (PDepth <= opt.max_tree_depth + 1 || opt.max_tree_depth < 0 || opt.max_tree_drag_drop == false || PIsDraggedParents == true)) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["before", "highlighted_drop_target"], ["inside", "after"], []); + } + if (tt.DraggingFolder == false && this.parentNode.classList.contains("inside") == false && event.layerY > this.clientHeight / 3 && event.layerY <= 2 * (this.clientHeight / 3) && (PDepth <= opt.max_tree_depth || opt.max_tree_depth < 0 || opt.max_tree_drag_drop == false || PIsDraggedParents == true)) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["inside", "highlighted_drop_target"], ["before", "after"], []); + } + if ((PIsFolder == tt.DraggingFolder || tt.DraggingFolder == false || PIsGroup == true) && this.parentNode.classList.contains("after") == false && this.parentNode.classList.contains("o") == false && event.layerY > 2 * (this.clientHeight / 3) && (PDepth <= opt.max_tree_depth + 1 || opt.max_tree_depth < 0 || opt.max_tree_drag_drop == false || PIsDraggedParents == true)) { + DOM_RemoveHighlight(); + DOM_SetClasses(this.parentNode, ["after", "highlighted_drop_target"], ["before", "inside"], []); + } + } + } + if (opt.open_tree_on_hover && tt.DragOverId != this.id) { + if (this.parentNode.classList.contains("c") && this.parentNode.classList.contains("dragged_tree") == false) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = this.id; + let This = this; + tt.DragOverTimer = setTimeout(function() { + if (tt.DragOverId == This.id) DOM_SetClasses(This.parentNode, ["o"], ["c"], []); + }, 1500); + } + } + } + DIV_header.ondragend = function(event) { + if (opt.open_tree_on_hover) { + clearTimeout(tt.DragOverTimer); + tt.DragOverId = ""; + } + setTimeout(function() {DOM_CleanUpDragAndDrop();}, 300); + setTimeout(function() {chrome.runtime.sendMessage({command: "drag_end"});}, 500); + } + DIV_audio_indicator.onmousedown = function(event) { + event.stopImmediatePropagation(); + if (event.which == 1 && (this.parentNode.parentNode.classList.contains("audible") || this.parentNode.parentNode.classList.contains("muted"))) { + chrome.tabs.get(parseInt(this.parentNode.parentNode.id), function(tab) { + if (tab) chrome.tabs.update(tab.id, {muted: !tab.mutedInfo.muted}); + }); + } + } + } + let parent; + if (p.tab.pinned == true) { + parent = document.getElementById("pin_list"); + } else { + if (p.ParentId == false || p.ParentId == undefined || p.ParentId == "pin_list") { + parent = document.getElementById("°" + tt.active_group); + } else { + parent = document.getElementById(p.ParentId); + if (parent == null || parent.classList.contains("pin") || parent.parentNode.classList.contains("pin")) { + parent = document.getElementById("°" + tt.active_group); + } else { + parent = document.getElementById("°" + p.ParentId); + if (parent.children.length == 0) DOM_SetClasses(parent.parentNode, ["o"], ["c"], []); + } + } + } + if (p.Append == true && parent) parent.appendChild(DIV_Tab); + if ((p.Append == false || p.Append == undefined) && parent) {parent.prepend(DIV_Tab);} + if (p.InsertAfterId) { + let After = document.getElementById(p.InsertAfterId); + if (After != null) { + if ((p.tab.pinned && After.classList.contains("pin")) || (p.tab.pinned == false && (After.classList.contains("tab") || After.classList.contains("folder")))) { + DOM_InsterAfterNode(DIV_Tab, After); + } else { + parent.appendChild(DIV_Tab); + } + } else { + parent.appendChild(DIV_Tab); + } + } + this.Node = DIV_Tab; + this.title = DIV_title; + if (!p.SkipFavicon) this.GetFaviconAndTitle(p.addCounter); + if (!p.SkipMediaIcon) this.RefreshMediaIcon(p.tab.id); + if (p.RefreshDiscarded) this.RefreshDiscarded(); + if (p.tab.active && !p.SkipSetActive) Tabs_SetActiveTab(p.tab.id); + if (p.Scroll) this.ScrollToTab(); + } + RemoveTab() { + if (opt.debug) Utils_log("f: RemoveTab, tabId: " + this.id); + if (this.Node != null) { + this.Node.parentNode.removeChild(this.Node); + if (tt.tabs[this.id]) delete tt.tabs[this.id]; + } + } + ScrollToTab() { + let Tab = this.Node; + let P = document.getElementById("pin_list"); + let G = document.getElementById(tt.active_group); + if (Tab != null) { + if (Tab.classList.contains("pin")) { + if (Tab.getBoundingClientRect().left - P.getBoundingClientRect().left < 0) { + P.scrollLeft = P.scrollLeft + Tab.getBoundingClientRect().left - P.getBoundingClientRect().left - 2; + } else { + if (Tab.getBoundingClientRect().left - P.getBoundingClientRect().left > G.getBoundingClientRect().width - document.querySelector(".tab_header").getBoundingClientRect().width) { + P.scrollLeft = P.scrollLeft + Tab.getBoundingClientRect().left - P.getBoundingClientRect().left - P.getBoundingClientRect().width + document.querySelector(".tab_header").getBoundingClientRect().width + 2; + } + } + } else if (Tab.classList.contains("tab") && document.querySelector("#" + tt.active_group + " [id='" + this.id + "']") != null) { + let Parents = DOM_GetParentsByClass(Tab, "c"); + if (Parents.length > 0) { + for (let s of Parents) { + DOM_SetClasses(s, ["o"], ["c"], []); + } + } + if (Tab.getBoundingClientRect().top - G.getBoundingClientRect().top < 0) { + G.scrollTop = G.scrollTop + Tab.getBoundingClientRect().top - G.getBoundingClientRect().top - 2; + } else { + if (Tab.getBoundingClientRect().top - G.getBoundingClientRect().top > G.getBoundingClientRect().height - document.querySelector(".tab_header").getBoundingClientRect().height) { + G.scrollTop = G.scrollTop + Tab.getBoundingClientRect().top - G.getBoundingClientRect().top - G.getBoundingClientRect().height + document.querySelector(".tab_header").getBoundingClientRect().height + 10; + } + } + } + } + } + SetTabClass(pin) { + let GroupList = document.getElementById("°" + tt.active_group); + let Tab = this.Node; + if (Tab != null) { + if (pin) { + if (Tab.parentNode.id != "pin_list") document.getElementById("pin_list").appendChild(Tab); + DOM_SetClasses(Tab, ["pin"], ["tab", "o", "c"], []); + if (Tab.childNodes[1].childNodes.length > 0) { // flatten out children + let tabs = document.querySelectorAll("#°" + Tab.id + " .pin, #°" + Tab.id + " .tab"); + for (let tab of tabs) { + DOM_SetClasses(tab, ["pin"], ["tab", "o", "c"], []); + DOM_InsterAfterNode(tab, Tab); + chrome.tabs.update(parseInt(tab.id), {pinned: true}); + } + let folders = document.querySelectorAll("#°" + Tab.id + " .folder"); + for (let i = folders.length - 1; i >= 0; i--) { + GroupList.prepend(folders[i]); + } + } + chrome.tabs.update(parseInt(Tab.id), {pinned: true}); + } else { + if (Tab.parentNode.id == "pin_list") { // if coming from pin_list + if (GroupList.childNodes.length > 0) { + GroupList.insertBefore(Tab, GroupList.childNodes[0]); + } else { + GroupList.appendChild(Tab); + } + } + DOM_SetClasses(Tab, ["tab"], ["pin", "attention"], []); + DOM_RefreshExpandStates(); + chrome.tabs.update(parseInt(Tab.id), {pinned: false}); + } + DOM_RefreshGUI(); + } + } + DuplicateTab() { + let OriginalTabNode = this.Node; + chrome.tabs.duplicate(parseInt(this.id), function(tab) { + let DupRetry = setInterval(function() { + let DupTab = document.getElementById(tab.id); + if (DupTab != null && OriginalTabNode != null) { + if (browserId == "F" && tab.pinned) DOM_SetClasses(DupTab, ["pin"], ["tab"], []); + DOM_InsterAfterNode(DupTab, OriginalTabNode); + DOM_RefreshExpandStates(); + tt.schedule_update_data++; + DOM_RefreshCounters(); + clearInterval(DupRetry); + } + }, 10); + setTimeout(function() { + if (DupRetry) clearInterval(DupRetry); + }, 500); + }); + } + GetFaviconAndTitle(addCounter) { + let t = document.getElementById(this.id); + let tTitle = this.title; + if (t != null) { + chrome.tabs.get(parseInt(t.id), async function(tab) { + if (tab) { + let title = tab.title ? tab.title : tab.url; + let tHeader = t.childNodes[0]; + if (tab.status == "complete" || tab.discarded) { + t.classList.remove("loading"); + tTitle.textContent = title; + tHeader.title = title; + if (opt.show_counter_tabs_hints) tHeader.setAttribute("tabTitle", title); + let Img = new Image(); + let CachedFavicon = browserId == "F" ? await browser.sessions.getTabValue(tab.id, "CachedFaviconUrl") : "chrome://favicon/" + tab.url; + let TryCases = [tab.favIconUrl, CachedFavicon, "./theme/icon_empty.svg"]; + Tabs_LoadFavicon(tab.id, Img, TryCases, tHeader, 0); + } + if (tab.status == "loading" && tab.discarded == false) { + title = tab.title ? tab.title : labels.loading; + t.classList.add("loading"); + tHeader.style.backgroundImage = ""; + tHeader.title = labels.loading; + if (opt.show_counter_tabs_hints) tHeader.setAttribute("tabTitle", labels.loading); + tTitle.textContent = labels.loading; + setTimeout(function() { + if (document.getElementById(tab.id) != null && tt.tabs[tab.id]) tt.tabs[tab.id].GetFaviconAndTitle(addCounter); + }, 1000); + } + if (addCounter && (opt.show_counter_tabs || opt.show_counter_tabs_hints)) tt.tabs[t.id].RefreshTabCounter(); + } + }); + } + } + RefreshDiscarded() { // set discarded class + let t = document.getElementById(this.id); + if (t != null) { + chrome.tabs.get(parseInt(t.id), function(tab) { + if (tab) { + if (tab.discarded) { + DOM_SetClasses(t, ["discarded"], ["audible", "muted"], []); + } else { + t.classList.remove("discarded"); + } + } + }); + } + } + SetAttentionIcon() { // set attention class + let t = document.getElementById(this.id); + if (t != null) t.classList.add("attention"); + } + RefreshMediaIcon() { // change media icon + let t = document.getElementById(this.id); + if (t != null) { + chrome.tabs.get(parseInt(t.id), function(tab) { + if (tab) { + if (tab.mutedInfo.muted && !tab.discarded) DOM_SetClasses(t, ["muted"], ["audible"], []); + if (!tab.mutedInfo.muted && tab.audible && !tab.discarded) DOM_SetClasses(t, ["audible"], ["muted"], []); + if ((!tab.mutedInfo.muted && !tab.audible) || tab.discarded) DOM_SetClasses(t, [], ["audible", "muted"], []); + } + }); + } + } + RefreshTabCounter() { + let t = document.getElementById(this.id); + if (t != null && t.childNodes[0]) { + let title = t.childNodes[0].getAttribute("tabTitle"); + if (t != null && title != null) { + if (t.classList.contains("o") || t.classList.contains("c")) { + if (opt.show_counter_tabs) t.childNodes[0].childNodes[1].childNodes[0].textContent = document.querySelectorAll("[id='" + t.id + "'] .tab").length; + if (opt.show_counter_tabs_hints) t.childNodes[0].title = (document.querySelectorAll("[id='" + t.id + "'] .tab").length + " • ") + title; + } else { + t.childNodes[0].title = title; + } + } + } + } } -async function RearrangeBrowserTabs() { - setInterval(function() { - if (tt.schedule_rearrange_tabs > 0) { - tt.schedule_rearrange_tabs--; - if (opt.debug) { - log("f: RearrangeBrowserTabs"); - } - chrome.tabs.query({currentWindow: true}, function(tabs) { - let ttTabIds = Array.prototype.map.call(document.querySelectorAll(".pin, .tab"), function(s){ - return parseInt(s.id); - }); - let tabIds = Array.prototype.map.call(tabs, function(t){ - return t.id; - }); - RearrangeBrowserTabsLoop(ttTabIds, tabIds, ttTabIds.length-1); - }); - } - }, 1000); +async function Tabs_LoadFavicon(tabId, Img, TryUrls, TabHeaderNode, i) { + if (TabHeaderNode) { + Img.src = TryUrls[i]; + Img.onload = function() { + TabHeaderNode.style.backgroundImage = "url(" + TryUrls[i] + ")"; + if (browserId == "F") browser.sessions.setTabValue(tabId, "CachedFaviconUrl", TryUrls[i]); // cache Firefox favicon - solution for bug with empty favicons in unloaded tabs + }; + Img.onerror = function() { + if (i < TryUrls.length) Tabs_LoadFavicon(tabId, Img, TryUrls, TabHeaderNode, (i + 1)); + } + } } -async function RearrangeBrowserTabsLoop(ttTabIds, tabIds, tabIndex) { - if (opt.debug) { - log("f: RearrangeBrowserTabsLoop"); - } - if (tabIndex >= 0 && tt.schedule_rearrange_tabs == 0){ - if (ttTabIds[tabIndex] != tabIds[tabIndex]) { - chrome.tabs.move(ttTabIds[tabIndex], {index: tabIndex}); - } - setTimeout(function() { - RearrangeBrowserTabsLoop(ttTabIds, tabIds, (tabIndex-1)); - }, 0); - } +async function Tabs_SaveTabs() { + setInterval(function() { + if (tt.schedule_update_data > 1) tt.schedule_update_data = 1; + if (tt.schedule_update_data > 0) { + let pins_data = []; + let tabs_data = []; + for (let tabId in tt.tabs) { + if (tt.tabs[tabId].Node != null && tt.tabs[tabId].Node.parentNode != null) { + if (tt.tabs[tabId].pinned) { + pins_data.push({id: tabId, parent: "pin_list", index: Array.from(tt.tabs[tabId].Node.parentNode.children).indexOf(tt.tabs[tabId].Node), expand: ""}); + } else { + tabs_data.push({id: tabId, parent: tt.tabs[tabId].Node.parentNode.parentNode.id, index: Array.from(tt.tabs[tabId].Node.parentNode.children).indexOf(tt.tabs[tabId].Node), expand: (tt.tabs[tabId].Node.classList.contains("c") ? "c" : (tt.tabs[tabId].Node.classList.contains("o") ? "o" : ""))}); + } + } + } + chrome.runtime.sendMessage({command: "update_all_tabs", pins: pins_data, tabs: tabs_data}); + tt.schedule_update_data--; + } + }, 1000); } -function RearrangeTreeTabs(bgtabs, show_finish_in_status) { - if (opt.debug) { - log("f: RearrangeTreeTabs"); - } - ShowStatusBar({show: true, spinner: true, message: "Rearranging tabs and folders"}); - document.querySelectorAll(".pin, .tab").forEach(function(tab){ - if (bgtabs[tab.id]) { - let Sibling = tab.nextElementSibling; - while (Sibling) { - if (bgtabs[Sibling.id]) { - if (bgtabs[tab.id].index > bgtabs[Sibling.id].index ) { - InsterAfterNode(tab, Sibling); - } - } - Sibling = Sibling.nextElementSibling ? Sibling.nextElementSibling : false; - } - } - if (show_finish_in_status){ - ShowStatusBar({show: true, spinner: false, message: "Rearranging: done.", hideTimeout: 1000}); - } - }); +async function Tabs_RearrangeBrowserTabs() { + setInterval(function() { + if (tt.schedule_rearrange_tabs > 0) { + tt.schedule_rearrange_tabs--; + if (opt.debug) Utils_log("f: RearrangeBrowserTabs"); + chrome.tabs.query({currentWindow: true}, function(tabs) { + let ttTabIds = Array.prototype.map.call(document.querySelectorAll(".pin, .tab"), function(s) {return parseInt(s.id);}); + let tabIds = Array.prototype.map.call(tabs, function(t) {return t.id;}); + Tabs_RearrangeBrowserTabsLoop(ttTabIds, tabIds, ttTabIds.length - 1); + }); + } + }, 1000); } -function AppendTab(p) { // tab: chrome tab object, ParentId: int or string, InsertBeforeId: int or string, InsertAfterId: int or string, Append: bool, SkipSetEvents: bool, AdditionalClass: string, SkipSetActive: bool, Scroll: bool, addCounter: bool, SkipMediaIcon: bool - if (document.getElementById(p.tab.id) != null) { - GetFaviconAndTitle(p.tab.id, p.addCounter); - return; - } - let ClassList = p.tab.pinned ? "pin" : "tab"; - if (p.tab.discarded) { - ClassList = ClassList + " discarded"; - } - if (p.AdditionalClass) { - ClassList = ClassList +" "+ p.AdditionalClass; - } - let tb = document.createElement("div"); tb.className = ClassList; tb.id = p.tab.id; // TAB - let tbh = document.createElement("div"); tbh.className = (opt.always_show_close && !opt.never_show_close) ? "tab_header close_show" : "tab_header"; tbh.id = "tab_header"+p.tab.id; if (!p.SkipSetEvents) {tbh.draggable = true;} tb.appendChild(tbh); // HEADER - let tbe = document.createElement("div"); tbe.className = "expand"; tbe.id = "exp"+p.tab.id; tbh.appendChild(tbe); // EXPAND ARROW - - - let tbc = document.createElement("div"); tbc.className = "tab_counter"; tbc.id = "tab_counter"+p.tab.id; tbh.appendChild(tbc); // TABS COUNTER - let tbcn = document.createElement("div"); tbcn.className = "counter_number"; tbcn.id = "counter_number"+p.tab.id; tbc.appendChild(tbcn); // TABS COUNTER NUMBER - - - let tbt = document.createElement("div"); tbt.className = "tab_title"; tbt.id = "tab_title"+p.tab.id; tbh.appendChild(tbt); // TITLE - - let cl = undefined; - if (!opt.never_show_close) { - cl = document.createElement("div"); cl.className = "close"; cl.id = "close"+p.tab.id; tbh.appendChild(cl); // CLOSE BUTTON - let ci = document.createElement("div"); ci.className = "close_img"; ci.id = "close_img"+p.tab.id; cl.appendChild(ci); - } - let mi = document.createElement("div"); mi.className = "tab_mediaicon"; mi.id = "tab_mediaicon"+p.tab.id; tbh.appendChild(mi); - - - - let ct = document.createElement("div"); ct.className = "children_tabs"; ct.id = "ct"+p.tab.id; tb.appendChild(ct); - let di = document.createElement("div"); di.className = "drag_indicator"; di.id = "di"+p.tab.id; tb.appendChild(di); // DROP TARGET INDICATOR - - if (!p.SkipSetEvents) { - ct.onclick = function(event) { - if (event.target == this && event.which == 1) { - DeselectFolders(); - DeselectTabs(); - } - } - ct.onmousedown = function(event) { - if (event.target == this) { - if (event.which == 2 && event.target == this) { - event.stopImmediatePropagation(); - ActionClickGroup(this.parentNode, opt.midclick_group); - } - if (event.which == 3) { - ShowFGlobalMenu(event); - } - } - } - ct.ondblclick = function(event) { - if (event.target == this) { - ActionClickGroup(this.parentNode, opt.dbclick_group); - } - } - tbe.onmousedown = function(event) { - if (document.getElementById("main_menu").style.top != "-1000px") { - HideMenus(); - } - if (event.which == 1 && !event.shiftKey && !event.ctrlKey) { - EventExpandBox(this.parentNode.parentNode); - } - } - tbe.onmouseenter = function(event) { - this.classList.add("hover"); - } - tbe.onmouseleave = function(event) { - this.classList.remove("hover"); - } - - if (!opt.never_show_close && cl) { - cl.onmousedown = function(event) { - event.stopImmediatePropagation(); - if (event.which != 3) { - CloseTabs([parseInt(this.parentNode.parentNode.id)]); - } - } - cl.onmouseenter = function(event) { - this.classList.add("close_hover"); - } - cl.onmouseleave = function(event) { - this.classList.remove("close_hover"); - } - } - - tbh.onclick = function(event) { - event.stopImmediatePropagation(); - if (document.getElementById("main_menu").style.top != "-1000px") { - HideMenus(); - } else { - if (event.which == 1 && !event.shiftKey && !event.ctrlKey && event.target.classList.contains("tab_header")) { - DeselectTabs(); - chrome.tabs.update(parseInt(this.parentNode.id), { active: true }); - } - } - } - tbh.ondblclick = function(event) { - if (event.target.classList && event.target.classList.contains("tab_header")) { - ActionClickTab(this.parentNode, opt.dbclick_tab); - } - } - - tbh.onmousedown = function(event) { - if (browserId == "V") { - chrome.windows.getCurrent({populate: false}, function(window) { - if (tt.CurrentWindowId != window.id && window.focused) { - location.reload(); - } - }); - } - event.stopImmediatePropagation(); - if (event.which == 1) { - EventSelectTab(event, this.parentNode); - } - if (event.which == 2) { - event.preventDefault(); - ActionClickTab(this.parentNode, opt.midclick_tab); - } - if (event.which == 3) { - ShowTabMenu(this.parentNode, event); - } - } - - tbh.onmouseover = function(event) { - this.classList.add("tab_header_hover"); - if (opt.never_show_close == false && opt.always_show_close == false) { - this.classList.add("close_show"); - } - } - tbh.onmouseleave = function(event) { - this.classList.remove("tab_header_hover"); - if (opt.never_show_close == false && opt.always_show_close == false) { - this.classList.remove("close_show"); - } - } - - - - tbh.ondragstart = function(event) { // DRAG START - TabStartDrag(this.parentNode, event); - } - - tbh.ondragenter = function(event) { - this.classList.remove("tab_header_hover"); - } - - tbh.ondragleave = function(event) { - RemoveHighlight(); - } - - tbh.ondragover = function(event) { - TabDragOver(this, event); - if (opt.open_tree_on_hover && tt.DragOverId != this.id) { - if (this.parentNode.classList.contains("c") && this.parentNode.classList.contains("dragged_tree") == false) { - clearTimeout(tt.DragOverTimer); - tt.DragOverId = this.id; - let This = this; - tt.DragOverTimer = setTimeout(function() { - if (tt.DragOverId == This.id) { - This.parentNode.classList.add("o"); - This.parentNode.classList.remove("c"); - } - }, 1500); - } - } - } - - mi.onmousedown = function(event) { - event.stopImmediatePropagation(); - if (event.which == 1 && (this.parentNode.parentNode.classList.contains("audible") || this.parentNode.parentNode.classList.contains("muted")) ) { - chrome.tabs.get(parseInt(this.parentNode.parentNode.id), function(tab) { - if (tab) { - chrome.tabs.update(tab.id, {muted:!tab.mutedInfo.muted}); - } - }); - } - } - } - - let parent; - if (p.tab.pinned) { - parent = document.getElementById("pin_list"); - } else { - if (p.ParentId == false || p.ParentId == undefined || document.getElementById(p.ParentId) == null || document.querySelector(".pin[id='"+p.ParentId+"']") != null || p.ParentId == "pin_list") { - parent = document.getElementById("ct"+tt.active_group); - } else { - parent = document.getElementById("ct"+p.ParentId); - if (parent.children.length == 0) { - parent.parentNode.classList.add("o"); - parent.parentNode.classList.remove("c"); - } - } - } - if (p.Append && parent) { - parent.appendChild(tb); - } - if (!p.Append && parent) { - parent.prepend(tb); - } - - if (p.InsertBeforeId) { - let Before = document.getElementById(p.InsertBeforeId); - if (Before != null) { - if ((p.tab.pinned && Before.classList.contains("pin")) || (p.tab.pinned == false && Before.classList.contains("tab"))) { - Before.parentNode.insertBefore(tb, Before); - } - } - } - if (p.InsertAfterId) { - let After = document.getElementById(p.InsertAfterId); - if (After != null) { - if ((p.tab.pinned && After.classList.contains("pin")) || (p.tab.pinned == false && After.classList.contains("tab"))) { - InsterAfterNode(tb, After); - } - } - } - GetFaviconAndTitle(p.tab.id, p.addCounter); - if (!p.SkipMediaIcon) { - RefreshMediaIcon(p.tab.id); - } - if (p.tab.active && !p.SkipSetActive) { - SetActiveTab(p.tab.id); - } - if (p.Scroll) { - ScrollToTab(p.tab.id); - } - - return tb; +async function Tabs_RearrangeBrowserTabsLoop(ttTabIds, tabIds, tabIndex) { + if (opt.debug) Utils_log("f: RearrangeBrowserTabsLoop"); + if (tabIndex >= 0 && tt.schedule_rearrange_tabs == 0) { + if (ttTabIds[tabIndex] != tabIds[tabIndex]) chrome.tabs.move(ttTabIds[tabIndex], {index: tabIndex}); + setTimeout(function() { + Tabs_RearrangeBrowserTabsLoop(ttTabIds, tabIds, (tabIndex - 1)); + }, 0); + } } - -function RemoveTabFromList(tabId) { - if (opt.debug) { - log("f: RemoveTabFromList, tabId: "+tabId); - } - let tab = document.getElementById(tabId); - if (tab != null) { - tab.parentNode.removeChild(tab); - } +function Tabs_RearrangeTree(TTtabs, TTfolders, show_finish_in_status) { + Manager_ShowStatusBar({show: true, spinner: true, message: chrome.i18n.getMessage("status_bar_rearranging_tabs")}); + let Nodes = document.querySelectorAll(".pin, .tab, .folder"); + for (let Node of Nodes) { + let Sibling = Node.nextElementSibling; + if (Sibling) { + let NodeIndex = TTtabs[Node.id] ? TTtabs[Node.id].index : (TTfolders[Node.id] ? TTfolders[Node.id].index : undefined); + while (Sibling && NodeIndex) { + let SiblingIndex = TTtabs[Sibling.id] ? TTtabs[Sibling.id].index : (TTfolders[Sibling.id] ? TTfolders[Sibling.id].index : 0); + if (NodeIndex > SiblingIndex) DOM_InsterAfterNode(Node, Sibling); + Sibling = Sibling.nextElementSibling ? Sibling.nextElementSibling : false; + } + } + if (show_finish_in_status) Manager_ShowStatusBar({show: true, spinner: false, message: chrome.i18n.getMessage("status_bar_rearranging_finished"), hideTimeout: 1000}); + } } -function SetTabClass(tabId, pin) { - let PinList = document.getElementById("pin_list"); - let GroupList = document.getElementById("ct"+tt.active_group); - let Tab = document.getElementById(tabId); - if (Tab != null) { - if (pin) { - if (Tab.parentNode.id != "pin_list") { - document.getElementById("pin_list").appendChild(Tab); - } - Tab.classList.remove("tab"); - Tab.classList.remove("o"); - Tab.classList.remove("c"); - Tab.classList.add("pin"); - if (document.getElementById("ct"+tabId).childNodes.length > 0) { // flatten out children - let tabs = document.querySelectorAll("#ct"+tabId+" .pin, #ct"+tabId+" .tab"); - for (let i = tabs.length-1; i >= 0; i--) { - tabs[i].classList.remove("tab"); - tabs[i].classList.remove("o"); - tabs[i].classList.remove("c"); - tabs[i].classList.add("pin"); - InsterAfterNode(tabs[i], Tab); - chrome.tabs.update(parseInt(tabs[i].id), {pinned: true}); - } - } - chrome.tabs.update(parseInt(tabId), {pinned: true}); - } else { - if (Tab.parentNode.id == "pin_list") { // if coming from pin_list - if (GroupList.childNodes.length > 0) { - GroupList.insertBefore(Tab, GroupList.childNodes[0]); - } else { - GroupList.appendChild(Tab); - } - } - Tab.classList.remove("pin"); - Tab.classList.remove("attention"); - Tab.classList.add("tab"); - RefreshExpandStates(); - chrome.tabs.update(parseInt(tabId), {pinned: false}); - } - RefreshGUI(); - } -} -function SetMultiTabsClass(TabsIds, pin) { - TabsIds.forEach(function(tabId){ - SetTabClass(tabId, pin); - chrome.tabs.update(parseInt(tabId), {pinned: pin}); - }); +function Tabs_Detach(Nodes, NodesTypes, Group) { + if (opt.debug) Utils_log("f: Detach"); + let folderNodes = {}; + let TabsIds = []; + for (let Node of Nodes) { + if (Node.NodeClass == "folder") folderNodes[Node.id] = {id: Node.id, parent: (Node.parent).substr(1), name: Node.name, index: Node.index, expand: Node.expand}; + if (Node.NodeClass == "pin") TabsIds.push(parseInt(Node.id)); + if (Node.NodeClass == "tab") TabsIds.push(parseInt(Node.id)); + } + chrome.windows.get(tt.CurrentWindowId, {populate : true}, function(window) { + if (window.tabs.length == 1) return; + if (TabsIds.length == window.tabs.length) { + if (opt.debug) Utils_log("You are trying to detach all tabs! Skipping!"); + return; + } + let params = TabsIds.length > 0 ? {tabId: TabsIds[0], state: window.state} : {state: window.state}; + chrome.windows.create(params, function(new_window) { + chrome.tabs.update(new_window.tabs[0].id, {active: true}); + chrome.runtime.sendMessage({command: "get_groups", windowId: new_window.id}, function(g) { + if (NodesTypes.DraggingGroup) { + let GroupsToDetach = Object.assign({}, g); // if there will be a multi groups selection, below I will need for each group loop + GroupsToDetach[Group.id] = Group; + chrome.runtime.sendMessage({command: "save_groups", groups: GroupsToDetach, windowId: new_window.id}); + setTimeout(function() {Groups_GroupRemove(Group.id, false);}, 2000); + } + chrome.runtime.sendMessage({command: "save_folders", folders: folderNodes, windowId: new_window.id}); + for (let Node of Nodes) { + if (Node.NodeClass == "pin") { + chrome.tabs.update(parseInt(Node.id), {pinned: true}); + chrome.runtime.sendMessage({command: "update_tab", tabId: Node.id, tab: {parent: "pin_list"}}); + } + if (Node.NodeClass == "tab") chrome.runtime.sendMessage({command: "update_tab", tabId: Node.id, tab: {parent: (Node.parent).substr(1)}}); + if (Node.NodeClass == "folder") Folders_RemoveFolder(Node.id); + } + if (TabsIds.length > 1) { + TabsIds.splice(0, 1); + chrome.tabs.move(TabsIds, {windowId: new_window.id, index:-1}, function(MovedTabs) { + for (let Node of Nodes) { + if (Node.NodeClass == "pin") {chrome.tabs.update(parseInt(Node.id), {pinned: true});} + if (Node.NodeClass == "folder") {Folders_RemoveFolder(Node.id);} + } + let Stop = 500; + let DetachNodes = setInterval(function() { + Stop--; + let all_moved = true; + for (let Node of Nodes) { + if (document.getElementById(Node.id) != null) all_moved = false; + if (Node.NodeClass == "pin") chrome.runtime.sendMessage({command: "update_tab", tabId: Node.id, tab: {parent: "pin_list"}}); + if (Node.NodeClass == "tab") chrome.runtime.sendMessage({command: "update_tab", tabId: Node.id, tab: {parent: (Node.parent).substr(1)}}); + } + if (all_moved || Stop < 0) { + setTimeout(function() { + clearInterval(DetachNodes); + }, 300); + } + }, 100); + }); + } + }); + }); + }); } -function SetActiveTab(tabId, switchToGroup) { - if (opt.debug) { - log("f: SetActiveTab, tabId: "+tabId); - } - let Tab = document.getElementById(tabId); - if (Tab != null) { - let TabGroup = GetParentsByClass(Tab, "group"); - if (TabGroup.length) { - if (Tab.classList.contains("tab")) { - SetActiveTabInGroup(TabGroup[0].id, tabId); - } - if (switchToGroup) { - SetActiveGroup(TabGroup[0].id, false, false); // not going to scroll, because mostly it's going to change to a new active in group AFTER switch, so we are not going to scroll to previous active tab - } - } - document.querySelectorAll(".selected_folder").forEach(function(s){ - s.classList.remove("selected_folder"); - }); - // document.querySelectorAll(".pin, #"+tt.active_group+" .tab"+(TabGroup.length ? ", #"+TabGroup[0].id+" .tab" : "")).forEach(function(s){ - document.querySelectorAll(".pin, #"+tt.active_group+" .tab").forEach(function(s){ - s.classList.remove("active_tab"); - s.classList.remove("selected_tab"); - s.classList.remove("selected_last"); - s.classList.remove("selected_frozen"); - s.classList.remove("selected_temporarly"); - s.classList.remove("tab_header_hover"); - }); - RemoveHighlight(); - Tab.classList.remove("attention"); - Tab.classList.add("active_tab"); - ScrollToTab(tabId); - } +function Tabs_DiscardTabs(tabsIds) { + let delay = 100; + let tabNode = document.getElementById(tabsIds[0]); + if (tabNode == null || tabNode.classList.contains("discarded") || tabNode.classList.contains("active_tab")) { + delay = 5; + } else { + chrome.tabs.discard(tabsIds[0]); + } + tabsIds.splice(0, 1); + if (tabsIds.length > 0) { + setTimeout(function() { + Tabs_DiscardTabs(tabsIds); + }, delay); + } } -function ScrollToTab(tabId) { - let Tab = document.getElementById(tabId); - if (Tab != null) { - if (Tab.classList.contains("pin")) { - if (Tab.getBoundingClientRect().left - document.getElementById("pin_list").getBoundingClientRect().left < 0) { - document.getElementById("pin_list").scrollLeft = document.getElementById("pin_list").scrollLeft + Tab.getBoundingClientRect().left - document.getElementById("pin_list").getBoundingClientRect().left - 2; - } else { - if (Tab.getBoundingClientRect().left - document.getElementById("pin_list").getBoundingClientRect().left > document.getElementById(tt.active_group).getBoundingClientRect().width - document.querySelector(".tab_header").getBoundingClientRect().width) { - document.getElementById("pin_list").scrollLeft = document.getElementById("pin_list").scrollLeft + Tab.getBoundingClientRect().left - document.getElementById("pin_list").getBoundingClientRect().left - document.getElementById("pin_list").getBoundingClientRect().width + document.querySelector(".tab_header").getBoundingClientRect().width + 2; - } - } - } - if (Tab.classList.contains("tab") && document.querySelector("#"+tt.active_group+" [id='"+tabId+"']") != null) { - let Parents = GetParentsByClass(Tab, "c"); - if (Parents.length > 0) { - Parents.forEach(function(s){ - s.classList.remove("c"); - s.classList.add("o"); - }); - } - if (Tab.getBoundingClientRect().top - document.getElementById(tt.active_group).getBoundingClientRect().top < 0) { - document.getElementById(tt.active_group).scrollTop = document.getElementById(tt.active_group).scrollTop + Tab.getBoundingClientRect().top - document.getElementById(tt.active_group).getBoundingClientRect().top - 2; - } else { - if (Tab.getBoundingClientRect().top - document.getElementById(tt.active_group).getBoundingClientRect().top > document.getElementById(tt.active_group).getBoundingClientRect().height - document.querySelector(".tab_header").getBoundingClientRect().height) { - document.getElementById(tt.active_group).scrollTop = document.getElementById(tt.active_group).scrollTop + Tab.getBoundingClientRect().top - document.getElementById(tt.active_group).getBoundingClientRect().top - document.getElementById(tt.active_group).getBoundingClientRect().height + document.querySelector(".tab_header").getBoundingClientRect().height + 10; - } - } - } - } +function Tabs_FindTab(input) { // find and select tabs + let ButtonFilterClear = document.getElementById("button_filter_clear"); + let Nodes = document.querySelectorAll(".filtered, .highlighted_search"); + for (let s of Nodes) { + DOM_SetClasses(s, [], ["selected", "selected_last", "filtered", "highlighted_search"], []); + } + if (input.length == 0) { + document.getElementById("filter_box").value = ""; + ButtonFilterClear.style.opacity = "0"; ButtonFilterClear.title = ""; + return; + } else { + ButtonFilterClear.style.opacity = "1"; ButtonFilterClear.title = labels.clear_filter; + } + tt.SearchIndex = 0; + let FilterType = document.getElementById("button_filter_type"); + let searchUrl = FilterType.classList.contains("url"); + let searchTitle = FilterType.classList.contains("title"); + let query = {windowId: tt.CurrentWindowId, pinned: false}; + if (input == "*audible") query = {windowId: tt.CurrentWindowId, discarded: false, audible: true, muted: false, pinned: false}; + if (input == "*muted") query = {windowId: tt.CurrentWindowId, discarded: false, muted: true, pinned: false}; + if (input == "*unloaded") query = {windowId: tt.CurrentWindowId, discarded: true, pinned: false}; + if (input == "*loaded") query = {windowId: tt.CurrentWindowId, discarded: false, pinned: false}; + chrome.tabs.query(query, function(tabs) { + for (let Tab of tabs) { + let t = document.getElementById(Tab.id); + if (input == "*audible" || input == "*muted" || input == "*unloaded" || input == "*loaded") { + DOM_SetClasses(t, ["filtered", "selected"], [], []); + } else { + if (searchUrl) { + if (Tab.url.toLowerCase().match(input.toLowerCase())) DOM_SetClasses(t, ["filtered", "selected"], [], []); + } + if (searchTitle) { + if (Tab.title.toLowerCase().match(input.toLowerCase())) DOM_SetClasses(t, ["filtered", "selected"], [], []); + } + } + } + }); } -function Detach(tabsIds, Folders) { - if (opt.debug) { - log("f: Detach"); - } - chrome.windows.get(tt.CurrentWindowId, {populate : true}, function(window) { - if (window.tabs.length == 1 || tabsIds.length == 0) { - return; - } - if (tabsIds.length == window.tabs.length) { - if (opt.debug) { - log("You are trying to detach all tabs! Skipping!"); - } - return; - } - - let Indexes = []; - let Parents = []; - let Expands = []; - let NewTabs = []; - let Ind = 0; - - tabsIds.forEach(function(tabId) { - let tab = document.getElementById(tabId); - Indexes.push(Array.from(tab.parentNode.children).indexOf(tab)); - Parents.push(tab.parentNode.parentNode.id); - Expands.push( (tab.classList.contains("c") ? "c" : (tab.classList.contains("o") ? "o" : "")) ); - }); - - chrome.windows.create({tabId: tabsIds[0], state:window.state}, function(new_window) { - - tabsIds.splice(0, 1); - chrome.tabs.move(tabsIds, {windowId: new_window.id, index:-1}, function(MovedTabs) { - - if (Folders && Object.keys(Folders).length > 0) { - for (let folder in Folders) { - RemoveFolder(Folders[folder].id); - } - } - - }); - }); - }); +function Tabs_CloseTabs(tabsIds) { + if (opt.debug) Utils_log("f: Tabs_CloseTabs, tabsIds are: " + JSON.stringify(tabsIds)); + for (let tabId of tabsIds) { + let t = document.getElementById(tabId); + if (t != null) t.classList.add("will_be_closed"); + } + let activeTab = document.querySelector(".pin.active_tab, #" + tt.active_group + " .tab.active_tab"); + if (activeTab != null && tabsIds.indexOf(parseInt(activeTab.id)) != -1) Tabs_SwitchActiveTabBeforeClose(tt.active_group); + setTimeout(function() { + for (let tabId of tabsIds) { + let t = document.getElementById(tabId); + if (t != null && t.classList.contains("pin") && opt.allow_pin_close) { + t.parentNode.removeChild(t); + chrome.tabs.update(tabId, {pinned: false}); + chrome.runtime.sendMessage({command: "update_tab", tabId: tabId, tab: {parent: "pin_list"}}); + } + if (tabId == tabsIds[tabsIds.length - 1]) { + setTimeout(function() {chrome.tabs.remove(tabsIds, null);}, 10); + DOM_RefreshGUI(); + } + } + }, 200); } -function CloseTabs(tabsIds) { - if (opt.debug) { - log("f: CloseTabs, tabsIds are: "+JSON.stringify(tabsIds)); - } - tabsIds.forEach(function(tabId) { - let Tab = document.getElementById(tabId); - if (Tab != null) { - Tab.classList.add("will_be_closed"); - } - }); - let activeTab = document.querySelector(".pin.active_tab, #"+tt.active_group+" .tab.active_tab"); - if (activeTab != null && tabsIds.indexOf(parseInt(activeTab.id)) != -1) { - SwitchActiveTabBeforeClose(tt.active_group); - } - setTimeout(function() { - tabsIds.forEach(function(tabId) { - let tab = document.getElementById(tabId); - if (tab.classList.contains("pin") && opt.allow_pin_close) { - tab.parentNode.removeChild(tab); - chrome.tabs.update(tabId, {pinned: false}); - // RefreshGUI(); - } - if (tabId == tabsIds[tabsIds.length-1]) { - setTimeout(function() { - chrome.tabs.remove(tabsIds, null); - }, 10); - } - }); - }, 200); +function Tabs_OpenNewTab(pin, InsertAfterNode, AppendToNode) { + // if (pin) { + chrome.tabs.create({pinned: pin}, function(tab) { + // console.log(tt.tabs[tab.id]) + + let Retry = setInterval(function() { + if (tt.tabs[tab.id]) { + if (InsertAfterNode) { + DOM_InsterAfterNode(tt.tabs[tab.id].Node, InsertAfterNode); + } + if (AppendToNode) { + DOM_AppendToNode(tt.tabs[tab.id].Node, AppendToNode); + } + tt.schedule_update_data++; + clearInterval(Retry); + } + }, 10); + setTimeout(function() { + if (Retry) clearInterval(Retry); + }, 500); + if (!pin && opt.move_tabs_on_url_change == "from_empty") chrome.runtime.sendMessage({command: "remove_tab_from_empty_tabs", tabId: tab.id}); + + + // if (InsertAfterNode && tt.tabs[tab.id]) { + // let parent = document.getElementById("#pin_list"); + // if (parent != null && tt.tabs[tab.id]) parent.appendChild(tt.tabs[tab.id].Node); + // } + }); + // } else { + // chrome.tabs.create({}, function(tab) { + // if (parentId) { + // let parent = document.getElementById("#°"+parentId); + // if (parent != null && tt.tabs[tab.id]) parent.appendChild(tt.tabs[tab.id].Node); + // tt.schedule_update_data++; + // } + // }); + // } } -function DiscardTabs(tabsIds) { - let delay = 100; - let tabNode = document.getElementById(tabsIds[0]); - if (tabNode == null || tabNode.classList.contains("discarded") || tabNode.classList.contains("active_tab")) { - delay = 5; - } else { - chrome.tabs.discard(tabsIds[0]); - } - tabsIds.splice(0, 1); - if (tabsIds.length > 0) { - setTimeout(function() { - DiscardTabs(tabsIds); - }, delay); - } +function Tabs_GetTabDepthInTree(Node) { + let Depth = 0; + let ParentNode = Node; + if (ParentNode == null) return Parents; + let Stop = false; + while (!Stop && ParentNode.parentNode != null) { + if (ParentNode.parentNode.classList != undefined) { + if (ParentNode.parentNode.classList.contains("tab")) Depth++; + if (ParentNode.parentNode.classList.contains("folder") || ParentNode.parentNode.classList.contains("group")) { + Stop = true; + } else { + ParentNode = ParentNode.parentNode; + } + } else { + Stop = true; + } + } + return Depth; } -function SwitchActiveTabBeforeClose(ActiveGroupId) { - if (opt.debug) { - log("f: SwitchActiveTabBeforeClose"); - } - let activeGroup = document.getElementById(ActiveGroupId); - - if (document.querySelectorAll("#"+ActiveGroupId+" .tab").length < 2 && document.querySelector(".pin.active_tab") == null) { // CHECK IF CLOSING LAST TAB IN ACTIVE GROUP - - let pins = document.querySelectorAll(".pin"); - - if (pins.length > 0) { // IF THERE ARE ANY PINNED TABS, ACTIVATE IT - if (opt.debug) { - log("available pin, switching to: "+pins[pins.length-1].id); - } - chrome.tabs.update(parseInt(pins[pins.length-1].id), {active: true}); - return; - } else { // NO OTHER CHOICE BUT TO SEEK IN ANOTHER GROUP - - if (opt.after_closing_active_tab == "above" || opt.after_closing_active_tab == "above_seek_in_parent") { - if (activeGroup.previousSibling != null) { - if (document.querySelectorAll("#"+activeGroup.previousSibling.id+" .tab").length > 0) { - SetActiveGroup(activeGroup.previousSibling.id, true, true); - } else { - SwitchActiveTabBeforeClose(activeGroup.previousSibling.id); - return; - } - } else { - SetActiveGroup("tab_list", true, true); - } - } else { - if (activeGroup.nextSibling != null) { - if (document.querySelectorAll("#"+activeGroup.nextSibling.id+" .tab").length > 0) { - SetActiveGroup(activeGroup.nextSibling.id, true, true); - } else { - SwitchActiveTabBeforeClose(activeGroup.nextSibling.id); - return; - } - } else { - SetActiveGroup("tab_list", true, true); - } - } - } - } else { - - if (opt.debug) { - log("available tabs in current group, switching option is: "+opt.after_closing_active_tab); - } - - if (opt.after_closing_active_tab == "above" || opt.after_closing_active_tab == "above_seek_in_parent") { - ActivatePrevTab(true); - } - if (opt.after_closing_active_tab == "below" || opt.after_closing_active_tab == "below_seek_in_parent") { - ActivateNextTab(true); - } - // if (opt.after_closing_active_tab == "above_seek_in_parent") { - // ActivatePrevTabBeforeClose(); - // } - // if (opt.after_closing_active_tab == "below_seek_in_parent") { - // ActivateNextTabBeforeClose(); - // } - } +function Tabs_ActionClickTab(TabNode, bgOption) { + if (bgOption == "new_tab") Tabs_OpenNewTab(TabNode.classList.contains("pin"), TabNode); + if (bgOption == "expand_collapse") DOM_EventExpandBox(TabNode); + if (bgOption == "close_tab") { + if ((TabNode.classList.contains("pin") && opt.allow_pin_close) || TabNode.classList.contains("tab")) Tabs_CloseTabs([parseInt(TabNode.id)]); + } + if (bgOption == "undo_close_tab") { + chrome.sessions.getRecentlyClosed(null, function(sessions) { + if (sessions.length > 0) chrome.sessions.restore(null, function(restored) {}); + }); + } + if (bgOption == "reload_tab") {chrome.tabs.reload(parseInt(TabNode.id));} + if (bgOption == "unload_tab") { + if (TabNode.classList.contains("active_tab")) { + Tabs_SwitchActiveTabBeforeClose(tt.active_group); + setTimeout(function() {Tabs_DiscardTabs([parseInt(TabNode.id)]);}, 500); + } else { + Tabs_DiscardTabs([parseInt(TabNode.id)]); + } + } + if (bgOption == "activate_previous_active" && TabNode.classList.contains("active_tab")) { + let PrevActiveTabId = parseInt(tt.groups[tt.active_group].prev_active_tab); + if (isNaN(PrevActiveTabId) == false) chrome.tabs.update(PrevActiveTabId, {active: true}); + } } -function ActivateNextTabBeforeClose() { - let activePin = document.querySelector(".pin.active_tab"); - if (activePin != null) { - if (activePin.nextSibling != null) { - chrome.tabs.update(parseInt(activePin.nextSibling.id), { active: true }); - } else { - if (activePin.previousSibling != null) { - chrome.tabs.update(parseInt(activePin.previousSibling.id), { active: true }); - } - } - } - - let will_be_closed = document.querySelectorAll("#"+tt.active_group+" .will_be_closed"); - let activeTab = will_be_closed.length > 0 ? will_be_closed[will_be_closed.length-1] : document.querySelector("#"+tt.active_group+" .tab.active_tab"); - - if (activeTab != null && document.querySelectorAll("#"+tt.active_group+" .tab:not(.will_be_closed)").length > 1) { - if (opt.promote_children && activeTab.childNodes[1].firstChild != null) { - chrome.tabs.update(parseInt(activeTab.childNodes[1].firstChild.id), { active: true }); - } else { - if (activeTab.nextSibling != null) { - chrome.tabs.update(parseInt(activeTab.nextSibling.id), { active: true }); - } else { - if (activeTab.previousSibling != null) { - chrome.tabs.update(parseInt(activeTab.previousSibling.id), { active: true }); - } else { - if (activeTab.parentNode.parentNode.classList.contains("tab")) { - chrome.tabs.update(parseInt(activeTab.parentNode.parentNode.id), { active: true }); - } else { - ActivatePrevTab(); - } - } - } - } - } +function Tabs_SetActiveTab(tabId, switchToGroup) { + if (opt.debug) Utils_log("f: SetActiveTab, tabId: " + tabId); + let Tab = document.getElementById(tabId); + if (Tab != null) { + let TabGroup = DOM_GetParentsByClass(Tab, "group"); + if (TabGroup.length) { + if (Tab.classList.contains("tab")) Groups_SetActiveTabInGroup(TabGroup[0].id, tabId); + if (switchToGroup) Groups_SetActiveGroup(TabGroup[0].id, false, false); // not going to scroll, because mostly it's going to change to a new active in group AFTER switch, so we are not going to scroll to previous active tab + } + // let selected = document.querySelectorAll(".selected"); + // for (let s of selected) { + // s.classList.remove("selected"); + // } + // let selected_not_in_group = document.querySelectorAll(".pin, #" + tt.active_group + " .tab"); + // for (let s of selected_not_in_group) { + // DOM_SetClasses(s, [], ["active_tab", "selected", "selected_last", "selected_frozen", "selected_temporarly", "tab_header_hover"], []); + // } + + + let active_tabs = document.querySelectorAll(".pin.active_tab, #" + tt.active_group + " .active_tab"); + for (let s of active_tabs) { + DOM_SetClasses(s, [], ["active_tab"], []); + } + DOM_RemoveHighlight(); + DOM_SetClasses(Tab, ["active_tab"], ["attention"], []); + if (tt.tabs[tabId]) tt.tabs[tabId].ScrollToTab(); + } } -function ActivatePrevTabBeforeClose() { - let activePin = document.querySelector(".pin.active_tab"); - if (activePin != null) { - if (activePin.previousSibling != null) { - chrome.tabs.update(parseInt(activePin.previousSibling.id), { active: true }); - } else { - if (activePin.nextSibling != null) { - chrome.tabs.update(parseInt(activePin.nextSibling.id), { active: true }); - } - } - } - - let will_be_closed = document.querySelectorAll("#"+tt.active_group+" .will_be_closed"); - let activeTab = will_be_closed.length > 0 ? will_be_closed[0] : document.querySelector("#"+tt.active_group+" .tab.active_tab"); - - if (activeTab != null && document.querySelectorAll("#"+tt.active_group+" .tab:not(.will_be_closed)").length > 1) { - if (opt.promote_children && activeTab.childNodes[1].firstChild != null) { - chrome.tabs.update(parseInt(activeTab.childNodes[1].firstChild.id), { active: true }); - } else { - if (activeTab.previousSibling != null) { - chrome.tabs.update(parseInt(activeTab.previousSibling.id), { active: true }); - } else { - if (activeTab.nextSibling != null) { - chrome.tabs.update(parseInt(activeTab.nextSibling.id), { active: true }); - } else { - if (activeTab.parentNode.parentNode.classList.contains("tab")) { - chrome.tabs.update(parseInt(activeTab.parentNode.parentNode.id), { active: true }); - } else { - ActivateNextTab(); - } - } - } - } - } +function Tabs_SwitchActiveTabBeforeClose(ActiveGroupId) { + if (opt.debug) Utils_log("f: SwitchActiveTabBeforeClose"); + let activeGroup = document.getElementById(ActiveGroupId); + if (document.querySelectorAll("#" + ActiveGroupId + " .tab:not(.will_be_closed)").length <= 1 && document.querySelector(".pin.active_tab") == null) { // CHECK IF CLOSING LAST TAB IN ACTIVE GROUP + let pins = document.querySelectorAll(".pin"); + if (pins.length > 0) { // IF THERE ARE ANY PINNED TABS, ACTIVATE IT + if (opt.debug) Utils_log("available pin, switching to: " + pins[pins.length - 1].id); + chrome.tabs.update(parseInt(pins[pins.length - 1].id), {active: true}); + return; + } else { // NO OTHER CHOICE BUT TO SEEK IN ANOTHER GROUP + if (opt.after_closing_active_tab == "above" || opt.after_closing_active_tab == "above_seek_in_parent") { + if (activeGroup.previousSibling != null) { + if (document.querySelectorAll("#" + activeGroup.previousSibling.id + " .tab").length > 0) { + Groups_SetActiveGroup(activeGroup.previousSibling.id, true, true); + } else { + Tabs_SwitchActiveTabBeforeClose(activeGroup.previousSibling.id); + return; + } + } else { + Groups_SetActiveGroup("tab_list", true, true); + } + } else { + if (activeGroup.nextSibling != null) { + if (document.querySelectorAll("#" + activeGroup.nextSibling.id + " .tab").length > 0) { + Groups_SetActiveGroup(activeGroup.nextSibling.id, true, true); + } else { + Tabs_SwitchActiveTabBeforeClose(activeGroup.nextSibling.id); + return; + } + } else { + Groups_SetActiveGroup("tab_list", true, true); + } + } + } + } else { + if (opt.debug) Utils_log("available tabs in current group, switching option is: " + opt.after_closing_active_tab); + if (opt.after_closing_active_tab == "above") Tabs_ActivatePrevTab(true); + if (opt.after_closing_active_tab == "below") Tabs_ActivateNextTab(true); + if (opt.after_closing_active_tab == "above_seek_in_parent") Tabs_ActivatePrevTabSameLevel(); + if (opt.after_closing_active_tab == "below_seek_in_parent") Tabs_ActivateNextTabSameLevel(); + } } -function ActivateNextTab(allow_reverse) { - let activePin = document.querySelector(".pin.active_tab"); - if (activePin != null) { - if (activePin.nextSibling != null) { - chrome.tabs.update(parseInt(activePin.nextSibling.id), { active: true }); - } else { - if (activePin.previousSibling != null && allow_reverse) { - chrome.tabs.update(parseInt(activePin.previousSibling.id), { active: true }); - } - } - } - - let will_be_closed = document.querySelectorAll("#"+tt.active_group+" .will_be_closed"); - let activeTab = will_be_closed.length > 0 ? will_be_closed[will_be_closed.length-1] : document.querySelector("#"+tt.active_group+" .tab.active_tab"); - - if (activeTab != null && document.querySelectorAll("#"+tt.active_group+" .tab").length > 1) { - let FirstChild = activeTab.childNodes[1].firstChild; - if (FirstChild != null) { - chrome.tabs.update(parseInt(FirstChild.id), { active: true }); - } else { - if (activeTab.nextSibling != null) { - chrome.tabs.update(parseInt(activeTab.nextSibling.id), { active: true }); - } else { - let Next = null; - while (Next == null && activeTab.parentNode != null && activeTab.parentNode.parentNode != null) { - if (activeTab.parentNode.parentNode.classList != undefined && activeTab.parentNode.parentNode.classList.contains("tab") && activeTab.parentNode.parentNode.nextSibling != null && activeTab.parentNode.parentNode.nextSibling.classList.contains("tab")) { - Next = activeTab.parentNode.parentNode.nextSibling; - } - activeTab = activeTab.parentNode.parentNode; - } - if (Next != null) { - chrome.tabs.update(parseInt(Next.id), { active: true }); - } else { - if (allow_reverse) { - ActivatePrevTab(); - } - } - } - } - } +function Tabs_ActivateNextTabSameLevel() { + let activeTab = document.querySelector("#" + tt.active_group + " .tab.active_tab") != null ? document.querySelector("#" + tt.active_group + " .tab.active_tab") : document.querySelector(".pin.active_tab"); + if (activeTab == null) return; + let NewActiveId; + let Node = activeTab; + if (activeTab.classList.contains("tab")) { + if (opt.promote_children && activeTab.childNodes[1].firstChild != null && activeTab.childNodes[1].firstChild.classList.contains("tab") && activeTab.childNodes[1].firstChild.classList.contains("will_be_closed") == false) NewActiveId = activeTab.childNodes[1].firstChild.id; + } + if (NewActiveId == undefined) { + while (NewActiveId == undefined && Node.nextSibling != null && Node.classList != undefined) { + if ((Node.nextSibling.classList.contains("pin") || Node.nextSibling.classList.contains("tab")) && Node.nextSibling.classList.contains("will_be_closed") == false) NewActiveId = Node.nextSibling.id; + Node = Node.nextSibling; + } + } + if (NewActiveId == undefined) { + while (NewActiveId == undefined && Node.previousSibling != null && Node.classList != undefined) { + if ((Node.previousSibling.classList.contains("pin") || Node.previousSibling.classList.contains("tab")) && Node.previousSibling.classList.contains("will_be_closed") == false) NewActiveId = Node.previousSibling.id; + Node = Node.previousSibling; + } + } + if (NewActiveId == undefined) {Tabs_ActivatePrevTab();} + if (NewActiveId != undefined) { + let tabId = parseInt(NewActiveId); + if (isNaN(tabId) == false) chrome.tabs.update(tabId, {active: true}); + } } -function ActivatePrevTab(allow_reverse) { - let activePin = document.querySelector(".pin.active_tab"); - if (activePin != null) { - if (activePin.previousSibling != null) { - chrome.tabs.update(parseInt(activePin.previousSibling.id), { active: true }); - } else { - if (activePin.nextSibling != null && allow_reverse) { - chrome.tabs.update(parseInt(activePin.nextSibling.id), { active: true }); - } - } - } - - let will_be_closed = document.querySelectorAll("#"+tt.active_group+" .will_be_closed"); - let activeTab = will_be_closed.length > 0 ? will_be_closed[0] : document.querySelector("#"+tt.active_group+" .tab.active_tab"); - - if (activeTab != null && document.querySelectorAll("#"+tt.active_group+" .tab").length > 1) { - let pSchildren = activeTab.previousSibling != null ? document.querySelectorAll("#ct"+activeTab.previousSibling.id+" .tab") : null; - if (activeTab.previousSibling != null && pSchildren.length > 0) { - chrome.tabs.update(parseInt(pSchildren[pSchildren.length-1].id), { active: true }); - } else { - if (activeTab.previousSibling != null) { - chrome.tabs.update(parseInt(activeTab.previousSibling.id), { active: true }); - } else { - if (activeTab.parentNode.parentNode.classList.contains("tab")) { - chrome.tabs.update(parseInt(activeTab.parentNode.parentNode.id), { active: true }); - } else { - if (allow_reverse) { - ActivateNextTab(); - } - } - } - } - } +function Tabs_ActivatePrevTabSameLevel() { + let activeTab = document.querySelector("#" + tt.active_group + " .tab.active_tab") != null ? document.querySelector("#" + tt.active_group + " .tab.active_tab") : document.querySelector(".pin.active_tab"); + if (activeTab == null) return; + let NewActiveId; + let Node = activeTab; + if (activeTab.classList.contains("tab")) { + if (opt.promote_children && activeTab.childNodes[1].firstChild != null && activeTab.childNodes[1].firstChild.classList.contains("tab") && activeTab.childNodes[1].firstChild.classList.contains("will_be_closed") == false) NewActiveId = activeTab.childNodes[1].firstChild.id; + } + if (NewActiveId == undefined) { + while (NewActiveId == undefined && Node.previousSibling != null && Node.classList != undefined) { + if ((Node.previousSibling.classList.contains("pin") || Node.previousSibling.classList.contains("tab")) && Node.previousSibling.classList.contains("will_be_closed") == false) NewActiveId = Node.previousSibling.id; + Node = Node.previousSibling; + } + } + if (NewActiveId == undefined) { + while (NewActiveId == undefined && Node.nextSibling != null && Node.classList != undefined) { + if ((Node.nextSibling.classList.contains("pin") || Node.nextSibling.classList.contains("tab")) && Node.nextSibling.classList.contains("will_be_closed") == false) NewActiveId = Node.nextSibling.id; + Node = Node.nextSibling; + } + } + if (NewActiveId == undefined) Tabs_ActivateNextTab(); + if (NewActiveId != undefined) { + let tabId = parseInt(NewActiveId); + if (isNaN(tabId) == false) chrome.tabs.update(tabId, {active: true}); + } } - -function OpenNewTab(pin, parentId) { - if (pin) { - chrome.tabs.create({pinned: true}, function(tab) { - if (parentId) { - AppendTab({tab: tab, ParentId: "pin_list", InsertAfterId: parentId, Append: true, Scroll: true}); - tt.schedule_update_data++; - } - }); - } else { - chrome.tabs.create({}, function(tab) { - if (parentId) { - AppendTab({tab: tab, ParentId: parentId, Append: (opt.append_orphan_tab == "top" ? false : true), Scroll: true}); - tt.schedule_update_data++; - } - if (opt.move_tabs_on_url_change == "from_empty") { - chrome.runtime.sendMessage({command: "remove_tab_from_empty_tabs", tabId: tab.id}); - } - }); - } +function Tabs_ActivateNextTab(allow_loop) { + let activeTab = document.querySelector("#" + tt.active_group + " .tab.active_tab") != null ? document.querySelector("#" + tt.active_group + " .tab.active_tab") : document.querySelector(".pin.active_tab"); + if (activeTab == null) return; + let NewActiveId; + let Node = activeTab; + let parents = DOM_GetAllParents(activeTab); + while (Node != null && Node.classList != undefined) { + if (parents.indexOf(Node) == -1 && Node != activeTab && (Node.classList.contains("pin") || Node.classList.contains("tab")) && Node.classList.contains("will_be_closed") == false) { + NewActiveId = Node.id; + Node = null; + } else { + if (parents.indexOf(Node) == -1 && Node.childNodes[1] && Node.childNodes[1].classList.contains("children") && Node.childNodes[1].childNodes.length > 0 && Node.classList.contains("c") == false) { // GO TO CHILDREN + Node = Node.childNodes[1].firstChild; + } else { + if (Node.nextSibling) { // GO TO NEXT SIBLING + Node = Node.nextSibling; + } else { // GO UP TO PARENT + Node = Node.parentNode.parentNode; + } + } + } + } + if (allow_loop && NewActiveId == undefined) { + let RestartLoopFromPin = document.querySelector(".pin"); + let RestartLoopFromTab = document.querySelector("#°" + tt.active_group + " .tab"); + if (activeTab.classList.contains("pin")) { + if (RestartLoopFromTab != null) { + NewActiveId = RestartLoopFromTab.id; + } else { + if (RestartLoopFromPin != null) NewActiveId = RestartLoopFromPin.id; + } + } + if (activeTab.classList.contains("tab")) { + if (RestartLoopFromPin != null) { + NewActiveId = RestartLoopFromPin.id; + } else { + if (RestartLoopFromTab != null) NewActiveId = RestartLoopFromTab.id; + } + } + } + if (NewActiveId != undefined) { + let tabId = parseInt(NewActiveId); + if (isNaN(tabId) == false) chrome.tabs.update(tabId, {active: true}); + } } -function DuplicateTab(SourceTabNode) { - chrome.tabs.duplicate(parseInt(SourceTabNode.id), function(tab) { - let DupRetry = setInterval(function() { - let DupTab = document.getElementById(tab.id); - if (DupTab != null) { - if (browserId == "F" && tab.pinned) { - DupTab.classList.remove("tab"); - DupTab.classList.add("pin"); - } - InsterAfterNode(DupTab, SourceTabNode); - RefreshExpandStates(); - tt.schedule_update_data++; - RefreshCounters(); - clearInterval(DupRetry); - } - }, 10); - setTimeout(function() { - if (DupRetry) { - clearInterval(DupRetry); - } - }, 500); - }); - -} - -function DeselectTabs() { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - s.classList.remove("selected_tab"); - s.classList.remove("selected_last"); - }); -} - - -// TAB EVENTS - -function EventExpandBox(Node) { - if (Node.classList.contains("o")) { - Node.classList.remove("o"); - Node.classList.add("c"); - - if (Node.classList.contains("tab")) { - chrome.runtime.sendMessage({ command: "update_tab", tabId: parseInt(Node.id), tab: { expand: "c" } }); - } - - if (Node.classList.contains("folder")) { - SaveFolders(); - } - - } else { - if (Node.classList.contains("c")) { - if (opt.collapse_other_trees) { - let thisTreeTabs = GetParentsByClass(Node.childNodes[0], "tab"); // start from tab's first child, instead of tab, important to include clicked tab as well - let thisTreeFolders = GetParentsByClass(Node.childNodes[0], "folder"); - document.querySelectorAll("#"+tt.active_group+" .o.tab").forEach(function(s){ - s.classList.remove("o"); - s.classList.add("c"); - chrome.runtime.sendMessage({ command: "update_tab", tabId: parseInt(s.id), tab: { expand: "c" } }); - }); - - document.querySelectorAll("#"+tt.active_group+" .o.folder").forEach(function(s){ - s.classList.remove("o"); - s.classList.add("c"); - }); - thisTreeTabs.forEach(function(s){ - s.classList.remove("c"); - s.classList.add("o"); - chrome.runtime.sendMessage({ command: "update_tab", tabId: parseInt(s.id), tab: { expand: "o" } }); - }); - thisTreeFolders.forEach(function(s){ - s.classList.remove("c"); - s.classList.add("o"); - }); - SaveFolders(); - if (Node.classList.contains("tab")) { - ScrollToTab(Node.id); - } - } else { - Node.classList.remove("c"); - Node.classList.add("o"); - - if (Node.classList.contains("tab")) { - chrome.runtime.sendMessage({ command: "update_tab", tabId: parseInt(Node.id), tab: { expand: "o" } }); - } - - if (Node.classList.contains("folder")) { - SaveFolders(); - } - - } - } - } -} - -function EventSelectTab(event, TabNode) { - DeselectFolders(); - if (event.shiftKey) { // SET SELECTION WITH SHIFT - let activeTab = document.querySelector("#"+tt.active_group+" .selected_tab.selected_last"); - if (activeTab == null) { - activeTab = document.querySelector(".pin.active_tab, #"+tt.active_group+" .tab.active_tab"); - } - if (activeTab != null && TabNode.parentNode.id == activeTab.parentNode.id) { - - if (!event.ctrlKey) { - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - s.classList.remove("selected_frozen"); - s.classList.remove("selected_temporarly"); - s.classList.remove("selected_tab"); - s.classList.remove("selected_last"); - }); - } - let ChildrenArray = Array.from(TabNode.parentNode.children); - let activeTabIndex = ChildrenArray.indexOf(activeTab); - let thisTabIndex = ChildrenArray.indexOf(TabNode); - let fromIndex = thisTabIndex >= activeTabIndex ? activeTabIndex : thisTabIndex; - let toIndex = thisTabIndex >= activeTabIndex ? thisTabIndex : activeTabIndex; - for (let i = fromIndex; i <= toIndex; i++) { - activeTab.parentNode.childNodes[i].classList.add("selected_tab"); - if (i == toIndex && event.ctrlKey) { - activeTab.parentNode.childNodes[i].classList.add("selected_last"); - } - } - } - } - if (event.ctrlKey && !event.shiftKey) { // TOGGLE SELECTION WITH CTRL - TabNode.classList.toggle("selected_tab"); - if (TabNode.classList.contains("selected_tab")) { - document.querySelectorAll(".selected_last").forEach(function(s){ - s.classList.remove("selected_last"); - }); - TabNode.classList.add("selected_last"); - } else { - TabNode.classList.remove("selected_last"); - } - } -} - -function ActionClickTab(TabNode, bgOption) { - if (bgOption == "new_tab") { - OpenNewTab(TabNode.classList.contains("pin"), TabNode.id); - } - if (bgOption == "expand_collapse") { - EventExpandBox(TabNode); - } - if (bgOption == "close_tab") { - if ((TabNode.classList.contains("pin") && opt.allow_pin_close) || TabNode.classList.contains("tab")) { - CloseTabs([parseInt(TabNode.id)]); - } - } - if (bgOption == "undo_close_tab") { - chrome.sessions.getRecentlyClosed( null, function(sessions) { - if (sessions.length > 0) { - chrome.sessions.restore(null, function(restored) {}); - } - }); - } - if (bgOption == "reload_tab") { - chrome.tabs.reload(parseInt(TabNode.id)); - } - if (bgOption == "unload_tab") { - if (TabNode.classList.contains("active_tab")) { - SwitchActiveTabBeforeClose(tt.active_group); - setTimeout(function() { - DiscardTabs([parseInt(TabNode.id)]); - }, 500); - } else { - DiscardTabs([parseInt(TabNode.id)]); - } - } - if (bgOption == "activate_previous_active" && TabNode.classList.contains("active_tab")) { - chrome.tabs.update(parseInt(tt.groups[tt.active_group].prev_active_tab), {active: true}); - } -} - - - - - -function TabStartDrag(Node, event) { - event.stopPropagation(); - event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0); - event.dataTransfer.setData("text", ""); - event.dataTransfer.setData("SourceWindowId", tt.CurrentWindowId); - - CleanUpDragClasses(); - EmptyDragAndDrop(); - - tt.DragNodeClass = "tab"; - - let TabsIds = []; - let TabsIdsParents = []; - let TabsIdsSelected = []; - - if (Node.classList.contains("selected_tab")) { - document.querySelectorAll(".group:not(#"+tt.active_group+") .selected_tab").forEach(function(s){ - s.classList.add("selected_frozen"); - s.classList.remove("selected_tab"); - s.classList.remove("selected_last"); - }); - document.querySelectorAll("#pin_list .selected_tab, .group#"+tt.active_group+" .selected_tab").forEach(function(s){ - TabsIdsSelected.push(parseInt(s.id)); - }); - } else { - FreezeSelected(); - Node.classList.add("selected_temporarly"); - Node.classList.add("selected_tab"); - TabsIdsSelected.push(parseInt(Node.id)); - event.dataTransfer.setData("DraggedTabNode", Node.id); - } - - document.querySelectorAll("[id='"+Node.id+"'], [id='"+Node.id+"'] .tab").forEach(function(s){ - s.classList.add("dragged_tree"); - }); - - - if (opt.max_tree_drag_drop || opt.max_tree_depth >= 0) { - document.querySelectorAll(".dragged_tree .tab").forEach(function(s){ - let parents = GetParentsByClass(s.parentNode, "dragged_tree"); - if (parents.length > tt.DragTreeDepth) { - tt.DragTreeDepth = parents.length; - } - }); - } else { - tt.DragTreeDepth = -1; - } - - // REST OF SELECTED TABS THAT WILL BE DRAGGED - document.querySelectorAll(".selected_tab, .selected_tab .tab").forEach(function(s){ - s.classList.add("dragged_tree"); - TabsIds.push(parseInt(s.id)); - TabsIdsParents.push(s.parentNode.id); - }); - - let DraggedFolderParents = GetParentsByClass(Node, "folder"); - DraggedFolderParents.forEach(function(s){ - s.classList.add("dragged_parents"); - }); - let DraggedParents = GetParentsByClass(Node, "tab"); - DraggedParents.forEach(function(s){ - s.classList.add("dragged_parents"); - }); - - - DragAndDropData = {TabsIds: TabsIds, TabsIdsParents: TabsIdsParents, TabsIdsSelected: TabsIdsSelected}; - - event.dataTransfer.setData("Class", "tab"); - - event.dataTransfer.setData("TabsIds", JSON.stringify(TabsIds)); - event.dataTransfer.setData("TabsIdsParents", JSON.stringify(TabsIdsParents)); - event.dataTransfer.setData("TabsIdsSelected", JSON.stringify(TabsIdsSelected)); - - chrome.runtime.sendMessage({ - command: "drag_drop", - DragNodeClass: "tab", - DragTreeDepth: tt.DragTreeDepth - }); - - if (opt.debug) { - log("f: TabStartDrag, Node: "+Node.id+", TabsIdsSelected: "+JSON.stringify(TabsIdsSelected)+", TabsIds: "+JSON.stringify(TabsIds)+", TabsIdsParents: "+JSON.stringify(TabsIdsParents) ); - } - -} - -function TabDragOver(Node, event) { - if (tt.DragNodeClass == "tab" && Node.parentNode.classList.contains("dragged_tree") == false) { - - if (Node.parentNode.classList.contains("pin")) { - if (Node.parentNode.classList.contains("before") == false && event.layerX < Node.clientWidth/2) { - RemoveHighlight(); - Node.parentNode.classList.remove("after"); - Node.parentNode.classList.add("before"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - if (Node.parentNode.classList.contains("after") == false && event.layerX >= Node.clientWidth/2) { - RemoveHighlight(); - Node.parentNode.classList.remove("before"); - Node.parentNode.classList.add("after"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - } - - if (Node.parentNode.classList.contains("tab")) { - let PDepth = (GetParentsByClass(Node, "tab")).length + tt.DragTreeDepth; - let PIsGroup = Node.parentNode.parentNode.parentNode.classList.contains("group"); - let PIsDraggedParents = Node.parentNode.classList.contains("dragged_parents"); - - if (Node.parentNode.classList.contains("before") == false && event.layerY < Node.clientHeight/3 && (PDepth <= opt.max_tree_depth+1 || opt.max_tree_depth < 0 || PIsGroup || PIsDraggedParents || opt.max_tree_drag_drop == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("inside"); - Node.parentNode.classList.remove("after"); - Node.parentNode.classList.add("before"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - - - if (Node.parentNode.classList.contains("inside") == false && event.layerY > Node.clientHeight/3 && event.layerY <= 2*(Node.clientHeight/3) && (PDepth <= opt.max_tree_depth || opt.max_tree_depth < 0 || PIsDraggedParents || opt.max_tree_drag_drop == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("before"); - Node.parentNode.classList.remove("after"); - Node.parentNode.classList.add("inside"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - - - if (Node.parentNode.classList.contains("after") == false && Node.parentNode.classList.contains("o") == false && event.layerY > 2*(Node.clientHeight/3) && (PDepth <= opt.max_tree_depth+1 || opt.max_tree_depth < 0 || PIsGroup || PIsDraggedParents || opt.max_tree_drag_drop == false)) { - RemoveHighlight(); - Node.parentNode.classList.remove("inside"); - Node.parentNode.classList.remove("before"); - Node.parentNode.classList.add("after"); - Node.parentNode.classList.add("highlighted_drop_target"); - } - } - } +function Tabs_ActivatePrevTab(allow_loop) { + let activeTab = document.querySelector("#" + tt.active_group + " .tab.active_tab") != null ? document.querySelector("#" + tt.active_group + " .tab.active_tab") : document.querySelector(".pin.active_tab"); + if (activeTab == null) return; + let NewActiveId; + let Node = activeTab; + while (Node != null && Node.classList != undefined) { + if (Node != activeTab && (Node.classList.contains("pin") || Node.classList.contains("tab")) && Node.classList.contains("will_be_closed") == false) { + NewActiveId = Node.id; + Node = null; + } else { + if (Node.previousSibling) { // GO TO PREV SIBLING + Node = Node.previousSibling; + while (Node != null && Node.classList != undefined && Node.childNodes[1] && Node.childNodes[1].classList.contains("children") && Node.childNodes[1].childNodes.length > 0 && Node.classList.contains("c") == false) { + Node = Node.childNodes[1].lastChild; + } + } else { // GO UP TO PARENT + Node = Node.parentNode.parentNode; + } + } + } + if (allow_loop && NewActiveId == undefined) { + let RestartLoopFromPin = document.querySelector(".pin:last-child"); + let RestartLoopFromTab = document.querySelectorAll("#°" + tt.active_group + " .tab"); + if (activeTab.classList.contains("pin")) { + if (RestartLoopFromTab.length > 0) { + NewActiveId = RestartLoopFromTab[RestartLoopFromTab.length - 1].id; + } else { + if (RestartLoopFromPin != null) NewActiveId = RestartLoopFromPin.id; + } + } + if (activeTab.classList.contains("tab")) { + if (RestartLoopFromPin != null) { + NewActiveId = RestartLoopFromPin.id; + } else { + if (RestartLoopFromTab != null) NewActiveId = RestartLoopFromTab[RestartLoopFromTab.length - 1].id; + } + } + } + if (NewActiveId != undefined) { + let tabId = parseInt(NewActiveId); + if (isNaN(tabId) == false) chrome.tabs.update(tabId, {active: true}); + } } \ No newline at end of file diff --git a/scripts/theme.js b/scripts/theme.js index 8f87f2a..1dfe7a1 100644 --- a/scripts/theme.js +++ b/scripts/theme.js @@ -1,415 +1,283 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - - -function Loadi18n() { - // toolbar labels - document.querySelectorAll(".button, .manager_window_toolbar_button").forEach(function(s){ - s.title = chrome.i18n.getMessage(s.id); - }); - // menu labels and edit group dialog labels - document.querySelectorAll(".menu_item, .edit_dialog_button, #manager_window_header_title, .manager_window_label").forEach(function(s){ - s.textContent = chrome.i18n.getMessage(s.id); - }); +function Theme_RestorePinListRowSettings() { + plist = document.getElementById("pin_list"); + if (opt.pin_list_multi_row) { + plist.style.whiteSpace = "normal"; + plist.style.overflowX = "hidden"; + } else { + plist.style.whiteSpace = ""; + plist.style.overflowX = ""; + } + DOM_RefreshGUI(); } -function RestorePinListRowSettings() { - plist = document.getElementById("pin_list"); - if (opt.pin_list_multi_row) { - plist.style.whiteSpace = "normal"; - plist.style.overflowX = "hidden"; - } else { - plist.style.whiteSpace = ""; - plist.style.overflowX = ""; - } - RefreshGUI(); -} - -function ApplyTheme(theme) { - RestoreStateOfGroupsToolbar(); - ApplySizeSet(theme["TabsSizeSetNumber"]); - ApplyColorsSet(theme["ColorsSet"]); - ApplyTabsMargins(theme["TabsMargins"]); - RefreshGUI(); - - for (var groupId in tt.groups) { - let groupTitle = document.getElementById("_gte"+groupId); - if (groupTitle != null && tt.groups[groupId].font == "") { - groupTitle.style.color = ""; - } - } - Loadi18n(); +function Theme_ApplyTheme(theme) { + Groups_RestoreStateOfGroupsToolbar(); + Theme_ApplySizeSet(theme["TabsSizeSetNumber"]); + Theme_ApplyColorsSet(theme["ColorsSet"]); + Theme_ApplyTabsMargins(theme["TabsMargins"]); + Theme_ApplyBlinking(); + DOM_RefreshGUI(); + // for some reason (top) text position is different in chromium !? + // if (browserId != "F") { + // document.styleSheets[document.styleSheets.length-1].insertRule(".tab_title, .folder_title { margin-top: 1px; }", document.styleSheets[document.styleSheets.length-1].cssRules.length); + // } + for (var groupId in tt.groups) { + let groupTitle = document.getElementById("_gte" + groupId); + if (groupTitle != null && tt.groups[groupId].font == "") groupTitle.style.color = ""; + } + DOM_Loadi18n(); } // theme colors is an object with css variables (but without --), for example; {"button_background": "#f2f2f2", "filter_box_border": "#cccccc"} -function ApplyColorsSet(ThemeColors){ - let css_variables = ""; - for (let css_variable in ThemeColors) { - css_variables = css_variables + "--" + css_variable + ":" + ThemeColors[css_variable] + ";"; - } - for (let si = 0; si < document.styleSheets.length; si++) { - if (document.styleSheets[si].ownerNode.id == "theme_colors") { - document.styleSheets[si].deleteRule(document.styleSheets[si].cssRules.length-1); - document.styleSheets[si].insertRule("body { "+css_variables+" }", document.styleSheets[si].cssRules.length); - } - } +function Theme_ApplyColorsSet(ThemeColors) { + let css_variables = ""; + for (let css_variable in ThemeColors) { + css_variables = css_variables + "--" + css_variable + ":" + ThemeColors[css_variable] + ";"; + } + for (let si = 0; si < document.styleSheets.length; si++) { + if (document.styleSheets[si].ownerNode.id == "theme_colors") { + document.styleSheets[si].deleteRule(document.styleSheets[si].cssRules.length - 1); + document.styleSheets[si].insertRule("body { " + css_variables + " }", document.styleSheets[si].cssRules.length); + } + } } -function ApplySizeSet(size){ - for (let si = 0; si < document.styleSheets.length; si++) { - if ((document.styleSheets[si].ownerNode.id).match("sizes_preset") != null) { - if (document.styleSheets[si].ownerNode.id == "sizes_preset_"+size) { - document.styleSheets.item(si).disabled = false; - } else { - document.styleSheets.item(si).disabled = true; - } - } - } - if (browserId == "F") { - // for some reason top position for various things is different in firefox????? - if (size > 1) { - document.styleSheets[document.styleSheets.length-1].insertRule(".tab_header>.tab_title { margin-top: -1px; }", document.styleSheets[document.styleSheets.length-1].cssRules.length); - } else { - document.styleSheets[document.styleSheets.length-1].insertRule(".tab_header>.tab_title { margin-top: 0px; }", document.styleSheets[document.styleSheets.length-1].cssRules.length); - } - } +function Theme_ApplySizeSet(size) { + for (let si = 0; si < document.styleSheets.length; si++) { + if ((document.styleSheets[si].ownerNode.id).match("sizes_preset") != null) { + if (document.styleSheets[si].ownerNode.id == "sizes_preset_" + size) { + document.styleSheets.item(si).disabled = false; + } else { + document.styleSheets.item(si).disabled = true; + } + } + } } -function ApplyTabsMargins(size){ - for (let si = 0; si < document.styleSheets.length; si++) { - if ((document.styleSheets[si].ownerNode.id).match("tabs_margin") != null) { - if (document.styleSheets[si].ownerNode.id == "tabs_margin_"+size) { - document.styleSheets.item(si).disabled = false; - } else { - document.styleSheets.item(si).disabled = true; - } - } - } +function Theme_ApplyTabsMargins(size) { + for (let si = 0; si < document.styleSheets.length; si++) { + if ((document.styleSheets[si].ownerNode.id).match("tabs_margin") != null) { + if (document.styleSheets[si].ownerNode.id == "tabs_margin_" + size) { + document.styleSheets.item(si).disabled = false; + } else { + document.styleSheets.item(si).disabled = true; + } + } + } } -function GetCurrentToolbar(storage) { - if (storage["toolbar"]) { - return storage["toolbar"]; - } else { - return DefaultToolbar; - } +function Theme_ApplyBlinking() { + for (let si = 0; si < document.styleSheets.length; si++) { + if ((document.styleSheets[si].ownerNode.id).match("blinking_pins") != null) { + if (opt.pin_attention_blinking) { + document.styleSheets.item(si).disabled = false; + } else { + document.styleSheets.item(si).disabled = true; + } + } + if ((document.styleSheets[si].ownerNode.id).match("blinking_audio") != null) { + if (opt.audio_blinking) { + document.styleSheets.item(si).disabled = false; + } else { + document.styleSheets.item(si).disabled = true; + } + } + } } +function Theme_GetCurrentToolbar(storage) { + if (storage["toolbar"]) { + return storage["toolbar"]; + } else { + return DefaultToolbar; + } +} -function GetCurrentTheme(storage) { - if (storage["current_theme"] && storage["themes"] && storage["themes"][storage["current_theme"]]) { - let theme = storage["themes"][storage["current_theme"]]; - let correctedTheme = CheckTheme(theme); - if (correctedTheme.theme_version < 4 && storage["preferences"].show_toolbar == undefined) { - opt.show_toolbar = correctedTheme.ToolbarShow; - SavePreferences(); - } - return correctedTheme; - } else { - return DefaultTheme; - } +function Theme_GetCurrentTheme(storage) { + if (storage["current_theme"] && storage["themes"] && storage["themes"][storage["current_theme"]]) { + let theme = storage["themes"][storage["current_theme"]]; + let correctedTheme = Theme_CheckTheme(theme); + if (correctedTheme.theme_version < 4 && storage["preferences"].show_toolbar == undefined) { + opt.show_toolbar = correctedTheme.ToolbarShow; + Preferences_SavePreferences(opt); + } + return correctedTheme; + } else { + return DefaultTheme; + } } // OPTIONS PAGE -function LoadTheme(ThemeId, reloadInSidebar) { - - document.querySelectorAll(".theme_buttons").forEach(function(s){ - s.disabled = true; - }); - - chrome.storage.local.set({current_theme: ThemeId}, function() { - chrome.storage.local.get(null, function(storage) { - SelectedTheme = Object.assign({}, GetCurrentTheme(storage)); - setTimeout(function() { - document.getElementById("new_theme_name").value = SelectedTheme.theme_name; - setTimeout(function() { - // SetToolbarEvents(true, false, false, ""); - RemoveToolbarEditEvents(); - - ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]); - ApplyColorsSet(SelectedTheme["ColorsSet"]); - document.getElementById("_gtetab_list").style.color = ""; - document.getElementById("_gtetab_list2").style.color = ""; - - if (SelectedTheme["TabsMargins"]) { - document.getElementById("tabs_margin_spacing")[SelectedTheme["TabsMargins"]].checked = true; - ApplyTabsMargins(SelectedTheme["TabsMargins"]); - } else { - document.getElementById("tabs_margin_spacing")["2"].checked = true; - } - - if (reloadInSidebar) { - chrome.runtime.sendMessage({command: "reload_theme", ThemeId: ThemeId, theme: SelectedTheme}); - } - - document.querySelectorAll(".theme_buttons").forEach(function(s){ - s.disabled = false; - }); - - }, 200); - }, 200); - }); - }); +function Theme_LoadTheme(ThemeId, reloadInSidebar) { + let query = document.querySelectorAll(".theme_buttons"); + for (let s of query) { + s.disabled = true; + } + chrome.storage.local.set({current_theme: ThemeId}, function() { + chrome.storage.local.get(null, function(storage) { + SelectedTheme = Object.assign({}, Theme_GetCurrentTheme(storage)); + setTimeout(function() { + document.getElementById("new_theme_name").value = SelectedTheme.theme_name; + setTimeout(function() { + RemoveToolbarEditEvents(); + Theme_ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]); + Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]); + document.getElementById("_gtetab_list").style.color = ""; + document.getElementById("_gtetab_list2").style.color = ""; + if (SelectedTheme["TabsMargins"]) { + document.getElementById("tabs_margin_spacing")[SelectedTheme["TabsMargins"]].checked = true; + Theme_ApplyTabsMargins(SelectedTheme["TabsMargins"]); + } else { + document.getElementById("tabs_margin_spacing")["2"].checked = true; + } + if (reloadInSidebar) chrome.runtime.sendMessage({command: "reload_theme", ThemeId: ThemeId, theme: SelectedTheme}); + let query = document.querySelectorAll(".theme_buttons"); + for (let s of query) { + s.disabled = false; + } + }, 200); + }, 200); + }); + }); } -function SaveTheme(ThemeId) { - chrome.storage.local.get(null, function(storage) { - - SelectedTheme.theme_version = DefaultTheme.theme_version; - - let LSthemes = storage.themes ? Object.assign({}, storage.themes) : {}; - - LSthemes[ThemeId] = Object.assign({}, SelectedTheme); - - chrome.storage.local.set({themes: LSthemes}); - - chrome.runtime.sendMessage({command: "reload_theme", ThemeId: ThemeId, theme: SelectedTheme}); - return SelectedTheme; - }); +function Theme_SaveTheme(ThemeId) { + chrome.storage.local.get(null, function(storage) { + SelectedTheme.theme_version = DefaultTheme.theme_version; + let LSthemes = storage.themes ? Object.assign({}, storage.themes) : {}; + LSthemes[ThemeId] = Object.assign({}, SelectedTheme); + chrome.storage.local.set({themes: LSthemes}); + chrome.runtime.sendMessage({command: "reload_theme", ThemeId: ThemeId, theme: SelectedTheme}); + return SelectedTheme; + }); } -function AddNewTheme() { - - let ThemeId = GenerateRandomID() + GenerateRandomID(); - let ThemeList = document.getElementById("theme_list"); - let ThemeNameBox = document.getElementById("new_theme_name"); - let NewName = ThemeNameBox.value; - - if (ThemeNameBox.value == "") { - alert(chrome.i18n.getMessage("options_theme_name_cannot_be_empty")); - return; - } - - SelectedTheme = Object.assign({}, DefaultTheme); - SelectedTheme["ColorsSet"] = {}; - - // let Names = []; - - // for (let i = 0; i < ThemeList.options.length; i++) { - // Names.push(ThemeList.options[i].text); - // } - - // while (Names.indexOf(NewName) != -1) { - // let matched = NewName.match(/\(\d+\)+/); - // if (matched != null && matched.length > 0) { - // NewName = NewName.replace(matched[0], ("(" + (parseInt(matched[0].match(/\d+/)[0]) + 1 ) + ")") ); - // } else { - // NewName = NewName + "(1)"; - // } - // } - - ThemeNameBox.value = NewName; - SelectedTheme["theme_name"] = NewName; - - themes.push(ThemeId); - - let ThemeNameOption = document.createElement("option"); - - ThemeNameOption.value = ThemeId; - ThemeNameOption.text = NewName; - - ThemeList.add(ThemeNameOption); - ThemeList.selectedIndex = ThemeList.options.length-1; - - SaveTheme(ThemeId); - setTimeout(function() { - LoadTheme(ThemeId, true); - }, 50); - - chrome.storage.local.set({current_theme: ThemeId}); - RefreshFields(); +function Theme_AddNewTheme() { + let ThemeId = GenerateRandomID() + GenerateRandomID(); + let ThemeList = document.getElementById("theme_list"); + let ThemeNameBox = document.getElementById("new_theme_name"); + let NewName = ThemeNameBox.value; + if (ThemeNameBox.value == "") { + alert(chrome.i18n.getMessage("options_theme_name_cannot_be_empty")); + return; + } + SelectedTheme = Object.assign({}, DefaultTheme); + SelectedTheme["ColorsSet"] = {}; + ThemeNameBox.value = NewName; + SelectedTheme["theme_name"] = NewName; + themes.push(ThemeId); + DOM_New("option", ThemeList, {value: ThemeId, text: NewName}); + ThemeList.selectedIndex = ThemeList.options.length - 1; + Theme_SaveTheme(ThemeId); + setTimeout(function() {Theme_LoadTheme(ThemeId, true);}, 50); + chrome.storage.local.set({current_theme: ThemeId}); + RefreshFields(); } -function DeleteSelectedTheme() { - chrome.storage.local.get(null, function(storage) { - let LSthemes = storage.themes ? Object.assign({}, storage.themes) : {}; - - let ThemeList = document.getElementById("theme_list"); - - themes.splice(ThemeList.selectedIndex, 1); - if (LSthemes[current_theme]) { - delete LSthemes[current_theme]; - } - chrome.storage.local.set({themes: LSthemes}); - - ThemeList.remove(ThemeList.selectedIndex); - - current_theme = (ThemeList.options.length > 0) ? ThemeList.value : "default"; - - - chrome.storage.local.set({current_theme: current_theme}); - - if (ThemeList.options.length == 0) { - current_theme = ""; - SelectedTheme = Object.assign({}, DefaultTheme); - SelectedTheme["ColorsSet"] = {}; - chrome.storage.local.set({themes: {}}); - setTimeout(function() { - chrome.runtime.sendMessage({command: "reload_theme", themeName: "", theme: SelectedTheme}); - }, 500); - } - LoadTheme(current_theme, true); - RefreshFields(); - }); +function Theme_DeleteSelectedTheme() { + chrome.storage.local.get(null, function(storage) { + let LSthemes = storage.themes ? Object.assign({}, storage.themes) : {}; + let ThemeList = document.getElementById("theme_list"); + themes.splice(ThemeList.selectedIndex, 1); + if (LSthemes[current_theme]) delete LSthemes[current_theme]; + chrome.storage.local.set({themes: LSthemes}); + ThemeList.remove(ThemeList.selectedIndex); + current_theme = (ThemeList.options.length > 0) ? ThemeList.value : "default"; + chrome.storage.local.set({current_theme: current_theme}); + if (ThemeList.options.length == 0) { + current_theme = ""; + SelectedTheme = Object.assign({}, DefaultTheme); + SelectedTheme["ColorsSet"] = {}; + chrome.storage.local.set({themes: {}}); + setTimeout(function() {chrome.runtime.sendMessage({command: "reload_theme", themeName: "", theme: SelectedTheme});}, 500); + } + Theme_LoadTheme(current_theme, true); + RefreshFields(); + }); } -function RenameSelectedTheme() { - let ThemeList = document.getElementById("theme_list"); - let ThemeNameBox = document.getElementById("new_theme_name"); - - // for (let i = 0; i < ThemeList.options.length; i++) { - // if (ThemeNameBox.value == ThemeList.options[i].text){ - // alert(chrome.i18n.getMessage("options_there_is_a_theme_with_this_name")); - // return; - // } - // } - - if (ThemeNameBox.value == "") { - alert(chrome.i18n.getMessage("options_theme_name_cannot_be_empty")); - return; - } - - - chrome.storage.local.get(null, function(storage) { - let LSthemes = storage.themes ? Object.assign({}, storage.themes) : {}; - ThemeList.options[ThemeList.selectedIndex].text = ThemeNameBox.value; - SelectedTheme["theme_name"] = ThemeNameBox.value; - LSthemes[current_theme]["theme_name"] = ThemeNameBox.value; - chrome.storage.local.set({themes: LSthemes}); - chrome.storage.local.set({current_theme: current_theme}); - }); +function Theme_RenameSelectedTheme() { + let ThemeList = document.getElementById("theme_list"); + let ThemeNameBox = document.getElementById("new_theme_name"); + if (ThemeNameBox.value == "") { + alert(chrome.i18n.getMessage("options_theme_name_cannot_be_empty")); + return; + } + chrome.storage.local.get(null, function(storage) { + let LSthemes = storage.themes ? Object.assign({}, storage.themes) : {}; + ThemeList.options[ThemeList.selectedIndex].text = ThemeNameBox.value; + SelectedTheme["theme_name"] = ThemeNameBox.value; + LSthemes[current_theme]["theme_name"] = ThemeNameBox.value; + chrome.storage.local.set({themes: LSthemes}); + chrome.storage.local.set({current_theme: current_theme}); + }); } - - -function CheckTheme(theme) { - if (theme.theme_version < 2) { - theme["ColorsSet"]["scrollbar_height"] = theme.ScrollbarPinList + "px"; - theme["ColorsSet"]["scrollbar_width"] = theme.ScrollbarTabList + "px"; - } - if (theme["TabsMargins"] == undefined) { - theme["TabsMargins"] = "2"; - } - if (theme.theme_version < 4) { - delete theme["ColorsSet"]["active_font_weight"]; - delete theme["ColorsSet"]["expand_lines"]; - delete theme["ColorsSet"]["expand_open_border"]; - delete theme["ColorsSet"]["expand_closed_border"]; - - if (theme["ColorsSet"]["toolbar_background"]) { - theme["ColorsSet"]["toolbar_shelf_background"] = theme["ColorsSet"]["toolbar_background"]; - theme["ColorsSet"]["button_on_background"] = theme["ColorsSet"]["toolbar_background"]; - } - if (theme["ColorsSet"]["button_icons"]) { - theme["ColorsSet"]["button_on_icons"] = theme["ColorsSet"]["button_icons"]; - theme["ColorsSet"]["button_shelf_icons"] = theme["ColorsSet"]["button_icons"]; - } - if (theme["ColorsSet"]["button_background"]) { - theme["ColorsSet"]["button_shelf_background"] = theme["ColorsSet"]["button_background"]; - } - if (theme["ColorsSet"]["button_hover_background"]) { - theme["ColorsSet"]["button_shelf_hover_background"] = theme["ColorsSet"]["button_hover_background"]; - } - if (theme["ColorsSet"]["button_border"]) { - theme["ColorsSet"]["button_shelf_border"] = theme["ColorsSet"]["button_border"]; - } - if (theme["ColorsSet"]["button_hover_border"]) { - theme["ColorsSet"]["button_shelf_hover_border"] = theme["ColorsSet"]["button_hover_border"]; - } - if (theme["ColorsSet"]["button_icons_hover"]) { - theme["ColorsSet"]["button_shelf_icons_hover"] = theme["ColorsSet"]["button_icons_hover"]; - } - - if (theme["ColorsSet"]["expand_hover_background"]) { - theme["ColorsSet"]["folder_icon_hover"] = theme["ColorsSet"]["expand_hover_background"]; - } - if (theme["ColorsSet"]["expand_closed_background"]) { - theme["ColorsSet"]["folder_icon_closed"] = theme["ColorsSet"]["expand_closed_background"]; - } - if (theme["ColorsSet"]["expand_open_background"]) { - theme["ColorsSet"]["folder_icon_open"] = theme["ColorsSet"]["expand_open_background"]; - } - } - - return theme; +function Theme_CheckTheme(theme) { + if (theme.theme_version < 2) { + theme["ColorsSet"]["scrollbar_height"] = theme.ScrollbarPinList + "px"; + theme["ColorsSet"]["scrollbar_width"] = theme.ScrollbarTabList + "px"; + } + if (theme["TabsMargins"] == undefined) theme["TabsMargins"] = "2"; + if (theme.theme_version < 4) { + delete theme["ColorsSet"]["active_font_weight"]; + delete theme["ColorsSet"]["expand_lines"]; + delete theme["ColorsSet"]["expand_open_border"]; + delete theme["ColorsSet"]["expand_closed_border"]; + if (theme["ColorsSet"]["toolbar_background"]) { + theme["ColorsSet"]["toolbar_shelf_background"] = theme["ColorsSet"]["toolbar_background"]; + theme["ColorsSet"]["button_on_background"] = theme["ColorsSet"]["toolbar_background"]; + } + if (theme["ColorsSet"]["button_icons"]) { + theme["ColorsSet"]["button_on_icons"] = theme["ColorsSet"]["button_icons"]; + theme["ColorsSet"]["button_shelf_icons"] = theme["ColorsSet"]["button_icons"]; + } + if (theme["ColorsSet"]["button_background"]) theme["ColorsSet"]["button_shelf_background"] = theme["ColorsSet"]["button_background"]; + if (theme["ColorsSet"]["button_hover_background"]) theme["ColorsSet"]["button_shelf_hover_background"] = theme["ColorsSet"]["button_hover_background"]; + if (theme["ColorsSet"]["button_border"]) theme["ColorsSet"]["button_shelf_border"] = theme["ColorsSet"]["button_border"]; + if (theme["ColorsSet"]["button_hover_border"]) theme["ColorsSet"]["button_shelf_hover_border"] = theme["ColorsSet"]["button_hover_border"]; + if (theme["ColorsSet"]["button_icons_hover"]) theme["ColorsSet"]["button_shelf_icons_hover"] = theme["ColorsSet"]["button_icons_hover"]; + if (theme["ColorsSet"]["expand_hover_background"]) theme["ColorsSet"]["folder_icon_hover"] = theme["ColorsSet"]["expand_hover_background"]; + if (theme["ColorsSet"]["expand_closed_background"]) theme["ColorsSet"]["folder_icon_closed"] = theme["ColorsSet"]["expand_closed_background"]; + if (theme["ColorsSet"]["expand_open_background"]) theme["ColorsSet"]["folder_icon_open"] = theme["ColorsSet"]["expand_open_background"]; + } + return theme; } - - -function ImportTheme() { - var file = document.getElementById("file_import"); - var fr = new FileReader(); - if (file.files[0] == undefined) return; - fr.readAsText(file.files[0]); - fr.onload = function() { - var data = fr.result; - file.parentNode.removeChild(file); - - var themeObj = JSON.parse(data); - - if (themeObj.theme_version > DefaultTheme["theme_version"]) { - alert(chrome.i18n.getMessage("options_loaded_theme_newer_version")); - } - if (themeObj.theme_version < DefaultTheme["theme_version"]) { - alert(chrome.i18n.getMessage("options_loaded_theme_older_version")); - } - - if (themeObj.theme_version <= DefaultTheme["theme_version"]) { - let ThemeList = document.getElementById("theme_list"); - let ThemeId = GenerateRandomID() + GenerateRandomID(); - let correctedTheme = CheckTheme(themeObj); - - SelectedTheme = Object.assign({}, DefaultTheme); - - for (var val in correctedTheme.ColorsSet) { - SelectedTheme["ColorsSet"][val] = correctedTheme.ColorsSet[val]; - } - - SelectedTheme["TabsSizeSetNumber"] = correctedTheme.TabsSizeSetNumber; - SelectedTheme["TabsMargins"] = correctedTheme["TabsMargins"]; - SelectedTheme["theme_version"] = DefaultTheme["theme_version"]; - - // let Names = []; - // for (let i = 0; i < ThemeList.options.length; i++) { - // Names.push(ThemeList.options[i].text); - // } - - // if (Names.indexOf(correctedTheme.theme_name) == -1) { - SelectedTheme["theme_name"] = correctedTheme.theme_name; - // } else { - // let NewName = correctedTheme.theme_name; - // while (Names.indexOf(NewName) != -1) { - // let matched = NewName.match(/\(\d+\)+/); - // if (matched != null && matched.length > 0) { - // NewName = NewName.replace(matched[0], ("(" + (parseInt(matched[0].match(/\d+/)[0]) + 1 ) + ")") ); - // } else { - // NewName = NewName + "(1)"; - // } - // } - // SelectedTheme["theme_name"] = NewName; - // } - - themes.push(ThemeId); - SaveTheme(ThemeId); - - var theme_name = document.createElement("option"); - - theme_name.value = ThemeId; - theme_name.text = SelectedTheme["theme_name"]; - - ThemeList.add(theme_name); - ThemeList.selectedIndex = ThemeList.options.length-1; - - current_theme = ThemeId; - document.createElement("new_theme_name").value = ThemeId; - - setTimeout(function() { - LoadTheme(ThemeId, true); - }, 500); - RefreshFields(); - DefaultTheme["ColorsSet"] = {}; - chrome.storage.local.set({current_theme: ThemeId}); - } - } +function Theme_ImportTheme() { + var file = document.getElementById("file_import"); + var fr = new FileReader(); + if (file.files[0] == undefined) return; + fr.readAsText(file.files[0]); + fr.onload = function() { + var data = fr.result; + file.parentNode.removeChild(file); + var themeObj = JSON.parse(data); + if (themeObj.theme_version > DefaultTheme["theme_version"]) alert(chrome.i18n.getMessage("options_loaded_theme_newer_version")); + if (themeObj.theme_version < DefaultTheme["theme_version"]) alert(chrome.i18n.getMessage("options_loaded_theme_older_version")); + if (themeObj.theme_version <= DefaultTheme["theme_version"]) { + let ThemeList = document.getElementById("theme_list"); + let ThemeId = GenerateRandomID() + GenerateRandomID(); + let correctedTheme = Theme_CheckTheme(themeObj); + SelectedTheme = Object.assign({}, DefaultTheme); + for (var val in correctedTheme.ColorsSet) { + SelectedTheme["ColorsSet"][val] = correctedTheme.ColorsSet[val]; + } + SelectedTheme["TabsSizeSetNumber"] = correctedTheme.TabsSizeSetNumber; + SelectedTheme["TabsMargins"] = correctedTheme["TabsMargins"]; + SelectedTheme["theme_version"] = DefaultTheme["theme_version"]; + SelectedTheme["theme_name"] = correctedTheme.theme_name; + themes.push(ThemeId); + Theme_SaveTheme(ThemeId); + let theme_name = DOM_New("option", undefined, {value: ThemeId, text: SelectedTheme["theme_name"]}); + ThemeList.add(theme_name); + ThemeList.selectedIndex = ThemeList.options.length - 1; + current_theme = ThemeId; + document.createElement("new_theme_name").value = ThemeId; + setTimeout(function() {Theme_LoadTheme(ThemeId, true);}, 500); + RefreshFields(); + DefaultTheme["ColorsSet"] = {}; + chrome.storage.local.set({current_theme: ThemeId}); + } + } } \ No newline at end of file diff --git a/scripts/toolbar.js b/scripts/toolbar.js index d71c500..2e62ae1 100644 --- a/scripts/toolbar.js +++ b/scripts/toolbar.js @@ -1,708 +1,538 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - -// ********** TOOLBAR *************** - -// RESTORE LAST USED SEARCH TYPE (URL OR TITLE) IN TOOLBAR SEARCH -function RestoreToolbarSearchFilter() { - chrome.runtime.sendMessage({command: "get_search_filter", windowId: tt.CurrentWindowId}, function(response) { - let ButtonFilter = document.getElementById("button_filter_type"); - if (response == "url") { - ButtonFilter.classList.add("url"); - ButtonFilter.classList.remove("title"); - } else { - ButtonFilter.classList.add("title"); - ButtonFilter.classList.remove("url"); - } - }); -} - -// RESTORE LAST ACTIVE SHELF (SEARCH, TOOLS, GROUPS, SESSION OR FOLDER) IN TOOLBAR -function RestoreToolbarShelf() { - chrome.runtime.sendMessage({command: "get_active_shelf", windowId: tt.CurrentWindowId}, function(response) { - let filterBox = document.getElementById("filter_box"); - filterBox.setAttribute("placeholder", labels.searchbox); - filterBox.style.opacity = "1"; - - document.querySelectorAll(".on").forEach(function(s){ - s.classList.remove("on"); - }); - document.querySelectorAll(".toolbar_shelf").forEach(function(s){ - s.classList.add("hidden"); - }); - - if (response == "search" && document.getElementById("button_search") != null) { - document.getElementById("toolbar_search").classList.remove("hidden"); - document.getElementById("button_search").classList.add("on"); - } - - if (response == "tools" && document.getElementById("button_tools") != null) { - document.getElementById("toolbar_shelf_tools").classList.remove("hidden"); - document.getElementById("button_tools").classList.add("on"); - } - - if (response == "groups" && document.getElementById("button_groups") != null) { - document.getElementById("toolbar_shelf_groups").classList.remove("hidden"); - document.getElementById("button_groups").classList.add("on"); - } - - if (response == "backup" && document.getElementById("button_backup") != null) { - document.getElementById("toolbar_shelf_backup").classList.remove("hidden"); - document.getElementById("button_backup").classList.add("on"); - } - - if (response == "folders" && document.getElementById("button_folders") != null) { - document.getElementById("toolbar_shelf_folders").classList.remove("hidden"); - document.getElementById("button_folders").classList.add("on"); - } - - if (browserId != "F") { - chrome.storage.local.get(null, function(storage) { - let bak1 = storage["windows_BAK1"] ? storage["windows_BAK1"] : []; - let bak2 = storage["windows_BAK2"] ? storage["windows_BAK2"] : []; - let bak3 = storage["windows_BAK3"] ? storage["windows_BAK3"] : []; - - if (bak1.length && document.getElementById("#button_load_bak1") != null) { - document.getElementById("button_load_bak1").classList.remove("disabled"); - } else { - document.getElementById("button_load_bak1").classList.add("disabled"); - } - - if (bak2.length && document.getElementById("#button_load_bak2") != null) { - document.getElementById("button_load_bak2").classList.remove("disabled"); - } else { - document.getElementById("button_load_bak2").classList.add("disabled"); - } - - if (bak3.length && document.getElementById("#button_load_bak3") != null) { - document.getElementById("button_load_bak3").classList.remove("disabled"); - } else { - document.getElementById("button_load_bak3").classList.add("disabled"); - } - - }); - } - - RefreshGUI(); - }); +function Toolbar_RestoreToolbarSearchFilter() { // RESTORE LAST USED SEARCH TYPE (URL OR TITLE) IN TOOLBAR SEARCH + chrome.runtime.sendMessage({command: "get_search_filter", windowId: tt.CurrentWindowId}, function(response) { + if (response == "url") { + DOM_SetClasses(document.getElementById("button_filter_type"), ["url"], ["title"], []); + } else { + DOM_SetClasses(document.getElementById("button_filter_type"), ["title"], ["url"], []); + } + }); } -// FUNCTION TO TOGGLE SHELFS AND SAVE IT -function ShelfToggle(mousebutton, button, toolbarId, SendMessage) { - if (mousebutton == 1) { - if (button.classList.contains("on")) { - document.querySelectorAll(".on").forEach(function(s){ - s.classList.remove("on"); - }); - document.querySelectorAll(".toolbar_shelf").forEach(function(s){ - s.classList.add("hidden"); - }); - } else { - document.querySelectorAll(".toolbar_shelf:not(#"+toolbarId+")").forEach(function(s){ - s.classList.add("hidden"); - }); - document.getElementById(toolbarId).classList.remove("hidden"); - chrome.runtime.sendMessage({command: "set_active_shelf", active_shelf: SendMessage, windowId: tt.CurrentWindowId}); - document.querySelectorAll(".on:not(#"+button.id+")").forEach(function(s){ - s.classList.remove("on"); - }); - button.classList.add("on"); - } - RefreshGUI(); - } +function Toolbar_RestoreToolbarShelf() { // RESTORE LAST ACTIVE SHELF (SEARCH, TOOLS, GROUPS, SESSION OR FOLDER) IN TOOLBAR + chrome.runtime.sendMessage({command: "get_active_shelf", windowId: tt.CurrentWindowId}, function(response) { + let filterBox = document.getElementById("filter_box"); + filterBox.setAttribute("placeholder", labels.searchbox); + filterBox.style.opacity = "1"; + + let query = document.querySelectorAll(".on"); + for (let s of query) { + s.classList.remove("on"); + } + query = document.querySelectorAll(".toolbar_shelf"); + for (let s of query) { + s.classList.add("hidden"); + } + if (response == "search" && document.getElementById("button_search") != null) { + document.getElementById("toolbar_search").classList.remove("hidden"); + document.getElementById("button_search").classList.add("on"); + } + if (response == "tools" && document.getElementById("button_tools") != null) { + document.getElementById("toolbar_shelf_tools").classList.remove("hidden"); + document.getElementById("button_tools").classList.add("on"); + } + if (response == "groups" && document.getElementById("button_groups") != null) { + document.getElementById("toolbar_shelf_groups").classList.remove("hidden"); + document.getElementById("button_groups").classList.add("on"); + } + if (response == "backup" && document.getElementById("button_backup") != null) { + document.getElementById("toolbar_shelf_backup").classList.remove("hidden"); + document.getElementById("button_backup").classList.add("on"); + } + if (response == "folders" && document.getElementById("button_folders") != null) { + document.getElementById("toolbar_shelf_folders").classList.remove("hidden"); + document.getElementById("button_folders").classList.add("on"); + } + if (browserId != "F") { + chrome.storage.local.get(null, function(storage) { + let bak1 = storage["windows_BAK1"] ? storage["windows_BAK1"] : []; + let bak2 = storage["windows_BAK2"] ? storage["windows_BAK2"] : []; + let bak3 = storage["windows_BAK3"] ? storage["windows_BAK3"] : []; + if (bak1.length && document.getElementById("#button_load_bak1") != null) { + document.getElementById("button_load_bak1").classList.remove("disabled"); + } else { + document.getElementById("button_load_bak1").classList.add("disabled"); + } + if (bak2.length && document.getElementById("#button_load_bak2") != null) { + document.getElementById("button_load_bak2").classList.remove("disabled"); + } else { + document.getElementById("button_load_bak2").classList.add("disabled"); + } + if (bak3.length && document.getElementById("#button_load_bak3") != null) { + document.getElementById("button_load_bak3").classList.remove("disabled"); + } else { + document.getElementById("button_load_bak3").classList.add("disabled"); + } + }); + } + DOM_RefreshGUI(); + }); } -function RemoveToolbar() { - let toolbar = document.getElementById("toolbar"); - while(toolbar.hasChildNodes()) { - toolbar.removeChild(toolbar.firstChild); - } +function Toolbar_ShelfToggle(mousebutton, button, toolbarId, SendMessage, SidebarRefreshGUI, OptionsRefreshGUI) { // FUNCTION TO TOGGLE SHELFS AND SAVE IT + if (mousebutton == 1) { + if (button.classList.contains("on")) { + let query = document.querySelectorAll(".on"); + for (let s of query) { + s.classList.remove("on"); + } + query = document.querySelectorAll(".toolbar_shelf"); + for (let s of query) { + s.classList.add("hidden"); + } + chrome.runtime.sendMessage({command: "set_active_shelf", active_shelf: "", windowId: tt.CurrentWindowId}); + } else { + let query = document.querySelectorAll(".toolbar_shelf:not(#" + toolbarId + ")"); + for (let s of query) { + s.classList.add("hidden"); + } + document.getElementById(toolbarId).classList.remove("hidden"); + chrome.runtime.sendMessage({command: "set_active_shelf", active_shelf: SendMessage, windowId: tt.CurrentWindowId}); + query = document.querySelectorAll(".on:not(#" + button.id + ")"); + for (let s of query) { + s.classList.remove("on"); + } + button.classList.add("on"); + } + if (SidebarRefreshGUI) DOM_RefreshGUI(); + if (OptionsRefreshGUI) RefreshGUI(); + } } -function RecreateToolbar(NewToolbar) { - let toolbar = document.getElementById("toolbar"); - - for (var shelf in NewToolbar) { - let NewShelf = document.createElement("div"); - NewShelf.id = shelf; - NewShelf.classList = "toolbar_shelf"; - toolbar.appendChild(NewShelf); - - NewToolbar[shelf].forEach(function(button){ - let Newbutton = document.createElement("div"); - Newbutton.id = button; - Newbutton.classList = "button"; - - NewShelf.appendChild(Newbutton); - - let NewbuttonIMG = document.createElement("div"); - NewbuttonIMG.classList = "button_img"; - Newbutton.appendChild(NewbuttonIMG); - - }); - - } - - let toolbar_main = document.getElementById("toolbar_main"); - let SearchShelf = document.getElementById("toolbar_search"); - - if (toolbar_main != null && SearchShelf != null) { - toolbar_main.classList.remove("toolbar_shelf"); - - let SearchBox = document.createElement("div"); - SearchBox.id = "toolbar_search_input_box"; - SearchShelf.appendChild(SearchBox); - - let SearchInput = document.createElement("input"); - SearchInput.classList = "text_input"; - SearchInput.id = "filter_box"; - SearchInput.type = "text"; - SearchInput.placeholder = labels.searchbox; - SearchBox.appendChild(SearchInput); - - let ClearX = document.createElement("div"); - ClearX.id = "button_filter_clear"; - ClearX.type = "reset"; - ClearX.style.opacity = "0"; - ClearX.style.position = "absolute"; - SearchBox.appendChild(ClearX); - - let SearchButtons = document.createElement("div"); - SearchButtons.id = "toolbar_search_buttons"; - SearchShelf.appendChild(SearchButtons); - - let FilterType = document.getElementById("button_filter_type"); - SearchButtons.appendChild(FilterType); - - let GoPrev = document.getElementById("filter_search_go_prev"); - SearchButtons.appendChild(GoPrev); - - let GoNext = document.getElementById("filter_search_go_next"); - SearchButtons.appendChild(GoNext); - - Loadi18n(); - } - +function Toolbar_RemoveToolbar() { + let toolbar = document.getElementById("toolbar"); + while (toolbar.hasChildNodes()) { + toolbar.removeChild(toolbar.firstChild); + } } -function RecreateToolbarUnusedButtons(buttonsIds) { - let unused_buttons = document.getElementById("toolbar_unused_buttons"); - - buttonsIds.forEach(function(button){ - let Newbutton = document.createElement("div"); - Newbutton.id = button; - Newbutton.classList = "button"; - unused_buttons.appendChild(Newbutton); - let NewbuttonIMG = document.createElement("div"); - NewbuttonIMG.classList = "button_img"; - Newbutton.appendChild(NewbuttonIMG); - - }); +function Toolbar_RecreateToolbar(NewToolbar) { + let toolbar = document.getElementById("toolbar"); + for (var shelf in NewToolbar) { + let NewShelf = DOM_New("div", toolbar, {id: shelf, className: "toolbar_shelf"}); + for (let button of NewToolbar[shelf]) { + let Newbutton = DOM_New("div", NewShelf, {id: button, className: "button"}); + DOM_New("div", Newbutton, {className: "button_img"}); + } + } + let toolbar_main = document.getElementById("toolbar_main"); + let SearchShelf = document.getElementById("toolbar_search"); + if (toolbar_main != null && SearchShelf != null) { + toolbar_main.classList.remove("toolbar_shelf"); + let SearchBox = DOM_New("div", SearchShelf, {id: "toolbar_search_input_box"}); + DOM_New("input", SearchBox, {id: "filter_box", className: "text_input", type: "text", placeholder: labels.searchbox}); + DOM_New("div", SearchBox, {id: "button_filter_clear", type: "reset"}, {opacity: "0", position: "absolute"}); + let SearchButtons = DOM_New("div", SearchShelf, {id: "toolbar_search_buttons"}); + DOM_AppendToNode(document.getElementById("button_filter_type"), SearchButtons); + DOM_AppendToNode(document.getElementById("filter_search_go_prev"), SearchButtons); + DOM_AppendToNode(document.getElementById("filter_search_go_next"), SearchButtons); + DOM_Loadi18n(); + } } - - -function SaveToolbar() { - let unused_buttons = []; - let toolbar = {}; - - let u = document.querySelectorAll("#toolbar_unused_buttons .button"); - u.forEach(function(b){ - unused_buttons.push(b.id); - }); - - let t = document.getElementById("toolbar"); - t.childNodes.forEach(function(s){ - toolbar[s.id] = []; - let t = document.querySelectorAll("#"+s.id+" .button").forEach(function(b){ - toolbar[s.id].push(b.id); - }); - }); - - chrome.storage.local.set({toolbar: toolbar}); - chrome.storage.local.set({unused_buttons: unused_buttons}); - setTimeout(function() { - chrome.runtime.sendMessage({command: "reload_toolbar", toolbar: toolbar, opt: opt}); - }, 50); +function Toolbar_RecreateToolbarUnusedButtons(buttonsIds) { // OPTIONS PAGE + let unused_buttons = document.getElementById("toolbar_unused_buttons"); + for (let button of buttonsIds) { + let Newbutton = DOM_New("div", unused_buttons, {id: button, className: "button"}); + DOM_New("div", Newbutton, {className: "button_img"}); + } } +function Toolbar_SaveToolbar() { // OPTIONS PAGE + let unused_buttons = []; + let toolbar = {}; + let unused_buttons_div = document.querySelectorAll("#toolbar_unused_buttons .button"); + for (let b of unused_buttons_div) { + unused_buttons.push(b.id); + } + let toolbar_div = document.getElementById("toolbar"); + for (let toolbar_shelf of toolbar_div.childNodes) { + toolbar[toolbar_shelf.id] = []; + let query = document.querySelectorAll("#" + toolbar_shelf.id + " .button"); + for (let button of query) { + toolbar[toolbar_shelf.id].push(button.id); + } + } + chrome.storage.local.set({toolbar: toolbar}); + chrome.storage.local.set({unused_buttons: unused_buttons}); + setTimeout(function() {chrome.runtime.sendMessage({command: "reload_toolbar", toolbar: toolbar, opt: opt});}, 50); +} -// ASSIGN MOUSE EVENTS FOR TOOLBAR BUTTONS, (Buttons AND ToolbarShelfToggle), PARAMETERS DECIDE IF BUTTONS ARE CLICKABLE +// ASSIGN MOUSE EVENTS FOR TOOLBAR BUTTONS, (Buttons AND BindToolbarShelfToggleButtons), PARAMETERS DECIDE IF BUTTONS ARE CLICKABLE // IN OPTIONS PAGE - TOOLBAR BUTTONS SAMPLES, MUST NOT CALL FUNCTIONS ON CLICKS, BUT STILL SHELFS BUTTONS MUST TOGGLE AND MOREOVER ON CLICK AND NOT ON MOUSEDOWN THIS IS WHERE ToolbarShelfToggleClickType="Click" IS NECESSARY -function SetToolbarEvents(CleanPreviousBindings, Buttons, ToolbarShelfToggle, ToolbarShelfToggleClickType) { +function Toolbar_SetToolbarEvents(CleanPreviousBindings, BindButtons, BindToolbarShelfToggleButtons, ToolbarShelfToggleClickType, SidebarRefreshGUI, OptionsRefreshGUI) { - let ClearSearch = document.getElementById("button_filter_clear"); - let FilterBox = document.getElementById("filter_box"); - - if (ClearSearch != null && FilterBox != null) { - if (CleanPreviousBindings) { - FilterBox.removeEventListener("oninput", function(){}); - ClearSearch.removeEventListener("onmousedown", function(){}); - } - if (Buttons) { - // FILTER ON INPUT - FilterBox.oninput = function(event) { - FindTab(this.value); - } - // CLEAR FILTER BUTTON - ClearSearch.onmousedown = function(event) { - if (event.which == 1) { - this.style.opacity = "0"; - this.style.opacity = "0"; - this.setAttribute("title", ""); - FindTab(""); - } - } - } - } + let ClearSearch = document.getElementById("button_filter_clear"); + let FilterBox = document.getElementById("filter_box"); - document.querySelectorAll(".button").forEach(function(s){ - - if (CleanPreviousBindings) { - s.removeEventListener("onmousedown", function(){}); - s.removeEventListener("onclick", function(){}); - s.removeEventListener("click", function(){}); - } - - if (ToolbarShelfToggle) { - if (s.id == "button_search") { - s.addEventListener(ToolbarShelfToggleClickType, function(event) { - if (event.which == 1) { - ShelfToggle(event.which, this, "toolbar_search", "search"); - } - }); - } - if (s.id == "button_tools") { - s.addEventListener(ToolbarShelfToggleClickType, function(event) { - if (event.which == 1) { - ShelfToggle(event.which, this, "toolbar_shelf_tools", "tools"); - } - }); - } - if (s.id == "button_groups") { - s.addEventListener(ToolbarShelfToggleClickType, function(event) { - if (event.which == 1) { - ShelfToggle(event.which, this, "toolbar_shelf_groups", "groups"); - } - }); - } - if (s.id == "button_backup") { - s.addEventListener(ToolbarShelfToggleClickType, function(event) { - if (event.which == 1) { - ShelfToggle(event.which, this, "toolbar_shelf_backup", "backup"); - } - }); - } - if (s.id == "button_folders") { - s.addEventListener(ToolbarShelfToggleClickType, function(event) { - if (event.which == 1) { - ShelfToggle(event.which, this, "toolbar_shelf_folders", "folders"); - } - }); - } - } - - if (Buttons) { - // NEW TAB - if (s.id == "button_new") { - s.onclick = function(event) { - if (event.which == 1) { - if (opt.append_tab_from_toolbar == "group_root") { - OpenNewTab(false, tt.active_group); - } - if (opt.append_tab_from_toolbar == "as_regular_orphan") { - OpenNewTab(false, (document.querySelectorAll("#"+tt.active_group+" .tab").length == 0 ? tt.active_group : undefined)); - } - } - } - s.onmousedown = function(event) { - // DUPLICATE TAB - if (event.which == 2) { - event.preventDefault(); - let activeTab = document.querySelector("#"+tt.active_group+" .active_tab") != null ? document.querySelector("#"+tt.active_group+" .active_tab") : document.querySelector(".pin.active_tab") != null ? document.querySelector(".pin.active_tab") : null; - if (activeTab != null) { - DuplicateTab(activeTab); - } - } - // SCROLL TO TAB - if (event.which == 3) { - chrome.tabs.query({currentWindow: true, active: true}, function(activeTab) { - if (activeTab[0].pinned && opt.pin_list_multi_row == false) { - ScrollToTab(activeTab[0].id); - } - if (activeTab[0].pinned == false) { - let Tab = document.getElementById(activeTab[0].id); - let groupId = GetParentsByClass(Tab, "group")[0].id; - SetActiveGroup(groupId, true, true); - } - }); - } - } - } - // PIN TAB - if (s.id == "button_pin") { - s.onmousedown = function(event) { - if (event.which == 1) { - let Tabs = document.querySelectorAll(".pin.active_tab, .pin.selected_tab, #"+tt.active_group+" .active_tab, #"+tt.active_group+" .selected_tab"); - Tabs.forEach(function(s){ - chrome.tabs.update(parseInt(s.id), { pinned: Tabs[0].classList.contains("tab") }); - }) - } - } - } - // VERTICAL TABS OPTIONS - if (s.id == "button_options") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.tabs.create({url: "options.html"}); - } - } - } + if (ClearSearch != null && FilterBox != null) { + if (CleanPreviousBindings) { + FilterBox.removeEventListener("oninput", function() {}); + ClearSearch.removeEventListener("onmousedown", function() {}); + } + if (BindButtons) { + // FILTER ON INPUT + FilterBox.oninput = function(event) { + Tabs_FindTab(this.value); + } + // CLEAR FILTER BUTTON + ClearSearch.onmousedown = function(event) { + if (event.which == 1) { + this.style.opacity = "0"; + this.setAttribute("title", ""); + Tabs_FindTab(""); + } + } + } + } - // UNDO CLOSE - if (s.id == "button_undo") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.sessions.getRecentlyClosed( null, function(sessions) { - if (sessions.length > 0) { - chrome.sessions.restore(null, function(restored) {}); - } - }); - } - } - } - - // MOVE TAB TO NEW WINDOW (DETACH) - if (s.id == "button_detach" || s.id == "button_move") { // move is legacy name of detach button - s.onmousedown = function(event) { - if (event.which == 1) { - if (document.querySelectorAll("#"+tt.active_group+" .selected_folder").length > 0){ - let detach = GetSelectedFolders(); - Detach(detach.TabsIds, detach.Folders); - } else { - let tabsArr = []; - document.querySelectorAll(".pin.selected_tab, .pin.active_tab, #"+tt.active_group+" .selected_tab, #"+tt.active_group+" .active_tab").forEach(function(s){ - tabsArr.push(parseInt(s.id)); - if (s.childNodes[1].childNodes.length > 0) { - document.querySelectorAll("#"+s.childNodes[1].id+" .tab").forEach(function(t){ - tabsArr.push(parseInt(t.id)); - }); - } - }); - Detach(tabsArr); - } - } - } - } - - // GO TO PREVIOUS SEARCH RESULT - if (s.id == "filter_search_go_prev") { - s.onmousedown = function(event) { - if (event.which == 1) { - let filtered = document.querySelectorAll("#"+tt.active_group+" .tab.filtered"); - if (filtered.length > 0) { - document.querySelectorAll(".highlighted_search").forEach(function(s){ - s.classList.remove("highlighted_search"); - }); - if (tt.SearchIndex == 0) { - tt.SearchIndex = filtered.length-1; - } else { - tt.SearchIndex--; - } - filtered[tt.SearchIndex].classList.add("highlighted_search"); - ScrollToTab(filtered[tt.SearchIndex].id); - } - } - } - } - - // GO TO NEXT SEARCH RESULT - if (s.id == "filter_search_go_next") { - s.onmousedown = function(event) { - if (event.which == 1) { - let filtered = document.querySelectorAll("#"+tt.active_group+" .tab.filtered"); - if (filtered.length > 0) { - document.querySelectorAll(".highlighted_search").forEach(function(s){ - s.classList.remove("highlighted_search"); - }); - if (tt.SearchIndex == filtered.length-1) { - tt.SearchIndex = 0; - } else { - tt.SearchIndex++; - } - filtered[tt.SearchIndex].classList.add("highlighted_search"); - ScrollToTab(filtered[tt.SearchIndex].id); - } - } - } - } - - // SHOW/HIDE GROUPS TOOLBAR - if (s.id == "button_groups_toolbar_hide") { - s.onmousedown = function(event) { - if (event.which == 1) { - GroupsToolbarToggle(); - } - } - } - - // SHOW GROUP MANAGER - if (s.id == "button_manager_window") { - s.onmousedown = function(event) { - if (event.which == 1 && document.getElementById("manager_window").style.top == "-500px") { - OpenManagerWindow(); - } else { - HideRenameDialogs(); - } - } - } - // NEW GROUP - if (s.id == "button_new_group") { - s.onmousedown = function(event) { - if (event.which == 1) { - AddNewGroup(); - } - } - } - - // REMOVE GROUP - if (s.id == "button_remove_group") { - s.onmousedown = function(event) { - if (event.which == 1) { - if (tt.active_group != "tab_list") { - GroupRemove(tt.active_group, event.shiftKey); - } - } - } - } - - - - // EDIT GROUP - if (s.id == "button_edit_group") { - s.onmousedown = function(event) { - if (event.which == 1) { - if (tt.active_group != "tab_list") { - ShowGroupEditWindow(tt.active_group); - } - } - } - } - - // EXPORT GROUP - if (s.id == "button_export_group") { - s.onmousedown = function(event) { - if (event.which == 1) { - ExportGroup(tt.active_group, tt.groups[tt.active_group].name, false); - } - } - } - - // IMPORT GROUP - if (s.id == "button_import_group") { - s.onmousedown = function(event) { - if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".tt_group"); - inputFile.onchange = function(event) { - ImportGroup(true, false); - } - } - } - } - - // NEW FOLDER - if (s.id == "button_new_folder") { - s.onmousedown = function(event) { - if (event.which == 1) { - let FolderId = AddNewFolder({SetEvents: true}); - ShowRenameFolderDialog(FolderId); - } - } - } - - // RENAME FOLDER - if (s.id == "button_edit_folder") { - s.onmousedown = function(event) { - if (event.which == 1) { - if (document.querySelectorAll("#"+tt.active_group+" .selected_folder").length > 0) { - ShowRenameFolderDialog(document.querySelectorAll("#"+tt.active_group+" .selected_folder")[0].id); - } - } - } - } - // REMOVE FOLDERS - if (s.id == "button_remove_folder") { - s.onmousedown = function(event) { - if (event.which == 1) { - document.querySelectorAll("#"+tt.active_group+" .selected_folder").forEach(function(s){ - RemoveFolder(s.id); - }); - } - } - } - // DISCARD TABS - if (s.id == "button_unload" || s.id == "button_discard") { - s.onmousedown = function(event) { - if (event.which == 1) { - if (document.querySelectorAll(".pin.selected_tab:not(.active_tab), #"+tt.active_group+" .selected_tab:not(.active_tab)").length > 0) { - DiscardTabs( - Array.prototype.map.call(document.querySelectorAll(".pin:not(.active_tab), #"+tt.active_group+" .selected_tab:not(.active_tab)"), function(s){ - return parseInt(s.id); - }) - ); - } else { - DiscardTabs( - Array.prototype.map.call(document.querySelectorAll(".pin:not(.active_tab), .tab:not(.active_tab)"), function(s){ - return parseInt(s.id); - }) - ); - } - } - } - } - // IMPORT BACKUP - if (s.id == "button_import_bak") { - s.onmousedown = function(event) { - if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".tt_session"); - inputFile.onchange = function(event) { - ImportSession(true, false, false); - } - } - } - } - // EXPORT BACKUP - if (s.id == "button_export_bak") { - s.onmousedown = function(event) { - if (event.which == 1) { - let d = new Date(); - ExportSession((d.toLocaleString().replace("/", ".").replace("/", ".").replace(":", "꞉").replace(":", "꞉")), true, false, false); - } - } - } - // MERGE BACKUP - if (s.id == "button_import_merge_bak") { - s.onmousedown = function(event) { - if (event.which == 1) { - let inputFile = ShowOpenFileDialog(".tt_session"); - inputFile.onchange = function(event) { - ImportSession(false, false, true); - // ImportMergeTabs(); - } - } - } - } - - // CHANGE FILTERING TYPE - if (s.id == "button_filter_type") { - s.onmousedown = function(event) { - if (event.which == 1) { - if (this.classList.contains("url")) { - this.classList.remove("url"); - this.classList.add("title"); - chrome.runtime.sendMessage({command: "set_search_filter", search_filter: "title", windowId: tt.CurrentWindowId}); - } else { - this.classList.remove("title"); - this.classList.add("url"); - chrome.runtime.sendMessage({command: "set_search_filter", search_filter: "url", windowId: tt.CurrentWindowId}); - } - FindTab(document.getElementById("filter_box").value); - } - } - } - - // EMERGENCY RELOAD - if (s.id == "button_reboot") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.runtime.sendMessage({command: "reload"}); - chrome.runtime.sendMessage({command: "reload_sidebar"}); - location.reload(); - } - } - } - - // SORT TABS - // if (s.id == "button_sort") { - // s.onmousedown = function(event) { - // if (event.which == 1) { - // SortTabs(); - // } - // } - // } - // REPEAT SEARCH - // if (s.id == "repeat_search") { - // s.onmousedown = function(event) { - // if (event.which == 1) { - // FindTab(document.getElementById("filter_box").value); - // } - // } - // } - - - if (browserId != "F") { - // BOOKMARKS - if (s.id == "button_bookmarks") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.tabs.create({url: "chrome://bookmarks/"}); - } - } - } - - // DOWNLOADS - if (s.id == "button_downloads") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.tabs.create({url: "chrome://downloads/"}); - } - } - } - - // HISTORY - if (s.id == "button_history") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.tabs.create({url: "chrome://history/"}); - } - } - } - - // EXTENSIONS - if (s.id == "button_extensions") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.tabs.create({url: "chrome://extensions"}); - } - } - } - - // SETTINGS - if (s.id == "button_settings") { - s.onmousedown = function(event) { - if (event.which == 1) { - chrome.tabs.create({url: "chrome://settings/"}); - } - } - } - - // LOAD BACKUPS - if (s.id == "button_load_bak1" || s.id == "button_load_bak2" || s.id == "button_load_bak3") { - s.onmousedown = function(event) { - if (event.which == 1 && this.classList.contains("disabled") == false) { - let BakN = (this.id).substr(15); - chrome.storage.local.get(null, function(storage) { - if (Object.keys(storage["windows_BAK"+BakN]).length > 0) { chrome.storage.local.set({"windows": storage["windows_BAK"+BakN]}); } - if (Object.keys(storage["tabs_BAK"+BakN]).length > 0) { chrome.storage.local.set({"tabs": storage["tabs_BAK"+BakN]}); alert("Loaded backup"); } - chrome.runtime.sendMessage({command: "reload"}); chrome.runtime.sendMessage({command: "reload_sidebar"}); location.reload(); - }); - } - } - } - } - } - - }); - -} \ No newline at end of file + let query = document.querySelectorAll(".button"); + for (let s of query) { + if (CleanPreviousBindings) { + s.removeEventListener("onmousedown", function() {}); + s.removeEventListener("onclick", function() {}); + s.removeEventListener("click", function() {}); + } + if (BindToolbarShelfToggleButtons) { + if (s.id == "button_search") { + s.addEventListener(ToolbarShelfToggleClickType, function(event) { + if (event.which == 1) Toolbar_ShelfToggle(event.which, this, "toolbar_search", "search", SidebarRefreshGUI, OptionsRefreshGUI); + }); + } + if (s.id == "button_tools") { + s.addEventListener(ToolbarShelfToggleClickType, function(event) { + if (event.which == 1) Toolbar_ShelfToggle(event.which, this, "toolbar_shelf_tools", "tools", SidebarRefreshGUI, OptionsRefreshGUI); + }); + } + if (s.id == "button_groups") { + s.addEventListener(ToolbarShelfToggleClickType, function(event) { + if (event.which == 1) Toolbar_ShelfToggle(event.which, this, "toolbar_shelf_groups", "groups", SidebarRefreshGUI, OptionsRefreshGUI); + }); + } + if (s.id == "button_backup") { + s.addEventListener(ToolbarShelfToggleClickType, function(event) { + if (event.which == 1) Toolbar_ShelfToggle(event.which, this, "toolbar_shelf_backup", "backup", SidebarRefreshGUI, OptionsRefreshGUI); + }); + } + if (s.id == "button_folders") { + s.addEventListener(ToolbarShelfToggleClickType, function(event) { + if (event.which == 1) Toolbar_ShelfToggle(event.which, this, "toolbar_shelf_folders", "folders", SidebarRefreshGUI, OptionsRefreshGUI); + }); + } + } + if (BindButtons) { + if (s.id == "button_new") { // NEW TAB + s.onclick = function(event) { + if (event.which == 1) { + if (opt.append_tab_from_toolbar == "group_root") Tabs_OpenNewTab(false, undefined, document.getElementById("°"+tt.active_group)); + if (opt.append_tab_from_toolbar == "as_regular_orphan") Tabs_OpenNewTab(false, undefined, undefined); + } + } + s.onmousedown = function(event) { + if (event.which == 2) { // DUPLICATE TAB + event.preventDefault(); + let activeTab = document.querySelector("#" + tt.active_group + " .active_tab") != null ? document.querySelector("#" + tt.active_group + " .active_tab") : document.querySelector(".pin.active_tab") != null ? document.querySelector(".pin.active_tab") : null; + if (activeTab != null && tt.tabs[activeTab.id]) tt.tabs[activeTab.id].DuplicateTab(); + } + if (event.which == 3) { // SCROLL TO TAB + chrome.tabs.query({currentWindow: true, active: true}, function(activeTab) { + if (activeTab[0].pinned && opt.pin_list_multi_row == false && tt.tabs[activeTab[0].id]) tt.tabs[activeTab[0].id].ScrollToTab(); + if (activeTab[0].pinned == false) { + let Tab = document.getElementById(activeTab[0].id); + let groupId = DOM_GetParentsByClass(Tab, "group")[0].id; + Groups_SetActiveGroup(groupId, true, true); + } + }); + } + } + } + if (s.id == "button_pin") { // PIN TAB + s.onmousedown = function(event) { + if (event.which == 1) { + let Tabs = document.querySelectorAll(".pin.active_tab, .pin.selected, #" + tt.active_group + " .active_tab, #" + tt.active_group + " .selected"); + for (let s of Tabs) { + chrome.tabs.update(parseInt(s.id), {pinned: Tabs[0].classList.contains("tab")}); + } + } + } + } + if (s.id == "button_options") { // VERTICAL TABS OPTIONS + s.onmousedown = function(event) { + if (event.which == 1) chrome.tabs.create({url: "options/options.html"}); + } + } + if (s.id == "button_undo") { // UNDO CLOSE + s.onmousedown = function(event) { + if (event.which == 1) { + chrome.sessions.getRecentlyClosed(null, function(sessions) { + if (sessions.length > 0) chrome.sessions.restore(null, function(restored) {}); + }); + } + } + } + if (s.id == "button_detach" || s.id == "button_move") { // MOVE TAB TO NEW WINDOW (DETACH), move is legacy name of detach button + s.onmousedown = function(event) { + if (event.which == 1) { + DOM_FreezeSelection(false); + let Nodes = []; + let NodesTypes = {DraggingPin: false, DraggingTab: false, DraggingFolder: false}; + let query = []; + if (document.querySelectorAll(".selected").length > 0) { + query = document.querySelectorAll(".selected, .selected .tab, .selected .folder"); + } else { + query = document.querySelectorAll(".active_tab"); + } + for (let s of query) { + if (s.classList.contains("pin")) { + NodesTypes.DraggingPin = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "pin"}); + } + if (s.classList.contains("tab")) { + NodesTypes.DraggingTab = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "tab"}); + } + if (s.classList.contains("folder")) { + NodesTypes.DraggingFolder = true; + Nodes.push({id: s.id, parent: s.parentNode.id, selected: s.classList.contains("selected"), temporary: s.classList.contains("selected_temporarly"), NodeClass: "folder", index: (tt.folders[s.id] ? tt.folders[s.id].index : 0), name: (tt.folders[s.id] ? tt.folders[s.id].name : labels.noname_group), expand: (tt.folders[s.id] ? tt.folders[s.id].expand : "")}); + } + } + Tabs_Detach(Nodes, NodesTypes, {}); + } + } + } + if (s.id == "filter_search_go_prev") { // GO TO PREVIOUS SEARCH RESULT + s.onmousedown = function(event) { + if (event.which == 1) { + let filtered = document.querySelectorAll("#" + tt.active_group + " .tab.filtered"); + if (filtered.length > 0) { + + let query = document.querySelectorAll(".highlighted_search"); + for (let s of query) { + s.classList.remove("highlighted_search"); + } + if (tt.SearchIndex == 0) { + tt.SearchIndex = filtered.length - 1; + } else { + tt.SearchIndex--; + } + filtered[tt.SearchIndex].classList.add("highlighted_search"); + if (tt.tabs[filtered[tt.SearchIndex].id]) tt.tabs[filtered[tt.SearchIndex].id].ScrollToTab(); + } + } + } + } + if (s.id == "filter_search_go_next") { // GO TO NEXT SEARCH RESULT + s.onmousedown = function(event) { + if (event.which == 1) { + let filtered = document.querySelectorAll("#" + tt.active_group + " .tab.filtered"); + if (filtered.length > 0) { + + let query = document.querySelectorAll(".highlighted_search"); + for (let s of query) { + s.classList.remove("highlighted_search"); + } + if (tt.SearchIndex == filtered.length - 1) { + tt.SearchIndex = 0; + } else { + tt.SearchIndex++; + } + filtered[tt.SearchIndex].classList.add("highlighted_search"); + if (tt.tabs[filtered[tt.SearchIndex].id]) tt.tabs[filtered[tt.SearchIndex].id].ScrollToTab(); + } + } + } + } + if (s.id == "button_groups_toolbar_hide") { // SHOW/HIDE GROUPS TOOLBAR + s.onmousedown = function(event) { + if (event.which == 1) Groups_GroupsToolbarToggle(); + } + } + if (s.id == "button_manager_window") { // SHOW GROUP MANAGER + s.onmousedown = function(event) { + if (event.which == 1 && document.getElementById("manager_window").style.top == "-500px") { + Manager_OpenManagerWindow(); + } else { + DOM_HideRenameDialogs(); + } + } + } + if (s.id == "button_new_group") { // NEW GROUP + s.onmousedown = function(event) { + if (event.which == 1) { + let NewGroupId = Groups_AddNewGroup(); + Groups_ShowGroupEditWindow(NewGroupId); + } + } + } + if (s.id == "button_remove_group") { // REMOVE GROUP + s.onmousedown = function(event) { + if (event.which == 1) { + if (tt.active_group != "tab_list") Groups_GroupRemove(tt.active_group, event.shiftKey); + } + } + } + if (s.id == "button_edit_group") { // EDIT GROUP + s.onmousedown = function(event) { + if (event.which == 1) { + if (tt.active_group != "tab_list") Groups_ShowGroupEditWindow(tt.active_group); + } + } + } + if (s.id == "button_export_group") { // EXPORT GROUP + s.onmousedown = function(event) { + if (event.which == 1) Manager_ExportGroup(tt.active_group, tt.groups[tt.active_group].name, false); + } + } + if (s.id == "button_import_group") { // IMPORT GROUP + s.onmousedown = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".tt_group"); + inputFile.onchange = function(event) { + Manager_ImportGroup(true, false); + } + } + } + } + if (s.id == "button_new_folder") { // NEW FOLDER + s.onmousedown = function(event) { + if (event.which == 1) { + let FolderId = Folders_AddNewFolder({}); + Folders_ShowRenameFolderDialog(FolderId); + } + } + } + if (s.id == "button_edit_folder") { // RENAME FOLDER + s.onmousedown = function(event) { + if (event.which == 1) { + if (document.querySelectorAll("#" + tt.active_group + " .selected").length > 0) Folders_ShowRenameFolderDialog(document.querySelectorAll("#" + tt.active_group + " .selected")[0].id); + } + } + } + if (s.id == "button_remove_folder") { // REMOVE FOLDERS + s.onmousedown = function(event) { + if (event.which == 1) { + + let query = document.querySelectorAll("#" + tt.active_group + " .selected"); + for (let s of query) { + Folders_RemoveFolder(s.id); + } + } + } + } + if (s.id == "button_unload" || s.id == "button_discard") { // DISCARD TABS + s.onmousedown = function(event) { + if (event.which == 1) { + if (document.querySelectorAll(".pin.selected:not(.active_tab), #" + tt.active_group + " .selected:not(.active_tab)").length > 0) { + Tabs_DiscardTabs( + Array.prototype.map.call(document.querySelectorAll(".pin:not(.active_tab), #" + tt.active_group + " .selected:not(.active_tab)"), function(s) { + return parseInt(s.id); + }) + ); + } else { + Tabs_DiscardTabs( + Array.prototype.map.call(document.querySelectorAll(".pin:not(.active_tab), .tab:not(.active_tab)"), function(s) { + return parseInt(s.id); + }) + ); + } + } + } + } + if (s.id == "button_import_bak") { // IMPORT BACKUP + s.onmousedown = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".tt_session"); + inputFile.onchange = function(event) { + Manager_ImportSession(true, false, false); + } + } + } + } + if (s.id == "button_export_bak") { // EXPORT BACKUP + s.onmousedown = function(event) { + if (event.which == 1) { + let d = new Date(); + Manager_ExportSession((d.toLocaleString().replace(/\//g, ".").replace(/:/g, "꞉")), true, false, false); + } + } + } + if (s.id == "button_import_merge_bak") { // MERGE BACKUP + s.onmousedown = function(event) { + if (event.which == 1) { + let inputFile = File_ShowOpenFileDialog(".tt_session"); + inputFile.onchange = function(event) { + Manager_ImportSession(false, false, true); + // Manager_ImportMergeTabs(); + } + } + } + } + if (s.id == "button_filter_type") { // CHANGE FILTERING TYPE + s.onmousedown = function(event) { + if (event.which == 1) { + if (this.classList.contains("url")) { + DOM_SetClasses(this, ["title"], ["url"], []); + chrome.runtime.sendMessage({command: "set_search_filter", search_filter: "title", windowId: tt.CurrentWindowId}); + } else { + DOM_SetClasses(this, ["url"], ["title"], []); + chrome.runtime.sendMessage({command: "set_search_filter", search_filter: "url", windowId: tt.CurrentWindowId}); + } + Tabs_FindTab(document.getElementById("filter_box").value); + } + } + } + if (s.id == "button_reboot") { // EMERGENCY RELOAD + s.onmousedown = function(event) { + if (event.which == 1) { + chrome.runtime.sendMessage({command: "reload"}); + chrome.runtime.sendMessage({command: "reload_sidebar"}); + location.reload(); + } + } + } + if (browserId != "F") { + if (s.id == "button_bookmarks") { // BOOKMARKS + s.onmousedown = function(event) { + if (event.which == 1) chrome.tabs.create({url: "chrome://bookmarks/"}); + } + } + if (s.id == "button_downloads") { // DOWNLOADS + s.onmousedown = function(event) { + if (event.which == 1) chrome.tabs.create({url: "chrome://downloads/"}); + } + } + if (s.id == "button_history") { // HISTORY + s.onmousedown = function(event) { + if (event.which == 1) chrome.tabs.create({url: "chrome://history/"}); + } + } + if (s.id == "button_extensions") { // EXTENSIONS + s.onmousedown = function(event) { + if (event.which == 1) chrome.tabs.create({url: "chrome://extensions"}); + } + } + if (s.id == "button_settings") { // SETTINGS + s.onmousedown = function(event) { + if (event.which == 1) chrome.tabs.create({url: "chrome://settings/"}); + } + } + if (s.id == "button_load_bak1" || s.id == "button_load_bak2" || s.id == "button_load_bak3") { // LOAD BACKUPS + s.onmousedown = function(event) { + if (event.which == 1 && this.classList.contains("disabled") == false) { + let BakN = (this.id).substr(15); + chrome.storage.local.get(null, function(storage) { + if (Object.keys(storage["windows_BAK" + BakN]).length > 0) chrome.storage.local.set({"windows": storage["windows_BAK" + BakN]}); + if (Object.keys(storage["tabs_BAK" + BakN]).length > 0) { + chrome.storage.local.set({"tabs": storage["tabs_BAK" + BakN]}); + alert("Loaded backup"); + } + chrome.runtime.sendMessage({command: "reload"}); + chrome.runtime.sendMessage({command: "reload_sidebar"}); + location.reload(); + }); + } + } + } + } + } + } +} diff --git a/scripts/utils.js b/scripts/utils.js index 6d7adf4..43166c5 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -1,401 +1,19 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ - - -function RecheckFirefox() { - chrome.tabs.query({pinned: false, currentWindow: true}, function(tabs) { - if (tabs.length > 1) { - let last_tabId = tabs[tabs.length-1].id; - let p = []; - let p_tt = []; - let t_ref = {}; - let t_ind = 0; - let ok = 0; - let ti = 0; - let tc = tabs.length; - for (ti = 0; ti < tc; ti++) { - let tabId = tabs[ti].id; - p.push(""); - p_tt.push(""); - let t = Promise.resolve(browser.sessions.getTabValue(tabId, "TTdata")).then(function(TabData) { - if (TabData != undefined) { - t_ref[TabData.ttid] = tabs[t_ind].id; - p_tt[t_ind] = TabData.parent_ttid; - p[t_ind] = TabData.parent; - } - t_ind++; - if (tabId == last_tabId) { - let i = 0; - for (i = 0; i < p.length; i++) { - if (t_ref[p_tt[i]]) { - p[i] = t_ref[p_tt[i]]; - } - } - for (i = 0; i < p.length; i++) { - let Tab = document.getElementById(tabs[i].id); - if (Tab && p[i] == Tab.parentNode.parentNode.id) { - ok++; - } - } - if (ok < tabs.length*0.5) { - if (opt.debug) { - log("emergency reload"); - } - chrome.storage.local.set({emergency_reload: true}); - chrome.runtime.sendMessage({command: "reload"}); - chrome.runtime.sendMessage({command: "reload_sidebar"}); - location.reload(); - } else { - if (opt.debug) { - log("f: RecheckFirefox, ok"); - } - } - } - }); - } - } - }); +function Utils_RGBtoHex(color) { // color in format "rgb(r,g,b)" or simply "r,g,b" (can have spaces, but must contain "," between values) + color = color.replace(/[rgb(]|\)|\s/g, ""); + color = color.split(","); + return color.map(function(v) {return ("0" + Math.min(Math.max(parseInt(v), 0), 255).toString(16)).slice(-2);}).join(""); } - -function SavePreferences() { - chrome.storage.local.set({preferences: opt}); - chrome.runtime.sendMessage({command: "reload_options", opt: opt}); +function Utils_HexToRGB(hex, alpha) { + hex = hex.replace('#', ''); + let r = parseInt(hex.length == 3 ? hex.slice(0, 1).repeat(2) : hex.slice(0, 2), 16); + let g = parseInt(hex.length == 3 ? hex.slice(1, 2).repeat(2) : hex.slice(2, 4), 16); + let b = parseInt(hex.length == 3 ? hex.slice(2, 3).repeat(2) : hex.slice(4, 6), 16); + if (alpha) { + return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')'; + } else { + return 'rgb(' + r + ', ' + g + ', ' + b + ')'; + } } - -function LoadDefaultPreferences() { - opt = Object.assign({}, DefaultPreferences); +function Utils_log(log) { + chrome.runtime.sendMessage({command: "debug", log: log}); } - -function ShowOpenFileDialog(extension) { - let body = document.getElementById("body"); - let inp = document.createElement("input"); - inp.id = "file_import"; - inp.type = "file"; - inp.accept = extension; - inp.style.display = "none"; - body.appendChild(inp); - inp.click(); - return inp; -} - -function SaveFile(filename, extension, data) { - let file = new File([JSON.stringify(data)], filename+"."+extension, {type: "text/"+extension+";charset=utf-8"} ); - let body = document.getElementById("body"); - let savelink = document.createElement("a"); - savelink.href = URL.createObjectURL(file); - savelink.fileSize = file.size; - savelink.target = "_blank"; - savelink.style.display = "none"; - savelink.type = "file"; - savelink.download = filename+"."+extension; - body.appendChild(savelink); - setTimeout(function() { - savelink.click(); - setTimeout(function() { - savelink.parentNode.removeChild(savelink); - }, 60000); - }, 10); -} - -function AppendToNode(Node, AppendNode) { - if (Node != null && AppendNode != null) { - AppendNode.appendChild(Node); - } -} - -function InsterBeforeNode(Node, BeforeNode) { - if (Node != null && BeforeNode != null) { - BeforeNode.parentNode.insertBefore(Node, BeforeNode); - } -} - -function InsterAfterNode(Node, AfterNode) { - if (Node != null && AfterNode != null) { - if (AfterNode.nextSibling != null) { - AfterNode.parentNode.insertBefore(Node, AfterNode.nextSibling); - } else { - AfterNode.parentNode.appendChild(Node); - } - } -} - -function HideRenameDialogs() { - document.querySelectorAll(".edit_dialog").forEach(function(s){ - s.style.display = "none"; - s.style.top = "-500px"; - s.style.left = "-500px"; - }); -} - -function GetParentsByClass(Node, Class) { - let Parents = []; - let ParentNode = Node; - while (ParentNode.parentNode != null) { - if (ParentNode.parentNode.classList != undefined && ParentNode.parentNode.classList.contains(Class)) { - Parents.push(ParentNode.parentNode); - } - ParentNode = ParentNode.parentNode; - } - return Parents; -} - -function GetParentsBy2Classes(Node, ClassA, ClassB) { - let Parents = []; - let ParentNode = Node; - while (ParentNode.parentNode != null) { - if (ParentNode.parentNode.classList != undefined && ParentNode.parentNode.classList.contains(ClassA) && ParentNode.parentNode.classList.contains(ClassB)) { - Parents.push(ParentNode.parentNode); - } - ParentNode = ParentNode.parentNode; - } - return Parents; -} - -// color in format "rgb(r,g,b)" or simply "r,g,b" (can have spaces, but must contain "," between values) -function RGBtoHex(color){ - color = color.replace(/[rgb(]|\)|\s/g, ""); color = color.split(","); return color.map(function(v){ return ("0"+Math.min(Math.max(parseInt(v), 0), 255).toString(16)).slice(-2); }).join(""); -} - -function HexToRGB(hex, alpha){ - hex = hex.replace('#', ''); - let r = parseInt(hex.length == 3 ? hex.slice(0, 1).repeat(2) : hex.slice(0, 2), 16); - let g = parseInt(hex.length == 3 ? hex.slice(1, 2).repeat(2) : hex.slice(2, 4), 16); - let b = parseInt(hex.length == 3 ? hex.slice(2, 3).repeat(2) : hex.slice(4, 6), 16); - if (alpha) { return 'rgba('+r+', '+g+', '+b+', '+alpha+')'; } else { return 'rgb('+r+', '+g+', '+b+')'; } -} - -function GetSelectedFolders() { - - if (opt.debug) { - log("f: GetSelectedFolders"); - } - - let res = {Folders: {}, FoldersSelected: [], TabsIds: [], TabsIdsParents: []}; - document.querySelectorAll("#"+tt.active_group+" .selected_folder").forEach(function(s){ - res.FoldersSelected.push(s.id); - res.Folders[s.id] = Object.assign({}, tt.folders[s.id]); - let Fchildren = document.querySelectorAll("#cf"+s.id+" .folder"); - Fchildren.forEach(function(fc){ - res.Folders[fc.id] = Object.assign({}, tt.folders[fc.id]); - }); - let Tchildren = document.querySelectorAll("#ct"+s.id+" .tab"); - Tchildren.forEach(function(tc){ - res.TabsIds.push(parseInt(tc.id)); - res.TabsIdsParents.push(tc.parentNode.id); - }); - }); - return res; -} - -function GetSelectedTabs() { - let res = {TabsIds: [], TabsIdsParents: [], TabsIdsSelected: []}; - document.querySelectorAll(".pin.selected_tab, #"+tt.active_group+" .selected_tab").forEach(function(s){ - res.TabsIds.push(parseInt(s.id)); - res.TabsIdsParents.push(s.parentNode.id); - res.TabsIdsSelected.push(parseInt(s.id)); - let Tchildren = document.querySelectorAll("#ct"+s.id+" .tab"); - Tchildren.forEach(function(tc){ - res.TabsIds.push(parseInt(tc.id)); - res.TabsIdsParents.push(tc.parentNode.id); - }); - }); - return res; -} - - -function FindTab(input) { // find and select tabs - let ButtonFilterClear = document.getElementById("button_filter_clear"); - document.querySelectorAll(".filtered, .highlighted_search").forEach(function(s){ - s.classList.remove("filtered"); - s.classList.remove("selected_tab"); - s.classList.remove("selected_last"); - s.classList.remove("highlighted_search"); - }) - if (input.length == 0) { - document.getElementById("filter_box").value = ""; - ButtonFilterClear.style.opacity = "0"; - ButtonFilterClear.title = ""; - return; - } else { - ButtonFilterClear.style.opacity = "1"; - ButtonFilterClear.title = labels.clear_filter; - } - tt.SearchIndex = 0; - let FilterType = document.getElementById("button_filter_type"); - let searchUrl = FilterType.classList.contains("url"); - let searchTitle = FilterType.classList.contains("title"); - - let query = {windowId: tt.CurrentWindowId, pinned: false}; - if (input == "*audible") { - query = {windowId: tt.CurrentWindowId, discarded: false, audible: true, muted: false, pinned: false}; - } - if (input == "*muted") { - query = {windowId: tt.CurrentWindowId, discarded: false, muted: true, pinned: false}; - } - if (input == "*unloaded") { - query = {windowId: tt.CurrentWindowId, discarded: true, pinned: false}; - } - if (input == "*loaded") { - query = {windowId: tt.CurrentWindowId, discarded: false, pinned: false}; - } - - chrome.tabs.query(query, function(tabs) { - tabs.forEach(function(Tab) { - if (input == "*audible" || input == "*muted" || input == "*unloaded" || input == "*loaded") { - document.getElementById(Tab.id).classList.add("filtered"); - document.getElementById(Tab.id).classList.add("selected_tab"); - } else { - if (searchUrl) { - if (Tab.url.toLowerCase().match(input.toLowerCase())) { - document.getElementById(Tab.id).classList.add("filtered"); - document.getElementById(Tab.id).classList.add("selected_tab"); - } - } - if (searchTitle) { - if (Tab.title.toLowerCase().match(input.toLowerCase())) { - document.getElementById(Tab.id).classList.add("filtered"); - document.getElementById(Tab.id).classList.add("selected_tab"); - } - } - } - }); - }); -} - -function Bookmark(rootNode) { - let ToolbarId = browserId == "F" ? "toolbar_____" : "1"; - chrome.bookmarks.get(ToolbarId, function(list) { - chrome.bookmarks.search("TreeTabs", function(list) { - let TreeTabsId; - for (var elem in list) { - if (list[elem].parentId == ToolbarId) { - TreeTabsId = list[elem].id; - break; - } - } - if (TreeTabsId == undefined) { - chrome.bookmarks.create({parentId: ToolbarId, title: "TreeTabs"}, function(TreeTabsNew) { - TreeTabsId = TreeTabsNew.id; - }); - Bookmark(rootNode); - return; - } else { - if (rootNode.classList.contains("tab")) { - chrome.tabs.get(parseInt(rootNode.id), function(tab) { - if (tab) { - chrome.bookmarks.create({parentId: TreeTabsId, title: tab.title}, function(root) { - document.querySelectorAll("[id='"+rootNode.id+"'], [id='"+rootNode.id+"'] .tab").forEach(function(s){ - chrome.tabs.get(parseInt(s.id), function(tab){ - if (tab) { - chrome.bookmarks.create({parentId: root.id, title: tab.title, url: tab.url }); - } - }); - }); - }); - } - }); - } - - if (rootNode.classList.contains("folder") || rootNode.classList.contains("group")) { - let rootName = labels.noname_group; - if (rootNode.classList.contains("folder") && tt.folders[rootNode.id]) { - rootName = tt.folders[rootNode.id].name; - } - if (rootNode.classList.contains("group") && tt.groups[rootNode.id]) { - rootName = tt.groups[rootNode.id].name; - } - - chrome.bookmarks.create({parentId: TreeTabsId, title: rootName}, function(root) { - let foldersRefs = {}; - - let folders = document.querySelectorAll("#cf"+rootNode.id+" .folder"); - folders.forEach(function(s){ - if (tt.folders[s.id]) { - let ttId = s.id; - chrome.bookmarks.create({parentId: root.id, title: tt.folders[ttId].name}, function(Bkfolder) { - foldersRefs[ttId] = {ttid: ttId, id: Bkfolder.id, ttparent: tt.folders[ttId].parent, parent: root.id}; - - let elemInd = 0; - if (ttId == folders[folders.length-1].id) { - for (var elem in foldersRefs) { - let FolderTTId = foldersRefs[elem].ttid; - let BookmarkFolderId = foldersRefs[elem].id; - let TTParentId = foldersRefs[elem].ttparent; - if (foldersRefs[TTParentId]) { - foldersRefs[FolderTTId].parent = foldersRefs[TTParentId].id; - } - - elemInd++; - - if (elemInd == Object.keys(foldersRefs).length) { - elemInd = 0; - for (var elem in foldersRefs) { - let BookmarkFolderId = foldersRefs[elem].id; - let BookmarkFolderParentId = foldersRefs[elem].parent; - chrome.bookmarks.move(BookmarkFolderId, {parentId: BookmarkFolderParentId}, function(BkFinalfolder) { - document.querySelectorAll("#ct"+foldersRefs[elem].ttid+" .tab").forEach(function(s){ - chrome.tabs.get(parseInt(s.id), function(tab){ - if (tab) { - chrome.bookmarks.create({parentId: BkFinalfolder.id, title: tab.title, url: tab.url }); - } - }); - }); - - elemInd++; - - }); - } - } - } - } - }); - } - }); - - document.querySelectorAll("#ct"+rootNode.id+" .tab").forEach(function(s){ - chrome.tabs.get(parseInt(s.id), function(tab){ - if (tab) { - chrome.bookmarks.create({parentId: root.id, title: tab.title, url: tab.url }); - } - }); - }); - - }); - } - } - }); - }); -} - -function ShowStatusBar(p) { // show, spinner, message - let status_bar = document.getElementById("status_bar"); - let busy_spinner = document.getElementById("busy_spinner"); - let status_message = document.getElementById("status_message"); - if (p.show) { - status_bar.style.display = "block"; - status_message.textContent = p.message; - if (p.spinner) { - busy_spinner.style.opacity = "1"; - } else { - busy_spinner.style.opacity = "0"; - } - } else { - busy_spinner.style.opacity = "0"; - status_message.textContent = ""; - status_bar.style.display = "none"; - } - if (p.hideTimeout) { - setTimeout(function() { - busy_spinner.style.opacity = "0"; - status_message.textContent = ""; - status_bar.style.display = "none"; - }, p.hideTimeout); - } -} - -function log(log) { - if (opt.debug) { - chrome.runtime.sendMessage({command: "debug", log: log}); - } -} \ No newline at end of file diff --git a/sidebar.html b/sidebar.html index 9e606c1..a8c9e49 100644 --- a/sidebar.html +++ b/sidebar.html @@ -1,199 +1,138 @@  - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - -
- -
-
-
-
-
- - -
-
- - + + + -
    - -
    -
    -
    -
    -
- -
    - -
    -
    -
    -
- -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    +
    +
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    - -
    -
    -
    - -
- - -
-
-
-
-
- - + + +
    + +
    +
    +
    +
    +
+ +
    + +
    +
    +
    +
+ +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + + + \ No newline at end of file diff --git a/sidebar.js b/sidebar.js index f479135..e55947d 100644 --- a/sidebar.js +++ b/sidebar.js @@ -1,37 +1,287 @@ -// Copyright (c) 2017 kroppy. All rights reserved. -// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license -// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/ +// SIDEBAR VARIABLES +let tt = { + CurrentWindowId: 0, + active_group: "tab_list", + tabs: {}, + groups: {}, + folders: {}, + schedule_update_data: 0, + schedule_rearrange_tabs: 0, -document.addEventListener("DOMContentLoaded", Run(), false); + Dragging: false, + DraggingGroup: false, + DraggingPin: false, + DraggingTab: false, + DraggingFolder: false, + DragTreeDepth: 0, + DragOverId: "", + DragOverTimer: undefined, + DOMmenu: undefined, + menu: {}, + menuItemNode: undefined, + SearchIndex: 0, -function Run() { - ShowStatusBar({show: true, spinner: true, message: "Starting up"}); - chrome.runtime.sendMessage({command: "is_bg_ready"}, function(response) { - if (response == true) { - Initialize(); - } else { - setTimeout(function() { - Run(); - },100); - } - }); + AutoSaveSession: undefined, + pressed_keys: [] +}; + +function StartSidebarListeners() { + if (browserId == "F") { + browser.browserAction.onClicked.addListener(function(tab) { + if (tab.windowId == tt.CurrentWindowId) browser.sidebarAction.close(); + }); + } + chrome.commands.onCommand.addListener(function(command) { + if (command == "close_tree") { + chrome.windows.getCurrent({populate: false}, function(window) { + if (window.id == tt.CurrentWindowId && window.focused) { + chrome.tabs.query({windowId: tt.CurrentWindowId, active: true}, function(tabs) { + let tabsArr = []; + let close_tree = document.querySelectorAll("[id='" + tabs[0].id + "'] .tab, [id='" + tabs[0].id + "']"); + for (let s of close_tree) { + tabsArr.push(parseInt(s.id)); + if (s.childNodes[2].childNodes.length > 0) { + let trees_children = document.querySelectorAll("#" + s.childNodes[2].id + " .tab"); + for (let t of trees_children) { + tabsArr.push(parseInt(t.id)); + } + } + } + Tabs_CloseTabs(tabsArr); + }); + } + }); + } + }); + chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { + if (message.command == "bg_started") { + window.location.reload(); + return; + } + if (message.command == "backup_available") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + let BAKbutton = document.getElementById("button_load_bak" + message.bak); + if (BAKbutton != null) BAKbutton.classList.remove("disabled"); + return; + } + if (message.command == "drag_start") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + DOM_CleanUpDragAndDrop(); + tt.DragTreeDepth = message.DragTreeDepth; + tt.DraggingGroup = message.DraggingGroup; + tt.DraggingPin = message.DraggingPin; + tt.DraggingTab = message.DraggingTab; + tt.DraggingFolder = message.DraggingFolder; + return; + } + if (message.command == "drag_end") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + tt.Dragging = false; + DOM_CleanUpDragAndDrop(); + DOM_RemoveHighlight(); + return; + } + if (message.command == "remove_folder") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command + " folderId: " + message.folderId); + Folders_RemoveFolder(message.folderId); + return; + } + if (message.command == "remove_group") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command + " groupId: " + message.groupId); + setTimeout(function() {Groups_GroupRemove(message.groupId, false);}, 2000); + return; + } + if (message.command == "reload_sidebar") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + window.location.reload(); + return; + } + if (message.command == "reload_options") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + opt = Object.assign({}, message.opt); + setTimeout(function() { + Theme_RestorePinListRowSettings(); + }, 100); + return; + } + if (message.command == "reload_toolbar") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + opt = Object.assign({}, message.opt); + if (opt.show_toolbar) { + Toolbar_RemoveToolbar(); + Toolbar_RecreateToolbar(message.toolbar); + Toolbar_SetToolbarEvents(false, true, true, "mousedown", true); + Toolbar_RestoreToolbarShelf(); + Toolbar_RestoreToolbarSearchFilter(); + } else { + Toolbar_RemoveToolbar(); + } + DOM_RefreshGUI(); + return; + } + if (message.command == "reload_theme") { + if (opt.debug) Utils_log("message to sidebar " + tt.CurrentWindowId + ": message: " + message.command); + Theme_RestorePinListRowSettings(); + Theme_ApplyTheme(message.theme); + return; + } + if (message.windowId == tt.CurrentWindowId) { + if (message.command == "tab_created") { + if (message.InsertAfterId && document.querySelectorAll("#" + tt.active_group + " .tab").length == 0) { + message.InsertAfterId = undefined; + message.ParentId = tt.active_group; + } + tt.tabs[message.tabId] = new Tabs_ttTab({tab: message.tab, ParentId: message.ParentId, InsertAfterId: message.InsertAfterId, Append: message.Append, Scroll: true}); + DOM_RefreshExpandStates(); + setTimeout(function() { + DOM_RefreshCounters(); + DOM_RefreshGUI(); + }, 50); + if (opt.syncro_tabbar_tabs_order) { + let tabIds = Array.prototype.map.call(document.querySelectorAll(".pin, .tab"), function(s) {return parseInt(s.id);}); + chrome.tabs.move(message.tab.id, {index: tabIds.indexOf(message.tab.id)}); + } + setTimeout(function() {tt.schedule_update_data++;}, 2000); + return; + } + if (message.command == "tab_attached") { + if (opt.debug) Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId + ", tab is pinned: " + message.tab.pinned + ", ParentId: " + message.ParentId); + tt.tabs[message.tabId] = new Tabs_ttTab({tab: message.tab, ParentId: message.ParentId, Append: true, SkipSetActive: false, SkipMediaIcon: false}); + DOM_RefreshGUI(); + return; + } + if (message.command == "tab_detached") { + if (opt.debug) Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId); + let Tab = document.getElementById(message.tabId); + if (Tab != null && tt.tabs[message.tabId]) { + let ctDetachedParent = Tab.childNodes[1]; + if (opt.promote_children_in_first_child == true && Tab.childNodes[1].childNodes.length > 1) { + DOM_PromoteChildrenToFirstChild(Tab); + } else { + while (ctDetachedParent.firstChild) { + ctDetachedParent.parentNode.parentNode.insertBefore(ctDetachedParent.firstChild, ctDetachedParent.parentNode); + } + } + } + tt.tabs[message.tabId].RemoveTab(); + setTimeout(function() {tt.schedule_update_data++;}, 300); + DOM_RefreshGUI(); + return; + } + if (message.command == "tab_removed") { + if (opt.debug) {Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId);} + let mTab = document.getElementById(message.tabId); + if (mTab != null && tt.tabs[message.tabId]) { + let ctParent = mTab.childNodes[1]; + if (opt.debug) Utils_log("tab_removed, promote children: " + opt.promote_children); + if (opt.promote_children == true) { + if (opt.promote_children_in_first_child == true && mTab.childNodes[1].childNodes.length > 1) { + DOM_PromoteChildrenToFirstChild(mTab); + } else { + while (ctParent.firstChild) { + ctParent.parentNode.parentNode.insertBefore(ctParent.firstChild, ctParent.parentNode); + } + } + } else { + let tab_children = document.querySelectorAll("[id='" + message.tabId + "'] .tab"); + for (let s of tab_children) { + chrome.tabs.remove(parseInt(s.id)); + } + } + tt.tabs[message.tabId].RemoveTab(); + DOM_RefreshExpandStates(); + setTimeout(function() {tt.schedule_update_data++;}, 300); + DOM_RefreshGUI(); + DOM_RefreshCounters(); + } + return; + } + if (message.command == "tab_activated") { + if (opt.debug) Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId); + Tabs_SetActiveTab(message.tabId, true); + return; + } + if (message.command == "tab_attention") { + if (opt.debug) Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId); + if (tt.tabs[message.tabId]) tt.tabs[message.tabId].SetAttentionIcon(); + return; + } + if (message.command == "tab_updated") { + if (opt.debug) Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId); + if (tt.tabs[message.tabId]) { + if (message.changeInfo.favIconUrl != undefined || message.changeInfo.url != undefined) { + if (browserId == "F" && (message.changeInfo.favIconUrl == undefined || message.changeInfo.favIconUrl == "")) browser.sessions.setTabValue(message.tabId, "CachedFaviconUrl", ""); + setTimeout(function() { + if (tt.tabs[message.tabId]) tt.tabs[message.tabId].GetFaviconAndTitle(true); + }, 100); + } + if (message.changeInfo.title != undefined) { + setTimeout(function() { + if (tt.tabs[message.tabId]) tt.tabs[message.tabId].GetFaviconAndTitle(true); + }, 1000); + } + if (message.changeInfo.audible != undefined || message.changeInfo.mutedInfo != undefined) tt.tabs[message.tabId].RefreshMediaIcon(); + if (message.changeInfo.discarded != undefined) tt.tabs[message.tabId].RefreshDiscarded(); + if (message.changeInfo.pinned != undefined) { + let updateTab = document.getElementById(message.tabId); + if (updateTab != null) { + if (message.tab.pinned && updateTab.classList.contains("pin") == false) { + tt.tabs[message.tabId].SetTabClass(true); + tt.tabs[message.tabId].pinned = true; + tt.schedule_update_data++; + } + if (!message.tab.pinned && updateTab.classList.contains("tab") == false) { + tt.tabs[message.tabId].SetTabClass(false); + tt.tabs[message.tabId].pinned = false; + tt.schedule_update_data++; + } + } + DOM_RefreshExpandStates(); + } + } + return; + } + // if (message.command == "set_active_group") { + // Groups_SetActiveGroup(message.groupId, false, false); + // return; + // } + if (message.command == "remote_update") { + if (opt.debug) { + Utils_log("chrome event: " + message.command + ", tabId: " + message.tabId); + Utils_log(message); + } + Manager_RecreateTreeStructure(message.groups, message.folders, message.tabs); + sendResponse(true); + tt.schedule_update_data++; + return; + } + if (message.command == "switch_active_tab") { + Tabs_SwitchActiveTabBeforeClose(tt.active_group); + return; + } + } + }); } + + + + function Initialize() { chrome.windows.getCurrent({populate: true}, function(window) { tt.CurrentWindowId = window.id; - let tabs = window.tabs; chrome.storage.local.get(null, function(storage) { - GetCurrentPreferences(storage); - - ApplyTheme(GetCurrentTheme(storage)); + Preferences_GetCurrentPreferences(storage); + + Menu_CreateMenu(); + Theme_ApplyTheme(Theme_GetCurrentTheme(storage)); if (opt.show_toolbar) { - RecreateToolbar(GetCurrentToolbar(storage)); - SetToolbarEvents(false, true, true, "mousedown"); - RestoreToolbarShelf(); - RestoreToolbarSearchFilter(); + Toolbar_RecreateToolbar(Theme_GetCurrentToolbar(storage)); + Toolbar_SetToolbarEvents(false, true, true, "mousedown", true, false); + Toolbar_RestoreToolbarShelf(); + Toolbar_RestoreToolbarSearchFilter(); } chrome.runtime.sendMessage({command: "get_browser_tabs"}, function(bgtabs) { @@ -40,62 +290,65 @@ function Initialize() { chrome.runtime.sendMessage({command: "get_groups", windowId: tt.CurrentWindowId}, function(g) { tt.groups = Object.assign({}, g); // APPEND GROUPS - AppendGroups(tt.groups); - // APPEND FOLDERS - AppendFolders(tt.folders); - // APPEND TABS - let ti = 0; - let tc = tabs.length; - let ttTabs = []; - - for (ti = 0; ti < tc; ti++) { - ttTabs.push(AppendTab({ tab: tabs[ti], Append: true, SkipSetActive: true, AdditionalClass: (bgtabs[tabs[ti].id].expand != "" ? bgtabs[tabs[ti].id].expand : undefined) })); + Groups_AppendGroups(tt.groups); + + // APPEND FOLDERS TO TABLIST + Folders_PreAppendFolders(tt.folders); + + // APPEND TABS TO TABLIST + for (const tab of window.tabs) { + tt.tabs[tab.id] = new Tabs_ttTab({tab: tab, Append: true, SkipSetActive: true, AdditionalClass: ((bgtabs[tab.id] && bgtabs[tab.id].expand != "") ? bgtabs[tab.id].expand : undefined)}); } + + // APPEND FOLDERS TO CORRECT PARENTS + Folders_AppendFolders(tt.folders); + // APPEND TABS TO CORRECT PARENTS if (opt.skip_load == false) { - for (ti = 0; ti < tc; ti++) { - if (bgtabs[tabs[ti].id] && !tabs[ti].pinned) { - let TabParent = document.getElementById("ct"+bgtabs[tabs[ti].id].parent); - if (TabParent != null && document.querySelector("[id='"+tabs[ti].id+"'] #ct"+bgtabs[tabs[ti].id].parent) == null) { - TabParent.appendChild(ttTabs[ti]); + for (const tab of window.tabs) { + if (bgtabs[tab.id] && !tab.pinned) { + let TabParent = document.getElementById("°"+bgtabs[tab.id].parent); + if (TabParent != null && document.querySelector("[id='"+tab.id+"'] #°"+bgtabs[tab.id].parent) == null) { + TabParent.appendChild(tt.tabs[tab.id].Node); } } } } + // SET ACTIVE TAB FOR EACH GROUP, REARRENGE EVERYTHING AND START BROWSER LISTENERS - SetActiveTabInEachGroup(); - RearrangeFolders(true); - RearrangeTreeTabs(bgtabs, true); + Groups_SetActiveTabInEachGroup(); + Tabs_RearrangeTree(bgtabs, tt.folders, true); + StartSidebarListeners(); - SetMenu(); - SetEvents(); - SetManagerEvents(); - HideMenus(); + DOM_SetEvents(); + Manager_SetManagerEvents(); + Menu_HideMenus(); + if (opt.switch_with_scroll) { - BindTabsSwitchingToMouseWheel("pin_list"); + DOM_BindTabsSwitchingToMouseWheel("pin_list"); } if (opt.syncro_tabbar_tabs_order || opt.syncro_tabbar_groups_tabs_order) { - RearrangeBrowserTabs(); + Tabs_RearrangeBrowserTabs(); } - RestorePinListRowSettings(); - StartAutoSaveSession(); - if (browserId == "V") { - VivaldiRefreshMediaIcons(); + + Theme_RestorePinListRowSettings(); + Manager_StartAutoSaveSession(); + + if (browserId == "O") { + DOM_AutoRefreshMediaIcons(); } setTimeout(function() { - RefreshExpandStates(); - RefreshCounters(); - SetActiveTabInEachGroup(); - if (browserId == "F" && opt.skip_load == false && storage.emergency_reload == undefined) { - RecheckFirefox(); - } + DOM_RefreshExpandStates(); + DOM_RefreshCounters(); + Groups_SetActiveTabInEachGroup(); }, 1000); - ShowStatusBar({show: true, spinner: false, message: "Ready.", hideTimeout: 2000}); + + Manager_ShowStatusBar({show: true, spinner: false, message: "Ready.", hideTimeout: 2000}); + setTimeout(function() { - UpdateData(); - delete b; + Tabs_SaveTabs(); delete DefaultToolbar; delete DefaultTheme; delete DefaultPreferences; @@ -103,6 +356,7 @@ function Initialize() { chrome.storage.local.remove("emergency_reload"); } }, 5000); + if (browserId != "F") { if (storage.windows_BAK1 && Object.keys(storage["windows_BAK1"]).length > 0 && document.getElementById("button_load_bak1") != null) { document.getElementById("button_load_bak1").classList.remove("disabled"); } if (storage.windows_BAK2 && Object.keys(storage["windows_BAK2"]).length > 0 && document.getElementById("button_load_bak2") != null) { document.getElementById("button_load_bak2").classList.remove("disabled"); } @@ -114,3 +368,18 @@ function Initialize() { }); }); } + +function Run() { + Manager_ShowStatusBar({show: true, spinner: true, message: "Starting up"}); + chrome.runtime.sendMessage({command: "is_bg_ready"}, function(response) { + if (response == true) { + Initialize(); + } else { + setTimeout(function() { + Run(); + },100); + } + }); +} + +document.addEventListener("DOMContentLoaded", Run(), false); \ No newline at end of file diff --git a/theme/theme.css b/theme/theme.css index 48e2712..b8ff42b 100644 --- a/theme/theme.css +++ b/theme/theme.css @@ -499,11 +499,7 @@ div { overflow-y: auto; } -.group>.children_folders { - position: relative; - top: var(--group_folders_top); -} -.group>.children_tabs { +.group>.children { position: relative; top: var(--group_tabs_top); } @@ -582,295 +578,8 @@ div { } -/* PINS AND TABS COLORS, WATCH OUT AND DON'T MESS WITH IT */ -/* normal */ -.tab_header{ - border-radius:var(--tab_header_border_radius); - border:1px solid var(--tab_border); - background-color:var(--tab_background); -} -.tab>.tab_header>.tab_title{ - color:var(--tab_title_font_color); - font-style:var(--tab_title_font_style); - font-weight:var(--tab_title_font_weight); -} -/* normal hover */ -.tab_header_hover{ - border-radius:var(--tab_header_border_radius); - border:1px solid var(--tab_hover_border); - background-color:var(--tab_hover_background); -} -.tab>.tab_header_hover>.tab_title{ - color:var(--tab_hover_title_font_color); - font-style:var(--tab_hover_title_font_style); - font-weight:var(--tab_hover_title_font_weight); -} -/* normal selected */ -.selected_tab>.tab_header{ - border:1px solid var(--tab_selected_border); - background-color:var(--tab_selected_background); -} -.tab.selected_tab>.tab_header>.tab_title{ - color:var(--tab_selected_title_font_color); - font-style:var(--tab_selected_title_font_style); - font-weight:var(--tab_selected_title_font_weight); -} -/* normal selected hover */ -.selected_tab>.tab_header_hover{ - border:1px solid var(--tab_selected_hover_border); - background-color:var(--tab_selected_hover_background); -} -.tab.selected_tab>.tab_header_hover>.tab_title{ - color:var(--tab_selected_hover_title_font_color); - font-style:var(--tab_selected_hover_title_font_style); - font-weight:var(--tab_selected_hover_title_font_weight); -} -/* normal active */ -.active_tab>.tab_header{ - border:1px solid var(--tab_active_border); - background-color:var(--tab_active_background); -} -.tab.active_tab>.tab_header>.tab_title{ - color:var(--tab_active_title_font_color); - font-style:var(--tab_active_title_font_style); - font-weight:var(--tab_active_title_font_weight); -} -/* normal active hover */ -.active_tab>.tab_header_hover{ - border:1px solid var(--tab_active_hover_border); - background-color:var(--tab_active_hover_background); -} -.tab.active_tab>.tab_header_hover>.tab_title{ - color:var(--tab_active_hover_title_font_color); - font-style:var(--tab_active_hover_title_font_style); - font-weight:var(--tab_active_hover_title_font_weight); -} -/* normal selected active */ -.selected_tab.active_tab>.tab_header{ - border:1px solid var(--tab_active_selected_border); - background-color:var(--tab_active_selected_background); -} -.tab.selected_tab.active_tab>.tab_header>.tab_title{ - color:var(--tab_active_selected_title_font_color); - font-style:var(--tab_active_selected_title_font_style); - font-weight:var(--tab_active_selected_title_font_weight); -} -/* normal selected active hover */ -.selected_tab.active_tab>.tab_header_hover{ - border:1px solid var(--tab_selected_active_hover_border); - background-color:var(--tab_selected_active_hover_background); -} -.tab.selected_tab.active_tab>.tab_header_hover>.tab_title{ - color:var(--tab_selected_active_hover_title_font_color); - font-style:var(--tab_selected_active_hover_title_font_style); - font-weight:var(--tab_selected_active_hover_title_font_weight); -} -/* unloaded */ -.discarded>.tab_header{ - border:1px solid var(--tab_discarded_border); - background-color:var(--tab_discarded_background); -} -.tab.discarded>.tab_header>.tab_title{ - color:var(--tab_discarded_title_font_color); - font-style:var(--tab_discarded_title_font_style); - font-weight:var(--tab_discarded_title_font_weight); -} -/* unloaded hover */ -.discarded>.tab_header_hover{ - border:1px solid var(--tab_discarded_hover_border); - background-color:var(--tab_discarded_hover_background); -} -.tab.discarded>.tab_header_hover>.tab_title{ - color:var(--tab_discarded_hover_title_font_color); - font-style:var(--tab_discarded_hover_title_font_style); - font-weight:var(--tab_discarded_hover_title_font_weight); -} -/* unloaded selected */ -.selected_tab.discarded>.tab_header{ - border:1px solid var(--tab_selected_discarded_border); - background-color:var(--tab_selected_discarded_background); -} -.tab.selected_tab.discarded>.tab_header>.tab_title{ - color:var(--tab_selected_discarded_title_font_color); - font-style:var(--tab_selected_discarded_title_font_style); - font-weight:var(--tab_selected_discarded_title_font_weight); -} -/* unloaded selected hover */ -.selected_tab.discarded>.tab_header_hover{ - border:1px solid var(--tab_selected_discarded_hover_border); - background-color:var(--tab_selected_discarded_hover_background); -} -.tab.selected_tab.discarded>.tab_header_hover>.tab_title{ - color:var(--tab_selected_discarded_hover_title_font_color); - font-style:var(--tab_selected_discarded_hover_title_font_style); - font-weight:var(--tab_selected_discarded_hover_title_font_weight); -} -/* search result */ -.filtered>.tab_header{ - border:1px solid var(--tab_filtered_border); - background-color:var(--tab_filtered_background); -} -.tab.filtered>.tab_header>.tab_title{ - color:var(--tab_filtered_title_font_color); - font-style:var(--tab_filtered_title_font_style); - font-weight:var(--tab_filtered_title_font_weight); -} -/* search result hover */ -.filtered>.tab_header_hover{ - border:1px solid var(--tab_filtered_hover_border); - background-color:var(--tab_filtered_hover_background); -} -.tab.filtered>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_hover_title_font_color); - font-style:var(--tab_filtered_hover_title_font_style); - font-weight:var(--tab_filtered_hover_title_font_weight); -} -/* search result active */ -.filtered.active_tab>.tab_header{ - border:1px solid var(--tab_filtered_active_border); - background-color:var(--tab_filtered_active_background); -} -.tab.filtered.active_tab>.tab_header>.tab_title{ - color:var(--tab_filtered_active_title_font_color); - font-style:var(--tab_filtered_active_title_font_style); - font-weight:var(--tab_filtered_active_title_font_weight); -} -/* search result active hover */ -.filtered.active_tab>.tab_header_hover{ - border:1px solid var(--tab_filtered_active_hover_border); - background-color:var(--tab_filtered_active_hover_background); -} -.tab.filtered.active_tab>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_active_hover_title_font_color); - font-style:var(--tab_filtered_active_hover_title_font_style); - font-weight:var(--tab_filtered_active_hover_title_font_weight); -} -/* search result selected */ -.selected_tab.filtered>.tab_header{ - border:1px solid var(--tab_filtered_selected_border); - background-color:var(--tab_filtered_selected_background); -} -.tab.selected_tab.filtered>.tab_header>.tab_title{ - color:var(--tab_filtered_selected_title_font_color); - font-style:var(--tab_filtered_selected_title_font_style); - font-weight:var(--tab_filtered_selected_title_font_weight); -} -/* search result selected hover */ -.selected_tab.filtered>.tab_header_hover{ - border:1px solid var(--tab_filtered_selected_hover_border); - background-color:var(--tab_filtered_selected_hover_background); -} -.tab.selected_tab.filtered>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_selected_hover_title_font_color); - font-style:var(--tab_filtered_selected_hover_title_font_style); - font-weight:var(--tab_filtered_selected_hover_title_font_weight); -} -/* search result active selected */ -.selected_tab.filtered.active_tab>.tab_header{ - border:1px solid var(--tab_filtered_selected_active_border); - background-color:var(--tab_filtered_selected_active_background); -} -.tab.selected_tab.filtered.active_tab>.tab_header>.tab_title{ - color:var(--tab_filtered_selected_active_title_font_color); - font-style:var(--tab_filtered_selected_active_title_font_style); - font-weight:var(--tab_filtered_selected_active_title_font_weight); -} -/* search result active selected hover */ -.selected_tab.filtered.active_tab>.tab_header_hover{ - border:1px solid var(--tab_filtered_selected_active_hover_border); - background-color:var(--tab_filtered_selected_active_hover_background); -} -.tab.filtered.selected_tab.active_tab>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_selected_active_hover_title_font_color); - font-style:var(--tab_filtered_selected_active_hover_title_font_style); - font-weight:var(--tab_filtered_selected_active_hover_title_font_weight); -} -/* search result highlighted */ -.filtered.highlighted_search>.tab_header{ - border:1px solid var(--tab_filtered_highlighted_search_border); - background-color:var(--tab_filtered_highlighted_search_background); -} -.tab.filtered.highlighted_search>.tab_header>.tab_title{ - color:var(--tab_filtered_highlighted_search_title_font_color); - font-style:var(--tab_filtered_highlighted_search_title_font_style); - font-weight:var(--tab_filtered_highlighted_search_title_font_weight); -} -/* search result highlighted hover */ -.filtered.highlighted_search>.tab_header_hover{ - border:1px solid var(--tab_filtered_highlighted_search_hover_border); - background-color:var(--tab_filtered_highlighted_search_hover_background); -} -.tab.filtered.highlighted_search>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_highlighted_search_hover_title_font_color); - font-style:var(--tab_filtered_highlighted_search_hover_title_font_style); - font-weight:var(--tab_filtered_highlighted_search_hover_title_font_weight); -} -/* search result active highlighted */ -.active_tab.filtered.highlighted_search>.tab_header{ - border:1px solid var(--tab_filtered_active_highlighted_search_border); - background-color:var(--tab_filtered_active_highlighted_search_background); -} -.tab.active_tab.filtered.highlighted_search>.tab_header>.tab_title{ - color:var(--tab_filtered_active_highlighted_search_title_font_color); - font-style:var(--tab_filtered_active_highlighted_search_title_font_style); - font-weight:var(--tab_filtered_active_highlighted_search_title_font_weight); -} -/* search result active highlighted hover */ -.active_tab.filtered.highlighted_search>.tab_header_hover{ - border:1px solid var(--tab_filtered_active_highlighted_search_hover_border); - background-color:var(--tab_filtered_active_highlighted_search_hover_background); -} -.tab.active_tab.filtered.highlighted_search>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_active_highlighted_search_hover_title_font_color); - font-style:var(--tab_filtered_active_highlighted_search_hover_title_font_style); - font-weight:var(--tab_filtered_active_highlighted_search_hover_title_font_weight); -} -/* search result selected highlighted */ -.selected_tab.filtered.highlighted_search>.tab_header{ - border:1px solid var(--tab_filtered_selected_highlighted_search_border); - background-color:var(--tab_filtered_selected_highlighted_search_background); -} -.tab.selected_tab.filtered.highlighted_search>.tab_header>.tab_title{ - color:var(--tab_filtered_selected_highlighted_search_title_font_color); - font-style:var(--tab_filtered_selected_highlighted_search_title_font_style); - font-weight:var(--tab_filtered_selected_highlighted_search_title_font_weight); -} -/* search result selected highlighted hover */ -.selected_tab.filtered.highlighted_search>.tab_header_hover{ - border:1px solid var(--tab_filtered_selected_highlighted_search_hover_border); - background-color:var(--tab_filtered_selected_highlighted_search_hover_background); -} -.tab.selected_tab.filtered.highlighted_search>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_selected_highlighted_search_hover_title_font_color); - font-style:var(--tab_filtered_selected_highlighted_search_hover_title_font_style); - font-weight:var(--tab_filtered_selected_highlighted_search_hover_title_font_weight); -} -/* search result selected active highlighted */ -.active_tab.selected_tab.filtered.highlighted_search>.tab_header{ - border:1px solid var(--tab_filtered_selected_active_highlighted_search_border); - background-color:var(--tab_filtered_selected_active_highlighted_search_background); -} -.tab.active_tab.selected_tab.filtered.highlighted_search>.tab_header>.tab_title{ - color:var(--tab_filtered_selected_active_highlighted_search_title_font_color); - font-style:var(--tab_filtered_selected_active_highlighted_search_title_font_style); - font-weight:var(--tab_filtered_selected_active_highlighted_search_title_font_weight); -} -/* search result selected active highlighted hover */ -.active_tab.selected_tab.filtered.highlighted_search>.tab_header_hover{ - border:1px solid var(--tab_filtered_selected_active_highlighted_search_hover_border); - background-color:var(--tab_filtered_selected_active_highlighted_search_hover_background); -} -.tab.active_tab.selected_tab.filtered.highlighted_search>.tab_header_hover>.tab_title{ - color:var(--tab_filtered_selected_active_highlighted_search_hover_title_font_color); - font-style:var(--tab_filtered_selected_active_highlighted_search_hover_title_font_style); - font-weight:var(--tab_filtered_selected_active_highlighted_search_hover_title_font_weight); -} - - - /* TABS */ - /* regular tab title */ .tab_title { z-index: 5; @@ -883,6 +592,7 @@ div { padding-left: var(--tab_title_text_padding_left); font-size: var(--title_font_size); pointer-events: none; + line-height: var(--tab_height); } .tab { @@ -904,7 +614,7 @@ div { top: 0px; left: 0px; height: var(--tab_height); - line-height: var(--tab_height_line); + /* line-height: var(--tab_height_line); */ width: calc(100% - 2px); background-image: url(../theme/icon_empty.svg); background-size: var(--favicon_width) var(--favicon_height); @@ -912,7 +622,7 @@ div { /* background-image: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.6) 100%), url(../theme/icon_empty.svg); */ } -.group>.children_tabs>:last-child { +.group>.children>:last-child { margin-bottom: 16px; } @@ -934,19 +644,19 @@ div { } /* CHILDREN TABS */ -.tab>.children_tabs { +.tab>.children { position: relative; padding-left: var(--children_padding_left); } -.tab>.children_tabs>.tab { +.tab>.children>.tab { margin-right: 0px; } -.tab.o>.children_tabs { +.tab.o>.children { height: auto; } -.tab.c>.children_tabs { +.tab.c>.children { display: none; height: 0px; } @@ -980,7 +690,6 @@ div { } /* FOLDERS */ - .folder_title { z-index: 5; font-family: Arial, Helvetica, "Nimbus Sans L", "Liberation Sans", FreeSans, Sans-serif; @@ -991,10 +700,12 @@ div { padding-right: 3px; padding-left: var(--tab_title_text_padding_left); font-size: var(--title_font_size); + pointer-events: none; + line-height: var(--tab_height); + /* colors and styles */ color:var(--tab_title_font_color); font-style:var(--tab_title_font_style); font-weight:var(--tab_title_font_weight); - pointer-events: none; } .folder { @@ -1014,32 +725,29 @@ div { top: 0px; left: 0px; height: var(--tab_height); - line-height: var(--tab_height_line); + /* line-height: var(--tab_height_line); */ width: calc(100% - 2px); - border-radius:var(--tab_header_border_radius); - border:1px solid var(--tab_border); - background-color:var(--tab_background); + border-radius: var(--tab_header_border_radius); + border: 1px solid var(--tab_border); + background-color: var(--tab_background); } -.folder>.children_folders, -.folder>.children_tabs { +.folder>.children { position: relative; padding-left: var(--children_padding_left); } -.folder>.children_folders>.folder, -.folder>.children_tabs>.tab { +.folder>.children>.folder, +.folder>.children>.tab { margin-right: 0px; } -.folder.o>.children_folders, -.folder.o>.children_tabs { +.folder.o>.children { height: auto; } -.folder.c>.children_folders, -.folder.c>.children_tabs { +.folder.c>.children { display: none; height: 0px; } @@ -1079,36 +787,7 @@ div { mask-image: url(../theme/icon_folder_open.svg); } -/* normal hover */ -.folder>.folder_header_hover{ - border-radius:var(--tab_header_border_radius); - border:1px solid var(--tab_hover_border); - background-color:var(--tab_hover_background); -} - -/* normal selected */ -.selected_folder>.folder_header{ - border:1px solid var(--tab_selected_border); - background-color:var(--tab_selected_background); -} -.selected_folder>.folder_header>.folder_title{ - color:var(--tab_selected_title_font_color); - font-style:var(--tab_selected_title_font_style); - font-weight:var(--tab_selected_title_font_weight); -} -/* normal selected hover */ -.selected_folder>.folder_header_hover{ - border:1px solid var(--tab_selected_hover_border); - background-color:var(--tab_selected_hover_background); -} -.selected_folder>.folder_header_hover>.folder_title{ - color:var(--tab_selected_hover_title_font_color); - font-style:var(--tab_selected_hover_title_font_style); - font-weight:var(--tab_selected_hover_title_font_weight); -} - - -.selected_folder>.folder_header +.selected>.folder_header .active_folder>.folder_header { z-index: 900; } @@ -1119,15 +798,6 @@ div { /* PINS */ -@keyframes blinking { - 0% {background-color: var(--tab_background); border:1px solid var(--tab_border);} - 50% {background-color: var(--attention_background); border:1px solid var(--attention_border);} - 80% {background-color: var(--tab_background); border:1px solid var(--tab_border);} - 100% {background-color: var(--tab_background); border:1px solid var(--tab_border);} -} -.pin.attention>.tab_header { - animation: blinking 2.5s infinite; -} .pin { /* pin size is here, all the rest is automatically calculated */ position: relative; @@ -1163,7 +833,7 @@ div { background-position: center, center; } -.pin>.children_tabs { +.pin>.children { display: none; position: absolute; top: 0px; @@ -1171,7 +841,7 @@ div { width: 0px; } -.pin.selected_tab, +.pin.selected, .pin.active_tab { z-index: 800; } @@ -1179,8 +849,10 @@ div { margin-right: var(--pin_last_margin_right); } - - +.pin.attention>.tab_header { + background-color: var(--attention_background); + border: 1px solid var(--attention_border); +} /* DRAG AND DROP TARGETS */ @@ -1244,7 +916,8 @@ div { } -.group.highlighted_drop_target>.children_tabs>.tab:last-child>.drag_indicator, +.group.highlighted_drop_target>.children>.tab:last-child>.drag_indicator, +.group.highlighted_drop_target>.children>.folder:last-child>.drag_indicator, .folder.highlighted_drop_target.after>.drag_indicator, .tab.highlighted_drop_target.after>.drag_indicator { display: block; @@ -1257,8 +930,342 @@ div { } -.group>.children_tabs>.tab:first-child>.drag_indicator, -.group>.children_folders>.folder:first-child>.drag_indicator { + + +/* PINS FOLDERS AND TABS COLORS, WATCH OUT AND DON'T MESS WITH IT */ +/* normal */ + +.folder_header.folder_header_hover, +.tab_header.tab_header_hover { + z-index: 9999; +} + +.tab_header { + border-radius:var(--tab_header_border_radius); + border:1px solid var(--tab_border); + background-color:var(--tab_background); +} +.tab>.tab_header>.tab_title { + color:var(--tab_title_font_color); + font-style:var(--tab_title_font_style); + font-weight:var(--tab_title_font_weight); +} +/* normal hover */ +.folder_header.folder_header_hover, +.tab_header.tab_header_hover { + border-radius:var(--tab_header_border_radius); + border:1px solid var(--tab_hover_border); + background-color:var(--tab_hover_background); +} +.folder>.folder_header_hover>.folder_title, +.tab>.tab_header_hover>.tab_title { + color:var(--tab_hover_title_font_color); + font-style:var(--tab_hover_title_font_style); + font-weight:var(--tab_hover_title_font_weight); +} +/* normal selected */ +.folder.selected>.folder_header, +.pin.selected>.tab_header, +.tab.selected>.tab_header { + border:1px solid var(--tab_selected_border); + background-color:var(--tab_selected_background); +} +/* selected header title */ +.folder.selected>.folder_header>.folder_title, +.tab.selected>.tab_header>.tab_title { + color:var(--tab_selected_title_font_color); + font-style:var(--tab_selected_title_font_style); + font-weight:var(--tab_selected_title_font_weight); +} +/* normal selected hover */ +.folder.selected>.folder_header_hover, +.pin.selected>.tab_header_hover, +.tab.selected>.tab_header_hover { + border:1px solid var(--tab_selected_hover_border); + background-color:var(--tab_selected_hover_background); +} +.folder.selected>.folder_header_hover>.folder_title, +.tab.selected>.tab_header_hover>.tab_title { + color:var(--tab_selected_hover_title_font_color); + font-style:var(--tab_selected_hover_title_font_style); + font-weight:var(--tab_selected_hover_title_font_weight); +} +/* normal active */ +.pin.active_tab>.tab_header, +.tab.active_tab>.tab_header { + border:1px solid var(--tab_active_border); + background-color:var(--tab_active_background); +} +.tab.active_tab>.tab_header>.tab_title { + color:var(--tab_active_title_font_color); + font-style:var(--tab_active_title_font_style); + font-weight:var(--tab_active_title_font_weight); +} + + +/* normal active hover */ +.pin.active_tab>.tab_header_hover, +.tab.active_tab>.tab_header_hover { + border:1px solid var(--tab_active_hover_border); + background-color:var(--tab_active_hover_background); +} +.tab.active_tab>.tab_header_hover>.tab_title { + color:var(--tab_active_hover_title_font_color); + font-style:var(--tab_active_hover_title_font_style); + font-weight:var(--tab_active_hover_title_font_weight); +} +/* normal selected active */ +.pin.selected.active_tab>.tab_header, +.tab.selected.active_tab>.tab_header { + border:1px solid var(--tab_active_selected_border); + background-color:var(--tab_active_selected_background); +} +.tab.selected.active_tab>.tab_header>.tab_title { + color:var(--tab_active_selected_title_font_color); + font-style:var(--tab_active_selected_title_font_style); + font-weight:var(--tab_active_selected_title_font_weight); +} +/* normal selected active hover */ +.pin.selected.active_tab>.tab_header_hover, +.tab.selected.active_tab>.tab_header_hover { + border:1px solid var(--tab_selected_active_hover_border); + background-color:var(--tab_selected_active_hover_background); +} +.tab.selected.active_tab>.tab_header_hover>.tab_title { + color:var(--tab_selected_active_hover_title_font_color); + font-style:var(--tab_selected_active_hover_title_font_style); + font-weight:var(--tab_selected_active_hover_title_font_weight); +} + + +/* unloaded */ +.pin.discarded>.tab_header, +.tab.discarded>.tab_header { + border:1px solid var(--tab_discarded_border); + background-color:var(--tab_discarded_background); +} +.tab.discarded>.tab_header>.tab_title { + color:var(--tab_discarded_title_font_color); + font-style:var(--tab_discarded_title_font_style); + font-weight:var(--tab_discarded_title_font_weight); +} +/* unloaded hover */ +.pin.discarded>.tab_header_hover, +.tab.discarded>.tab_header_hover { + border:1px solid var(--tab_discarded_hover_border); + background-color:var(--tab_discarded_hover_background); +} +.tab.discarded>.tab_header_hover>.tab_title { + color:var(--tab_discarded_hover_title_font_color); + font-style:var(--tab_discarded_hover_title_font_style); + font-weight:var(--tab_discarded_hover_title_font_weight); +} +/* unloaded selected */ +.pin.selected.discarded>.tab_header, +.tab.selected.discarded>.tab_header { + border:1px solid var(--tab_selected_discarded_border); + background-color:var(--tab_selected_discarded_background); +} +.tab.selected.discarded>.tab_header>.tab_title { + color:var(--tab_selected_discarded_title_font_color); + font-style:var(--tab_selected_discarded_title_font_style); + font-weight:var(--tab_selected_discarded_title_font_weight); +} +/* unloaded selected hover */ +.pin.selected.discarded>.tab_header_hover, +.tab.selected.discarded>.tab_header_hover { + border:1px solid var(--tab_selected_discarded_hover_border); + background-color:var(--tab_selected_discarded_hover_background); +} +.tab.selected.discarded>.tab_header_hover>.tab_title { + color:var(--tab_selected_discarded_hover_title_font_color); + font-style:var(--tab_selected_discarded_hover_title_font_style); + font-weight:var(--tab_selected_discarded_hover_title_font_weight); +} + +/* search result */ +.pin.filtered>.tab_header, +.tab.filtered>.tab_header { + border:1px solid var(--tab_filtered_border); + background-color:var(--tab_filtered_background); +} +.tab.filtered>.tab_header>.tab_title { + color:var(--tab_filtered_title_font_color); + font-style:var(--tab_filtered_title_font_style); + font-weight:var(--tab_filtered_title_font_weight); +} +/* search result hover */ +.pin.filtered>.tab_header_hover, +.tab.filtered>.tab_header_hover { + border:1px solid var(--tab_filtered_hover_border); + background-color:var(--tab_filtered_hover_background); +} +.tab.filtered>.tab_header_hover>.tab_title { + color:var(--tab_filtered_hover_title_font_color); + font-style:var(--tab_filtered_hover_title_font_style); + font-weight:var(--tab_filtered_hover_title_font_weight); +} +/* search result active */ +.pin.filtered.active_tab>.tab_header, +.tab.filtered.active_tab>.tab_header { + border:1px solid var(--tab_filtered_active_border); + background-color:var(--tab_filtered_active_background); +} +.tab.filtered.active_tab>.tab_header>.tab_title { + color:var(--tab_filtered_active_title_font_color); + font-style:var(--tab_filtered_active_title_font_style); + font-weight:var(--tab_filtered_active_title_font_weight); +} +/* search result active hover */ +.pin.filtered.active_tab>.tab_header_hover, +.tab.filtered.active_tab>.tab_header_hover { + border:1px solid var(--tab_filtered_active_hover_border); + background-color:var(--tab_filtered_active_hover_background); +} +.tab.filtered.active_tab>.tab_header_hover>.tab_title { + color:var(--tab_filtered_active_hover_title_font_color); + font-style:var(--tab_filtered_active_hover_title_font_style); + font-weight:var(--tab_filtered_active_hover_title_font_weight); +} +/* search result selected */ +.pin.selected.filtered>.tab_header, +.tab.selected.filtered>.tab_header { + border:1px solid var(--tab_filtered_selected_border); + background-color:var(--tab_filtered_selected_background); +} +.tab.selected.filtered>.tab_header>.tab_title { + color:var(--tab_filtered_selected_title_font_color); + font-style:var(--tab_filtered_selected_title_font_style); + font-weight:var(--tab_filtered_selected_title_font_weight); +} +/* search result selected hover */ +.pin.selected.filtered>.tab_header_hover, +.tab.selected.filtered>.tab_header_hover { + border:1px solid var(--tab_filtered_selected_hover_border); + background-color:var(--tab_filtered_selected_hover_background); +} +.tab.selected.filtered>.tab_header_hover>.tab_title { + color:var(--tab_filtered_selected_hover_title_font_color); + font-style:var(--tab_filtered_selected_hover_title_font_style); + font-weight:var(--tab_filtered_selected_hover_title_font_weight); +} +/* search result active selected */ +.pin.selected.filtered.active_tab>.tab_header, +.tab.selected.filtered.active_tab>.tab_header { + border:1px solid var(--tab_filtered_selected_active_border); + background-color:var(--tab_filtered_selected_active_background); +} +.tab.selected.filtered.active_tab>.tab_header>.tab_title { + color:var(--tab_filtered_selected_active_title_font_color); + font-style:var(--tab_filtered_selected_active_title_font_style); + font-weight:var(--tab_filtered_selected_active_title_font_weight); +} +/* search result active selected hover */ +.pin.selected.filtered.active_tab>.tab_header_hover, +.tab.selected.filtered.active_tab>.tab_header_hover { + border:1px solid var(--tab_filtered_selected_active_hover_border); + background-color:var(--tab_filtered_selected_active_hover_background); +} +.tab.filtered.selected.active_tab>.tab_header_hover>.tab_title { + color:var(--tab_filtered_selected_active_hover_title_font_color); + font-style:var(--tab_filtered_selected_active_hover_title_font_style); + font-weight:var(--tab_filtered_selected_active_hover_title_font_weight); +} +/* search result highlighted */ +.pin.filtered.highlighted_search>.tab_header, +.tab.filtered.highlighted_search>.tab_header { + border:1px solid var(--tab_filtered_highlighted_search_border); + background-color:var(--tab_filtered_highlighted_search_background); +} +.tab.filtered.highlighted_search>.tab_header>.tab_title { + color:var(--tab_filtered_highlighted_search_title_font_color); + font-style:var(--tab_filtered_highlighted_search_title_font_style); + font-weight:var(--tab_filtered_highlighted_search_title_font_weight); +} +/* search result highlighted hover */ +.pin.filtered.highlighted_search>.tab_header_hover, +.tab.filtered.highlighted_search>.tab_header_hover { + border:1px solid var(--tab_filtered_highlighted_search_hover_border); + background-color:var(--tab_filtered_highlighted_search_hover_background); +} +.tab.filtered.highlighted_search>.tab_header_hover>.tab_title { + color:var(--tab_filtered_highlighted_search_hover_title_font_color); + font-style:var(--tab_filtered_highlighted_search_hover_title_font_style); + font-weight:var(--tab_filtered_highlighted_search_hover_title_font_weight); +} +/* search result active highlighted */ +.pin.active_tab.filtered.highlighted_search>.tab_header, +.tab.active_tab.filtered.highlighted_search>.tab_header { + border:1px solid var(--tab_filtered_active_highlighted_search_border); + background-color:var(--tab_filtered_active_highlighted_search_background); +} +.tab.active_tab.filtered.highlighted_search>.tab_header>.tab_title { + color:var(--tab_filtered_active_highlighted_search_title_font_color); + font-style:var(--tab_filtered_active_highlighted_search_title_font_style); + font-weight:var(--tab_filtered_active_highlighted_search_title_font_weight); +} +/* search result active highlighted hover */ +.pin.active_tab.filtered.highlighted_search>.tab_header_hover, +.tab.active_tab.filtered.highlighted_search>.tab_header_hover { + border:1px solid var(--tab_filtered_active_highlighted_search_hover_border); + background-color:var(--tab_filtered_active_highlighted_search_hover_background); +} +.tab.active_tab.filtered.highlighted_search>.tab_header_hover>.tab_title { + color:var(--tab_filtered_active_highlighted_search_hover_title_font_color); + font-style:var(--tab_filtered_active_highlighted_search_hover_title_font_style); + font-weight:var(--tab_filtered_active_highlighted_search_hover_title_font_weight); +} +/* search result selected highlighted */ +.pin.selected.filtered.highlighted_search>.tab_header, +.tab.selected.filtered.highlighted_search>.tab_header { + border:1px solid var(--tab_filtered_selected_highlighted_search_border); + background-color:var(--tab_filtered_selected_highlighted_search_background); +} +.tab.selected.filtered.highlighted_search>.tab_header>.tab_title { + color:var(--tab_filtered_selected_highlighted_search_title_font_color); + font-style:var(--tab_filtered_selected_highlighted_search_title_font_style); + font-weight:var(--tab_filtered_selected_highlighted_search_title_font_weight); +} +/* search result selected highlighted hover */ +.pin.selected.filtered.highlighted_search>.tab_header_hover, +.tab.selected.filtered.highlighted_search>.tab_header_hover { + border:1px solid var(--tab_filtered_selected_highlighted_search_hover_border); + background-color:var(--tab_filtered_selected_highlighted_search_hover_background); +} +.tab.selected.filtered.highlighted_search>.tab_header_hover>.tab_title { + color:var(--tab_filtered_selected_highlighted_search_hover_title_font_color); + font-style:var(--tab_filtered_selected_highlighted_search_hover_title_font_style); + font-weight:var(--tab_filtered_selected_highlighted_search_hover_title_font_weight); +} +/* search result selected active highlighted */ +.pin.active_tab.selected.filtered.highlighted_search>.tab_header, +.tab.active_tab.selected.filtered.highlighted_search>.tab_header { + border:1px solid var(--tab_filtered_selected_active_highlighted_search_border); + background-color:var(--tab_filtered_selected_active_highlighted_search_background); +} +.tab.active_tab.selected.filtered.highlighted_search>.tab_header>.tab_title { + color:var(--tab_filtered_selected_active_highlighted_search_title_font_color); + font-style:var(--tab_filtered_selected_active_highlighted_search_title_font_style); + font-weight:var(--tab_filtered_selected_active_highlighted_search_title_font_weight); +} +/* search result selected active highlighted hover */ +.pin.active_tab.selected.filtered.highlighted_search>.tab_header_hover, +.tab.active_tab.selected.filtered.highlighted_search>.tab_header_hover { + border:1px solid var(--tab_filtered_selected_active_highlighted_search_hover_border); + background-color:var(--tab_filtered_selected_active_highlighted_search_hover_background); +} +.tab.active_tab.selected.filtered.highlighted_search>.tab_header_hover>.tab_title { + color:var(--tab_filtered_selected_active_highlighted_search_hover_title_font_color); + font-style:var(--tab_filtered_selected_active_highlighted_search_hover_title_font_style); + font-weight:var(--tab_filtered_selected_active_highlighted_search_hover_title_font_weight); +} + + + + + +.group>.children>.tab:first-child>.drag_indicator, +.group>.children>.folder:first-child>.drag_indicator { top: 1px; } @@ -1297,12 +1304,6 @@ div { /* MEDIA */ -@keyframes blinking2 { - 0% {opacity: 0} - 30% {opacity: 1} - 70% {opacity: 1} - 100% {opacity: 0} -} .tab_mediaicon { animation: none; position: absolute; @@ -1317,7 +1318,6 @@ div { } .audible>.tab_header>.tab_mediaicon { - animation: blinking2 1.5s infinite; display: inline-block; height: var(--tab_mediaicon_height); width: var(--tab_mediaicon_width); @@ -1330,7 +1330,6 @@ div { } .muted>.tab_header>.tab_mediaicon { - animation: blinking2 1.5s infinite; display: inline-block; height: var(--tab_mediaicon_height); width: var(--tab_mediaicon_width); @@ -1372,9 +1371,9 @@ div { width: var(--close_width); background-color: var(--close_x); -webkit-mask-image: url(../theme/close.svg); - -webkit-mask-size: var(--close_height) var(--close_width); + -webkit-mask-size: 100% 100%; mask-image: url(../theme/close.svg); - mask-size: 100%; + mask-size: var(--close_width) var(--close_height); mask-position: center, center; } @@ -1403,16 +1402,12 @@ div { border: none; } -.folder_header.folder_header_hover, -.tab_header.tab_header_hover { - z-index: 9999; -} -.dragged_tree>.folder_header, -.dragged_tree>.tab_header { +.folder.dragged_tree>.folder_header, +.pin.dragged_tree>.tab_header, +.tab.dragged_tree>.tab_header { border: 1px solid var(--tab_selected_border); background-color: var(--tab_selected_background); - } @@ -1432,7 +1427,8 @@ div { .o>.tab_header>.tab_counter, .c>.folder_header>.folder_counter, .c>.tab_header>.tab_counter { - opacity: 0.3; + font-family: Arial, Helvetica, "Nimbus Sans L", "Liberation Sans", FreeSans, Sans-serif; + opacity: 0.7; display: block; position: absolute; vertical-align: bottom; @@ -1441,42 +1437,45 @@ div { top: var(--counter_top); text-overflow: ellipsis; width: auto; - height: var(--counter_height); + height: var(--counter_size); + padding-top: 0px; + padding-bottom: 0px; + padding-left: 1px; + padding-right: 1px; overflow: hidden; border: 1px solid #e7e7e7; border-radius: 6px; background-color: #e7e7e7; - line-height: 10px; } .o>.folder_header:hover>.folder_counter, .o>.tab_header:hover>.tab_counter, .c>.folder_header:hover>.folder_counter, .c>.tab_header:hover>.tab_counter { - opacity: 0.9; - height: calc(var(--counter_height) + 1px); + opacity: 1; } - +/* .o>.tab_header:hover>.tab_counter>.counter_number, .c>.tab_header:hover>.tab_counter>.counter_number, .o>.folder_header:hover>.folder_counter>.counter_number, .c>.folder_header:hover>.folder_counter>.counter_number { top: calc(var(--counter_number_top) + 1px); font-size: calc(var(--counter_font_size) + 1px); -} + line-height: calc(var(--counter_height) + 4px); + } + */ + .folder_counter>.counter_number, .tab_counter>.counter_number { position: relative; - top: var(--counter_number_top); font-family: Arial, Helvetica, "Nimbus Sans L", "Liberation Sans", FreeSans, Sans-serif; white-space: nowrap; - font-size: var(--counter_font_size); - /* color: #303030; */ + font-size: var(--counter_size); color: #000000; - padding-left: 1px; - padding-right: 1px; + line-height: 1px; + bottom: var(--counter_number); } diff --git a/theme/theme_blinking_attention.css b/theme/theme_blinking_attention.css new file mode 100644 index 0000000..b340b4e --- /dev/null +++ b/theme/theme_blinking_attention.css @@ -0,0 +1,9 @@ +@keyframes attention_blinking { + 0% {background-color: var(--tab_background); border:1px solid var(--tab_border);} + 50% {background-color: var(--attention_background); border:1px solid var(--attention_border);} + 80% {background-color: var(--tab_background); border:1px solid var(--tab_border);} + 100% {background-color: var(--tab_background); border:1px solid var(--tab_border);} +} +.pin.attention>.tab_header { + animation: attention_blinking 2.5s infinite; +} \ No newline at end of file diff --git a/theme/theme_blinking_audio.css b/theme/theme_blinking_audio.css new file mode 100644 index 0000000..244990b --- /dev/null +++ b/theme/theme_blinking_audio.css @@ -0,0 +1,12 @@ +@keyframes audio_blinking { + 0% {opacity: 0} + 30% {opacity: 1} + 70% {opacity: 1} + 100% {opacity: 0} +} +.audible>.tab_header>.tab_mediaicon { + animation: audio_blinking 1.5s infinite; +} +.muted>.tab_header>.tab_mediaicon { + animation: audio_blinking 1.5s infinite; +} \ No newline at end of file diff --git a/theme/theme_size_preset_0.css b/theme/theme_size_preset_0.css index fdfe57c..36a48fc 100644 --- a/theme/theme_size_preset_0.css +++ b/theme/theme_size_preset_0.css @@ -7,9 +7,7 @@ body { --pin_height: 22px; --tab_height: 16px; - --tab_height_line: 16px; - - --title_font_size: 10.5px; + --title_font_size: 11px; --tab_title_text_padding_left: 18px; --tab_title_text_padding_exp_left: 25px; @@ -29,16 +27,15 @@ body { --children_padding_left: 5px; --close_top: 1px; - --close_right: 0px; + --close_right: 1px; --close_height: 12px; --close_width: 12px; --tab_mediaicon_height: 8px; --tab_mediaicon_width: 8px; - --counter_height: 5px; - --counter_left: 19px; + --counter_size: 7px; --counter_top: 0px; - --counter_font_size: 7px; - --counter_number_top: -3px; + --counter_left: 18px; + --counter_number: -3px; } \ No newline at end of file diff --git a/theme/theme_size_preset_1.css b/theme/theme_size_preset_1.css index 3c33edc..c8e7ae2 100644 --- a/theme/theme_size_preset_1.css +++ b/theme/theme_size_preset_1.css @@ -6,10 +6,8 @@ body { --pin_width: 22px; --pin_height: 22px; - --tab_height: 17px; - --tab_height_line: 18px; - - --title_font_size: 10.5px; + --tab_height: 18px; + --title_font_size: 12px; --tab_title_text_padding_left: 21px; --tab_title_text_padding_exp_left: 30px; @@ -30,15 +28,14 @@ body { --children_padding_left: 5px; --close_top: 1px; --close_right: 1px; - --close_height: 13px; + --close_height: 14px; --close_width: 13px; --tab_mediaicon_height: 9px; --tab_mediaicon_width: 9px; - --counter_height: 6px; - --counter_left: 21px; + --counter_size: 7px; --counter_top: 0px; - --counter_font_size: 8px; - --counter_number_top: -2px; + --counter_left: 21px; + --counter_number: -3px; } \ No newline at end of file diff --git a/theme/theme_size_preset_2.css b/theme/theme_size_preset_2.css index aececed..28f47e5 100644 --- a/theme/theme_size_preset_2.css +++ b/theme/theme_size_preset_2.css @@ -7,9 +7,7 @@ body { --pin_height: 24px; --tab_height: 20px; - --tab_height_line: 23px; - - --title_font_size: 12px; + --title_font_size: 14px; --tab_title_text_padding_left: 26px; --tab_title_text_padding_exp_left: 35px; @@ -29,17 +27,15 @@ body { --children_padding_left: 5px; --close_top: 2px; - --close_right: 1px; + --close_right: 2px; --close_height: 14px; --close_width: 14px; --tab_mediaicon_height: 10px; --tab_mediaicon_width: 10px; - --counter_height: 6px; - --counter_left: 24px; - /* --counter_left: 1px; */ + --counter_size: 8px; --counter_top: 1px; - --counter_font_size: 8px; - --counter_number_top: -2px; + --counter_left: 24px; + --counter_number: -4px; } \ No newline at end of file diff --git a/theme/theme_size_preset_3.css b/theme/theme_size_preset_3.css index e884a92..97f4464 100644 --- a/theme/theme_size_preset_3.css +++ b/theme/theme_size_preset_3.css @@ -7,9 +7,7 @@ body { --pin_height: 26px; --tab_height: 22px; - --tab_height_line: 24px; - - --title_font_size: 13px; + --title_font_size: 14px; --tab_title_text_padding_left: 25px; --tab_title_text_padding_exp_left: 37px; @@ -36,9 +34,8 @@ body { --tab_mediaicon_height: 11px; --tab_mediaicon_width: 11px; - --counter_height: 6px; - --counter_left: 26px; + --counter_size: 8px; --counter_top: 1px; - --counter_font_size: 8px; - --counter_number_top: -2px; + --counter_left: 26px; + --counter_number: -4px; } \ No newline at end of file diff --git a/theme/theme_size_preset_4.css b/theme/theme_size_preset_4.css index 7bb4030..9d18307 100644 --- a/theme/theme_size_preset_4.css +++ b/theme/theme_size_preset_4.css @@ -7,16 +7,14 @@ body { --pin_height: 28px; --tab_height: 24px; - --tab_height_line: 26px; - - --title_font_size: 14px; + --title_font_size: 15px; --tab_title_text_padding_left: 27px; --tab_title_text_padding_exp_left: 39px; --tab_title_text_padding_right_with_close_button: 24px; - --favicon_width: 18px; - --favicon_height: 18px; + --favicon_width: 16px; + --favicon_height: 16px; --favicon_left: 3px; --expand_height: 23px; @@ -36,9 +34,8 @@ body { --tab_mediaicon_height: 12px; --tab_mediaicon_width: 12px; - --counter_height: 6px; - --counter_left: 28px; + --counter_size: 8px; --counter_top: 1px; - --counter_font_size: 8px; - --counter_number_top: -2px; + --counter_left: 28px; + --counter_number: -4px; } \ No newline at end of file diff --git a/theme/theme_size_preset_5.css b/theme/theme_size_preset_5.css new file mode 100644 index 0000000..4fcbc69 --- /dev/null +++ b/theme/theme_size_preset_5.css @@ -0,0 +1,41 @@ +body { + + --scrollbar_height: 4px; + --scrollbar_width: 16px; + + --pin_width: 30px; + --pin_height: 30px; + + --tab_height: 26px; + --title_font_size: 16px; + + --tab_title_text_padding_left: 29px; + --tab_title_text_padding_exp_left: 41px; + --tab_title_text_padding_right_with_close_button: 24px; + + --favicon_width: 16px; + --favicon_height: 16px; + --favicon_left: 3px; + + --expand_height: 25px; + --expand_width: 45px; + + --expand_mask_top: 10px; + --expand_mask_left: 29px; + --expand_mask_height: 7px; + --expand_mask_width: 7px; + + --children_padding_left: 5px; + --close_top: 5px; + --close_right: 5px; + --close_height: 14px; + --close_width: 14px; + + --tab_mediaicon_height: 13px; + --tab_mediaicon_width: 13px; + + --counter_size: 8px; + --counter_top: 1px; + --counter_left: 30px; + --counter_number: -4px; +} \ No newline at end of file diff --git a/theme/theme_tabs_margin_0.css b/theme/theme_tabs_margin_0.css index 7470256..b25887d 100644 --- a/theme/theme_tabs_margin_0.css +++ b/theme/theme_tabs_margin_0.css @@ -23,6 +23,5 @@ body { --pin_list_padding_bottom: 2px; --pin_list_padding_left: 2px; - --group_folders_top: 2px; --group_tabs_top: 2px; } \ No newline at end of file diff --git a/theme/theme_tabs_margin_1.css b/theme/theme_tabs_margin_1.css index 686dab4..2621762 100644 --- a/theme/theme_tabs_margin_1.css +++ b/theme/theme_tabs_margin_1.css @@ -23,6 +23,5 @@ body { --pin_list_padding_bottom: 1px; --pin_list_padding_left: 1px; - --group_folders_top: 1px; --group_tabs_top: 1px; } \ No newline at end of file diff --git a/theme/theme_tabs_margin_2.css b/theme/theme_tabs_margin_2.css index 2e2e3c3..ef7e392 100644 --- a/theme/theme_tabs_margin_2.css +++ b/theme/theme_tabs_margin_2.css @@ -23,6 +23,5 @@ body { --pin_list_padding_bottom: 0px; --pin_list_padding_left: 0px; - --group_folders_top: -1px; - --group_tabs_top: -1px; + --group_tabs_top: 0px; } \ No newline at end of file diff --git a/translator/translator.html b/translator/translator.html new file mode 100644 index 0000000..6a40f69 --- /dev/null +++ b/translator/translator.html @@ -0,0 +1,18 @@ + + + + + + Tree Tabs - translation tool + + + + + + Send your translation here + + + + + + \ No newline at end of file diff --git a/translator/translator.js b/translator/translator.js new file mode 100644 index 0000000..25048f7 --- /dev/null +++ b/translator/translator.js @@ -0,0 +1,121 @@ +const english_base = {"extensionName":{"message":"Tree Tabs"},"extDesc":{"message":"Manage your tabs in the sidebar!"},"OpenSidebar":{"message":"Open Tree Tabs"},"button_new":{"message":"Press left mouse button to open new tab. \nPress middle mouse button to clone the active tab. \nPress right mouse button to scroll the list to the active tab."},"button_pin":{"message":"Pin / Unpin current tab"},"button_undo":{"message":"Reopen last closed"},"button_reboot":{"message":"Reload Tree Tabs_ Try this in case your tree hierarchy is lost after restart."},"button_detach":{"message":"Detach tab"},"button_move":{"message":"Detach tab"},"button_search":{"message":"Search tabs"},"button_tools":{"message":"Tools"},"button_groups":{"message":"Groups"},"filter_search_go_prev":{"message":"Previous search result"},"filter_search_go_next":{"message":"Next search result"},"button_bookmarks":{"message":"Unsorted bookmarks"},"button_downloads":{"message":"Downloads"},"button_history":{"message":"History"},"button_settings":{"message":"Settings"},"button_options":{"message":"Tree Tabs settings"},"button_extensions":{"message":"Extensions"}, +"button_unload":{"message":"Unload tabs"},"button_discard":{"message":"Unload tabs"},"button_filter_type":{"message":"Search titles or urls"},"button_groups_toolbar_hide":{"message":"Hide/Show Groups toolbar"},"button_new_group":{"message":"New group"},"button_remove_group":{"message":"Remove group.\nHold shift key to close tabs from this group"},"button_edit_group":{"message":"Rename group"},"button_import_group":{"message":"Import group"},"button_export_group":{"message":"Export group"},"button_backup":{"message":"Session"},"button_import_bak":{"message":"Import session"},"button_import_merge_bak":{"message":"Import and merge session.\nImporter will try to match current tabs with those from saved session, instead of opening a new window."},"button_export_bak":{"message":"Export session"},"button_load_bak1":{"message":"EMERGENCY if lost groupings: Load latest internal backup (autosave is made every 5 minutes)"},"button_load_bak2":{"message":"EMERGENCY if lost groupings: Load previous to latest internal backup (autosave is made every 10 minutes)"}, +"button_load_bak3":{"message":"EMERGENCY if lost groupings: Load oldest internal backup (autosave is made every 30 minutes)"},"button_folders":{"message":"Folders"},"button_new_folder":{"message":"New folder"},"button_remove_folder":{"message":"Remove selected folder/s"},"button_edit_folder":{"message":"Rename folder"},"menu_expand_all":{"message":"Expand all trees"},"menu_collapse_all":{"message":"Collapse all trees"},"menu_expand_tree":{"message":"Expand tree"},"menu_collapse_tree":{"message":"Collapse tree"},"menu_new_tab":{"message":"New tab"},"menu_new_pin":{"message":"New pinned tab"},"menu_duplicate_tab":{"message":"Duplicate"},"menu_detach_tab":{"message":"Detach"},"menu_reload_tab":{"message":"Reload"},"menu_pin_tab":{"message":"Pin"},"menu_mute_tab":{"message":"Mute"},"menu_mute_tree":{"message":"Mute tree"},"menu_unmute_tree":{"message":"Unmute tree"},"menu_unmute_tab":{"message":"Unmute"},"menu_mute_other":{"message":"Mute other"},"menu_unmute_other":{"message":"Unmute other"},"menu_unpin_tab":{"message":"Unpin"},"menu_close_tree":{"message":"Close tree"},"menu_close":{"message":"Close"}, +"menu_close_other":{"message":"Close other"},"menu_undo_close_tab":{"message":"Undo close"},"menu_treetabs_settings":{"message":"Settings"},"menu_unload":{"message":"Unload"},"menu_bookmark_tree":{"message":"Bookmark"},"menu_new_folder":{"message":"New folder"},"menu_rename_folder":{"message":"Rename folder"},"menu_delete_folder":{"message":"Delete"},"menu_new_group":{"message":"New group"},"menu_rename_group":{"message":"Rename"},"menu_delete_group":{"message":"Delete"},"menu_delete_group_tabs_close":{"message":"Delete with tabs"},"menu_groups_unload":{"message":"Unload"},"menu_bookmark_group":{"message":"Bookmark"},"menu_groups_hibernate":{"message":"Hibernate"},"menu_group_tabs_close":{"message":"Close tabs"},"status_bar_rearranging_tabs":{"message":"Rearranging tabs and folders"},"status_bar_rearranging_finished":{"message":"Rearranging: done."},"status_bar_loaded_tree_structure":{"message":"Loaded Tree structure..."},"status_bar_finding_ref_tabs":{"message":"Finding reference tabs..."},"status_bar_finding_other_windows":{"message":"Finding other windows to add tabs..."}, +"status_bar_all_done":{"message":"All done."},"status_bar_autosave":{"message":"Autosave: "},"status_bar_quick_check_recreate_structure":{"message":"Quick check and recreating structure..."},"options_vivaldi":{"message":" Vivaldi "},"opt_url_for_web_panel":{"message":"Url for the Web Panel"},"options_pinned":{"message":" Pinned tabs bar "},"options_pin_list_multi_row":{"message":"Multi row list"},"option_allow_pin_close":{"message":"Allow to close pinned tabs"},"option_pin_attention_blinking":{"message":"Blink pinned tabs that ask for attention"},"option_audio_blinking":{"message":"Blink audio indicator"},"options_tabs":{"message":" Tabs "},"options_syncro_tabbar_tabs_order":{"message":"Synchronize browser tabs order with Tree Tabs, tabs can be unresponsive for a second after drag&drop. This option is needed for correct ctrl+tab switching. You can disable this option if you don't use keyboard shortcuts."},"options_switch_with_scroll":{"message":"Switch tabs with mouse wheel"},"options_tab_group_regex":{"message":"Tab group assignments (Items matching the given pattern will be moved to the designated group. Pattern accepts regular expressions.)"}, +"option_tab_match":{"message":"Pattern"},"option_tab_group":{"message":"Group"},"options_orphaned_tabs_to_ungrouped":{"message":"Always place orphan tabs in the 'ungrouped' group"},"options_move_on_url_change":{"message":"Move tabs that match regexes"},"options_move_on_url_change_never":{"message":"never"},"options_move_on_url_change_from_empty":{"message":"when URL changes in Home tab (only Home tabs created by ctrl+t shortcut)"},"options_move_on_url_change_from_empty_b":{"message":"when URL changes in any Home tab"},"options_move_on_url_change_all_new":{"message":"when tab is created with a matching URL"},"options_move_on_url_change_always":{"message":"whenever URL changes to a matching pattern"},"options_always_show_close":{"message":"Show close button on all tabs and folders"},"options_never_show_close":{"message":"Never show close button (option above will be ignored)"},"options_collapse_other_trees":{"message":"Automatically collapse other trees on expand"},"options_open_tree_on_hover":{"message":"Auto expand collapsed trees when dragging and holding for a second over them"}, +"options_promote_children":{"message":"Promote children on close, if disabled, when closing the parent of a tree structure, all tabs and folders will be closed (be careful, because undo close tab will not recover the trees structure)"},"options_promote_children_in_first_child":{"message":"Promote first child as a parent"},"options_skip_load":{"message":"Discard tree structure after browser's restart, this option is for those who don't use browser's session. Basically it disables loading database at startup."},"options_midclick_tab":{"message":"Action for middle mouse click on tab"},"options_dbclick_tab":{"message":"Action for double click on tab"},"options_action_tab_none":{"message":"nothing"},"options_action_tab_new":{"message":"open new tab"},"options_action_tab_expand_collapse":{"message":"expand/collapse tree"},"options_action_tab_close":{"message":"close tab"},"options_action_tab_reload":{"message":"reload tab"},"options_action_tab_unload":{"message":"unload tab"},"options_action_tab_activate_previous_active":{"message":"go back to previous active tab (works only on unpinned tabs)"}, +"options_action_tab_undo_close":{"message":"reopen last closed tab"},"options_midclick_group":{"message":"Action for middle click on empty space on the left side or below the tabs"},"options_dbclick_group":{"message":"Action for double click on empty space on the left side or below the tabs"},"options_action_group_none":{"message":"nothing"},"options_action_group_new":{"message":"open new tab"},"options_action_group_activate_previous_active":{"message":"go back to previous active tab (works only on unpinned tabs)"},"options_action_group_undo_close_tab":{"message":"reopen last closed tab"},"options_append_pinned_tab":{"message":"Place pinned tabs"},"options_append_pinned_tab_first":{"message":"as first"},"options_append_pinned_tab_after":{"message":"after opener, or active"},"options_append_pinned_tab_last":{"message":"as last"},"options_append_child_tab":{"message":"Place children tabs"},"options_append_child_tab_top":{"message":"at the top (reverse hierarchy)"},"options_append_child_tab_bottom":{"message":" at the bottom"},"options_append_child_tab_after":{"message":"after parent tab (no automatic tree)"}, +"options_append_orphan_tab":{"message":"Append orphan tabs"},"options_append_orphan_tab_top":{"message":"at the top of the group"},"options_append_orphan_tab_after_active":{"message":"after active tab"},"options_append_orphan_tab_bottom":{"message":"at the bottom of the group"},"options_append_orphan_tab_as_child":{"message":"treat as active's tab child"},"options_append_orphan_tab_active_parent_top":{"message":"at the same level as active tab, but on top"},"options_append_orphan_tab_active_parent_bottom":{"message":"at the same level as active tab, but on bottom"},"options_toolbar_new_tab":{"message":"Toolbar + (new tab button) should append tab"},"options_toolbar_new_tab_as_regular_orphan":{"message":"as a regular orphan tab (option above)"},"options_toolbar_new_tab_root_of_group":{"message":"at the bottom of the group"},"options_after_closing_active_tab":{"message":"After closing active tab,"},"options_after_closing_active_tab_go_up":{"message":"activate tab above"},"options_after_closing_active_tab_go_down":{"message":"activate tab below"},"options_after_closing_active_tab_go_up_seek_in_parent":{"message":"activate tab above if on the same level"}, +"options_after_closing_active_tab_go_down_seek_in_parent":{"message":"activate tab below if on the same level"},"options_after_closing_active_tab_go_browser":{"message":"let browser activate tab"},"options_append_child_tab_after_limit":{"message":"Once reached maximum tree depth, place tab on the same level, but"},"options_append_child_tab_after_limit_top":{"message":"at the top"},"options_append_child_tab_after_limit_after":{"message":"after parent"},"options_append_child_tab_after_limit_bottom":{"message":"at the bottom"},"options_show_counter_tabs":{"message":"Show children tabs count on tabs and folders titles"},"options_show_counter_tabs_hints":{"message":"Show children tabs count in tabs and folders hints"},"options_max_tree_depth":{"message":"Maximum tree depth: set it to -1 for unlimited branches, 0 for flat tabs placement (no trees), any number above 0 will be its maximum"},"options_max_tree_drag_drop":{"message":"Limit Drag&Drop to tree's maximum depth, so you can't drop tabs beyond maximum depth"},"options_groups":{"message":"Groups"},"options_show_counter_groups":{"message":"Show tabs count on groups"}, +"options_groups_toolbar_default":{"message":"Show groups toolbar in new windows"},"options_syncro_tabbar_groups_tabs_order":{"message":"Synchronize browser tabs order after drag&drop of the group tabs. Tabs will sort for a long time, if browser has a lot of tabs open. This option is needed for correct ctrl+tab switching. You can disable this option if you don't use keyboard shortcuts."},"options_hide_other_groups_tabs_firefox":{"message":"Show Firefox tabs from current group only. Requires change in about:config, find 'extensions.webextensions.tabhide.enabled' and set it to true."},"options_folders":{"message":"Folders"},"options_midclick_folder":{"message":"Action for middle mouse click on folder"},"options_dbclick_folder":{"message":"Action for double click on folder"},"options_action_folder_none":{"message":"nothing"},"options_action_folder_rename":{"message":"rename folder"},"options_action_folder_new_folder":{"message":"open new folder"},"options_action_folder_new_tab":{"message":"open new tab"},"options_action_folder_expand_collapse":{"message":"expand/collapse tree"},"options_action_folder_close":{"message":"close folder"}, +"options_action_folder_unload":{"message":"unload tabs in folder"},"options_global":{"message":"Global"},"options_theme":{"message":"Theme"},"options_rename_theme_button":{"message":"Rename"},"options_add_theme_button":{"message":"Add new"},"options_remove_theme_button":{"message":"Remove"},"options_import_theme_button":{"message":"Import"},"options_export_theme_button":{"message":"Export"},"options_share_theme_link":{"message":"Get more!"},"options_toolbar":{"message":" Toolbar "},"options_available_buttons":{"message":"Drag and drop buttons to arrange them, drop to the green box, buttons you don't want to use"},"options_reset_toolbar_button":{"message":"Reset toolbar"},"options_export_debug":{"message":"Export log file"},"options_print_debug":{"message":"Load log from file"},"options_toolbar_look":{"message":" Toolbar's look "},"hint_orphan_tab":{"message":"Orphan tab is a tab opened from an external source, which can be:"},"hint_ctrl_t":{"message":"ctrl+t shortcut"},"hint_from_pin":{"message":"link that opens new tab from pinned tab"},"hint_from_bookmark":{"message":"bookmark"},"hint_from_external_link":{"message":"external link"}, +"hint_from_popup":{"message":"popup opened as a tab (settings in browser, popup blocker or anything that redirects popups to new tabs)"},"hint_explained_new_tab_settings":{"message":"+ button in Tree Tabs toolbar, places new tabs in the root of the active group, unless set differently."},"hint_explained_orphan_after_active_settings":{"message":"If set to 'after active tab' and active tab is not in current group, tab will append to the root of the active group instead."},"button_background":{"message":"Toolbar buttons background"},"button_hover_background":{"message":"Toolbar buttons background, on mouse hover"},"button_on_background":{"message":"Toolbar active buttons background"},"button_icons":{"message":"Toolbar buttons icon color"},"button_icons_hover":{"message":"Toolbar buttons icon color, on mouse hover"},"button_on_icons":{"message":"Toolbar active buttons icon color"},"button_border":{"message":"Toolbar buttons border color"},"button_hover_border":{"message":"Toolbar buttons border color, on mouse hover"},"filter_box_font":{"message":"Search box, font color"},"filter_box_background":{"message":"Search box, font background color"}, +"filter_box_border":{"message":"Search box, border color"},"filter_clear_icon":{"message":"Clear search result x button color"},"toolbar_background":{"message":"Toolbar background color"},"toolbar_shelf_background":{"message":"Toolbar's shelf background color"},"toolbar_border_bottom":{"message":"Toolbar borders color"},"button_shelf_background":{"message":"Toolbar's shelf buttons background color"},"button_shelf_hover_background":{"message":"Toolbar's shelf buttons background color, on mouse hover"},"button_shelf_icons":{"message":"Toolbar's shelf buttons icon color"},"button_shelf_icons_hover":{"message":"Toolbar's shelf buttons icon color, on mouse hover"},"button_shelf_border":{"message":"Toolbar's shelf buttons border color"},"button_shelf_hover_border":{"message":"Toolbar's shelf buttons border color, on mouse hover"},"options_theme_tabs":{"message":" Tabs look "},"options_tabs_margin_overlap":{"message":"Tabs spacing:\nOverlap 1px, best for themes with borders"},"options_tabs_margin_0":{"message":"Tabs spacing:\nNo spacing, best for flat look"},"options_tabs_margin_1":{"message":"Tabs spacing:\nDefault, 1px between tabs"}, +"options_tab_list_scrollbar_width_down":{"message":"Decrease scrollbars width"},"options_tab_list_scrollbar_width_up":{"message":"Increase scrollbars width"},"options_tab_list_scrollbar_height_down":{"message":"Decrease scrollbars height"},"options_tab_list_scrollbar_height_up":{"message":"Increase scrollbars height"},"options_tabs_indentation_down":{"message":"Decrease tabs indentation"},"options_tabs_indentation_up":{"message":"Increase tabs indentation"},"options_tabs_roundness_down":{"message":"Make tabs corners more square"},"options_tabs_roundness_up":{"message":"Make tabs rounder"},"options_tabs_size_down":{"message":"Decrease tabs size"},"options_tabs_size_up":{"message":"Increase tabs size"},"options_theme_tabs_sample_text_normal":{"message":"Normal"},"options_theme_tabs_sample_text_normal_hover":{"message":"Normal, mouse hover over"},"options_theme_tabs_sample_text_normal_selected":{"message":"Normal selected"},"options_theme_tabs_sample_text_normal_selected_hover":{"message":"Normal selected, mouse hover over"},"options_theme_tabs_sample_text_active":{"message":"Active"},"options_theme_tabs_sample_text_active_hover":{"message":"Active, mouse hover over"}, +"options_theme_tabs_sample_text_active_selected":{"message":"Active and selected"},"options_theme_tabs_sample_text_active_selected_hover":{"message":"Active and selected, mouse hover over"},"options_theme_tabs_sample_text_discarded":{"message":"Unloaded (discarded)"},"options_theme_tabs_sample_text_discarded_hover":{"message":"Unloaded, mouse hover over"},"options_theme_tabs_sample_text_discarded_selected":{"message":"Unloaded and selected"},"options_theme_tabs_sample_text_discarded_selected_hover":{"message":"Unloaded and selected, mouse hover over"},"options_theme_tabs_sample_text_search_result":{"message":"Search result"},"options_theme_tabs_sample_text_search_result_hover":{"message":"Search result, mouse hover over"},"options_theme_tabs_sample_text_search_result_active":{"message":"Search result active"},"options_theme_tabs_sample_text_search_result_active_hover":{"message":"Search result active, mouse hover over"},"options_theme_tabs_sample_text_search_result_selected":{"message":"Search result selected"},"options_theme_tabs_sample_text_search_result_selected_hover":{"message":"Search result selected, mouse hover over"}, +"options_theme_tabs_sample_text_search_result_selected_active":{"message":"Search result selected, active"},"options_theme_tabs_sample_text_search_result_selected_active_hover":{"message":"Search result selected, active, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted":{"message":"Search result highlighted"},"options_theme_tabs_sample_text_search_result_highlighted_hover":{"message":"Search result highlighted, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted_active":{"message":"Search result highlighted, active"},"options_theme_tabs_sample_text_search_result_highlighted_active_hover":{"message":"Search result highlighted, active, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted_selected":{"message":"Search result highlighted, selected"},"options_theme_tabs_sample_text_search_result_highlighted_selected_hover":{"message":"Search result highlighted, selected, mouse hover over"},"options_theme_tabs_sample_text_search_result_highlighted_selected_active":{"message":"Search result highlighted, selected, active"}, +"options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover":{"message":"Search result highlighted, selected, active, mouse hover over"},"attention_background":{"message":"Tabs blinking for attention, background color"},"attention_border":{"message":"Tabs blinking for attention, border color"},"pin_list_border_bottom":{"message":"Pinned tabs list, border at the bottom color"},"pin_list_background":{"message":"Pinned tabs list, background color"},"folder_icon_open":{"message":"Open folder icon"},"folder_icon_closed":{"message":"Empty or closed folder icon"},"folder_icon_hover":{"message":"Folder icon on mouse hover"},"expand_open_background":{"message":"Open tree indicator"},"expand_closed_background":{"message":"Closed tree indicator"},"expand_hover_background":{"message":"Tree indicator on mouse hover"},"group_list_button_hover_background":{"message":"Group on mouse hover"},"group_list_borders":{"message":"Group list border"},"group_list_default_font_color":{"message":"Group list default font color"},"group_list_background":{"message":"Group list background color"},"tab_list_background":{"message":"Tabs background color"}, +"drag_indicator":{"message":"Drag&Drop indicator"},"close_x":{"message":"x inside the close button"},"close_hover_x":{"message":"x inside the close button, on mouse hover"},"close_hover_border":{"message":"close button border, on mouse hover"},"close_hover_background":{"message":"close button box color, on mouse hover"},"scrollbar_thumb":{"message":"Scrollbar thumb"},"scrollbar_thumb_hover":{"message":"Scrollbar thumb, on mouse hover"},"scrollbar_track":{"message":"Scrollbar track"},"options_example_menu_item":{"message":"menu item"},"options_menu":{"message":" Menu "},"tabs_menu_hover_border":{"message":"menu item border, on mouse hover"},"tabs_menu_hover_background":{"message":"menu item background, on mouse hover"},"tabs_menu_separator":{"message":"menu separator"},"tabs_menu_font":{"message":"menu text color"},"tabs_menu_border":{"message":"menu border"},"tabs_menu_background":{"message":"menu background"},"options_there_is_a_theme_with_this_name":{"message":"Theme with this name already exists, try a new name"},"options_theme_name_cannot_be_empty":{"message":"Theme name cannot be empty, enter some name"}, +"options_no_theme_to_export":{"message":"No theme to export, maybe add a new one :)"},"options_loaded_theme_older_version":{"message":"Looks like loaded theme was saved in older version of the extension, some colors or options might be missing"},"options_loaded_theme_newer_version":{"message":"Looks like loaded theme was saved in a newer version of the extension, can't load!"},"options_vivaldi_copied_url":{"message":"Web Panel Url has been copied to clipboard, add a new Web Panel and paste url."},"options_copied_wallet_address":{"message":"Wallet address has been copied to clipboard"},"options_clear_data":{"message":"Sidebar is not loading? Reset! ATTENTION! All options and saved Themes will be lost!"},"options_development":{"message":"Development"},"options_debug":{"message":"Debug"},"group_edit_button_cancel":{"message":"Cancel"},"group_edit_button_confirm":{"message":"Ok"},"folder_edit_button_cancel":{"message":"Cancel"},"folder_edit_button_confirm":{"message":"Ok"},"manager_window_button_label_import_group":{"message":"Import group"},"manager_window_button_label_import_session":{"message":"Import session"}, +"manager_window_button_label_save_current_session":{"message":"Save current session"},"caption_ungrouped_group":{"message":"Ungrouped"},"caption_noname_group":{"message":"untitled"},"caption_clear_filter":{"message":"Clear search results"},"caption_loading":{"message":"Loading..."},"caption_searchbox":{"message":" Search tabs..."},"manager_window_header_title":{"message":"Manager"},"menu_manager_window":{"message":"Open manager"},"button_manager_window":{"message":"Open manager window"},"manager_window_groups_button":{"message":"Hibernated groups"},"manager_window_sessions_button":{"message":"Saved sessions"},"manager_window_autosave_button":{"message":"Auto saved sessions"},"manager_window_button_label_hibernate_group":{"message":"Hibernate current group"},"manager_window_autosessions_maximum_saves_label":{"message":"Number of autosaves to keep:"},"manager_window_autosessions_save_timer_label":{"message":"Autosave every (minutes):"},"manager_window_delete_icon":{"message":"Remove"},"manager_window_savetofile_icon":{"message":"Save to file"},"manager_window_merge_icon":{"message":"Load and merge"},"manager_window_load_icon":{"message":"Load"}, +"options_Remove_button":{"message":"Remove"},"add_tab_group_regex":{"message":"Add"},"menu_unload_tree":{"message":"Unload tree"}}; + + +let translator = { + + Nodes: { + }, + init: function() { + for (var Id in english_base) { + translator.Nodes[Id] = new translator.textBox({id: Id, message: english_base[Id].message}); + } + document.getElementById("load_translation").onclick = function(event) { + if (event.which == 1) { + translator.File_OpenFile(); + } + } + document.getElementById("export_translation").onclick = function(event) { + if (event.which == 1) { + translator.File_SaveFile(); + } + } + + }, + textBox: class { + constructor(p) { + + let OriginalText = document.createElement("div"); + OriginalText.classList = "original"; + OriginalText.id = p.id; + OriginalText.innerHTML = p.message; + body.appendChild(OriginalText); + this.OriginalText = OriginalText; + let TextBox = document.createElement("textarea"); + TextBox.classList = "translated"; + TextBox.id = p.id; + TextBox.style.width = "100%"; + TextBox.value = ""; + TextBox.style.whiteSpace = "normal"; + TextBox.style.marginBottom = "10px"; + body.appendChild(TextBox); + this.TextBox = TextBox; + } + }, + File: { + OpenFile: function(extension) { + let body = document.getElementById("body"); + let inp = document.createElement("input"); + inp.id = "file_import"; + inp.type = "file"; + inp.accept = extension; + inp.style.display = "none"; + body.appendChild(inp); + inp.click(); + + inp.onchange = function(event) { + let fr = new FileReader(); + if (inp.files[0] == undefined) return; + fr.readAsText(inp.files[0]); + fr.onload = function() { + let data = JSON.parse(fr.result); + inp.parentNode.removeChild(inp); + for (var Id in data) { + if (translator.Nodes[Id]) { + translator.Nodes[Id].TextBox.value = data[Id].message; + } + } + } + } + }, + SaveFile: function() { + let data = {}; + for (var Id in translator.Nodes) { + data[Id] = {"message": translator.Nodes[Id].TextBox.value}; + } + let file = new File([JSON.stringify(data)], "messages.json", {type: "text/json;charset=utf-8"}); + let body = document.getElementById("body"); + let savelink = document.createElement("a"); + savelink.href = URL.createObjectURL(file); + savelink.fileSize = file.size; + savelink.target = "_blank"; + savelink.style.display = "none"; + savelink.type = "file"; + savelink.download = "messages.json"; + body.appendChild(savelink); + setTimeout(function() { + savelink.click(); + setTimeout(function() { + savelink.parentNode.removeChild(savelink); + }, 60000); + }, 10); + } + }, +} + + + +translator.init(); + + + diff --git a/vivaldi/save_file.html b/vivaldi/save_file.html new file mode 100644 index 0000000..0100c37 --- /dev/null +++ b/vivaldi/save_file.html @@ -0,0 +1,14 @@ + + + + + + + + + +

    This tab can be closed after saving file

    + + + + \ No newline at end of file diff --git a/vivaldi/save_file.js b/vivaldi/save_file.js new file mode 100644 index 0000000..cb76209 --- /dev/null +++ b/vivaldi/save_file.js @@ -0,0 +1,24 @@ +function DOM_New(type, parent, parameters, style) { + let NewElement = document.createElement(type); + for (param in parameters) { + NewElement[param] = parameters[param]; + } + for (param in style) { + NewElement.style[param] = style[param]; + } + if (parent) parent.appendChild(NewElement); + return NewElement; +} + +function File_SaveFile(filename, extension, data) { + let file = new File([JSON.stringify(data)], filename + "." + extension, {type: "text/" + extension + ";charset=utf-8"}); + let savelink = DOM_New("a", document.getElementById("body"), {href:URL.createObjectURL(file), fileSize: file.size, target: "_blank", type: "file", download: (filename + "." + extension)}, {display: "none"}); + savelink.click(); +} + + +chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { + if (message.command == "save_file") { + File_SaveFile(message.filename, message.extension, message.data); + } +});

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ⅇ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