SpinnerStyle.cs 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703
  1. //------------------------------------------------------------------------------
  2. // SpinnerStyles below are derived from
  3. // <https://github.com/sindresorhus/cli-spinners/blob/master/spinners.json>
  4. // MIT License
  5. // Copyright (c) Sindre Sorhus <[email protected]>
  6. // (https://sindresorhus.com)
  7. // Permission is hereby granted, free of charge, to any person obtaining a copy
  8. // of this software and associated documentation files (the "Software"), to deal
  9. // in the Software without restriction, including without limitation the rights
  10. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11. // copies of the Software, and to permit persons to whom the Software is
  12. // furnished to do so, subject to the following conditions:
  13. // The above copyright notice and this permission notice shall be included in
  14. // all copies or substantial portions of the Software.
  15. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  21. // SOFTWARE.
  22. //------------------------------------------------------------------------------
  23. // Windows Terminal supports Unicode and Emoji characters, but by default
  24. // conhost shells (e.g., PowerShell and cmd.exe) do not. See
  25. // <https://spectreconsole.net/best-practices>.
  26. //------------------------------------------------------------------------------
  27. using System;
  28. #pragma warning disable CA1034 // Nested types should not be visible
  29. namespace Terminal.Gui {
  30. /// <summary>
  31. /// SpinnerStyles used in a <see cref="SpinnerView"/>.
  32. /// </summary>
  33. public abstract class SpinnerStyle {
  34. const int DEFAULT_DELAY = 80;
  35. const bool DEFAULT_BOUNCE = false;
  36. const bool DEFAULT_SPECIAL = false;
  37. /// <summary>
  38. /// Gets or sets the number of milliseconds to wait between characters
  39. /// in the spin. Defaults to the SpinnerStyle's Interval value.
  40. /// </summary>
  41. /// <remarks>This is the maximum speed the spinner will rotate at. You still need to
  42. /// call <see cref="View.SetNeedsDisplay()"/> or <see cref="SpinnerView.AutoSpin"/> to
  43. /// advance/start animation.</remarks>
  44. public abstract int SpinDelay { get; }
  45. /// <summary>
  46. /// Gets or sets whether spinner should go back and forth through the Sequence rather than
  47. /// going to the end and starting again at the beginning.
  48. /// </summary>
  49. public abstract bool SpinBounce { get; }
  50. /// <summary>
  51. /// Gets whether the current spinner style contains emoji or other special characters.
  52. /// </summary>
  53. public abstract bool HasSpecialCharacters { get; }
  54. /// <summary>
  55. /// Gets or sets the frames used to animate the spinner.
  56. /// </summary>
  57. public abstract string [] Sequence { get; }
  58. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
  59. // Placeholder when user has specified Delay and Sequence manually
  60. public class Custom : SpinnerStyle {
  61. public override int SpinDelay => DEFAULT_DELAY;
  62. public override bool SpinBounce => DEFAULT_BOUNCE;
  63. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  64. public override string [] Sequence => Array.Empty<string> ();
  65. }
  66. public class Dots : SpinnerStyle {
  67. public override int SpinDelay => DEFAULT_DELAY;
  68. public override bool SpinBounce => DEFAULT_BOUNCE;
  69. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  70. public override string [] Sequence => new string []
  71. {
  72. "⠋",
  73. "⠙",
  74. "⠹",
  75. "⠸",
  76. "⠼",
  77. "⠴",
  78. "⠦",
  79. "⠧",
  80. "⠇",
  81. "⠏",
  82. };
  83. }
  84. public class Dots2 : SpinnerStyle {
  85. public override int SpinDelay => DEFAULT_DELAY;
  86. public override bool SpinBounce => DEFAULT_BOUNCE;
  87. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  88. public override string [] Sequence => new string []
  89. {
  90. "⣾",
  91. "⣽",
  92. "⣻",
  93. "⢿",
  94. "⡿",
  95. "⣟",
  96. "⣯",
  97. "⣷",
  98. };
  99. }
  100. public class Dots3 : SpinnerStyle {
  101. public override int SpinDelay => DEFAULT_DELAY;
  102. public override bool SpinBounce => DEFAULT_BOUNCE;
  103. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  104. public override string [] Sequence => new string []
  105. {
  106. "⠋",
  107. "⠙",
  108. "⠚",
  109. "⠞",
  110. "⠖",
  111. "⠦",
  112. "⠴",
  113. "⠲",
  114. "⠳",
  115. "⠓",
  116. };
  117. }
  118. public class Dots4 : SpinnerStyle {
  119. public override int SpinDelay => DEFAULT_DELAY;
  120. public override bool SpinBounce => true;
  121. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  122. public override string [] Sequence => new string []
  123. {
  124. "⠄",
  125. "⠆",
  126. "⠇",
  127. "⠋",
  128. "⠙",
  129. "⠸",
  130. "⠰",
  131. "⠠",
  132. };
  133. }
  134. public class Dots5 : SpinnerStyle {
  135. public override int SpinDelay => DEFAULT_DELAY;
  136. public override bool SpinBounce => DEFAULT_BOUNCE;
  137. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  138. public override string [] Sequence => new string []
  139. {
  140. "⠋",
  141. "⠙",
  142. "⠚",
  143. "⠒",
  144. "⠂",
  145. "⠂",
  146. "⠒",
  147. "⠲",
  148. "⠴",
  149. "⠦",
  150. "⠖",
  151. "⠒",
  152. "⠐",
  153. "⠐",
  154. "⠒",
  155. "⠓",
  156. "⠋",
  157. };
  158. }
  159. public class Dots6 : SpinnerStyle {
  160. public override int SpinDelay => DEFAULT_DELAY;
  161. public override bool SpinBounce => true;
  162. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  163. public override string [] Sequence => new string []
  164. {
  165. "⠁",
  166. "⠁",
  167. "⠉",
  168. "⠙",
  169. "⠚",
  170. "⠒",
  171. "⠂",
  172. "⠂",
  173. "⠒",
  174. "⠲",
  175. "⠴",
  176. "⠤",
  177. "⠄",
  178. "⠄",
  179. };
  180. }
  181. public class Dots7 : SpinnerStyle {
  182. public override int SpinDelay => DEFAULT_DELAY;
  183. public override bool SpinBounce => true;
  184. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  185. public override string [] Sequence => new string []
  186. {
  187. "⠈",
  188. "⠈",
  189. "⠉",
  190. "⠋",
  191. "⠓",
  192. "⠒",
  193. "⠐",
  194. "⠐",
  195. "⠒",
  196. "⠖",
  197. "⠦",
  198. "⠤",
  199. "⠠",
  200. "⠠",
  201. };
  202. }
  203. public class Dots8 : SpinnerStyle {
  204. public override int SpinDelay => DEFAULT_DELAY;
  205. public override bool SpinBounce => DEFAULT_BOUNCE;
  206. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  207. public override string [] Sequence => new string []
  208. {
  209. "⠁",
  210. "⠁",
  211. "⠉",
  212. "⠙",
  213. "⠚",
  214. "⠒",
  215. "⠂",
  216. "⠂",
  217. "⠒",
  218. "⠲",
  219. "⠴",
  220. "⠤",
  221. "⠄",
  222. "⠄",
  223. "⠤",
  224. "⠠",
  225. "⠠",
  226. "⠤",
  227. "⠦",
  228. "⠖",
  229. "⠒",
  230. "⠐",
  231. "⠐",
  232. "⠒",
  233. "⠓",
  234. "⠋",
  235. "⠉",
  236. "⠈",
  237. "⠈",
  238. };
  239. }
  240. public class Dots9 : SpinnerStyle {
  241. public override int SpinDelay => DEFAULT_DELAY;
  242. public override bool SpinBounce => DEFAULT_BOUNCE;
  243. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  244. public override string [] Sequence => new string []
  245. {
  246. "⢹",
  247. "⢺",
  248. "⢼",
  249. "⣸",
  250. "⣇",
  251. "⡧",
  252. "⡗",
  253. "⡏",
  254. };
  255. }
  256. public class Dots10 : SpinnerStyle {
  257. public override int SpinDelay => DEFAULT_DELAY;
  258. public override bool SpinBounce => DEFAULT_BOUNCE;
  259. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  260. public override string [] Sequence => new string []
  261. {
  262. "⢄",
  263. "⢂",
  264. "⢁",
  265. "⡁",
  266. "⡈",
  267. "⡐",
  268. "⡠",
  269. };
  270. }
  271. public class Dots11 : SpinnerStyle {
  272. public override int SpinDelay => 100;
  273. public override bool SpinBounce => DEFAULT_BOUNCE;
  274. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  275. public override string [] Sequence => new string []
  276. {
  277. "⠁",
  278. "⠂",
  279. "⠄",
  280. "⡀",
  281. "⢀",
  282. "⠠",
  283. "⠐",
  284. "⠈",
  285. };
  286. }
  287. public class Dots12 : SpinnerStyle {
  288. public override int SpinDelay => DEFAULT_DELAY;
  289. public override bool SpinBounce => DEFAULT_BOUNCE;
  290. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  291. public override string [] Sequence => new string []
  292. {
  293. "⢀⠀",
  294. "⡀⠀",
  295. "⠄⠀",
  296. "⢂⠀",
  297. "⡂⠀",
  298. "⠅⠀",
  299. "⢃⠀",
  300. "⡃⠀",
  301. "⠍⠀",
  302. "⢋⠀",
  303. "⡋⠀",
  304. "⠍⠁",
  305. "⢋⠁",
  306. "⡋⠁",
  307. "⠍⠉",
  308. "⠋⠉",
  309. "⠋⠉",
  310. "⠉⠙",
  311. "⠉⠙",
  312. "⠉⠩",
  313. "⠈⢙",
  314. "⠈⡙",
  315. "⢈⠩",
  316. "⡀⢙",
  317. "⠄⡙",
  318. "⢂⠩",
  319. "⡂⢘",
  320. "⠅⡘",
  321. "⢃⠨",
  322. "⡃⢐",
  323. "⠍⡐",
  324. "⢋⠠",
  325. "⡋⢀",
  326. "⠍⡁",
  327. "⢋⠁",
  328. "⡋⠁",
  329. "⠍⠉",
  330. "⠋⠉",
  331. "⠋⠉",
  332. "⠉⠙",
  333. "⠉⠙",
  334. "⠉⠩",
  335. "⠈⢙",
  336. "⠈⡙",
  337. "⠈⠩",
  338. "⠀⢙",
  339. "⠀⡙",
  340. "⠀⠩",
  341. "⠀⢘",
  342. "⠀⡘",
  343. "⠀⠨",
  344. "⠀⢐",
  345. "⠀⡐",
  346. "⠀⠠",
  347. "⠀⢀",
  348. "⠀⡀",
  349. };
  350. }
  351. public class Dots8Bit : SpinnerStyle {
  352. public override int SpinDelay => DEFAULT_DELAY;
  353. public override bool SpinBounce => DEFAULT_BOUNCE;
  354. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  355. public override string [] Sequence => new string []
  356. {
  357. "⠀",
  358. "⠁",
  359. "⠂",
  360. "⠃",
  361. "⠄",
  362. "⠅",
  363. "⠆",
  364. "⠇",
  365. "⡀",
  366. "⡁",
  367. "⡂",
  368. "⡃",
  369. "⡄",
  370. "⡅",
  371. "⡆",
  372. "⡇",
  373. "⠈",
  374. "⠉",
  375. "⠊",
  376. "⠋",
  377. "⠌",
  378. "⠍",
  379. "⠎",
  380. "⠏",
  381. "⡈",
  382. "⡉",
  383. "⡊",
  384. "⡋",
  385. "⡌",
  386. "⡍",
  387. "⡎",
  388. "⡏",
  389. "⠐",
  390. "⠑",
  391. "⠒",
  392. "⠓",
  393. "⠔",
  394. "⠕",
  395. "⠖",
  396. "⠗",
  397. "⡐",
  398. "⡑",
  399. "⡒",
  400. "⡓",
  401. "⡔",
  402. "⡕",
  403. "⡖",
  404. "⡗",
  405. "⠘",
  406. "⠙",
  407. "⠚",
  408. "⠛",
  409. "⠜",
  410. "⠝",
  411. "⠞",
  412. "⠟",
  413. "⡘",
  414. "⡙",
  415. "⡚",
  416. "⡛",
  417. "⡜",
  418. "⡝",
  419. "⡞",
  420. "⡟",
  421. "⠠",
  422. "⠡",
  423. "⠢",
  424. "⠣",
  425. "⠤",
  426. "⠥",
  427. "⠦",
  428. "⠧",
  429. "⡠",
  430. "⡡",
  431. "⡢",
  432. "⡣",
  433. "⡤",
  434. "⡥",
  435. "⡦",
  436. "⡧",
  437. "⠨",
  438. "⠩",
  439. "⠪",
  440. "⠫",
  441. "⠬",
  442. "⠭",
  443. "⠮",
  444. "⠯",
  445. "⡨",
  446. "⡩",
  447. "⡪",
  448. "⡫",
  449. "⡬",
  450. "⡭",
  451. "⡮",
  452. "⡯",
  453. "⠰",
  454. "⠱",
  455. "⠲",
  456. "⠳",
  457. "⠴",
  458. "⠵",
  459. "⠶",
  460. "⠷",
  461. "⡰",
  462. "⡱",
  463. "⡲",
  464. "⡳",
  465. "⡴",
  466. "⡵",
  467. "⡶",
  468. "⡷",
  469. "⠸",
  470. "⠹",
  471. "⠺",
  472. "⠻",
  473. "⠼",
  474. "⠽",
  475. "⠾",
  476. "⠿",
  477. "⡸",
  478. "⡹",
  479. "⡺",
  480. "⡻",
  481. "⡼",
  482. "⡽",
  483. "⡾",
  484. "⡿",
  485. "⢀",
  486. "⢁",
  487. "⢂",
  488. "⢃",
  489. "⢄",
  490. "⢅",
  491. "⢆",
  492. "⢇",
  493. "⣀",
  494. "⣁",
  495. "⣂",
  496. "⣃",
  497. "⣄",
  498. "⣅",
  499. "⣆",
  500. "⣇",
  501. "⢈",
  502. "⢉",
  503. "⢊",
  504. "⢋",
  505. "⢌",
  506. "⢍",
  507. "⢎",
  508. "⢏",
  509. "⣈",
  510. "⣉",
  511. "⣊",
  512. "⣋",
  513. "⣌",
  514. "⣍",
  515. "⣎",
  516. "⣏",
  517. "⢐",
  518. "⢑",
  519. "⢒",
  520. "⢓",
  521. "⢔",
  522. "⢕",
  523. "⢖",
  524. "⢗",
  525. "⣐",
  526. "⣑",
  527. "⣒",
  528. "⣓",
  529. "⣔",
  530. "⣕",
  531. "⣖",
  532. "⣗",
  533. "⢘",
  534. "⢙",
  535. "⢚",
  536. "⢛",
  537. "⢜",
  538. "⢝",
  539. "⢞",
  540. "⢟",
  541. "⣘",
  542. "⣙",
  543. "⣚",
  544. "⣛",
  545. "⣜",
  546. "⣝",
  547. "⣞",
  548. "⣟",
  549. "⢠",
  550. "⢡",
  551. "⢢",
  552. "⢣",
  553. "⢤",
  554. "⢥",
  555. "⢦",
  556. "⢧",
  557. "⣠",
  558. "⣡",
  559. "⣢",
  560. "⣣",
  561. "⣤",
  562. "⣥",
  563. "⣦",
  564. "⣧",
  565. "⢨",
  566. "⢩",
  567. "⢪",
  568. "⢫",
  569. "⢬",
  570. "⢭",
  571. "⢮",
  572. "⢯",
  573. "⣨",
  574. "⣩",
  575. "⣪",
  576. "⣫",
  577. "⣬",
  578. "⣭",
  579. "⣮",
  580. "⣯",
  581. "⢰",
  582. "⢱",
  583. "⢲",
  584. "⢳",
  585. "⢴",
  586. "⢵",
  587. "⢶",
  588. "⢷",
  589. "⣰",
  590. "⣱",
  591. "⣲",
  592. "⣳",
  593. "⣴",
  594. "⣵",
  595. "⣶",
  596. "⣷",
  597. "⢸",
  598. "⢹",
  599. "⢺",
  600. "⢻",
  601. "⢼",
  602. "⢽",
  603. "⢾",
  604. "⢿",
  605. "⣸",
  606. "⣹",
  607. "⣺",
  608. "⣻",
  609. "⣼",
  610. "⣽",
  611. "⣾",
  612. "⣿",
  613. };
  614. }
  615. public class Line : SpinnerStyle {
  616. public override int SpinDelay => 130;
  617. public override bool SpinBounce => DEFAULT_BOUNCE;
  618. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  619. public override string [] Sequence => new string []
  620. {
  621. "-",
  622. @"\",
  623. "|",
  624. "/",
  625. };
  626. }
  627. public class Line2 : SpinnerStyle {
  628. public override int SpinDelay => 100;
  629. public override bool SpinBounce => true;
  630. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  631. public override string [] Sequence => new string []
  632. {
  633. "⠂",
  634. "-",
  635. "–",
  636. "—",
  637. };
  638. }
  639. public class Pipe : SpinnerStyle {
  640. public override int SpinDelay => 100;
  641. public override bool SpinBounce => DEFAULT_BOUNCE;
  642. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  643. public override string [] Sequence => new string []
  644. {
  645. "┤",
  646. "┘",
  647. "┴",
  648. "└",
  649. "├",
  650. "┌",
  651. "┬",
  652. "┐",
  653. };
  654. }
  655. public class SimpleDots : SpinnerStyle {
  656. public override int SpinDelay => 400;
  657. public override bool SpinBounce => DEFAULT_BOUNCE;
  658. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  659. public override string [] Sequence => new string []
  660. {
  661. ". ",
  662. ".. ",
  663. "...",
  664. " ",
  665. };
  666. }
  667. public class SimpleDotsScrolling : SpinnerStyle {
  668. public override int SpinDelay => 200;
  669. public override bool SpinBounce => DEFAULT_BOUNCE;
  670. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  671. public override string [] Sequence => new string []
  672. {
  673. ". ",
  674. ".. ",
  675. "...",
  676. " ..",
  677. " .",
  678. " ",
  679. };
  680. }
  681. public class Star : SpinnerStyle {
  682. public override int SpinDelay => 70;
  683. public override bool SpinBounce => DEFAULT_BOUNCE;
  684. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  685. public override string [] Sequence => new string []
  686. {
  687. "✶",
  688. "✸",
  689. "✹",
  690. "✺",
  691. "✹",
  692. "✷",
  693. };
  694. }
  695. public class Star2 : SpinnerStyle {
  696. public override int SpinDelay => DEFAULT_DELAY;
  697. public override bool SpinBounce => DEFAULT_BOUNCE;
  698. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  699. public override string [] Sequence => new string []
  700. {
  701. "+",
  702. "x",
  703. "*",
  704. };
  705. }
  706. public class Flip : SpinnerStyle {
  707. public override int SpinDelay => 70;
  708. public override bool SpinBounce => DEFAULT_BOUNCE;
  709. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  710. public override string [] Sequence => new string []
  711. {
  712. "_",
  713. "_",
  714. "_",
  715. "-",
  716. "`",
  717. "`",
  718. "'",
  719. "´",
  720. "-",
  721. "_",
  722. "_",
  723. "_",
  724. };
  725. }
  726. public class Hamburger : SpinnerStyle {
  727. public override int SpinDelay => 100;
  728. public override bool SpinBounce => DEFAULT_BOUNCE;
  729. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  730. public override string [] Sequence => new string []
  731. {
  732. "☱",
  733. "☲",
  734. "☴",
  735. };
  736. }
  737. public class GrowVertical : SpinnerStyle {
  738. public override int SpinDelay => 120;
  739. public override bool SpinBounce => true;
  740. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  741. public override string [] Sequence => new string []
  742. {
  743. "▁",
  744. "▃",
  745. "▄",
  746. "▅",
  747. "▆",
  748. "▇",
  749. };
  750. }
  751. public class GrowHorizontal : SpinnerStyle {
  752. public override int SpinDelay => 120;
  753. public override bool SpinBounce => true;
  754. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  755. public override string [] Sequence => new string []
  756. {
  757. "▏",
  758. "▎",
  759. "▍",
  760. "▌",
  761. "▋",
  762. "▊",
  763. "▉",
  764. };
  765. }
  766. public class Balloon : SpinnerStyle {
  767. public override int SpinDelay => 140;
  768. public override bool SpinBounce => DEFAULT_BOUNCE;
  769. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  770. public override string [] Sequence => new string []
  771. {
  772. " ",
  773. ".",
  774. "o",
  775. "O",
  776. "@",
  777. "*",
  778. " ",
  779. };
  780. }
  781. public class Balloon2 : SpinnerStyle {
  782. public override int SpinDelay => 120;
  783. public override bool SpinBounce => true;
  784. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  785. public override string [] Sequence => new string []
  786. {
  787. ".",
  788. ".",
  789. "o",
  790. "O",
  791. "°",
  792. };
  793. }
  794. public class Noise : SpinnerStyle {
  795. public override int SpinDelay => 100;
  796. public override bool SpinBounce => DEFAULT_BOUNCE;
  797. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  798. public override string [] Sequence => new string []
  799. {
  800. "▓",
  801. "▒",
  802. "░",
  803. };
  804. }
  805. public class Bounce : SpinnerStyle {
  806. public override int SpinDelay => 120;
  807. public override bool SpinBounce => true;
  808. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  809. public override string [] Sequence => new string []
  810. {
  811. "⠁",
  812. "⠂",
  813. "⠄",
  814. };
  815. }
  816. public class BoxBounce : SpinnerStyle {
  817. public override int SpinDelay => 120;
  818. public override bool SpinBounce => DEFAULT_BOUNCE;
  819. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  820. public override string [] Sequence => new string []
  821. {
  822. "▖",
  823. "▘",
  824. "▝",
  825. "▗",
  826. };
  827. }
  828. public class BoxBounce2 : SpinnerStyle {
  829. public override int SpinDelay => 100;
  830. public override bool SpinBounce => DEFAULT_BOUNCE;
  831. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  832. public override string [] Sequence => new string []
  833. {
  834. "▌",
  835. "▀",
  836. "▐",
  837. "▄",
  838. };
  839. }
  840. public class Triangle : SpinnerStyle {
  841. public override int SpinDelay => 50;
  842. public override bool SpinBounce => DEFAULT_BOUNCE;
  843. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  844. public override string [] Sequence => new string []
  845. {
  846. "◢",
  847. "◣",
  848. "◤",
  849. "◥",
  850. };
  851. }
  852. public class Arc : SpinnerStyle {
  853. public override int SpinDelay => 100;
  854. public override bool SpinBounce => DEFAULT_BOUNCE;
  855. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  856. public override string [] Sequence => new string []
  857. {
  858. "◜",
  859. "◠",
  860. "◝",
  861. "◞",
  862. "◡",
  863. "◟",
  864. };
  865. }
  866. public class Circle : SpinnerStyle {
  867. public override int SpinDelay => 120;
  868. public override bool SpinBounce => DEFAULT_BOUNCE;
  869. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  870. public override string [] Sequence => new string []
  871. {
  872. "◡",
  873. "⊙",
  874. "◠",
  875. };
  876. }
  877. public class SquareCorners : SpinnerStyle {
  878. public override int SpinDelay => 180;
  879. public override bool SpinBounce => DEFAULT_BOUNCE;
  880. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  881. public override string [] Sequence => new string []
  882. {
  883. "◰",
  884. "◳",
  885. "◲",
  886. "◱",
  887. };
  888. }
  889. public class CircleQuarters : SpinnerStyle {
  890. public override int SpinDelay => 120;
  891. public override bool SpinBounce => DEFAULT_BOUNCE;
  892. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  893. public override string [] Sequence => new string []
  894. {
  895. "◴",
  896. "◷",
  897. "◶",
  898. "◵",
  899. };
  900. }
  901. public class CircleHalves : SpinnerStyle {
  902. public override int SpinDelay => 50;
  903. public override bool SpinBounce => DEFAULT_BOUNCE;
  904. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  905. public override string [] Sequence => new string []
  906. {
  907. "◐",
  908. "◓",
  909. "◑",
  910. "◒",
  911. };
  912. }
  913. public class Squish : SpinnerStyle {
  914. public override int SpinDelay => 100;
  915. public override bool SpinBounce => DEFAULT_BOUNCE;
  916. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  917. public override string [] Sequence => new string []
  918. {
  919. "╫",
  920. "╪",
  921. };
  922. }
  923. public class Toggle : SpinnerStyle {
  924. public override int SpinDelay => 250;
  925. public override bool SpinBounce => DEFAULT_BOUNCE;
  926. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  927. public override string [] Sequence => new string []
  928. {
  929. "⊶",
  930. "⊷",
  931. };
  932. }
  933. public class Toggle2 : SpinnerStyle {
  934. public override int SpinDelay => DEFAULT_DELAY;
  935. public override bool SpinBounce => DEFAULT_BOUNCE;
  936. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  937. public override string [] Sequence => new string []
  938. {
  939. "▫",
  940. "▪",
  941. };
  942. }
  943. public class Toggle3 : SpinnerStyle {
  944. public override int SpinDelay => 120;
  945. public override bool SpinBounce => DEFAULT_BOUNCE;
  946. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  947. public override string [] Sequence => new string []
  948. {
  949. "□",
  950. "■",
  951. };
  952. }
  953. public class Toggle4 : SpinnerStyle {
  954. public override int SpinDelay => 100;
  955. public override bool SpinBounce => DEFAULT_BOUNCE;
  956. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  957. public override string [] Sequence => new string []
  958. {
  959. "■",
  960. "□",
  961. "▪",
  962. "▫",
  963. };
  964. }
  965. public class Toggle5 : SpinnerStyle {
  966. public override int SpinDelay => 100;
  967. public override bool SpinBounce => DEFAULT_BOUNCE;
  968. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  969. public override string [] Sequence => new string []
  970. {
  971. "▮",
  972. "▯",
  973. };
  974. }
  975. public class Toggle6 : SpinnerStyle {
  976. public override int SpinDelay => 300;
  977. public override bool SpinBounce => DEFAULT_BOUNCE;
  978. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  979. public override string [] Sequence => new string []
  980. {
  981. "ဝ",
  982. "၀",
  983. };
  984. }
  985. public class Toggle7 : SpinnerStyle {
  986. public override int SpinDelay => DEFAULT_DELAY;
  987. public override bool SpinBounce => DEFAULT_BOUNCE;
  988. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  989. public override string [] Sequence => new string []
  990. {
  991. "⦾",
  992. "⦿",
  993. };
  994. }
  995. public class Toggle8 : SpinnerStyle {
  996. public override int SpinDelay => 100;
  997. public override bool SpinBounce => DEFAULT_BOUNCE;
  998. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  999. public override string [] Sequence => new string []
  1000. {
  1001. "◍",
  1002. "◌",
  1003. };
  1004. }
  1005. public class Toggle9 : SpinnerStyle {
  1006. public override int SpinDelay => 100;
  1007. public override bool SpinBounce => DEFAULT_BOUNCE;
  1008. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1009. public override string [] Sequence => new string []
  1010. {
  1011. "◉",
  1012. "◎",
  1013. };
  1014. }
  1015. public class Toggle10 : SpinnerStyle {
  1016. public override int SpinDelay => 100;
  1017. public override bool SpinBounce => DEFAULT_BOUNCE;
  1018. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1019. public override string [] Sequence => new string []
  1020. {
  1021. "㊂",
  1022. "㊀",
  1023. "㊁",
  1024. };
  1025. }
  1026. public class Toggle11 : SpinnerStyle {
  1027. public override int SpinDelay => 50;
  1028. public override bool SpinBounce => DEFAULT_BOUNCE;
  1029. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1030. public override string [] Sequence => new string []
  1031. {
  1032. "⧇",
  1033. "⧆",
  1034. };
  1035. }
  1036. public class Toggle12 : SpinnerStyle {
  1037. public override int SpinDelay => 120;
  1038. public override bool SpinBounce => DEFAULT_BOUNCE;
  1039. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1040. public override string [] Sequence => new string []
  1041. {
  1042. "☗",
  1043. "☖",
  1044. };
  1045. }
  1046. public class Toggle13 : SpinnerStyle {
  1047. public override int SpinDelay => DEFAULT_DELAY;
  1048. public override bool SpinBounce => DEFAULT_BOUNCE;
  1049. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1050. public override string [] Sequence => new string []
  1051. {
  1052. "=",
  1053. "*",
  1054. "-",
  1055. };
  1056. }
  1057. public class Arrow : SpinnerStyle {
  1058. public override int SpinDelay => 100;
  1059. public override bool SpinBounce => DEFAULT_BOUNCE;
  1060. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1061. public override string [] Sequence => new string []
  1062. {
  1063. "←",
  1064. "↖",
  1065. "↑",
  1066. "↗",
  1067. "→",
  1068. "↘",
  1069. "↓",
  1070. "↙",
  1071. };
  1072. }
  1073. public class Arrow2 : SpinnerStyle {
  1074. public override int SpinDelay => DEFAULT_DELAY;
  1075. public override bool SpinBounce => DEFAULT_BOUNCE;
  1076. public override bool HasSpecialCharacters => true;
  1077. public override string [] Sequence => new string []
  1078. {
  1079. "⬆️ ",
  1080. "↗️ ",
  1081. "➡️ ",
  1082. "↘️ ",
  1083. "⬇️ ",
  1084. "↙️ ",
  1085. "⬅️ ",
  1086. "↖️ ",
  1087. };
  1088. }
  1089. public class Arrow3 : SpinnerStyle {
  1090. public override int SpinDelay => 120;
  1091. public override bool SpinBounce => DEFAULT_BOUNCE;
  1092. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1093. public override string [] Sequence => new string []
  1094. {
  1095. "▹▹▹▹▹",
  1096. "▸▹▹▹▹",
  1097. "▹▸▹▹▹",
  1098. "▹▹▸▹▹",
  1099. "▹▹▹▸▹",
  1100. "▹▹▹▹▸",
  1101. };
  1102. }
  1103. public class BouncingBar : SpinnerStyle {
  1104. public override int SpinDelay => DEFAULT_DELAY;
  1105. public override bool SpinBounce => true;
  1106. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1107. public override string [] Sequence => new string []
  1108. {
  1109. "[ ]",
  1110. "[= ]",
  1111. "[== ]",
  1112. "[=== ]",
  1113. "[ ===]",
  1114. "[ ==]",
  1115. "[ =]",
  1116. "[ ]",
  1117. };
  1118. }
  1119. public class BouncingBall : SpinnerStyle {
  1120. public override int SpinDelay => DEFAULT_DELAY;
  1121. public override bool SpinBounce => true;
  1122. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1123. public override string [] Sequence => new string []
  1124. {
  1125. "(● )",
  1126. "( ● )",
  1127. "( ● )",
  1128. "( ● )",
  1129. "( ● )",
  1130. "( ●)",
  1131. };
  1132. }
  1133. public class Smiley : SpinnerStyle {
  1134. public override int SpinDelay => 200;
  1135. public override bool SpinBounce => DEFAULT_BOUNCE;
  1136. public override bool HasSpecialCharacters => true;
  1137. public override string [] Sequence => new string []
  1138. {
  1139. "😄 ",
  1140. "😝 ",
  1141. };
  1142. }
  1143. public class Monkey : SpinnerStyle {
  1144. public override int SpinDelay => 300;
  1145. public override bool SpinBounce => DEFAULT_BOUNCE;
  1146. public override bool HasSpecialCharacters => true;
  1147. public override string [] Sequence => new string []
  1148. {
  1149. "🙈 ",
  1150. "🙈 ",
  1151. "🙉 ",
  1152. "🙊 ",
  1153. };
  1154. }
  1155. public class Hearts : SpinnerStyle {
  1156. public override int SpinDelay => 100;
  1157. public override bool SpinBounce => DEFAULT_BOUNCE;
  1158. public override bool HasSpecialCharacters => true;
  1159. public override string [] Sequence => new string []
  1160. {
  1161. "💛 ",
  1162. "💙 ",
  1163. "💜 ",
  1164. "💚 ",
  1165. "❤️ ",
  1166. };
  1167. }
  1168. public class Clock : SpinnerStyle {
  1169. public override int SpinDelay => 100;
  1170. public override bool SpinBounce => DEFAULT_BOUNCE;
  1171. public override bool HasSpecialCharacters => true;
  1172. public override string [] Sequence => new string []
  1173. {
  1174. "🕛 ",
  1175. "🕐 ",
  1176. "🕑 ",
  1177. "🕒 ",
  1178. "🕓 ",
  1179. "🕔 ",
  1180. "🕕 ",
  1181. "🕖 ",
  1182. "🕗 ",
  1183. "🕘 ",
  1184. "🕙 ",
  1185. "🕚 ",
  1186. };
  1187. }
  1188. public class Earth : SpinnerStyle {
  1189. public override int SpinDelay => 180;
  1190. public override bool SpinBounce => DEFAULT_BOUNCE;
  1191. public override bool HasSpecialCharacters => true;
  1192. public override string [] Sequence => new string []
  1193. {
  1194. "🌍 ",
  1195. "🌎 ",
  1196. "🌏 ",
  1197. };
  1198. }
  1199. public class Material : SpinnerStyle {
  1200. public override int SpinDelay => 17;
  1201. public override bool SpinBounce => DEFAULT_BOUNCE;
  1202. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1203. public override string [] Sequence => new string []
  1204. {
  1205. "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1206. "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1207. "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1208. "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1209. "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1210. "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1211. "███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1212. "████████▁▁▁▁▁▁▁▁▁▁▁▁",
  1213. "█████████▁▁▁▁▁▁▁▁▁▁▁",
  1214. "█████████▁▁▁▁▁▁▁▁▁▁▁",
  1215. "██████████▁▁▁▁▁▁▁▁▁▁",
  1216. "███████████▁▁▁▁▁▁▁▁▁",
  1217. "█████████████▁▁▁▁▁▁▁",
  1218. "██████████████▁▁▁▁▁▁",
  1219. "██████████████▁▁▁▁▁▁",
  1220. "▁██████████████▁▁▁▁▁",
  1221. "▁██████████████▁▁▁▁▁",
  1222. "▁██████████████▁▁▁▁▁",
  1223. "▁▁██████████████▁▁▁▁",
  1224. "▁▁▁██████████████▁▁▁",
  1225. "▁▁▁▁█████████████▁▁▁",
  1226. "▁▁▁▁██████████████▁▁",
  1227. "▁▁▁▁██████████████▁▁",
  1228. "▁▁▁▁▁██████████████▁",
  1229. "▁▁▁▁▁██████████████▁",
  1230. "▁▁▁▁▁██████████████▁",
  1231. "▁▁▁▁▁▁██████████████",
  1232. "▁▁▁▁▁▁██████████████",
  1233. "▁▁▁▁▁▁▁█████████████",
  1234. "▁▁▁▁▁▁▁█████████████",
  1235. "▁▁▁▁▁▁▁▁████████████",
  1236. "▁▁▁▁▁▁▁▁████████████",
  1237. "▁▁▁▁▁▁▁▁▁███████████",
  1238. "▁▁▁▁▁▁▁▁▁███████████",
  1239. "▁▁▁▁▁▁▁▁▁▁██████████",
  1240. "▁▁▁▁▁▁▁▁▁▁██████████",
  1241. "▁▁▁▁▁▁▁▁▁▁▁▁████████",
  1242. "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
  1243. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
  1244. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
  1245. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
  1246. "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
  1247. "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
  1248. "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
  1249. "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
  1250. "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
  1251. "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
  1252. "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
  1253. "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
  1254. "████████▁▁▁▁▁▁▁▁▁▁▁▁",
  1255. "█████████▁▁▁▁▁▁▁▁▁▁▁",
  1256. "█████████▁▁▁▁▁▁▁▁▁▁▁",
  1257. "█████████▁▁▁▁▁▁▁▁▁▁▁",
  1258. "█████████▁▁▁▁▁▁▁▁▁▁▁",
  1259. "███████████▁▁▁▁▁▁▁▁▁",
  1260. "████████████▁▁▁▁▁▁▁▁",
  1261. "████████████▁▁▁▁▁▁▁▁",
  1262. "██████████████▁▁▁▁▁▁",
  1263. "██████████████▁▁▁▁▁▁",
  1264. "▁██████████████▁▁▁▁▁",
  1265. "▁██████████████▁▁▁▁▁",
  1266. "▁▁▁█████████████▁▁▁▁",
  1267. "▁▁▁▁▁████████████▁▁▁",
  1268. "▁▁▁▁▁████████████▁▁▁",
  1269. "▁▁▁▁▁▁███████████▁▁▁",
  1270. "▁▁▁▁▁▁▁▁█████████▁▁▁",
  1271. "▁▁▁▁▁▁▁▁█████████▁▁▁",
  1272. "▁▁▁▁▁▁▁▁▁█████████▁▁",
  1273. "▁▁▁▁▁▁▁▁▁█████████▁▁",
  1274. "▁▁▁▁▁▁▁▁▁▁█████████▁",
  1275. "▁▁▁▁▁▁▁▁▁▁▁████████▁",
  1276. "▁▁▁▁▁▁▁▁▁▁▁████████▁",
  1277. "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
  1278. "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
  1279. "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
  1280. "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
  1281. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
  1282. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
  1283. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
  1284. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
  1285. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
  1286. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
  1287. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
  1288. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
  1289. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
  1290. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
  1291. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
  1292. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
  1293. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1294. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1295. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1296. "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
  1297. };
  1298. }
  1299. public class Moon : SpinnerStyle {
  1300. public override int SpinDelay => DEFAULT_DELAY;
  1301. public override bool SpinBounce => DEFAULT_BOUNCE;
  1302. public override bool HasSpecialCharacters => true;
  1303. public override string [] Sequence => new string []
  1304. {
  1305. "🌑 ",
  1306. "🌒 ",
  1307. "🌓 ",
  1308. "🌔 ",
  1309. "🌕 ",
  1310. "🌖 ",
  1311. "🌗 ",
  1312. "🌘 ",
  1313. };
  1314. }
  1315. public class Runner : SpinnerStyle {
  1316. public override int SpinDelay => 140;
  1317. public override bool SpinBounce => DEFAULT_BOUNCE;
  1318. public override bool HasSpecialCharacters => true;
  1319. public override string [] Sequence => new string []
  1320. {
  1321. "🚶 ",
  1322. "🏃 ",
  1323. };
  1324. }
  1325. public class Pong : SpinnerStyle {
  1326. public override int SpinDelay => DEFAULT_DELAY;
  1327. public override bool SpinBounce => true;
  1328. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1329. public override string [] Sequence => new string []
  1330. {
  1331. "▐⠂ ▌",
  1332. "▐⠈ ▌",
  1333. "▐ ⠂ ▌",
  1334. "▐ ⠠ ▌",
  1335. "▐ ⡀ ▌",
  1336. "▐ ⠠ ▌",
  1337. "▐ ⠂ ▌",
  1338. "▐ ⠈ ▌",
  1339. "▐ ⠂ ▌",
  1340. "▐ ⠠ ▌",
  1341. "▐ ⡀ ▌",
  1342. "▐ ⠠ ▌",
  1343. "▐ ⠂ ▌",
  1344. "▐ ⠈ ▌",
  1345. "▐ ⠂▌",
  1346. "▐ ⠠▌",
  1347. "▐ ⡀▌",
  1348. "▐ ⠠ ▌",
  1349. "▐ ⠂ ▌",
  1350. "▐ ⠈ ▌",
  1351. "▐ ⠂ ▌",
  1352. "▐ ⠠ ▌",
  1353. "▐ ⡀ ▌",
  1354. "▐ ⠠ ▌",
  1355. "▐ ⠂ ▌",
  1356. "▐ ⠈ ▌",
  1357. "▐ ⠂ ▌",
  1358. "▐ ⠠ ▌",
  1359. "▐ ⡀ ▌",
  1360. "▐⠠ ▌",
  1361. };
  1362. }
  1363. public class Shark : SpinnerStyle {
  1364. public override int SpinDelay => 120;
  1365. public override bool SpinBounce => DEFAULT_BOUNCE;
  1366. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1367. public override string [] Sequence => new string []
  1368. {
  1369. @"▐|\____________▌",
  1370. @"▐_|\___________▌",
  1371. @"▐__|\__________▌",
  1372. @"▐___|\_________▌",
  1373. @"▐____|\________▌",
  1374. @"▐_____|\_______▌",
  1375. @"▐______|\______▌",
  1376. @"▐_______|\_____▌",
  1377. @"▐________|\____▌",
  1378. @"▐_________|\___▌",
  1379. @"▐__________|\__▌",
  1380. @"▐___________|\_▌",
  1381. @"▐____________|\▌",
  1382. "▐____________/|▌",
  1383. "▐___________/|_▌",
  1384. "▐__________/|__▌",
  1385. "▐_________/|___▌",
  1386. "▐________/|____▌",
  1387. "▐_______/|_____▌",
  1388. "▐______/|______▌",
  1389. "▐_____/|_______▌",
  1390. "▐____/|________▌",
  1391. "▐___/|_________▌",
  1392. "▐__/|__________▌",
  1393. "▐_/|___________▌",
  1394. "▐/|____________▌",
  1395. };
  1396. }
  1397. public class Dqpb : SpinnerStyle {
  1398. public override int SpinDelay => 100;
  1399. public override bool SpinBounce => DEFAULT_BOUNCE;
  1400. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1401. public override string [] Sequence => new string []
  1402. {
  1403. "d",
  1404. "q",
  1405. "p",
  1406. "b",
  1407. };
  1408. }
  1409. public class Weather : SpinnerStyle {
  1410. public override int SpinDelay => 100;
  1411. public override bool SpinBounce => DEFAULT_BOUNCE;
  1412. public override bool HasSpecialCharacters => true;
  1413. public override string [] Sequence => new string []
  1414. {
  1415. "☀️ ",
  1416. "☀️ ",
  1417. "☀️ ",
  1418. "🌤 ",
  1419. "⛅️ ",
  1420. "🌥 ",
  1421. "☁️ ",
  1422. "🌧 ",
  1423. "🌨 ",
  1424. "🌧 ",
  1425. "🌨 ",
  1426. "🌧 ",
  1427. "🌨 ",
  1428. "⛈ ",
  1429. "🌨 ",
  1430. "🌧 ",
  1431. "🌨 ",
  1432. "☁️ ",
  1433. "🌥 ",
  1434. "⛅️ ",
  1435. "🌤 ",
  1436. "☀️ ",
  1437. "☀️ ",
  1438. };
  1439. }
  1440. public class Christmas : SpinnerStyle {
  1441. public override int SpinDelay => 400;
  1442. public override bool SpinBounce => DEFAULT_BOUNCE;
  1443. public override bool HasSpecialCharacters => true;
  1444. public override string [] Sequence => new string []
  1445. {
  1446. "🌲",
  1447. "🎄",
  1448. };
  1449. }
  1450. public class Grenade : SpinnerStyle {
  1451. public override int SpinDelay => DEFAULT_DELAY;
  1452. public override bool SpinBounce => DEFAULT_BOUNCE;
  1453. public override bool HasSpecialCharacters => true;
  1454. public override string [] Sequence => new string []
  1455. {
  1456. "، ",
  1457. "′ ",
  1458. " ´ ",
  1459. " ‾ ",
  1460. " ⸌",
  1461. " ⸊",
  1462. " |",
  1463. " ⁎",
  1464. " ⁕",
  1465. " ෴ ",
  1466. " ⁓",
  1467. " ",
  1468. " ",
  1469. " ",
  1470. };
  1471. }
  1472. public class Points : SpinnerStyle {
  1473. public override int SpinDelay => 125;
  1474. public override bool SpinBounce => DEFAULT_BOUNCE;
  1475. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1476. public override string [] Sequence => new string []
  1477. {
  1478. "∙∙∙",
  1479. "●∙∙",
  1480. "∙●∙",
  1481. "∙∙●",
  1482. "∙∙∙",
  1483. };
  1484. }
  1485. public class Layer : SpinnerStyle {
  1486. public override int SpinDelay => 150;
  1487. public override bool SpinBounce => DEFAULT_BOUNCE;
  1488. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1489. public override string [] Sequence => new string []
  1490. {
  1491. "-",
  1492. "=",
  1493. "≡",
  1494. };
  1495. }
  1496. public class BetaWave : SpinnerStyle {
  1497. public override int SpinDelay => DEFAULT_DELAY;
  1498. public override bool SpinBounce => DEFAULT_BOUNCE;
  1499. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1500. public override string [] Sequence => new string []
  1501. {
  1502. "ρββββββ",
  1503. "βρβββββ",
  1504. "ββρββββ",
  1505. "βββρβββ",
  1506. "ββββρββ",
  1507. "βββββρβ",
  1508. "ββββββρ",
  1509. };
  1510. }
  1511. public class FingerDance : SpinnerStyle {
  1512. public override int SpinDelay => 160;
  1513. public override bool SpinBounce => DEFAULT_BOUNCE;
  1514. public override bool HasSpecialCharacters => true;
  1515. public override string [] Sequence => new string []
  1516. {
  1517. "🤘 ",
  1518. "🤟 ",
  1519. "🖖 ",
  1520. "✋ ",
  1521. "🤚 ",
  1522. "👆 "
  1523. };
  1524. }
  1525. public class FistBump : SpinnerStyle {
  1526. public override int SpinDelay => DEFAULT_DELAY;
  1527. public override bool SpinBounce => DEFAULT_BOUNCE;
  1528. public override bool HasSpecialCharacters => true;
  1529. public override string [] Sequence => new string []
  1530. {
  1531. "🤜\u3000\u3000\u3000\u3000🤛 ",
  1532. "🤜\u3000\u3000\u3000\u3000🤛 ",
  1533. "🤜\u3000\u3000\u3000\u3000🤛 ",
  1534. "\u3000🤜\u3000\u3000🤛\u3000 ",
  1535. "\u3000\u3000🤜🤛\u3000\u3000 ",
  1536. "\u3000🤜✨🤛\u3000\u3000 ",
  1537. "🤜\u3000✨\u3000🤛\u3000 "
  1538. };
  1539. }
  1540. public class SoccerHeader : SpinnerStyle {
  1541. public override int SpinDelay => DEFAULT_DELAY;
  1542. public override bool SpinBounce => true;
  1543. public override bool HasSpecialCharacters => true;
  1544. public override string [] Sequence => new string []
  1545. {
  1546. " 🧑⚽️ 🧑 ",
  1547. "🧑 ⚽️ 🧑 ",
  1548. "🧑 ⚽️ 🧑 ",
  1549. "🧑 ⚽️ 🧑 ",
  1550. "🧑 ⚽️ 🧑 ",
  1551. "🧑 ⚽️ 🧑 ",
  1552. "🧑 ⚽️🧑 ",
  1553. };
  1554. }
  1555. public class MindBlown : SpinnerStyle {
  1556. public override int SpinDelay => 160;
  1557. public override bool SpinBounce => DEFAULT_BOUNCE;
  1558. public override bool HasSpecialCharacters => true;
  1559. public override string [] Sequence => new string []
  1560. {
  1561. "😐 ",
  1562. "😐 ",
  1563. "😮 ",
  1564. "😮 ",
  1565. "😦 ",
  1566. "😦 ",
  1567. "😧 ",
  1568. "😧 ",
  1569. "🤯 ",
  1570. "💥 ",
  1571. "✨ ",
  1572. "\u3000 ",
  1573. "\u3000 ",
  1574. "\u3000 "
  1575. };
  1576. }
  1577. public class Speaker : SpinnerStyle {
  1578. public override int SpinDelay => 160;
  1579. public override bool SpinBounce => true;
  1580. public override bool HasSpecialCharacters => true;
  1581. public override string [] Sequence => new string []
  1582. {
  1583. "🔈 ",
  1584. "🔉 ",
  1585. "🔊 ",
  1586. };
  1587. }
  1588. public class OrangePulse : SpinnerStyle {
  1589. public override int SpinDelay => 100;
  1590. public override bool SpinBounce => DEFAULT_BOUNCE;
  1591. public override bool HasSpecialCharacters => true;
  1592. public override string [] Sequence => new string []
  1593. {
  1594. "🔸 ",
  1595. "🔶 ",
  1596. "🟠 ",
  1597. "🟠 ",
  1598. "🔶 "
  1599. };
  1600. }
  1601. public class BluePulse : SpinnerStyle {
  1602. public override int SpinDelay => 100;
  1603. public override bool SpinBounce => DEFAULT_BOUNCE;
  1604. public override bool HasSpecialCharacters => true;
  1605. public override string [] Sequence => new string []
  1606. {
  1607. "🔹 ",
  1608. "🔷 ",
  1609. "🔵 ",
  1610. "🔵 ",
  1611. "🔷 "
  1612. };
  1613. }
  1614. public class OrangeBluePulse : SpinnerStyle {
  1615. public override int SpinDelay => 100;
  1616. public override bool SpinBounce => DEFAULT_BOUNCE;
  1617. public override bool HasSpecialCharacters => true;
  1618. public override string [] Sequence => new string []
  1619. {
  1620. "🔸 ",
  1621. "🔶 ",
  1622. "🟠 ",
  1623. "🟠 ",
  1624. "🔶 ",
  1625. "🔹 ",
  1626. "🔷 ",
  1627. "🔵 ",
  1628. "🔵 ",
  1629. "🔷 "
  1630. };
  1631. }
  1632. public class TimeTravelClock : SpinnerStyle {
  1633. public override int SpinDelay => 100;
  1634. public override bool SpinBounce => DEFAULT_BOUNCE;
  1635. public override bool HasSpecialCharacters => true;
  1636. public override string [] Sequence => new string []
  1637. {
  1638. "🕛 ",
  1639. "🕚 ",
  1640. "🕙 ",
  1641. "🕘 ",
  1642. "🕗 ",
  1643. "🕖 ",
  1644. "🕕 ",
  1645. "🕔 ",
  1646. "🕓 ",
  1647. "🕒 ",
  1648. "🕑 ",
  1649. "🕐 "
  1650. };
  1651. }
  1652. public class Aesthetic : SpinnerStyle {
  1653. public override int SpinDelay => DEFAULT_DELAY;
  1654. public override bool SpinBounce => DEFAULT_BOUNCE;
  1655. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1656. public override string [] Sequence => new string []
  1657. {
  1658. "▰▱▱▱▱▱▱",
  1659. "▰▰▱▱▱▱▱",
  1660. "▰▰▰▱▱▱▱",
  1661. "▰▰▰▰▱▱▱",
  1662. "▰▰▰▰▰▱▱",
  1663. "▰▰▰▰▰▰▱",
  1664. "▰▰▰▰▰▰▰",
  1665. "▰▱▱▱▱▱▱",
  1666. };
  1667. }
  1668. public class Aesthetic2 : SpinnerStyle {
  1669. public override int SpinDelay => DEFAULT_DELAY;
  1670. public override bool SpinBounce => DEFAULT_BOUNCE;
  1671. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1672. public override string [] Sequence => new string []
  1673. {
  1674. "▰▱▱▱▱▱▱",
  1675. "▰▰▱▱▱▱▱",
  1676. "▰▰▰▱▱▱▱",
  1677. "▰▰▰▰▱▱▱",
  1678. "▰▰▰▰▰▱▱",
  1679. "▰▰▰▰▰▰▱",
  1680. "▰▰▰▰▰▰▰",
  1681. "▱▰▰▰▰▰▰",
  1682. "▱▱▰▰▰▰▰",
  1683. "▱▱▱▰▰▰▰",
  1684. "▱▱▱▱▰▰▰",
  1685. "▱▱▱▱▱▰▰",
  1686. "▱▱▱▱▱▱▰",
  1687. "▱▱▱▱▱▱▱",
  1688. };
  1689. }
  1690. #pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
  1691. }
  1692. }
  1693. #pragma warning restore CA1034 // Nested types should not be visible