@k-int/stripes-kint-components 1.7.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/es/index.js +51 -8
  3. package/es/lib/ActionList/ActionList.js +48 -28
  4. package/es/lib/ActionList/ActionListFieldArray.js +56 -16
  5. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.js +198 -0
  6. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +326 -0
  7. package/es/lib/CustomProperties/Config/CustomPropertiesView.js +166 -0
  8. package/es/lib/CustomProperties/Config/CustomPropertyForm.js +360 -0
  9. package/es/lib/CustomProperties/Config/index.js +41 -0
  10. package/es/lib/EditableRefdataList/EditableRefdataList.js +0 -1
  11. package/es/lib/FormModal/FormModal.js +126 -0
  12. package/es/lib/{TypeDown → FormModal}/index.js +2 -2
  13. package/es/lib/NoResultsMessage/NoResultsMessage.js +1 -1
  14. package/es/lib/SASQRoute/SASQRoute.js +15 -11
  15. package/es/lib/SASQViewComponent/SASQViewComponent.js +6 -3
  16. package/es/lib/Typedown/Typedown.js +50 -18
  17. package/es/lib/constants/customProperties.js +60 -0
  18. package/es/lib/hooks/index.js +16 -0
  19. package/es/lib/hooks/useCustomProperties.js +122 -0
  20. package/es/lib/hooks/useMutateCustomProperties.js +143 -0
  21. package/es/lib/utils/generateKiwtQueryParams.js +51 -8
  22. package/junit.xml +40 -40
  23. package/package.json +5 -3
  24. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionList.js.html +47 -26
  25. package/src/artifacts/coverage-jest/lcov-report/ActionList/ActionListFieldArray.js.html +122 -8
  26. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.html +10 -10
  27. package/src/artifacts/coverage-jest/lcov-report/ActionList/index.js.html +1 -1
  28. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesLookup.js.html +418 -0
  29. package/src/artifacts/coverage-jest/lcov-report/{TypeDown/TypeDown.js.html → CustomProperties/Config/CustomPropertiesSettings.js.html} +268 -232
  30. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertiesView.js.html +535 -0
  31. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/CustomPropertyForm.js.html +973 -0
  32. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.html +176 -0
  33. package/src/artifacts/coverage-jest/lcov-report/CustomProperties/Config/index.js.html +97 -0
  34. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/EditableRefdataList.js.html +2 -5
  35. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.html +1 -1
  36. package/src/artifacts/coverage-jest/lcov-report/EditableRefdataList/index.js.html +1 -1
  37. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsList.js.html +1 -1
  38. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/EditableSettingsListFieldArray.js.html +1 -1
  39. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/EditSettingValue.js.html +1 -1
  40. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/RenderSettingValue.js.html +1 -1
  41. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/SettingField.js.html +1 -1
  42. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.html +1 -1
  43. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/SettingField/index.js.html +1 -1
  44. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.html +1 -1
  45. package/src/artifacts/coverage-jest/lcov-report/EditableSettingsList/index.js.html +1 -1
  46. package/src/artifacts/coverage-jest/lcov-report/FormModal/FormModal.js.html +298 -0
  47. package/src/artifacts/coverage-jest/lcov-report/{TypeDown → FormModal}/index.html +14 -14
  48. package/src/artifacts/coverage-jest/lcov-report/{TypeDown → FormModal}/index.js.html +4 -4
  49. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/NoResultsMessage.js.html +3 -3
  50. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.html +1 -1
  51. package/src/artifacts/coverage-jest/lcov-report/NoResultsMessage/index.js.html +1 -1
  52. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/QueryTypedown.js.html +1 -1
  53. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.html +1 -1
  54. package/src/artifacts/coverage-jest/lcov-report/QueryTypedown/index.js.html +1 -1
  55. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/RefdataButtons.js.html +3 -3
  56. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.html +1 -1
  57. package/src/artifacts/coverage-jest/lcov-report/RefdataButtons/index.js.html +1 -1
  58. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/SASQLookupComponent.js.html +1 -1
  59. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.html +1 -1
  60. package/src/artifacts/coverage-jest/lcov-report/SASQLookupComponent/index.js.html +1 -1
  61. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/SASQRoute.js.html +43 -16
  62. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.html +1 -1
  63. package/src/artifacts/coverage-jest/lcov-report/SASQRoute/index.js.html +1 -1
  64. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/SASQViewComponent.js.html +6 -3
  65. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.html +1 -1
  66. package/src/artifacts/coverage-jest/lcov-report/SASQViewComponent/index.js.html +1 -1
  67. package/src/artifacts/coverage-jest/lcov-report/SearchField/SearchField.js.html +1 -1
  68. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.html +1 -1
  69. package/src/artifacts/coverage-jest/lcov-report/SearchField/index.js.html +1 -1
  70. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPage.js.html +1 -1
  71. package/src/artifacts/coverage-jest/lcov-report/SettingPage/SettingPagePane.js.html +1 -1
  72. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.html +1 -1
  73. package/src/artifacts/coverage-jest/lcov-report/SettingPage/index.js.html +1 -1
  74. package/src/artifacts/coverage-jest/lcov-report/Typedown/Typedown.js.html +150 -21
  75. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.html +7 -7
  76. package/src/artifacts/coverage-jest/lcov-report/Typedown/index.js.html +1 -1
  77. package/src/artifacts/coverage-jest/lcov-report/constants/customProperties.js.html +112 -0
  78. package/src/artifacts/coverage-jest/lcov-report/constants/eventCodes.js.html +1 -1
  79. package/src/artifacts/coverage-jest/lcov-report/constants/index.html +18 -3
  80. package/src/artifacts/coverage-jest/lcov-report/contexts/SettingsContext.js.html +1 -1
  81. package/src/artifacts/coverage-jest/lcov-report/contexts/index.html +1 -1
  82. package/src/artifacts/coverage-jest/lcov-report/contexts/index.js.html +1 -1
  83. package/src/artifacts/coverage-jest/lcov-report/hooks/index.html +35 -5
  84. package/src/artifacts/coverage-jest/lcov-report/hooks/index.js.html +8 -2
  85. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/index.html +1 -1
  86. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/index.js.html +1 -1
  87. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useSettingSection.js.html +1 -1
  88. package/src/artifacts/coverage-jest/lcov-report/hooks/settingsHooks/useSettings.js.html +1 -1
  89. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.html +1 -1
  90. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/index.js.html +1 -1
  91. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedown.js.html +1 -1
  92. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownData.js.html +1 -1
  93. package/src/artifacts/coverage-jest/lcov-report/hooks/typedownHooks/useTypedownToggle.js.html +1 -1
  94. package/src/artifacts/coverage-jest/lcov-report/hooks/useActiveElement.js.html +1 -1
  95. package/src/artifacts/coverage-jest/lcov-report/hooks/useCustomProperties.js.html +313 -0
  96. package/src/artifacts/coverage-jest/lcov-report/hooks/useHelperApp.js.html +1 -1
  97. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtFieldArray.js.html +1 -1
  98. package/src/artifacts/coverage-jest/lcov-report/hooks/useKiwtSASQuery.js.html +1 -1
  99. package/src/artifacts/coverage-jest/lcov-report/hooks/useLocalStorageState.js.html +1 -1
  100. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateCustomProperties.js.html +271 -0
  101. package/src/artifacts/coverage-jest/lcov-report/hooks/useMutateRefdataValue.js.html +1 -1
  102. package/src/artifacts/coverage-jest/lcov-report/hooks/useQIndex.js.html +1 -1
  103. package/src/artifacts/coverage-jest/lcov-report/hooks/useRefdata.js.html +1 -1
  104. package/src/artifacts/coverage-jest/lcov-report/hooks/useTemplates.js.html +1 -1
  105. package/src/artifacts/coverage-jest/lcov-report/index.html +62 -47
  106. package/src/artifacts/coverage-jest/lcov-report/utils/buildUrl.js.html +1 -1
  107. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQuery.js.html +1 -1
  108. package/src/artifacts/coverage-jest/lcov-report/utils/generateKiwtQueryParams.js.html +174 -12
  109. package/src/artifacts/coverage-jest/lcov-report/utils/index.html +17 -17
  110. package/src/artifacts/coverage-jest/lcov-report/utils/index.js.html +1 -1
  111. package/src/artifacts/coverage-jest/lcov-report/utils/refdataOptions.js.html +1 -1
  112. package/src/artifacts/coverage-jest/lcov-report/utils/renderHelpText.js.html +1 -1
  113. package/src/artifacts/coverage-jest/lcov-report/utils/selectorSafe.js.html +1 -1
  114. package/src/artifacts/coverage-jest/lcov-report/utils/sortByLabel.js.html +1 -1
  115. package/src/artifacts/coverage-jest/lcov-report/utils/toCamelCase.js.html +1 -1
  116. package/src/artifacts/coverage-jest/lcov.info +841 -348
  117. package/src/index.js +14 -4
  118. package/src/lib/ActionList/ActionList.js +30 -23
  119. package/src/lib/ActionList/ActionListFieldArray.js +40 -2
  120. package/src/lib/ActionList/README.md +4 -1
  121. package/src/lib/CustomProperties/Config/CustomPropertiesLookup.js +111 -0
  122. package/src/lib/CustomProperties/Config/CustomPropertiesSettings.js +240 -0
  123. package/src/lib/CustomProperties/Config/CustomPropertiesView.js +150 -0
  124. package/src/lib/CustomProperties/Config/CustomPropertyForm.js +296 -0
  125. package/src/lib/CustomProperties/Config/index.js +4 -0
  126. package/src/lib/EditableRefdataList/EditableRefdataList.js +0 -1
  127. package/src/lib/FormModal/FormModal.js +71 -0
  128. package/src/lib/FormModal/index.js +1 -0
  129. package/src/lib/NoResultsMessage/NoResultsMessage.js +2 -2
  130. package/src/lib/SASQRoute/SASQRoute.js +23 -14
  131. package/src/lib/SASQViewComponent/SASQViewComponent.js +2 -1
  132. package/src/lib/Typedown/Typedown.js +56 -13
  133. package/src/lib/constants/customProperties.js +9 -0
  134. package/src/lib/hooks/index.js +2 -0
  135. package/src/lib/hooks/useCustomProperties.js +76 -0
  136. package/src/lib/hooks/useMutateCustomProperties.js +62 -0
  137. package/src/lib/utils/generateKiwtQueryParams.js +58 -4
  138. package/styles/TypeDown.css +7 -0
  139. package/translations/stripes-kint-components/en.json +49 -1
  140. package/es/lib/TypeDown/TypeDown.js +0 -251
  141. package/src/lib/TypeDown/README.md +0 -1
  142. package/src/lib/TypeDown/TypeDown.js +0 -228
  143. package/src/lib/TypeDown/index.js +0 -1
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/35</span>
28
+ <span class='fraction'>0/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/22</span>
35
+ <span class='fraction'>0/32</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/33</span>
49
+ <span class='fraction'>0/39</span>
50
50
  </div>
51
51
 
52
52
 
@@ -298,7 +298,50 @@
298
298
  <a name='L233'></a><a href='#L233'>233</a>
299
299
  <a name='L234'></a><a href='#L234'>234</a>
300
300
  <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
302
345
  <span class="cline-any cline-neutral">&nbsp;</span>
303
346
  <span class="cline-any cline-neutral">&nbsp;</span>
304
347
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -312,10 +355,13 @@
312
355
  <span class="cline-any cline-neutral">&nbsp;</span>
313
356
  <span class="cline-any cline-neutral">&nbsp;</span>
314
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
362
  <span class="cline-any cline-neutral">&nbsp;</span>
316
363
  <span class="cline-any cline-neutral">&nbsp;</span>
317
364
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
319
365
  <span class="cline-any cline-neutral">&nbsp;</span>
320
366
  <span class="cline-any cline-neutral">&nbsp;</span>
321
367
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -330,6 +376,11 @@
330
376
  <span class="cline-any cline-neutral">&nbsp;</span>
331
377
  <span class="cline-any cline-neutral">&nbsp;</span>
332
378
  <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
384
  <span class="cline-any cline-no">&nbsp;</span>
334
385
  <span class="cline-any cline-no">&nbsp;</span>
335
386
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -347,6 +398,14 @@
347
398
  <span class="cline-any cline-no">&nbsp;</span>
348
399
  <span class="cline-any cline-neutral">&nbsp;</span>
349
400
  <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-no">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
409
  <span class="cline-any cline-neutral">&nbsp;</span>
351
410
  <span class="cline-any cline-neutral">&nbsp;</span>
352
411
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -412,7 +471,6 @@
412
471
  <span class="cline-any cline-neutral">&nbsp;</span>
413
472
  <span class="cline-any cline-neutral">&nbsp;</span>
414
473
  <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
474
  <span class="cline-any cline-no">&nbsp;</span>
417
475
  <span class="cline-any cline-no">&nbsp;</span>
418
476
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -452,6 +510,9 @@
452
510
  <span class="cline-any cline-neutral">&nbsp;</span>
453
511
  <span class="cline-any cline-neutral">&nbsp;</span>
454
512
  <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
516
  <span class="cline-any cline-no">&nbsp;</span>
456
517
  <span class="cline-any cline-no">&nbsp;</span>
457
518
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -490,7 +551,6 @@
490
551
  <span class="cline-any cline-neutral">&nbsp;</span>
491
552
  <span class="cline-any cline-neutral">&nbsp;</span>
492
553
  <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
554
  <span class="cline-any cline-neutral">&nbsp;</span>
495
555
  <span class="cline-any cline-neutral">&nbsp;</span>
496
556
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -504,6 +564,19 @@
504
564
  <span class="cline-any cline-neutral">&nbsp;</span>
505
565
  <span class="cline-any cline-neutral">&nbsp;</span>
506
566
  <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-no">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
580
  <span class="cline-any cline-neutral">&nbsp;</span>
508
581
  <span class="cline-any cline-neutral">&nbsp;</span>
509
582
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -533,16 +606,26 @@
533
606
  <span class="cline-any cline-neutral">&nbsp;</span>
534
607
  <span class="cline-any cline-neutral">&nbsp;</span>
535
608
  <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
622
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useCallback, useEffect, useState } from 'react';
537
623
  import PropTypes from 'prop-types';
538
624
  import classnames from 'classnames';
539
625
  &nbsp;
540
626
  import get from 'lodash/get';
541
627
  &nbsp;
542
- import { EndOfList, IconButton, Popper } from '@folio/stripes/components';
543
- &nbsp;
544
- // eslint-disable-next-line import/no-extraneous-dependencies
545
- import { interactionStyles } from '@folio/stripes-components/lib/sharedStyles/interactionStyles.css';
628
+ import { EndOfList, IconButton, Label, Popper } from '@folio/stripes/components';
546
629
  &nbsp;
547
630
  import SearchField from '../SearchField';
548
631
  import css from '../../../styles/TypeDown.css';
@@ -551,20 +634,31 @@ import { useTypedown } from '../hooks/typedownHooks';
551
634
  import selectorSafe from '../utils/selectorSafe';
552
635
  &nbsp;
553
636
  const Typedown = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >({</span></span>
637
+ className,
554
638
  dataOptions,
639
+ endOfList,
640
+ id,
555
641
  input,
642
+ isSelected,
556
643
  filterPath,
644
+ label,
557
645
  meta,
558
646
  onChange,
559
647
  onType,
560
648
  renderFooter = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
561
649
  renderListItem = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
650
+ required,
562
651
  uniqueIdentificationPath = <span class="branch-0 cbranch-no" title="branch not covered" >'id'</span>
563
652
  }) =&gt; {
564
653
  const selectedUniqueId = <span class="cstat-no" title="statement not covered" >get(input.value, uniqueIdentificationPath);</span>
565
654
  &nbsp;
566
655
  // Display data needs to be in line with data options but also able to react to default handleType
567
656
  const [displayData, setDisplayData] = <span class="cstat-no" title="statement not covered" >useState(dataOptions);</span>
657
+ &nbsp;
658
+ // keep track of what we've typed and whether we've typed an exact match or not
659
+ const [currentlyTyped, setCurrentlyTyped] = <span class="cstat-no" title="statement not covered" >useState('');</span>
660
+ const [exactMatch, setExactMatch] = <span class="cstat-no" title="statement not covered" >useState(false);</span>
661
+ &nbsp;
568
662
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
569
663
  <span class="cstat-no" title="statement not covered" > setDisplayData(dataOptions);</span>
570
664
  }, [dataOptions]);
@@ -581,6 +675,14 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
581
675
  } else {
582
676
  <span class="cstat-no" title="statement not covered" > setDisplayData(dataOptions);</span>
583
677
  }
678
+ &nbsp;
679
+ <span class="cstat-no" title="statement not covered" > setCurrentlyTyped(e.target.value);</span>
680
+ &nbsp;
681
+ <span class="cstat-no" title="statement not covered" > if (displayData.length === 1 &amp;&amp; get(displayData[0], filterPath) === e.target.value) {</span>
682
+ <span class="cstat-no" title="statement not covered" > setExactMatch(true);</span>
683
+ } else {
684
+ <span class="cstat-no" title="statement not covered" > setExactMatch(false);</span>
685
+ }
584
686
  };
585
687
  &nbsp;
586
688
  // Hook to set up all the essentials
@@ -609,11 +711,11 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
609
711
  className={css.listItem}
610
712
  &gt;
611
713
  {renderListItem ?
612
- renderListItem(option) :
714
+ renderListItem(option, currentlyTyped, exactMatch) :
613
715
  get(option, uniqueIdentificationPath)
614
716
  }
615
717
  &lt;/div&gt;
616
- ), [renderListItem, uniqueIdentificationPath]);
718
+ ), [currentlyTyped, exactMatch, renderListItem, uniqueIdentificationPath]);
617
719
  &nbsp;
618
720
  const handleChange = <span class="cstat-no" title="statement not covered" >useCallback(<span class="fstat-no" title="function not covered" >va</span>lue =&gt; {</span>
619
721
  <span class="cstat-no" title="statement not covered" > input.onChange(value);</span>
@@ -636,16 +738,15 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
636
738
  id="typedown-list"
637
739
  &gt;
638
740
  {displayData?.length ? displayData?.map(<span class="fstat-no" title="function not covered" >(d</span>, index) =&gt; {
639
- const isSelected = <span class="cstat-no" title="statement not covered" >get(input.value, uniqueIdentificationPath) === get(d, uniqueIdentificationPath);</span>
741
+ const isSelectedEval = <span class="cstat-no" title="statement not covered" >isSelected ? isSelected(input.value, d) : get(input.value, uniqueIdentificationPath) === get(d, uniqueIdentificationPath);</span>
640
742
  <span class="cstat-no" title="statement not covered" > return (</span>
641
743
  &lt;button
642
744
  key={`typedown-button-[${index}]`}
643
745
  className={classnames(
644
- interactionStyles,
645
746
  css.fullWidth,
646
747
  css.menuButton
647
748
  )}
648
- data-selected={isSelected}
749
+ data-selected={isSelectedEval}
649
750
  id={`typedown-button-[${index}]`}
650
751
  onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
651
752
  <span class="cstat-no" title="statement not covered" > handleChange(d);</span>
@@ -658,8 +759,7 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
658
759
  &lt;/button&gt;
659
760
  );
660
761
  }) :
661
- // TODO test this
662
- &lt;EndOfList /&gt;
762
+ endOfList || &lt;EndOfList /&gt;
663
763
  }
664
764
  &lt;/div&gt;
665
765
  {renderFooter &amp;&amp;
@@ -668,17 +768,21 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
668
768
  className={css.footer}
669
769
  id={`typedown-footer-${selectorSafe(input.name)}`}
670
770
  &gt;
671
- {renderFooter()}
771
+ {renderFooter(displayData, currentlyTyped, exactMatch)}
672
772
  &lt;/div&gt;
673
773
  }
674
774
  &lt;/div&gt;
675
775
  );
676
776
  }, [
777
+ currentlyTyped,
677
778
  displayData,
779
+ endOfList,
780
+ exactMatch,
678
781
  footerRef,
679
782
  handleChange,
680
783
  handleNextFocus,
681
784
  input,
785
+ isSelected,
682
786
  listKeyDownHandler,
683
787
  listRef,
684
788
  renderFooter,
@@ -708,7 +812,20 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
708
812
  <span class="cstat-no" title="statement not covered" > return (</span>
709
813
  &lt;div
710
814
  ref={resizeRef}
815
+ className={classnames(
816
+ css.typedown,
817
+ className
818
+ )}
711
819
  &gt;
820
+ {label &amp;&amp;
821
+ &lt;Label
822
+ htmlFor={id}
823
+ id={`${id}-label`}
824
+ required={required}
825
+ &gt;
826
+ {label}
827
+ &lt;/Label&gt;
828
+ }
712
829
  {renderSearchField()}
713
830
  &lt;Popper
714
831
  key="typedown-menu-toggle"
@@ -735,7 +852,6 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
735
852
  {selectedUniqueId &amp;&amp; !open &amp;&amp;
736
853
  &lt;div
737
854
  className={classnames(
738
- css.selected,
739
855
  css.selectedDisplay
740
856
  )}
741
857
  &gt;
@@ -756,14 +872,27 @@ const Typedown = <span class="cstat-no" title="statement not covered" ><span cla
756
872
  };
757
873
  &nbsp;
758
874
  <span class="cstat-no" title="statement not covered" >Typedown.propTypes = {</span>
875
+ className: PropTypes.string,
759
876
  dataOptions: PropTypes.arrayOf(PropTypes.object),
877
+ endOfList: PropTypes.oneOfType([
878
+ PropTypes.func,
879
+ PropTypes.node,
880
+ PropTypes.element
881
+ ]),
760
882
  filterPath: PropTypes.string,
883
+ id: PropTypes.string,
761
884
  input: PropTypes.object,
885
+ isSelected: PropTypes.func,
886
+ label: PropTypes.oneOfType([
887
+ PropTypes.string,
888
+ PropTypes.element
889
+ ]),
762
890
  meta: PropTypes.object,
763
891
  onChange: PropTypes.func,
764
892
  onType: PropTypes.func,
765
893
  renderFooter: PropTypes.func,
766
894
  renderListItem: PropTypes.func,
895
+ required: PropTypes.bool,
767
896
  uniqueIdentificationPath: PropTypes.string
768
897
  };
769
898
  &nbsp;
@@ -775,7 +904,7 @@ export default Typedown;
775
904
  <div class='footer quiet pad2 space-top1 center small'>
776
905
  Code coverage generated by
777
906
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
778
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
907
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
779
908
  </div>
780
909
  <script src="../prettify.js"></script>
781
910
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/35</span>
28
+ <span class='fraction'>0/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/22</span>
35
+ <span class='fraction'>0/32</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/33</span>
49
+ <span class='fraction'>0/39</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
85
  </td>
86
86
  <td data-value="0" class="pct low">0%</td>
87
- <td data-value="35" class="abs low">0/35</td>
87
+ <td data-value="41" class="abs low">0/41</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="22" class="abs low">0/22</td>
89
+ <td data-value="32" class="abs low">0/32</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
91
  <td data-value="13" class="abs low">0/13</td>
92
92
  <td data-value="0" class="pct low">0%</td>
93
- <td data-value="33" class="abs low">0/33</td>
93
+ <td data-value="39" class="abs low">0/39</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
119
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -73,7 +73,7 @@
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
76
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
76
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
77
77
  </div>
78
78
  <script src="../prettify.js"></script>
79
79
  <script>
@@ -0,0 +1,112 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for constants/customProperties.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">constants</a> customProperties.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/9</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/9</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
76
+ <span class="cline-any cline-no">&nbsp;</span>
77
+ <span class="cline-any cline-no">&nbsp;</span>
78
+ <span class="cline-any cline-no">&nbsp;</span>
79
+ <span class="cline-any cline-no">&nbsp;</span>
80
+ <span class="cline-any cline-no">&nbsp;</span>
81
+ <span class="cline-any cline-no">&nbsp;</span>
82
+ <span class="cline-any cline-no">&nbsp;</span>
83
+ <span class="cline-any cline-no">&nbsp;</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const TYPE_CLASS_PREFIX = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomProperty';</span>
85
+ export const BLOB_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyBlob';</span>
86
+ export const BOOLEAN_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyBoolean';</span>
87
+ export const CONTAINER_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyContainer';</span>
88
+ export const DECIMAL_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyDecimal';</span>
89
+ export const INTEGER_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyInteger';</span>
90
+ export const REFDATA_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyRefdata';</span>
91
+ export const REFDATA_DEFINITION_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyRefdataDefinition';</span>
92
+ export const TEXT_CLASS_NAME = <span class="cstat-no" title="statement not covered" >'com.k_int.web.toolkit.custprops.types.CustomPropertyText';</span>
93
+ &nbsp;</pre></td></tr></table></pre>
94
+
95
+ <div class='push'></div><!-- for sticky footer -->
96
+ </div><!-- /wrapper -->
97
+ <div class='footer quiet pad2 space-top1 center small'>
98
+ Code coverage generated by
99
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
101
+ </div>
102
+ <script src="../prettify.js"></script>
103
+ <script>
104
+ window.onload = function () {
105
+ prettyPrint();
106
+ };
107
+ </script>
108
+ <script src="../sorter.js"></script>
109
+ <script src="../block-navigation.js"></script>
110
+ </body>
111
+ </html>
112
+
@@ -79,7 +79,7 @@ export const TAB = <span class="cstat-no" title="statement not covered" >'Tab';<
79
79
  <div class='footer quiet pad2 space-top1 center small'>
80
80
  Code coverage generated by
81
81
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
82
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
82
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
83
83
  </div>
84
84
  <script src="../prettify.js"></script>
85
85
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/3</span>
28
+ <span class='fraction'>0/12</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/3</span>
49
+ <span class='fraction'>0/12</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,6 +79,21 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
+ <td class="file low" data-value="customProperties.js"><a href="customProperties.js.html">customProperties.js</a></td>
83
+ <td data-value="0" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
+ </td>
86
+ <td data-value="0" class="pct low">0%</td>
87
+ <td data-value="9" class="abs low">0/9</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="0" class="abs high">0/0</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="0" class="abs high">0/0</td>
92
+ <td data-value="0" class="pct low">0%</td>
93
+ <td data-value="9" class="abs low">0/9</td>
94
+ </tr>
95
+
96
+ <tr>
82
97
  <td class="file low" data-value="eventCodes.js"><a href="eventCodes.js.html">eventCodes.js</a></td>
83
98
  <td data-value="0" class="pic low">
84
99
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
@@ -101,7 +116,7 @@
101
116
  <div class='footer quiet pad2 space-top1 center small'>
102
117
  Code coverage generated by
103
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
119
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
105
120
  </div>
106
121
  <script src="../prettify.js"></script>
107
122
  <script>
@@ -82,7 +82,7 @@ export default SettingsContext;
82
82
  <div class='footer quiet pad2 space-top1 center small'>
83
83
  Code coverage generated by
84
84
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
85
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
85
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
86
86
  </div>
87
87
  <script src="../prettify.js"></script>
88
88
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
119
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -76,7 +76,7 @@ export { default as SettingsContext } from './SettingsContext';
76
76
  <div class='footer quiet pad2 space-top1 center small'>
77
77
  Code coverage generated by
78
78
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
79
- at Thu Jan 20 2022 16:19:40 GMT+0000 (Greenwich Mean Time)
79
+ at Wed Mar 09 2022 12:00:59 GMT+0000 (Greenwich Mean Time)
80
80
  </div>
81
81
  <script src="../prettify.js"></script>
82
82
  <script>