@papillonarts/library 0.36.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,18 +20,6 @@ exports[`<Array /> Render must match getCurrentIndex() 1`] = `
20
20
  <span>
21
21
 
22
22
 
23
- </span>
24
- <span>
25
-
26
- </span>
27
- <span
28
- style="color: rgb(101, 115, 126);"
29
- >
30
- // Papillon Arts Library
31
- </span>
32
- <span>
33
-
34
-
35
23
  </span>
36
24
  <span>
37
25
 
@@ -1779,7 +1767,7 @@ exports[`<Array /> Render must match getIndexItemsWithSelected() 1`] = `
1779
1767
  </div>
1780
1768
  `;
1781
1769
 
1782
- exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
1770
+ exports[`<Array /> Render must match getItemsDefaultSelected() 1`] = `
1783
1771
  <div>
1784
1772
  <pre
1785
1773
  style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
@@ -1818,7 +1806,7 @@ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
1818
1806
  class="hljs-function"
1819
1807
  style="color: rgb(143, 161, 179);"
1820
1808
  >
1821
- getRandomItemFromArray
1809
+ getItemsDefaultSelected
1822
1810
  </span>
1823
1811
  <span
1824
1812
  class="hljs-function"
@@ -1834,160 +1822,229 @@ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
1834
1822
  <span
1835
1823
  class="hljs-function"
1836
1824
  >
1837
- &gt;(
1825
+
1838
1826
  </span>
1839
1827
  <span
1840
1828
  class="hljs-function"
1841
- style="color: rgb(208, 135, 112);"
1829
+ style="color: rgb(143, 161, 179);"
1842
1830
  >
1843
- array: T[]
1831
+ extends
1844
1832
  </span>
1845
1833
  <span
1846
1834
  class="hljs-function"
1847
1835
  >
1848
- ):
1836
+
1849
1837
  </span>
1850
1838
  <span
1851
1839
  class="hljs-function"
1852
1840
  style="color: rgb(143, 161, 179);"
1853
1841
  >
1854
- T
1842
+ IIdentifiedSelectable
1855
1843
  </span>
1856
1844
  <span
1857
1845
  class="hljs-function"
1858
1846
  >
1859
-
1847
+ &gt;(
1860
1848
  </span>
1861
- <span>
1849
+ <span
1850
+ class="hljs-function"
1851
+ style="color: rgb(208, 135, 112);"
1852
+ >
1862
1853
  {
1863
1854
 
1864
1855
  </span>
1865
- <span>
1866
-
1856
+ <span
1857
+ class="hljs-function"
1858
+ style="color: rgb(208, 135, 112);"
1859
+ >
1860
+ defaultItems =
1867
1861
  </span>
1868
1862
  <span
1869
- style="color: rgb(180, 142, 173);"
1863
+ class="hljs-function"
1864
+ style="color: rgb(208, 135, 112);"
1870
1865
  >
1871
- return
1866
+ null
1872
1867
  </span>
1873
- <span>
1874
- array?.[
1868
+ <span
1869
+ class="hljs-function"
1870
+ style="color: rgb(208, 135, 112);"
1871
+ >
1872
+ ,
1873
+
1875
1874
  </span>
1876
1875
  <span
1876
+ class="hljs-function"
1877
1877
  style="color: rgb(208, 135, 112);"
1878
1878
  >
1879
- Math
1879
+ items =
1880
1880
  </span>
1881
- <span>
1882
- .floor(
1881
+ <span
1882
+ class="hljs-function"
1883
+ style="color: rgb(208, 135, 112);"
1884
+ >
1885
+ null
1883
1886
  </span>
1884
1887
  <span
1888
+ class="hljs-function"
1885
1889
  style="color: rgb(208, 135, 112);"
1886
1890
  >
1887
- Math
1891
+ ,
1892
+
1888
1893
  </span>
1889
- <span>
1890
- .random() * array?.length)]
1894
+ <span
1895
+ class="hljs-function"
1896
+ style="color: rgb(208, 135, 112);"
1897
+ >
1898
+ }: {
1891
1899
 
1892
1900
  </span>
1893
- }
1901
+ <span
1902
+ class="hljs-function"
1903
+ style="color: rgb(208, 135, 112);"
1904
+ >
1905
+ defaultItems?: T[]
1894
1906
 
1895
-
1907
+ </span>
1908
+ <span
1909
+ class="hljs-function"
1910
+ style="color: rgb(208, 135, 112);"
1911
+ >
1912
+ items?: T[]
1896
1913
 
1897
- <span>
1898
- describe(
1899
1914
  </span>
1900
1915
  <span
1901
- style="color: rgb(163, 190, 140);"
1916
+ class="hljs-function"
1917
+ style="color: rgb(208, 135, 112);"
1902
1918
  >
1903
- 'getRandomItemFromArray()'
1919
+ }
1904
1920
  </span>
1905
- <span>
1906
- ,
1921
+ <span
1922
+ class="hljs-function"
1923
+ >
1924
+ ):
1925
+ </span>
1926
+ <span
1927
+ class="hljs-function"
1928
+ style="color: rgb(143, 161, 179);"
1929
+ >
1930
+ T
1907
1931
  </span>
1908
1932
  <span
1909
1933
  class="hljs-function"
1910
1934
  >
1911
- () =&gt;
1935
+ []
1912
1936
  </span>
1913
1937
  <span>
1914
- {
1938
+ {
1915
1939
 
1916
1940
  </span>
1917
1941
  <span>
1918
- beforeEach(
1942
+
1919
1943
  </span>
1920
1944
  <span
1921
- class="hljs-function"
1945
+ style="color: rgb(180, 142, 173);"
1922
1946
  >
1923
- () =&gt;
1947
+ let
1924
1948
  </span>
1925
1949
  <span>
1926
- {
1950
+ result
1927
1951
 
1928
1952
  </span>
1953
+
1954
+
1929
1955
  <span>
1930
- jest.spyOn(
1956
+
1931
1957
  </span>
1932
1958
  <span
1933
- style="color: rgb(208, 135, 112);"
1959
+ style="color: rgb(180, 142, 173);"
1934
1960
  >
1935
- Math
1961
+ if
1936
1962
  </span>
1937
1963
  <span>
1938
- ,
1964
+ (defaultItems && items) {
1965
+
1966
+ </span>
1967
+ result = [
1968
+
1969
+ <span>
1970
+
1939
1971
  </span>
1940
1972
  <span
1941
- style="color: rgb(163, 190, 140);"
1973
+ style="color: rgb(101, 115, 126);"
1942
1974
  >
1943
- 'random'
1975
+ // eslint-disable-next-line no-unsafe-optional-chaining
1944
1976
  </span>
1945
1977
  <span>
1946
- ).mockImplementation(jest.fn(
1978
+
1979
+
1980
+ </span>
1981
+ <span>
1982
+ ...defaultItems?.map(
1947
1983
  </span>
1948
1984
  <span
1949
1985
  class="hljs-function"
1950
1986
  >
1951
- () =&gt;
1952
- </span>
1953
- <span>
1954
-
1987
+ (
1955
1988
  </span>
1956
1989
  <span
1990
+ class="hljs-function"
1957
1991
  style="color: rgb(208, 135, 112);"
1958
1992
  >
1959
- 3
1993
+ { id, name, ...rest }
1994
+ </span>
1995
+ <span
1996
+ class="hljs-function"
1997
+ >
1998
+ ) =&gt;
1960
1999
  </span>
1961
2000
  <span>
1962
- ))
2001
+ ({
1963
2002
 
1964
2003
  </span>
2004
+ id,
2005
+
1965
2006
  <span>
1966
- jest.spyOn(
2007
+
1967
2008
  </span>
1968
2009
  <span
1969
- style="color: rgb(208, 135, 112);"
2010
+ class="hljs-attr"
1970
2011
  >
1971
- Math
2012
+ href
1972
2013
  </span>
1973
2014
  <span>
1974
- ,
2015
+ :
1975
2016
  </span>
1976
2017
  <span
1977
2018
  style="color: rgb(163, 190, 140);"
1978
2019
  >
1979
- 'floor'
2020
+ '#url'
1980
2021
  </span>
1981
2022
  <span>
1982
- ).mockImplementation(jest.fn(
2023
+ ,
2024
+
2025
+ </span>
2026
+ <span>
2027
+
1983
2028
  </span>
1984
2029
  <span
1985
- class="hljs-function"
2030
+ class="hljs-attr"
1986
2031
  >
1987
- () =&gt;
2032
+ text
1988
2033
  </span>
1989
2034
  <span>
1990
-
2035
+ : name,
2036
+
2037
+ </span>
2038
+ <span>
2039
+
2040
+ </span>
2041
+ <span
2042
+ class="hljs-attr"
2043
+ >
2044
+ isSelected
2045
+ </span>
2046
+ <span>
2047
+ : name === defaultItems[
1991
2048
  </span>
1992
2049
  <span
1993
2050
  style="color: rgb(208, 135, 112);"
@@ -1995,62 +2052,57 @@ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
1995
2052
  0
1996
2053
  </span>
1997
2054
  <span>
1998
- ))
2055
+ ].name,
1999
2056
 
2000
2057
  </span>
2001
- })
2058
+ ...rest,
2002
2059
 
2003
-
2060
+ })),
2004
2061
 
2005
2062
  <span>
2006
- afterEach(
2063
+
2007
2064
  </span>
2008
2065
  <span
2009
- class="hljs-function"
2066
+ style="color: rgb(101, 115, 126);"
2010
2067
  >
2011
- () =&gt;
2068
+ // eslint-disable-next-line no-unsafe-optional-chaining
2012
2069
  </span>
2013
2070
  <span>
2014
- jest.clearAllMocks())
2071
+
2015
2072
 
2016
2073
  </span>
2017
-
2018
-
2019
2074
  <span>
2020
- test(
2075
+ ...items?.map(
2021
2076
  </span>
2022
2077
  <span
2023
- style="color: rgb(163, 190, 140);"
2078
+ class="hljs-function"
2024
2079
  >
2025
- 'must return random item from array when array has items'
2080
+ (
2026
2081
  </span>
2027
- <span>
2028
- ,
2082
+ <span
2083
+ class="hljs-function"
2084
+ style="color: rgb(208, 135, 112);"
2085
+ >
2086
+ { id, name, ...rest }
2029
2087
  </span>
2030
2088
  <span
2031
2089
  class="hljs-function"
2032
2090
  >
2033
- () =&gt;
2091
+ ) =&gt;
2034
2092
  </span>
2035
2093
  <span>
2036
- {
2094
+ ({
2037
2095
 
2038
2096
  </span>
2097
+ id,
2098
+
2039
2099
  <span>
2040
-
2041
- </span>
2042
- <span
2043
- style="color: rgb(180, 142, 173);"
2044
- >
2045
- const
2046
- </span>
2047
- <span>
2048
- array = [{
2100
+
2049
2101
  </span>
2050
2102
  <span
2051
2103
  class="hljs-attr"
2052
2104
  >
2053
- fantasticKey1
2105
+ href
2054
2106
  </span>
2055
2107
  <span>
2056
2108
  :
@@ -2058,74 +2110,1331 @@ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
2058
2110
  <span
2059
2111
  style="color: rgb(163, 190, 140);"
2060
2112
  >
2061
- 'fantastic-value-1'
2113
+ '#url'
2062
2114
  </span>
2063
2115
  <span>
2064
- }, {
2116
+ ,
2117
+
2118
+ </span>
2119
+ <span>
2120
+
2065
2121
  </span>
2066
2122
  <span
2067
2123
  class="hljs-attr"
2068
2124
  >
2069
- fantasticKey2
2125
+ text
2070
2126
  </span>
2071
2127
  <span>
2072
- :
2073
- </span>
2074
- <span
2075
- style="color: rgb(163, 190, 140);"
2076
- >
2077
- 'fantastic-value-2'
2128
+ : name,
2129
+
2078
2130
  </span>
2079
2131
  <span>
2080
- }, {
2132
+
2081
2133
  </span>
2082
2134
  <span
2083
2135
  class="hljs-attr"
2084
2136
  >
2085
- fantasticKey3
2137
+ isSelected
2086
2138
  </span>
2087
2139
  <span>
2088
- :
2140
+ : name === items[
2089
2141
  </span>
2090
2142
  <span
2091
- style="color: rgb(163, 190, 140);"
2143
+ style="color: rgb(208, 135, 112);"
2092
2144
  >
2093
- 'fantastic-value-3'
2145
+ 0
2094
2146
  </span>
2095
2147
  <span>
2096
- }]
2148
+ ].name,
2097
2149
 
2098
2150
  </span>
2151
+ ...rest,
2152
+
2153
+ })),
2154
+
2155
+ ]
2156
+
2157
+ }
2158
+
2099
2159
 
2100
2160
 
2101
2161
  <span>
2102
- expect(getRandomItemFromArray(array)).toEqual(array[
2162
+
2103
2163
  </span>
2104
2164
  <span
2105
- style="color: rgb(208, 135, 112);"
2165
+ style="color: rgb(180, 142, 173);"
2106
2166
  >
2107
- 0
2167
+ if
2108
2168
  </span>
2109
2169
  <span>
2110
- ])
2170
+ (defaultItems && !items) {
2111
2171
 
2112
2172
  </span>
2113
- })
2114
-
2115
-
2116
-
2117
2173
  <span>
2118
- test(
2174
+ result =
2119
2175
  </span>
2120
2176
  <span
2121
- style="color: rgb(163, 190, 140);"
2177
+ style="color: rgb(208, 135, 112);"
2122
2178
  >
2123
- 'must return undefined when array has no items'
2179
+ null
2124
2180
  </span>
2125
2181
  <span>
2126
- ,
2182
+
2183
+
2127
2184
  </span>
2128
- <span
2185
+ }
2186
+
2187
+
2188
+
2189
+ <span>
2190
+
2191
+ </span>
2192
+ <span
2193
+ style="color: rgb(180, 142, 173);"
2194
+ >
2195
+ if
2196
+ </span>
2197
+ <span>
2198
+ (!defaultItems && items) {
2199
+
2200
+ </span>
2201
+ <span>
2202
+ result = items?.map(
2203
+ </span>
2204
+ <span
2205
+ class="hljs-function"
2206
+ >
2207
+ (
2208
+ </span>
2209
+ <span
2210
+ class="hljs-function"
2211
+ style="color: rgb(208, 135, 112);"
2212
+ >
2213
+ { id, name, ...rest }
2214
+ </span>
2215
+ <span
2216
+ class="hljs-function"
2217
+ >
2218
+ ) =&gt;
2219
+ </span>
2220
+ <span>
2221
+ ({
2222
+
2223
+ </span>
2224
+ id,
2225
+
2226
+ <span>
2227
+
2228
+ </span>
2229
+ <span
2230
+ class="hljs-attr"
2231
+ >
2232
+ href
2233
+ </span>
2234
+ <span>
2235
+ :
2236
+ </span>
2237
+ <span
2238
+ style="color: rgb(163, 190, 140);"
2239
+ >
2240
+ '#url'
2241
+ </span>
2242
+ <span>
2243
+ ,
2244
+
2245
+ </span>
2246
+ <span>
2247
+
2248
+ </span>
2249
+ <span
2250
+ class="hljs-attr"
2251
+ >
2252
+ text
2253
+ </span>
2254
+ <span>
2255
+ : name,
2256
+
2257
+ </span>
2258
+ <span>
2259
+
2260
+ </span>
2261
+ <span
2262
+ class="hljs-attr"
2263
+ >
2264
+ isSelected
2265
+ </span>
2266
+ <span>
2267
+ : name === items[
2268
+ </span>
2269
+ <span
2270
+ style="color: rgb(208, 135, 112);"
2271
+ >
2272
+ 0
2273
+ </span>
2274
+ <span>
2275
+ ].name,
2276
+
2277
+ </span>
2278
+ ...rest,
2279
+
2280
+ }))
2281
+
2282
+ }
2283
+
2284
+
2285
+
2286
+ <span>
2287
+
2288
+ </span>
2289
+ <span
2290
+ style="color: rgb(180, 142, 173);"
2291
+ >
2292
+ if
2293
+ </span>
2294
+ <span>
2295
+ (!defaultItems && !items) {
2296
+
2297
+ </span>
2298
+ <span>
2299
+ result =
2300
+ </span>
2301
+ <span
2302
+ style="color: rgb(208, 135, 112);"
2303
+ >
2304
+ null
2305
+ </span>
2306
+ <span>
2307
+
2308
+
2309
+ </span>
2310
+ }
2311
+
2312
+
2313
+
2314
+ <span>
2315
+
2316
+ </span>
2317
+ <span
2318
+ style="color: rgb(180, 142, 173);"
2319
+ >
2320
+ return
2321
+ </span>
2322
+ <span>
2323
+ result
2324
+
2325
+ </span>
2326
+ }
2327
+
2328
+ </code>
2329
+ </pre>
2330
+ </div>
2331
+ `;
2332
+
2333
+ exports[`<Array /> Render must match getItemsRandomSelected() 1`] = `
2334
+ <div>
2335
+ <pre
2336
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
2337
+ >
2338
+ <code
2339
+ class="language-typescript"
2340
+ style="white-space: pre;"
2341
+ >
2342
+ <span>
2343
+
2344
+
2345
+ </span>
2346
+ <span>
2347
+
2348
+ </span>
2349
+ <span
2350
+ style="color: rgb(180, 142, 173);"
2351
+ >
2352
+ export
2353
+ </span>
2354
+ <span>
2355
+
2356
+ </span>
2357
+ <span
2358
+ class="hljs-function"
2359
+ style="color: rgb(180, 142, 173);"
2360
+ >
2361
+ function
2362
+ </span>
2363
+ <span
2364
+ class="hljs-function"
2365
+ >
2366
+
2367
+ </span>
2368
+ <span
2369
+ class="hljs-function"
2370
+ style="color: rgb(143, 161, 179);"
2371
+ >
2372
+ getItemsRandomSelected
2373
+ </span>
2374
+ <span
2375
+ class="hljs-function"
2376
+ >
2377
+ &lt;
2378
+ </span>
2379
+ <span
2380
+ class="hljs-function"
2381
+ style="color: rgb(143, 161, 179);"
2382
+ >
2383
+ T
2384
+ </span>
2385
+ <span
2386
+ class="hljs-function"
2387
+ >
2388
+
2389
+ </span>
2390
+ <span
2391
+ class="hljs-function"
2392
+ style="color: rgb(143, 161, 179);"
2393
+ >
2394
+ extends
2395
+ </span>
2396
+ <span
2397
+ class="hljs-function"
2398
+ >
2399
+
2400
+ </span>
2401
+ <span
2402
+ class="hljs-function"
2403
+ style="color: rgb(143, 161, 179);"
2404
+ >
2405
+ IIdentifiedSelectable
2406
+ </span>
2407
+ <span
2408
+ class="hljs-function"
2409
+ >
2410
+ &gt;(
2411
+ </span>
2412
+ <span
2413
+ class="hljs-function"
2414
+ style="color: rgb(208, 135, 112);"
2415
+ >
2416
+ { items }: { items: T[] }
2417
+ </span>
2418
+ <span
2419
+ class="hljs-function"
2420
+ >
2421
+ ):
2422
+ </span>
2423
+ <span
2424
+ class="hljs-function"
2425
+ style="color: rgb(143, 161, 179);"
2426
+ >
2427
+ T
2428
+ </span>
2429
+ <span
2430
+ class="hljs-function"
2431
+ >
2432
+ []
2433
+ </span>
2434
+ <span>
2435
+ {
2436
+
2437
+ </span>
2438
+ <span>
2439
+
2440
+ </span>
2441
+ <span
2442
+ style="color: rgb(180, 142, 173);"
2443
+ >
2444
+ const
2445
+ </span>
2446
+ <span>
2447
+ randomItem:
2448
+ </span>
2449
+ <span
2450
+ style="color: rgb(208, 135, 112);"
2451
+ >
2452
+ string
2453
+ </span>
2454
+ <span>
2455
+ = getRandomItemFromArray&lt;
2456
+ </span>
2457
+ <span
2458
+ style="color: rgb(208, 135, 112);"
2459
+ >
2460
+ string
2461
+ </span>
2462
+ <span>
2463
+ &gt;(items?.map(
2464
+ </span>
2465
+ <span
2466
+ class="hljs-function"
2467
+ >
2468
+ (
2469
+ </span>
2470
+ <span
2471
+ class="hljs-function"
2472
+ style="color: rgb(208, 135, 112);"
2473
+ >
2474
+ { name }
2475
+ </span>
2476
+ <span
2477
+ class="hljs-function"
2478
+ >
2479
+ ) =&gt;
2480
+ </span>
2481
+ <span>
2482
+ name))
2483
+
2484
+ </span>
2485
+
2486
+
2487
+ <span>
2488
+
2489
+ </span>
2490
+ <span
2491
+ style="color: rgb(180, 142, 173);"
2492
+ >
2493
+ let
2494
+ </span>
2495
+ <span>
2496
+ result
2497
+
2498
+ </span>
2499
+
2500
+
2501
+ <span>
2502
+
2503
+ </span>
2504
+ <span
2505
+ style="color: rgb(180, 142, 173);"
2506
+ >
2507
+ if
2508
+ </span>
2509
+ <span>
2510
+ (items) {
2511
+
2512
+ </span>
2513
+ <span>
2514
+ result = items.map(
2515
+ </span>
2516
+ <span
2517
+ class="hljs-function"
2518
+ >
2519
+ (
2520
+ </span>
2521
+ <span
2522
+ class="hljs-function"
2523
+ style="color: rgb(208, 135, 112);"
2524
+ >
2525
+ { id, name, ...rest }
2526
+ </span>
2527
+ <span
2528
+ class="hljs-function"
2529
+ >
2530
+ ) =&gt;
2531
+ </span>
2532
+ <span>
2533
+ ({
2534
+
2535
+ </span>
2536
+ id,
2537
+
2538
+ <span>
2539
+
2540
+ </span>
2541
+ <span
2542
+ class="hljs-attr"
2543
+ >
2544
+ href
2545
+ </span>
2546
+ <span>
2547
+ :
2548
+ </span>
2549
+ <span
2550
+ style="color: rgb(163, 190, 140);"
2551
+ >
2552
+ '#url'
2553
+ </span>
2554
+ <span>
2555
+ ,
2556
+
2557
+ </span>
2558
+ <span>
2559
+
2560
+ </span>
2561
+ <span
2562
+ class="hljs-attr"
2563
+ >
2564
+ text
2565
+ </span>
2566
+ <span>
2567
+ : name,
2568
+
2569
+ </span>
2570
+ <span>
2571
+
2572
+ </span>
2573
+ <span
2574
+ class="hljs-attr"
2575
+ >
2576
+ isSelected
2577
+ </span>
2578
+ <span>
2579
+ : name === randomItem,
2580
+
2581
+ </span>
2582
+ ...rest,
2583
+
2584
+ }))
2585
+
2586
+ }
2587
+
2588
+
2589
+
2590
+ <span>
2591
+
2592
+ </span>
2593
+ <span
2594
+ style="color: rgb(180, 142, 173);"
2595
+ >
2596
+ return
2597
+ </span>
2598
+ <span>
2599
+ result
2600
+
2601
+ </span>
2602
+ }
2603
+
2604
+ </code>
2605
+ </pre>
2606
+ </div>
2607
+ `;
2608
+
2609
+ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
2610
+ <div>
2611
+ <pre
2612
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
2613
+ >
2614
+ <code
2615
+ class="language-typescript"
2616
+ style="white-space: pre;"
2617
+ >
2618
+ <span>
2619
+
2620
+
2621
+ </span>
2622
+ <span>
2623
+
2624
+ </span>
2625
+ <span
2626
+ style="color: rgb(180, 142, 173);"
2627
+ >
2628
+ export
2629
+ </span>
2630
+ <span>
2631
+
2632
+ </span>
2633
+ <span
2634
+ class="hljs-function"
2635
+ style="color: rgb(180, 142, 173);"
2636
+ >
2637
+ function
2638
+ </span>
2639
+ <span
2640
+ class="hljs-function"
2641
+ >
2642
+
2643
+ </span>
2644
+ <span
2645
+ class="hljs-function"
2646
+ style="color: rgb(143, 161, 179);"
2647
+ >
2648
+ getRandomItemFromArray
2649
+ </span>
2650
+ <span
2651
+ class="hljs-function"
2652
+ >
2653
+ &lt;
2654
+ </span>
2655
+ <span
2656
+ class="hljs-function"
2657
+ style="color: rgb(143, 161, 179);"
2658
+ >
2659
+ T
2660
+ </span>
2661
+ <span
2662
+ class="hljs-function"
2663
+ >
2664
+ &gt;(
2665
+ </span>
2666
+ <span
2667
+ class="hljs-function"
2668
+ style="color: rgb(208, 135, 112);"
2669
+ >
2670
+ array: T[]
2671
+ </span>
2672
+ <span
2673
+ class="hljs-function"
2674
+ >
2675
+ ):
2676
+ </span>
2677
+ <span
2678
+ class="hljs-function"
2679
+ style="color: rgb(143, 161, 179);"
2680
+ >
2681
+ T
2682
+ </span>
2683
+ <span
2684
+ class="hljs-function"
2685
+ >
2686
+
2687
+ </span>
2688
+ <span>
2689
+ {
2690
+
2691
+ </span>
2692
+ <span>
2693
+
2694
+ </span>
2695
+ <span
2696
+ style="color: rgb(180, 142, 173);"
2697
+ >
2698
+ return
2699
+ </span>
2700
+ <span>
2701
+ array?.[
2702
+ </span>
2703
+ <span
2704
+ style="color: rgb(208, 135, 112);"
2705
+ >
2706
+ Math
2707
+ </span>
2708
+ <span>
2709
+ .floor(
2710
+ </span>
2711
+ <span
2712
+ style="color: rgb(208, 135, 112);"
2713
+ >
2714
+ Math
2715
+ </span>
2716
+ <span>
2717
+ .random() * array?.length)]
2718
+
2719
+ </span>
2720
+ }
2721
+
2722
+
2723
+
2724
+ <span>
2725
+ describe(
2726
+ </span>
2727
+ <span
2728
+ style="color: rgb(163, 190, 140);"
2729
+ >
2730
+ 'getRandomItemFromArray()'
2731
+ </span>
2732
+ <span>
2733
+ ,
2734
+ </span>
2735
+ <span
2736
+ class="hljs-function"
2737
+ >
2738
+ () =&gt;
2739
+ </span>
2740
+ <span>
2741
+ {
2742
+
2743
+ </span>
2744
+ <span>
2745
+ beforeEach(
2746
+ </span>
2747
+ <span
2748
+ class="hljs-function"
2749
+ >
2750
+ () =&gt;
2751
+ </span>
2752
+ <span>
2753
+ {
2754
+
2755
+ </span>
2756
+ <span>
2757
+ jest.spyOn(
2758
+ </span>
2759
+ <span
2760
+ style="color: rgb(208, 135, 112);"
2761
+ >
2762
+ Math
2763
+ </span>
2764
+ <span>
2765
+ ,
2766
+ </span>
2767
+ <span
2768
+ style="color: rgb(163, 190, 140);"
2769
+ >
2770
+ 'random'
2771
+ </span>
2772
+ <span>
2773
+ ).mockImplementation(jest.fn(
2774
+ </span>
2775
+ <span
2776
+ class="hljs-function"
2777
+ >
2778
+ () =&gt;
2779
+ </span>
2780
+ <span>
2781
+
2782
+ </span>
2783
+ <span
2784
+ style="color: rgb(208, 135, 112);"
2785
+ >
2786
+ 3
2787
+ </span>
2788
+ <span>
2789
+ ))
2790
+
2791
+ </span>
2792
+ <span>
2793
+ jest.spyOn(
2794
+ </span>
2795
+ <span
2796
+ style="color: rgb(208, 135, 112);"
2797
+ >
2798
+ Math
2799
+ </span>
2800
+ <span>
2801
+ ,
2802
+ </span>
2803
+ <span
2804
+ style="color: rgb(163, 190, 140);"
2805
+ >
2806
+ 'floor'
2807
+ </span>
2808
+ <span>
2809
+ ).mockImplementation(jest.fn(
2810
+ </span>
2811
+ <span
2812
+ class="hljs-function"
2813
+ >
2814
+ () =&gt;
2815
+ </span>
2816
+ <span>
2817
+
2818
+ </span>
2819
+ <span
2820
+ style="color: rgb(208, 135, 112);"
2821
+ >
2822
+ 0
2823
+ </span>
2824
+ <span>
2825
+ ))
2826
+
2827
+ </span>
2828
+ })
2829
+
2830
+
2831
+
2832
+ <span>
2833
+ afterEach(
2834
+ </span>
2835
+ <span
2836
+ class="hljs-function"
2837
+ >
2838
+ () =&gt;
2839
+ </span>
2840
+ <span>
2841
+ jest.clearAllMocks())
2842
+
2843
+ </span>
2844
+
2845
+
2846
+ <span>
2847
+ test(
2848
+ </span>
2849
+ <span
2850
+ style="color: rgb(163, 190, 140);"
2851
+ >
2852
+ 'must return random item from array when array has items'
2853
+ </span>
2854
+ <span>
2855
+ ,
2856
+ </span>
2857
+ <span
2858
+ class="hljs-function"
2859
+ >
2860
+ () =&gt;
2861
+ </span>
2862
+ <span>
2863
+ {
2864
+
2865
+ </span>
2866
+ <span>
2867
+
2868
+ </span>
2869
+ <span
2870
+ style="color: rgb(180, 142, 173);"
2871
+ >
2872
+ const
2873
+ </span>
2874
+ <span>
2875
+ array = [{
2876
+ </span>
2877
+ <span
2878
+ class="hljs-attr"
2879
+ >
2880
+ fantasticKey1
2881
+ </span>
2882
+ <span>
2883
+ :
2884
+ </span>
2885
+ <span
2886
+ style="color: rgb(163, 190, 140);"
2887
+ >
2888
+ 'fantastic-value-1'
2889
+ </span>
2890
+ <span>
2891
+ }, {
2892
+ </span>
2893
+ <span
2894
+ class="hljs-attr"
2895
+ >
2896
+ fantasticKey2
2897
+ </span>
2898
+ <span>
2899
+ :
2900
+ </span>
2901
+ <span
2902
+ style="color: rgb(163, 190, 140);"
2903
+ >
2904
+ 'fantastic-value-2'
2905
+ </span>
2906
+ <span>
2907
+ }, {
2908
+ </span>
2909
+ <span
2910
+ class="hljs-attr"
2911
+ >
2912
+ fantasticKey3
2913
+ </span>
2914
+ <span>
2915
+ :
2916
+ </span>
2917
+ <span
2918
+ style="color: rgb(163, 190, 140);"
2919
+ >
2920
+ 'fantastic-value-3'
2921
+ </span>
2922
+ <span>
2923
+ }]
2924
+
2925
+ </span>
2926
+
2927
+
2928
+ <span>
2929
+ expect(getRandomItemFromArray(array)).toEqual(array[
2930
+ </span>
2931
+ <span
2932
+ style="color: rgb(208, 135, 112);"
2933
+ >
2934
+ 0
2935
+ </span>
2936
+ <span>
2937
+ ])
2938
+
2939
+ </span>
2940
+ })
2941
+
2942
+
2943
+
2944
+ <span>
2945
+ test(
2946
+ </span>
2947
+ <span
2948
+ style="color: rgb(163, 190, 140);"
2949
+ >
2950
+ 'must return undefined when array has no items'
2951
+ </span>
2952
+ <span>
2953
+ ,
2954
+ </span>
2955
+ <span
2956
+ class="hljs-function"
2957
+ >
2958
+ () =&gt;
2959
+ </span>
2960
+ <span>
2961
+ {
2962
+
2963
+ </span>
2964
+ <span>
2965
+
2966
+ </span>
2967
+ <span
2968
+ style="color: rgb(180, 142, 173);"
2969
+ >
2970
+ const
2971
+ </span>
2972
+ <span>
2973
+ array = []
2974
+
2975
+ </span>
2976
+
2977
+
2978
+ expect(getRandomItemFromArray(array)).toBeUndefined()
2979
+
2980
+ })
2981
+
2982
+ })
2983
+
2984
+ </code>
2985
+ </pre>
2986
+ </div>
2987
+ `;
2988
+
2989
+ exports[`<Array /> Render must match getSelectedItem() 1`] = `
2990
+ <div>
2991
+ <pre
2992
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
2993
+ >
2994
+ <code
2995
+ class="language-typescript"
2996
+ style="white-space: pre;"
2997
+ >
2998
+ <span>
2999
+
3000
+
3001
+ </span>
3002
+ <span>
3003
+
3004
+ </span>
3005
+ <span
3006
+ style="color: rgb(180, 142, 173);"
3007
+ >
3008
+ export
3009
+ </span>
3010
+ <span>
3011
+
3012
+ </span>
3013
+ <span
3014
+ class="hljs-function"
3015
+ style="color: rgb(180, 142, 173);"
3016
+ >
3017
+ function
3018
+ </span>
3019
+ <span
3020
+ class="hljs-function"
3021
+ >
3022
+
3023
+ </span>
3024
+ <span
3025
+ class="hljs-function"
3026
+ style="color: rgb(143, 161, 179);"
3027
+ >
3028
+ getSelectedItem
3029
+ </span>
3030
+ <span
3031
+ class="hljs-function"
3032
+ >
3033
+ &lt;
3034
+ </span>
3035
+ <span
3036
+ class="hljs-function"
3037
+ style="color: rgb(143, 161, 179);"
3038
+ >
3039
+ T
3040
+ </span>
3041
+ <span
3042
+ class="hljs-function"
3043
+ >
3044
+
3045
+ </span>
3046
+ <span
3047
+ class="hljs-function"
3048
+ style="color: rgb(143, 161, 179);"
3049
+ >
3050
+ extends
3051
+ </span>
3052
+ <span
3053
+ class="hljs-function"
3054
+ >
3055
+
3056
+ </span>
3057
+ <span
3058
+ class="hljs-function"
3059
+ style="color: rgb(143, 161, 179);"
3060
+ >
3061
+ ISelectable
3062
+ </span>
3063
+ <span
3064
+ class="hljs-function"
3065
+ >
3066
+ &gt;(
3067
+ </span>
3068
+ <span
3069
+ class="hljs-function"
3070
+ style="color: rgb(208, 135, 112);"
3071
+ >
3072
+ { items }: { items: T[] }
3073
+ </span>
3074
+ <span
3075
+ class="hljs-function"
3076
+ >
3077
+ ):
3078
+ </span>
3079
+ <span
3080
+ class="hljs-function"
3081
+ style="color: rgb(143, 161, 179);"
3082
+ >
3083
+ T
3084
+ </span>
3085
+ <span
3086
+ class="hljs-function"
3087
+ >
3088
+
3089
+ </span>
3090
+ <span>
3091
+ {
3092
+
3093
+ </span>
3094
+ <span>
3095
+
3096
+ </span>
3097
+ <span
3098
+ style="color: rgb(180, 142, 173);"
3099
+ >
3100
+ return
3101
+ </span>
3102
+ <span>
3103
+ items?.find(
3104
+ </span>
3105
+ <span
3106
+ class="hljs-function"
3107
+ >
3108
+ (
3109
+ </span>
3110
+ <span
3111
+ class="hljs-function"
3112
+ style="color: rgb(208, 135, 112);"
3113
+ >
3114
+ { isSelected }
3115
+ </span>
3116
+ <span
3117
+ class="hljs-function"
3118
+ >
3119
+ ) =&gt;
3120
+ </span>
3121
+ <span>
3122
+ isSelected ===
3123
+ </span>
3124
+ <span
3125
+ style="color: rgb(208, 135, 112);"
3126
+ >
3127
+ true
3128
+ </span>
3129
+ <span>
3130
+ )
3131
+
3132
+ </span>
3133
+ }
3134
+
3135
+
3136
+
3137
+ <span>
3138
+ describe(
3139
+ </span>
3140
+ <span
3141
+ style="color: rgb(163, 190, 140);"
3142
+ >
3143
+ 'getSelectedItem()'
3144
+ </span>
3145
+ <span>
3146
+ ,
3147
+ </span>
3148
+ <span
3149
+ class="hljs-function"
3150
+ >
3151
+ () =&gt;
3152
+ </span>
3153
+ <span>
3154
+ {
3155
+
3156
+ </span>
3157
+ <span>
3158
+
3159
+ </span>
3160
+ <span
3161
+ style="color: rgb(180, 142, 173);"
3162
+ >
3163
+ const
3164
+ </span>
3165
+ <span>
3166
+ items = [
3167
+
3168
+ </span>
3169
+ <span>
3170
+ {
3171
+ </span>
3172
+ <span
3173
+ class="hljs-attr"
3174
+ >
3175
+ fantasticKey1
3176
+ </span>
3177
+ <span>
3178
+ :
3179
+ </span>
3180
+ <span
3181
+ style="color: rgb(163, 190, 140);"
3182
+ >
3183
+ 'fantastic-value-1'
3184
+ </span>
3185
+ <span>
3186
+ ,
3187
+ </span>
3188
+ <span
3189
+ class="hljs-attr"
3190
+ >
3191
+ isSelected
3192
+ </span>
3193
+ <span>
3194
+ :
3195
+ </span>
3196
+ <span
3197
+ style="color: rgb(208, 135, 112);"
3198
+ >
3199
+ true
3200
+ </span>
3201
+ <span>
3202
+ },
3203
+
3204
+ </span>
3205
+ <span>
3206
+ {
3207
+ </span>
3208
+ <span
3209
+ class="hljs-attr"
3210
+ >
3211
+ fantasticKey2
3212
+ </span>
3213
+ <span>
3214
+ :
3215
+ </span>
3216
+ <span
3217
+ style="color: rgb(163, 190, 140);"
3218
+ >
3219
+ 'fantastic-value-2'
3220
+ </span>
3221
+ <span>
3222
+ ,
3223
+ </span>
3224
+ <span
3225
+ class="hljs-attr"
3226
+ >
3227
+ isSelected
3228
+ </span>
3229
+ <span>
3230
+ :
3231
+ </span>
3232
+ <span
3233
+ style="color: rgb(208, 135, 112);"
3234
+ >
3235
+ false
3236
+ </span>
3237
+ <span>
3238
+ },
3239
+
3240
+ </span>
3241
+ <span>
3242
+ {
3243
+ </span>
3244
+ <span
3245
+ class="hljs-attr"
3246
+ >
3247
+ fantasticKey3
3248
+ </span>
3249
+ <span>
3250
+ :
3251
+ </span>
3252
+ <span
3253
+ style="color: rgb(163, 190, 140);"
3254
+ >
3255
+ 'fantastic-value-3'
3256
+ </span>
3257
+ <span>
3258
+ ,
3259
+ </span>
3260
+ <span
3261
+ class="hljs-attr"
3262
+ >
3263
+ isSelected
3264
+ </span>
3265
+ <span>
3266
+ :
3267
+ </span>
3268
+ <span
3269
+ style="color: rgb(208, 135, 112);"
3270
+ >
3271
+ false
3272
+ </span>
3273
+ <span>
3274
+ },
3275
+
3276
+ </span>
3277
+ ]
3278
+
3279
+
3280
+
3281
+ <span>
3282
+ test(
3283
+ </span>
3284
+ <span
3285
+ style="color: rgb(163, 190, 140);"
3286
+ >
3287
+ 'must return undefined when array has no items'
3288
+ </span>
3289
+ <span>
3290
+ ,
3291
+ </span>
3292
+ <span
3293
+ class="hljs-function"
3294
+ >
3295
+ () =&gt;
3296
+ </span>
3297
+ <span>
3298
+ {
3299
+
3300
+ </span>
3301
+ <span>
3302
+ expect(getSelectedItem({ items })).toBe(items[
3303
+ </span>
3304
+ <span
3305
+ style="color: rgb(208, 135, 112);"
3306
+ >
3307
+ 0
3308
+ </span>
3309
+ <span>
3310
+ ])
3311
+
3312
+ </span>
3313
+ })
3314
+
3315
+ })
3316
+
3317
+ </code>
3318
+ </pre>
3319
+ </div>
3320
+ `;
3321
+
3322
+ exports[`<Array /> Render must match getSelectedItemText() 1`] = `
3323
+ <div>
3324
+ <pre
3325
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
3326
+ >
3327
+ <code
3328
+ class="language-typescript"
3329
+ style="white-space: pre;"
3330
+ >
3331
+ <span>
3332
+
3333
+
3334
+ </span>
3335
+ <span>
3336
+
3337
+ </span>
3338
+ <span
3339
+ style="color: rgb(180, 142, 173);"
3340
+ >
3341
+ export
3342
+ </span>
3343
+ <span>
3344
+
3345
+ </span>
3346
+ <span
3347
+ class="hljs-function"
3348
+ style="color: rgb(180, 142, 173);"
3349
+ >
3350
+ function
3351
+ </span>
3352
+ <span
3353
+ class="hljs-function"
3354
+ >
3355
+
3356
+ </span>
3357
+ <span
3358
+ class="hljs-function"
3359
+ style="color: rgb(143, 161, 179);"
3360
+ >
3361
+ getSelectedItemText
3362
+ </span>
3363
+ <span
3364
+ class="hljs-function"
3365
+ >
3366
+ (
3367
+ </span>
3368
+ <span
3369
+ class="hljs-function"
3370
+ style="color: rgb(208, 135, 112);"
3371
+ >
3372
+ { items }
3373
+ </span>
3374
+ <span
3375
+ class="hljs-function"
3376
+ >
3377
+ )
3378
+ </span>
3379
+ <span>
3380
+ {
3381
+
3382
+ </span>
3383
+ <span>
3384
+
3385
+ </span>
3386
+ <span
3387
+ style="color: rgb(180, 142, 173);"
3388
+ >
3389
+ return
3390
+ </span>
3391
+ <span>
3392
+ items?.find(
3393
+ </span>
3394
+ <span
3395
+ class="hljs-function"
3396
+ >
3397
+ (
3398
+ </span>
3399
+ <span
3400
+ class="hljs-function"
3401
+ style="color: rgb(208, 135, 112);"
3402
+ >
3403
+ { isSelected }
3404
+ </span>
3405
+ <span
3406
+ class="hljs-function"
3407
+ >
3408
+ ) =&gt;
3409
+ </span>
3410
+ <span>
3411
+ isSelected ===
3412
+ </span>
3413
+ <span
3414
+ style="color: rgb(208, 135, 112);"
3415
+ >
3416
+ true
3417
+ </span>
3418
+ <span>
3419
+ )?.text
3420
+
3421
+ </span>
3422
+ }
3423
+
3424
+
3425
+
3426
+ <span>
3427
+ describe(
3428
+ </span>
3429
+ <span
3430
+ style="color: rgb(163, 190, 140);"
3431
+ >
3432
+ 'getSelectedItemText()'
3433
+ </span>
3434
+ <span>
3435
+ ,
3436
+ </span>
3437
+ <span
2129
3438
  class="hljs-function"
2130
3439
  >
2131
3440
  () =&gt;
@@ -2135,7 +3444,7 @@ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
2135
3444
 
2136
3445
  </span>
2137
3446
  <span>
2138
-
3447
+
2139
3448
  </span>
2140
3449
  <span
2141
3450
  style="color: rgb(180, 142, 173);"
@@ -2143,13 +3452,153 @@ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
2143
3452
  const
2144
3453
  </span>
2145
3454
  <span>
2146
- array = []
3455
+ items = [
3456
+
3457
+ </span>
3458
+ <span>
3459
+ {
3460
+ </span>
3461
+ <span
3462
+ class="hljs-attr"
3463
+ >
3464
+ text
3465
+ </span>
3466
+ <span>
3467
+ :
3468
+ </span>
3469
+ <span
3470
+ style="color: rgb(163, 190, 140);"
3471
+ >
3472
+ 'fantastic-text-1'
3473
+ </span>
3474
+ <span>
3475
+ ,
3476
+ </span>
3477
+ <span
3478
+ class="hljs-attr"
3479
+ >
3480
+ isSelected
3481
+ </span>
3482
+ <span>
3483
+ :
3484
+ </span>
3485
+ <span
3486
+ style="color: rgb(208, 135, 112);"
3487
+ >
3488
+ true
3489
+ </span>
3490
+ <span>
3491
+ },
3492
+
3493
+ </span>
3494
+ <span>
3495
+ {
3496
+ </span>
3497
+ <span
3498
+ class="hljs-attr"
3499
+ >
3500
+ text
3501
+ </span>
3502
+ <span>
3503
+ :
3504
+ </span>
3505
+ <span
3506
+ style="color: rgb(163, 190, 140);"
3507
+ >
3508
+ 'fantastic-text-2'
3509
+ </span>
3510
+ <span>
3511
+ ,
3512
+ </span>
3513
+ <span
3514
+ class="hljs-attr"
3515
+ >
3516
+ isSelected
3517
+ </span>
3518
+ <span>
3519
+ :
3520
+ </span>
3521
+ <span
3522
+ style="color: rgb(208, 135, 112);"
3523
+ >
3524
+ false
3525
+ </span>
3526
+ <span>
3527
+ },
3528
+
3529
+ </span>
3530
+ <span>
3531
+ {
3532
+ </span>
3533
+ <span
3534
+ class="hljs-attr"
3535
+ >
3536
+ text
3537
+ </span>
3538
+ <span>
3539
+ :
3540
+ </span>
3541
+ <span
3542
+ style="color: rgb(163, 190, 140);"
3543
+ >
3544
+ 'fantastic-text-3'
3545
+ </span>
3546
+ <span>
3547
+ ,
3548
+ </span>
3549
+ <span
3550
+ class="hljs-attr"
3551
+ >
3552
+ isSelected
3553
+ </span>
3554
+ <span>
3555
+ :
3556
+ </span>
3557
+ <span
3558
+ style="color: rgb(208, 135, 112);"
3559
+ >
3560
+ false
3561
+ </span>
3562
+ <span>
3563
+ },
2147
3564
 
2148
3565
  </span>
3566
+ ]
3567
+
2149
3568
 
2150
3569
 
2151
- expect(getRandomItemFromArray(array)).toBeUndefined()
3570
+ <span>
3571
+ test(
3572
+ </span>
3573
+ <span
3574
+ style="color: rgb(163, 190, 140);"
3575
+ >
3576
+ 'must return undefined when array has no items'
3577
+ </span>
3578
+ <span>
3579
+ ,
3580
+ </span>
3581
+ <span
3582
+ class="hljs-function"
3583
+ >
3584
+ () =&gt;
3585
+ </span>
3586
+ <span>
3587
+ {
3588
+
3589
+ </span>
3590
+ <span>
3591
+ expect(getSelectedItemText({ items })).toBe(items[
3592
+ </span>
3593
+ <span
3594
+ style="color: rgb(208, 135, 112);"
3595
+ >
3596
+ 0
3597
+ </span>
3598
+ <span>
3599
+ ].text)
2152
3600
 
3601
+ </span>
2153
3602
  })
2154
3603
 
2155
3604
  })