SpinnerStyle.cs 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699
  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. namespace Terminal.Gui {
  29. /// <summary>
  30. /// SpinnerStyles used in a <see cref="SpinnerView"/>.
  31. /// </summary>
  32. public abstract class SpinnerStyle {
  33. const int DEFAULT_DELAY = 80;
  34. const bool DEFAULT_BOUNCE = false;
  35. const bool DEFAULT_SPECIAL = false;
  36. /// <summary>
  37. /// Gets or sets the number of milliseconds to wait between characters
  38. /// in the spin. Defaults to the SpinnerStyle's Interval value.
  39. /// </summary>
  40. /// <remarks>This is the maximum speed the spinner will rotate at. You still need to
  41. /// call <see cref="View.SetNeedsDisplay()"/> or <see cref="SpinnerView.AutoSpin"/> to
  42. /// advance/start animation.</remarks>
  43. public abstract int SpinDelay { get; }
  44. /// <summary>
  45. /// Gets or sets whether spinner should go back and forth through the Sequence rather than
  46. /// going to the end and starting again at the beginning.
  47. /// </summary>
  48. public abstract bool SpinBounce { get; }
  49. /// <summary>
  50. /// Gets whether the current spinner style contains emoji or other special characters.
  51. /// </summary>
  52. public abstract bool HasSpecialCharacters { get; }
  53. /// <summary>
  54. /// Gets or sets the frames used to animate the spinner.
  55. /// </summary>
  56. public abstract string [] Sequence { get; }
  57. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
  58. // Placeholder when user has specified Delay and Sequence manually
  59. public class Custom : SpinnerStyle {
  60. public override int SpinDelay => DEFAULT_DELAY;
  61. public override bool SpinBounce => DEFAULT_BOUNCE;
  62. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  63. public override string [] Sequence => Array.Empty<string> ();
  64. }
  65. public class Dots : SpinnerStyle {
  66. public override int SpinDelay => DEFAULT_DELAY;
  67. public override bool SpinBounce => DEFAULT_BOUNCE;
  68. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  69. public override string [] Sequence => new string []
  70. {
  71. "⠋",
  72. "⠙",
  73. "⠹",
  74. "⠸",
  75. "⠼",
  76. "⠴",
  77. "⠦",
  78. "⠧",
  79. "⠇",
  80. "⠏",
  81. };
  82. }
  83. public class Dots2 : SpinnerStyle {
  84. public override int SpinDelay => DEFAULT_DELAY;
  85. public override bool SpinBounce => DEFAULT_BOUNCE;
  86. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  87. public override string [] Sequence => new string []
  88. {
  89. "⣾",
  90. "⣽",
  91. "⣻",
  92. "⢿",
  93. "⡿",
  94. "⣟",
  95. "⣯",
  96. "⣷",
  97. };
  98. }
  99. public class Dots3 : SpinnerStyle {
  100. public override int SpinDelay => DEFAULT_DELAY;
  101. public override bool SpinBounce => DEFAULT_BOUNCE;
  102. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  103. public override string [] Sequence => new string []
  104. {
  105. "⠋",
  106. "⠙",
  107. "⠚",
  108. "⠞",
  109. "⠖",
  110. "⠦",
  111. "⠴",
  112. "⠲",
  113. "⠳",
  114. "⠓",
  115. };
  116. }
  117. public class Dots4 : SpinnerStyle {
  118. public override int SpinDelay => DEFAULT_DELAY;
  119. public override bool SpinBounce => true;
  120. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  121. public override string [] Sequence => new string []
  122. {
  123. "⠄",
  124. "⠆",
  125. "⠇",
  126. "⠋",
  127. "⠙",
  128. "⠸",
  129. "⠰",
  130. "⠠",
  131. };
  132. }
  133. public class Dots5 : SpinnerStyle {
  134. public override int SpinDelay => DEFAULT_DELAY;
  135. public override bool SpinBounce => DEFAULT_BOUNCE;
  136. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  137. public override string [] Sequence => new string []
  138. {
  139. "⠋",
  140. "⠙",
  141. "⠚",
  142. "⠒",
  143. "⠂",
  144. "⠂",
  145. "⠒",
  146. "⠲",
  147. "⠴",
  148. "⠦",
  149. "⠖",
  150. "⠒",
  151. "⠐",
  152. "⠐",
  153. "⠒",
  154. "⠓",
  155. "⠋",
  156. };
  157. }
  158. public class Dots6 : SpinnerStyle {
  159. public override int SpinDelay => DEFAULT_DELAY;
  160. public override bool SpinBounce => true;
  161. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  162. public override string [] Sequence => new string []
  163. {
  164. "⠁",
  165. "⠁",
  166. "⠉",
  167. "⠙",
  168. "⠚",
  169. "⠒",
  170. "⠂",
  171. "⠂",
  172. "⠒",
  173. "⠲",
  174. "⠴",
  175. "⠤",
  176. "⠄",
  177. "⠄",
  178. };
  179. }
  180. public class Dots7 : SpinnerStyle {
  181. public override int SpinDelay => DEFAULT_DELAY;
  182. public override bool SpinBounce => true;
  183. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  184. public override string [] Sequence => new string []
  185. {
  186. "⠈",
  187. "⠈",
  188. "⠉",
  189. "⠋",
  190. "⠓",
  191. "⠒",
  192. "⠐",
  193. "⠐",
  194. "⠒",
  195. "⠖",
  196. "⠦",
  197. "⠤",
  198. "⠠",
  199. "⠠",
  200. };
  201. }
  202. public class Dots8 : SpinnerStyle {
  203. public override int SpinDelay => DEFAULT_DELAY;
  204. public override bool SpinBounce => DEFAULT_BOUNCE;
  205. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  206. public override string [] Sequence => new string []
  207. {
  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. public class Dots9 : SpinnerStyle {
  240. public override int SpinDelay => DEFAULT_DELAY;
  241. public override bool SpinBounce => DEFAULT_BOUNCE;
  242. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  243. public override string [] Sequence => new string []
  244. {
  245. "⢹",
  246. "⢺",
  247. "⢼",
  248. "⣸",
  249. "⣇",
  250. "⡧",
  251. "⡗",
  252. "⡏",
  253. };
  254. }
  255. public class Dots10 : SpinnerStyle {
  256. public override int SpinDelay => DEFAULT_DELAY;
  257. public override bool SpinBounce => DEFAULT_BOUNCE;
  258. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  259. public override string [] Sequence => new string []
  260. {
  261. "⢄",
  262. "⢂",
  263. "⢁",
  264. "⡁",
  265. "⡈",
  266. "⡐",
  267. "⡠",
  268. };
  269. }
  270. public class Dots11 : SpinnerStyle {
  271. public override int SpinDelay => 100;
  272. public override bool SpinBounce => DEFAULT_BOUNCE;
  273. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  274. public override string [] Sequence => new string []
  275. {
  276. "⠁",
  277. "⠂",
  278. "⠄",
  279. "⡀",
  280. "⢀",
  281. "⠠",
  282. "⠐",
  283. "⠈",
  284. };
  285. }
  286. public class Dots12 : SpinnerStyle {
  287. public override int SpinDelay => DEFAULT_DELAY;
  288. public override bool SpinBounce => DEFAULT_BOUNCE;
  289. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  290. public override string [] Sequence => new string []
  291. {
  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. public class Dots8Bit : SpinnerStyle {
  351. public override int SpinDelay => DEFAULT_DELAY;
  352. public override bool SpinBounce => DEFAULT_BOUNCE;
  353. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  354. public override string [] Sequence => new string []
  355. {
  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. public class Line : SpinnerStyle {
  615. public override int SpinDelay => 130;
  616. public override bool SpinBounce => DEFAULT_BOUNCE;
  617. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  618. public override string [] Sequence => new string []
  619. {
  620. "-",
  621. @"\",
  622. "|",
  623. "/",
  624. };
  625. }
  626. public class Line2 : SpinnerStyle {
  627. public override int SpinDelay => 100;
  628. public override bool SpinBounce => true;
  629. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  630. public override string [] Sequence => new string []
  631. {
  632. "⠂",
  633. "-",
  634. "–",
  635. "—",
  636. };
  637. }
  638. public class Pipe : SpinnerStyle {
  639. public override int SpinDelay => 100;
  640. public override bool SpinBounce => DEFAULT_BOUNCE;
  641. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  642. public override string [] Sequence => new string []
  643. {
  644. "┤",
  645. "┘",
  646. "┴",
  647. "└",
  648. "├",
  649. "┌",
  650. "┬",
  651. "┐",
  652. };
  653. }
  654. public class SimpleDots : SpinnerStyle {
  655. public override int SpinDelay => 400;
  656. public override bool SpinBounce => DEFAULT_BOUNCE;
  657. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  658. public override string [] Sequence => new string []
  659. {
  660. ". ",
  661. ".. ",
  662. "...",
  663. " ",
  664. };
  665. }
  666. public class SimpleDotsScrolling : SpinnerStyle {
  667. public override int SpinDelay => 200;
  668. public override bool SpinBounce => DEFAULT_BOUNCE;
  669. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  670. public override string [] Sequence => new string []
  671. {
  672. ". ",
  673. ".. ",
  674. "...",
  675. " ..",
  676. " .",
  677. " ",
  678. };
  679. }
  680. public class Star : SpinnerStyle {
  681. public override int SpinDelay => 70;
  682. public override bool SpinBounce => DEFAULT_BOUNCE;
  683. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  684. public override string [] Sequence => new string []
  685. {
  686. "✶",
  687. "✸",
  688. "✹",
  689. "✺",
  690. "✹",
  691. "✷",
  692. };
  693. }
  694. public class Star2 : SpinnerStyle {
  695. public override int SpinDelay => DEFAULT_DELAY;
  696. public override bool SpinBounce => DEFAULT_BOUNCE;
  697. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  698. public override string [] Sequence => new string []
  699. {
  700. "+",
  701. "x",
  702. "*",
  703. };
  704. }
  705. public class Flip : SpinnerStyle {
  706. public override int SpinDelay => 70;
  707. public override bool SpinBounce => DEFAULT_BOUNCE;
  708. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  709. public override string [] Sequence => new string []
  710. {
  711. "_",
  712. "_",
  713. "_",
  714. "-",
  715. "`",
  716. "`",
  717. "'",
  718. "´",
  719. "-",
  720. "_",
  721. "_",
  722. "_",
  723. };
  724. }
  725. public class Hamburger : SpinnerStyle {
  726. public override int SpinDelay => 100;
  727. public override bool SpinBounce => DEFAULT_BOUNCE;
  728. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  729. public override string [] Sequence => new string []
  730. {
  731. "☱",
  732. "☲",
  733. "☴",
  734. };
  735. }
  736. public class GrowVertical : SpinnerStyle {
  737. public override int SpinDelay => 120;
  738. public override bool SpinBounce => true;
  739. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  740. public override string [] Sequence => new string []
  741. {
  742. "▁",
  743. "▃",
  744. "▄",
  745. "▅",
  746. "▆",
  747. "▇",
  748. };
  749. }
  750. public class GrowHorizontal : SpinnerStyle {
  751. public override int SpinDelay => 120;
  752. public override bool SpinBounce => true;
  753. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  754. public override string [] Sequence => new string []
  755. {
  756. "▏",
  757. "▎",
  758. "▍",
  759. "▌",
  760. "▋",
  761. "▊",
  762. "▉",
  763. };
  764. }
  765. public class Balloon : SpinnerStyle {
  766. public override int SpinDelay => 140;
  767. public override bool SpinBounce => DEFAULT_BOUNCE;
  768. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  769. public override string [] Sequence => new string []
  770. {
  771. " ",
  772. ".",
  773. "o",
  774. "O",
  775. "@",
  776. "*",
  777. " ",
  778. };
  779. }
  780. public class Balloon2 : SpinnerStyle {
  781. public override int SpinDelay => 120;
  782. public override bool SpinBounce => true;
  783. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  784. public override string [] Sequence => new string []
  785. {
  786. ".",
  787. ".",
  788. "o",
  789. "O",
  790. "°",
  791. };
  792. }
  793. public class Noise : SpinnerStyle {
  794. public override int SpinDelay => 100;
  795. public override bool SpinBounce => DEFAULT_BOUNCE;
  796. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  797. public override string [] Sequence => new string []
  798. {
  799. "▓",
  800. "▒",
  801. "░",
  802. };
  803. }
  804. public class Bounce : SpinnerStyle {
  805. public override int SpinDelay => 120;
  806. public override bool SpinBounce => true;
  807. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  808. public override string [] Sequence => new string []
  809. {
  810. "⠁",
  811. "⠂",
  812. "⠄",
  813. };
  814. }
  815. public class BoxBounce : SpinnerStyle {
  816. public override int SpinDelay => 120;
  817. public override bool SpinBounce => DEFAULT_BOUNCE;
  818. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  819. public override string [] Sequence => new string []
  820. {
  821. "▖",
  822. "▘",
  823. "▝",
  824. "▗",
  825. };
  826. }
  827. public class BoxBounce2 : SpinnerStyle {
  828. public override int SpinDelay => 100;
  829. public override bool SpinBounce => DEFAULT_BOUNCE;
  830. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  831. public override string [] Sequence => new string []
  832. {
  833. "▌",
  834. "▀",
  835. "▐",
  836. "▄",
  837. };
  838. }
  839. public class Triangle : SpinnerStyle {
  840. public override int SpinDelay => 50;
  841. public override bool SpinBounce => DEFAULT_BOUNCE;
  842. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  843. public override string [] Sequence => new string []
  844. {
  845. "◢",
  846. "◣",
  847. "◤",
  848. "◥",
  849. };
  850. }
  851. public class Arc : SpinnerStyle {
  852. public override int SpinDelay => 100;
  853. public override bool SpinBounce => DEFAULT_BOUNCE;
  854. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  855. public override string [] Sequence => new string []
  856. {
  857. "◜",
  858. "◠",
  859. "◝",
  860. "◞",
  861. "◡",
  862. "◟",
  863. };
  864. }
  865. public class Circle : SpinnerStyle {
  866. public override int SpinDelay => 120;
  867. public override bool SpinBounce => DEFAULT_BOUNCE;
  868. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  869. public override string [] Sequence => new string []
  870. {
  871. "◡",
  872. "⊙",
  873. "◠",
  874. };
  875. }
  876. public class SquareCorners : SpinnerStyle {
  877. public override int SpinDelay => 180;
  878. public override bool SpinBounce => DEFAULT_BOUNCE;
  879. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  880. public override string [] Sequence => new string []
  881. {
  882. "◰",
  883. "◳",
  884. "◲",
  885. "◱",
  886. };
  887. }
  888. public class CircleQuarters : SpinnerStyle {
  889. public override int SpinDelay => 120;
  890. public override bool SpinBounce => DEFAULT_BOUNCE;
  891. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  892. public override string [] Sequence => new string []
  893. {
  894. "◴",
  895. "◷",
  896. "◶",
  897. "◵",
  898. };
  899. }
  900. public class CircleHalves : SpinnerStyle {
  901. public override int SpinDelay => 50;
  902. public override bool SpinBounce => DEFAULT_BOUNCE;
  903. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  904. public override string [] Sequence => new string []
  905. {
  906. "◐",
  907. "◓",
  908. "◑",
  909. "◒",
  910. };
  911. }
  912. public class Squish : SpinnerStyle {
  913. public override int SpinDelay => 100;
  914. public override bool SpinBounce => DEFAULT_BOUNCE;
  915. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  916. public override string [] Sequence => new string []
  917. {
  918. "╫",
  919. "╪",
  920. };
  921. }
  922. public class Toggle : SpinnerStyle {
  923. public override int SpinDelay => 250;
  924. public override bool SpinBounce => DEFAULT_BOUNCE;
  925. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  926. public override string [] Sequence => new string []
  927. {
  928. "⊶",
  929. "⊷",
  930. };
  931. }
  932. public class Toggle2 : SpinnerStyle {
  933. public override int SpinDelay => DEFAULT_DELAY;
  934. public override bool SpinBounce => DEFAULT_BOUNCE;
  935. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  936. public override string [] Sequence => new string []
  937. {
  938. "▫",
  939. "▪",
  940. };
  941. }
  942. public class Toggle3 : SpinnerStyle {
  943. public override int SpinDelay => 120;
  944. public override bool SpinBounce => DEFAULT_BOUNCE;
  945. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  946. public override string [] Sequence => new string []
  947. {
  948. "□",
  949. "■",
  950. };
  951. }
  952. public class Toggle4 : SpinnerStyle {
  953. public override int SpinDelay => 100;
  954. public override bool SpinBounce => DEFAULT_BOUNCE;
  955. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  956. public override string [] Sequence => new string []
  957. {
  958. "■",
  959. "□",
  960. "▪",
  961. "▫",
  962. };
  963. }
  964. public class Toggle5 : SpinnerStyle {
  965. public override int SpinDelay => 100;
  966. public override bool SpinBounce => DEFAULT_BOUNCE;
  967. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  968. public override string [] Sequence => new string []
  969. {
  970. "▮",
  971. "▯",
  972. };
  973. }
  974. public class Toggle6 : SpinnerStyle {
  975. public override int SpinDelay => 300;
  976. public override bool SpinBounce => DEFAULT_BOUNCE;
  977. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  978. public override string [] Sequence => new string []
  979. {
  980. "ဝ",
  981. "၀",
  982. };
  983. }
  984. public class Toggle7 : SpinnerStyle {
  985. public override int SpinDelay => DEFAULT_DELAY;
  986. public override bool SpinBounce => DEFAULT_BOUNCE;
  987. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  988. public override string [] Sequence => new string []
  989. {
  990. "⦾",
  991. "⦿",
  992. };
  993. }
  994. public class Toggle8 : SpinnerStyle {
  995. public override int SpinDelay => 100;
  996. public override bool SpinBounce => DEFAULT_BOUNCE;
  997. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  998. public override string [] Sequence => new string []
  999. {
  1000. "◍",
  1001. "◌",
  1002. };
  1003. }
  1004. public class Toggle9 : SpinnerStyle {
  1005. public override int SpinDelay => 100;
  1006. public override bool SpinBounce => DEFAULT_BOUNCE;
  1007. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1008. public override string [] Sequence => new string []
  1009. {
  1010. "◉",
  1011. "◎",
  1012. };
  1013. }
  1014. public class Toggle10 : SpinnerStyle {
  1015. public override int SpinDelay => 100;
  1016. public override bool SpinBounce => DEFAULT_BOUNCE;
  1017. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1018. public override string [] Sequence => new string []
  1019. {
  1020. "㊂",
  1021. "㊀",
  1022. "㊁",
  1023. };
  1024. }
  1025. public class Toggle11 : SpinnerStyle {
  1026. public override int SpinDelay => 50;
  1027. public override bool SpinBounce => DEFAULT_BOUNCE;
  1028. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1029. public override string [] Sequence => new string []
  1030. {
  1031. "⧇",
  1032. "⧆",
  1033. };
  1034. }
  1035. public class Toggle12 : SpinnerStyle {
  1036. public override int SpinDelay => 120;
  1037. public override bool SpinBounce => DEFAULT_BOUNCE;
  1038. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1039. public override string [] Sequence => new string []
  1040. {
  1041. "☗",
  1042. "☖",
  1043. };
  1044. }
  1045. public class Toggle13 : SpinnerStyle {
  1046. public override int SpinDelay => DEFAULT_DELAY;
  1047. public override bool SpinBounce => DEFAULT_BOUNCE;
  1048. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1049. public override string [] Sequence => new string []
  1050. {
  1051. "=",
  1052. "*",
  1053. "-",
  1054. };
  1055. }
  1056. public class Arrow : SpinnerStyle {
  1057. public override int SpinDelay => 100;
  1058. public override bool SpinBounce => DEFAULT_BOUNCE;
  1059. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1060. public override string [] Sequence => new string []
  1061. {
  1062. "←",
  1063. "↖",
  1064. "↑",
  1065. "↗",
  1066. "→",
  1067. "↘",
  1068. "↓",
  1069. "↙",
  1070. };
  1071. }
  1072. public class Arrow2 : SpinnerStyle {
  1073. public override int SpinDelay => DEFAULT_DELAY;
  1074. public override bool SpinBounce => DEFAULT_BOUNCE;
  1075. public override bool HasSpecialCharacters => true;
  1076. public override string [] Sequence => new string []
  1077. {
  1078. "⬆️ ",
  1079. "↗️ ",
  1080. "➡️ ",
  1081. "↘️ ",
  1082. "⬇️ ",
  1083. "↙️ ",
  1084. "⬅️ ",
  1085. "↖️ ",
  1086. };
  1087. }
  1088. public class Arrow3 : SpinnerStyle {
  1089. public override int SpinDelay => 120;
  1090. public override bool SpinBounce => DEFAULT_BOUNCE;
  1091. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1092. public override string [] Sequence => new string []
  1093. {
  1094. "▹▹▹▹▹",
  1095. "▸▹▹▹▹",
  1096. "▹▸▹▹▹",
  1097. "▹▹▸▹▹",
  1098. "▹▹▹▸▹",
  1099. "▹▹▹▹▸",
  1100. };
  1101. }
  1102. public class BouncingBar : SpinnerStyle {
  1103. public override int SpinDelay => DEFAULT_DELAY;
  1104. public override bool SpinBounce => true;
  1105. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1106. public override string [] Sequence => new string []
  1107. {
  1108. "[ ]",
  1109. "[= ]",
  1110. "[== ]",
  1111. "[=== ]",
  1112. "[ ===]",
  1113. "[ ==]",
  1114. "[ =]",
  1115. "[ ]",
  1116. };
  1117. }
  1118. public class BouncingBall : SpinnerStyle {
  1119. public override int SpinDelay => DEFAULT_DELAY;
  1120. public override bool SpinBounce => true;
  1121. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1122. public override string [] Sequence => new string []
  1123. {
  1124. "(● )",
  1125. "( ● )",
  1126. "( ● )",
  1127. "( ● )",
  1128. "( ● )",
  1129. "( ●)",
  1130. };
  1131. }
  1132. public class Smiley : SpinnerStyle {
  1133. public override int SpinDelay => 200;
  1134. public override bool SpinBounce => DEFAULT_BOUNCE;
  1135. public override bool HasSpecialCharacters => true;
  1136. public override string [] Sequence => new string []
  1137. {
  1138. "😄 ",
  1139. "😝 ",
  1140. };
  1141. }
  1142. public class Monkey : SpinnerStyle {
  1143. public override int SpinDelay => 300;
  1144. public override bool SpinBounce => DEFAULT_BOUNCE;
  1145. public override bool HasSpecialCharacters => true;
  1146. public override string [] Sequence => new string []
  1147. {
  1148. "🙈 ",
  1149. "🙈 ",
  1150. "🙉 ",
  1151. "🙊 ",
  1152. };
  1153. }
  1154. public class Hearts : SpinnerStyle {
  1155. public override int SpinDelay => 100;
  1156. public override bool SpinBounce => DEFAULT_BOUNCE;
  1157. public override bool HasSpecialCharacters => true;
  1158. public override string [] Sequence => new string []
  1159. {
  1160. "💛 ",
  1161. "💙 ",
  1162. "💜 ",
  1163. "💚 ",
  1164. "❤️ ",
  1165. };
  1166. }
  1167. public class Clock : SpinnerStyle {
  1168. public override int SpinDelay => 100;
  1169. public override bool SpinBounce => DEFAULT_BOUNCE;
  1170. public override bool HasSpecialCharacters => true;
  1171. public override string [] Sequence => new string []
  1172. {
  1173. "🕛 ",
  1174. "🕐 ",
  1175. "🕑 ",
  1176. "🕒 ",
  1177. "🕓 ",
  1178. "🕔 ",
  1179. "🕕 ",
  1180. "🕖 ",
  1181. "🕗 ",
  1182. "🕘 ",
  1183. "🕙 ",
  1184. "🕚 ",
  1185. };
  1186. }
  1187. public class Earth : SpinnerStyle {
  1188. public override int SpinDelay => 180;
  1189. public override bool SpinBounce => DEFAULT_BOUNCE;
  1190. public override bool HasSpecialCharacters => true;
  1191. public override string [] Sequence => new string []
  1192. {
  1193. "🌍 ",
  1194. "🌎 ",
  1195. "🌏 ",
  1196. };
  1197. }
  1198. public class Material : SpinnerStyle {
  1199. public override int SpinDelay => 17;
  1200. public override bool SpinBounce => DEFAULT_BOUNCE;
  1201. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1202. public override string [] Sequence => new string []
  1203. {
  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. public class Moon : SpinnerStyle {
  1299. public override int SpinDelay => DEFAULT_DELAY;
  1300. public override bool SpinBounce => DEFAULT_BOUNCE;
  1301. public override bool HasSpecialCharacters => true;
  1302. public override string [] Sequence => new string []
  1303. {
  1304. "🌑 ",
  1305. "🌒 ",
  1306. "🌓 ",
  1307. "🌔 ",
  1308. "🌕 ",
  1309. "🌖 ",
  1310. "🌗 ",
  1311. "🌘 ",
  1312. };
  1313. }
  1314. public class Runner : SpinnerStyle {
  1315. public override int SpinDelay => 140;
  1316. public override bool SpinBounce => DEFAULT_BOUNCE;
  1317. public override bool HasSpecialCharacters => true;
  1318. public override string [] Sequence => new string []
  1319. {
  1320. "🚶 ",
  1321. "🏃 ",
  1322. };
  1323. }
  1324. public class Pong : SpinnerStyle {
  1325. public override int SpinDelay => DEFAULT_DELAY;
  1326. public override bool SpinBounce => true;
  1327. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1328. public override string [] Sequence => new string []
  1329. {
  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. public class Shark : SpinnerStyle {
  1363. public override int SpinDelay => 120;
  1364. public override bool SpinBounce => DEFAULT_BOUNCE;
  1365. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1366. public override string [] Sequence => new string []
  1367. {
  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. public class Dqpb : SpinnerStyle {
  1397. public override int SpinDelay => 100;
  1398. public override bool SpinBounce => DEFAULT_BOUNCE;
  1399. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1400. public override string [] Sequence => new string []
  1401. {
  1402. "d",
  1403. "q",
  1404. "p",
  1405. "b",
  1406. };
  1407. }
  1408. public class Weather : SpinnerStyle {
  1409. public override int SpinDelay => 100;
  1410. public override bool SpinBounce => DEFAULT_BOUNCE;
  1411. public override bool HasSpecialCharacters => true;
  1412. public override string [] Sequence => new string []
  1413. {
  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. public class Christmas : SpinnerStyle {
  1440. public override int SpinDelay => 400;
  1441. public override bool SpinBounce => DEFAULT_BOUNCE;
  1442. public override bool HasSpecialCharacters => true;
  1443. public override string [] Sequence => new string []
  1444. {
  1445. "🌲",
  1446. "🎄",
  1447. };
  1448. }
  1449. public class Grenade : SpinnerStyle {
  1450. public override int SpinDelay => DEFAULT_DELAY;
  1451. public override bool SpinBounce => DEFAULT_BOUNCE;
  1452. public override bool HasSpecialCharacters => true;
  1453. public override string [] Sequence => new string []
  1454. {
  1455. "، ",
  1456. "′ ",
  1457. " ´ ",
  1458. " ‾ ",
  1459. " ⸌",
  1460. " ⸊",
  1461. " |",
  1462. " ⁎",
  1463. " ⁕",
  1464. " ෴ ",
  1465. " ⁓",
  1466. " ",
  1467. " ",
  1468. " ",
  1469. };
  1470. }
  1471. public class Points : SpinnerStyle {
  1472. public override int SpinDelay => 125;
  1473. public override bool SpinBounce => DEFAULT_BOUNCE;
  1474. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1475. public override string [] Sequence => new string []
  1476. {
  1477. "∙∙∙",
  1478. "●∙∙",
  1479. "∙●∙",
  1480. "∙∙●",
  1481. "∙∙∙",
  1482. };
  1483. }
  1484. public class Layer : SpinnerStyle {
  1485. public override int SpinDelay => 150;
  1486. public override bool SpinBounce => DEFAULT_BOUNCE;
  1487. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1488. public override string [] Sequence => new string []
  1489. {
  1490. "-",
  1491. "=",
  1492. "≡",
  1493. };
  1494. }
  1495. public class BetaWave : SpinnerStyle {
  1496. public override int SpinDelay => DEFAULT_DELAY;
  1497. public override bool SpinBounce => DEFAULT_BOUNCE;
  1498. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1499. public override string [] Sequence => new string []
  1500. {
  1501. "ρββββββ",
  1502. "βρβββββ",
  1503. "ββρββββ",
  1504. "βββρβββ",
  1505. "ββββρββ",
  1506. "βββββρβ",
  1507. "ββββββρ",
  1508. };
  1509. }
  1510. public class FingerDance : SpinnerStyle {
  1511. public override int SpinDelay => 160;
  1512. public override bool SpinBounce => DEFAULT_BOUNCE;
  1513. public override bool HasSpecialCharacters => true;
  1514. public override string [] Sequence => new string []
  1515. {
  1516. "🤘 ",
  1517. "🤟 ",
  1518. "🖖 ",
  1519. "✋ ",
  1520. "🤚 ",
  1521. "👆 "
  1522. };
  1523. }
  1524. public class FistBump : SpinnerStyle {
  1525. public override int SpinDelay => DEFAULT_DELAY;
  1526. public override bool SpinBounce => DEFAULT_BOUNCE;
  1527. public override bool HasSpecialCharacters => true;
  1528. public override string [] Sequence => new string []
  1529. {
  1530. "🤜\u3000\u3000\u3000\u3000🤛 ",
  1531. "🤜\u3000\u3000\u3000\u3000🤛 ",
  1532. "🤜\u3000\u3000\u3000\u3000🤛 ",
  1533. "\u3000🤜\u3000\u3000🤛\u3000 ",
  1534. "\u3000\u3000🤜🤛\u3000\u3000 ",
  1535. "\u3000🤜✨🤛\u3000\u3000 ",
  1536. "🤜\u3000✨\u3000🤛\u3000 "
  1537. };
  1538. }
  1539. public class SoccerHeader : SpinnerStyle {
  1540. public override int SpinDelay => DEFAULT_DELAY;
  1541. public override bool SpinBounce => true;
  1542. public override bool HasSpecialCharacters => true;
  1543. public override string [] Sequence => new string []
  1544. {
  1545. " 🧑⚽️ 🧑 ",
  1546. "🧑 ⚽️ 🧑 ",
  1547. "🧑 ⚽️ 🧑 ",
  1548. "🧑 ⚽️ 🧑 ",
  1549. "🧑 ⚽️ 🧑 ",
  1550. "🧑 ⚽️ 🧑 ",
  1551. "🧑 ⚽️🧑 ",
  1552. };
  1553. }
  1554. public class MindBlown : SpinnerStyle {
  1555. public override int SpinDelay => 160;
  1556. public override bool SpinBounce => DEFAULT_BOUNCE;
  1557. public override bool HasSpecialCharacters => true;
  1558. public override string [] Sequence => new string []
  1559. {
  1560. "😐 ",
  1561. "😐 ",
  1562. "😮 ",
  1563. "😮 ",
  1564. "😦 ",
  1565. "😦 ",
  1566. "😧 ",
  1567. "😧 ",
  1568. "🤯 ",
  1569. "💥 ",
  1570. "✨ ",
  1571. "\u3000 ",
  1572. "\u3000 ",
  1573. "\u3000 "
  1574. };
  1575. }
  1576. public class Speaker : SpinnerStyle {
  1577. public override int SpinDelay => 160;
  1578. public override bool SpinBounce => true;
  1579. public override bool HasSpecialCharacters => true;
  1580. public override string [] Sequence => new string []
  1581. {
  1582. "🔈 ",
  1583. "🔉 ",
  1584. "🔊 ",
  1585. };
  1586. }
  1587. public class OrangePulse : SpinnerStyle {
  1588. public override int SpinDelay => 100;
  1589. public override bool SpinBounce => DEFAULT_BOUNCE;
  1590. public override bool HasSpecialCharacters => true;
  1591. public override string [] Sequence => new string []
  1592. {
  1593. "🔸 ",
  1594. "🔶 ",
  1595. "🟠 ",
  1596. "🟠 ",
  1597. "🔶 "
  1598. };
  1599. }
  1600. public class BluePulse : SpinnerStyle {
  1601. public override int SpinDelay => 100;
  1602. public override bool SpinBounce => DEFAULT_BOUNCE;
  1603. public override bool HasSpecialCharacters => true;
  1604. public override string [] Sequence => new string []
  1605. {
  1606. "🔹 ",
  1607. "🔷 ",
  1608. "🔵 ",
  1609. "🔵 ",
  1610. "🔷 "
  1611. };
  1612. }
  1613. public class OrangeBluePulse : SpinnerStyle {
  1614. public override int SpinDelay => 100;
  1615. public override bool SpinBounce => DEFAULT_BOUNCE;
  1616. public override bool HasSpecialCharacters => true;
  1617. public override string [] Sequence => new string []
  1618. {
  1619. "🔸 ",
  1620. "🔶 ",
  1621. "🟠 ",
  1622. "🟠 ",
  1623. "🔶 ",
  1624. "🔹 ",
  1625. "🔷 ",
  1626. "🔵 ",
  1627. "🔵 ",
  1628. "🔷 "
  1629. };
  1630. }
  1631. public class TimeTravelClock : SpinnerStyle {
  1632. public override int SpinDelay => 100;
  1633. public override bool SpinBounce => DEFAULT_BOUNCE;
  1634. public override bool HasSpecialCharacters => true;
  1635. public override string [] Sequence => new string []
  1636. {
  1637. "🕛 ",
  1638. "🕚 ",
  1639. "🕙 ",
  1640. "🕘 ",
  1641. "🕗 ",
  1642. "🕖 ",
  1643. "🕕 ",
  1644. "🕔 ",
  1645. "🕓 ",
  1646. "🕒 ",
  1647. "🕑 ",
  1648. "🕐 "
  1649. };
  1650. }
  1651. public class Aesthetic : SpinnerStyle {
  1652. public override int SpinDelay => DEFAULT_DELAY;
  1653. public override bool SpinBounce => DEFAULT_BOUNCE;
  1654. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1655. public override string [] Sequence => new string []
  1656. {
  1657. "▰▱▱▱▱▱▱",
  1658. "▰▰▱▱▱▱▱",
  1659. "▰▰▰▱▱▱▱",
  1660. "▰▰▰▰▱▱▱",
  1661. "▰▰▰▰▰▱▱",
  1662. "▰▰▰▰▰▰▱",
  1663. "▰▰▰▰▰▰▰",
  1664. "▰▱▱▱▱▱▱",
  1665. };
  1666. }
  1667. public class Aesthetic2 : SpinnerStyle {
  1668. public override int SpinDelay => DEFAULT_DELAY;
  1669. public override bool SpinBounce => DEFAULT_BOUNCE;
  1670. public override bool HasSpecialCharacters => DEFAULT_SPECIAL;
  1671. public override string [] Sequence => new string []
  1672. {
  1673. "▰▱▱▱▱▱▱",
  1674. "▰▰▱▱▱▱▱",
  1675. "▰▰▰▱▱▱▱",
  1676. "▰▰▰▰▱▱▱",
  1677. "▰▰▰▰▰▱▱",
  1678. "▰▰▰▰▰▰▱",
  1679. "▰▰▰▰▰▰▰",
  1680. "▱▰▰▰▰▰▰",
  1681. "▱▱▰▰▰▰▰",
  1682. "▱▱▱▰▰▰▰",
  1683. "▱▱▱▱▰▰▰",
  1684. "▱▱▱▱▱▰▰",
  1685. "▱▱▱▱▱▱▰",
  1686. "▱▱▱▱▱▱▱",
  1687. };
  1688. }
  1689. #pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
  1690. }
  1691. }