@internetarchive/collection-browser 3.4.1 → 3.5.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 (194) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +27 -27
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/.prettierignore +1 -1
  8. package/LICENSE +661 -661
  9. package/README.md +83 -83
  10. package/dist/src/app-root.js +19 -28
  11. package/dist/src/app-root.js.map +1 -1
  12. package/dist/src/collection-browser.d.ts +27 -4
  13. package/dist/src/collection-browser.js +973 -801
  14. package/dist/src/collection-browser.js.map +1 -1
  15. package/dist/src/collection-facets/facet-row.js +143 -143
  16. package/dist/src/collection-facets/facet-row.js.map +1 -1
  17. package/dist/src/collection-facets/more-facets-content.js +29 -40
  18. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  19. package/dist/src/collection-facets/more-facets-pagination.js +6 -10
  20. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  21. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +16 -21
  22. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +1 -1
  23. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +7 -10
  24. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  25. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +3 -2
  26. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  27. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +9 -11
  28. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  29. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +7 -7
  30. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  31. package/dist/src/collection-facets/toggle-switch.js +4 -6
  32. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  33. package/dist/src/collection-facets.js +309 -310
  34. package/dist/src/collection-facets.js.map +1 -1
  35. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +10 -1
  36. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  37. package/dist/src/data-source/collection-browser-data-source.d.ts +19 -1
  38. package/dist/src/data-source/collection-browser-data-source.js +71 -65
  39. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  40. package/dist/src/data-source/collection-browser-query-state.d.ts +1 -2
  41. package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
  42. package/dist/src/data-source/models.d.ts +11 -0
  43. package/dist/src/data-source/models.js.map +1 -1
  44. package/dist/src/empty-placeholder.js +19 -18
  45. package/dist/src/empty-placeholder.js.map +1 -1
  46. package/dist/src/expanded-date-picker.js +6 -10
  47. package/dist/src/expanded-date-picker.js.map +1 -1
  48. package/dist/src/language-code-handler/language-code-handler.js +2 -2
  49. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  50. package/dist/src/manage/manage-bar.js +9 -15
  51. package/dist/src/manage/manage-bar.js.map +1 -1
  52. package/dist/src/manage/remove-items-modal-content.js +2 -2
  53. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  54. package/dist/src/models.d.ts +2 -6
  55. package/dist/src/models.js +44 -54
  56. package/dist/src/models.js.map +1 -1
  57. package/dist/src/restoration-state-handler.d.ts +1 -2
  58. package/dist/src/restoration-state-handler.js +12 -19
  59. package/dist/src/restoration-state-handler.js.map +1 -1
  60. package/dist/src/sort-filter-bar/alpha-bar.js +9 -14
  61. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  62. package/dist/src/sort-filter-bar/sort-filter-bar.js +14 -24
  63. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  64. package/dist/src/tiles/base-tile-component.js +1 -2
  65. package/dist/src/tiles/base-tile-component.js.map +1 -1
  66. package/dist/src/tiles/grid/account-tile.js +5 -7
  67. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  68. package/dist/src/tiles/grid/collection-tile.js +3 -6
  69. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  70. package/dist/src/tiles/grid/item-tile.js +23 -33
  71. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  72. package/dist/src/tiles/grid/search-tile.js +1 -2
  73. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  74. package/dist/src/tiles/grid/tile-stats.js +2 -3
  75. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  76. package/dist/src/tiles/hover/hover-pane-controller.js +21 -28
  77. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  78. package/dist/src/tiles/hover/tile-hover-pane.js +3 -4
  79. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  80. package/dist/src/tiles/image-block.js +5 -8
  81. package/dist/src/tiles/image-block.js.map +1 -1
  82. package/dist/src/tiles/item-image.js +12 -19
  83. package/dist/src/tiles/item-image.js.map +1 -1
  84. package/dist/src/tiles/list/tile-list-compact.js +17 -25
  85. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  86. package/dist/src/tiles/list/tile-list.js +34 -55
  87. package/dist/src/tiles/list/tile-list.js.map +1 -1
  88. package/dist/src/tiles/overlay/icon-overlay.js +1 -2
  89. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  90. package/dist/src/tiles/overlay/text-overlay.js +2 -4
  91. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  92. package/dist/src/tiles/text-snippet-block.js +2 -4
  93. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  94. package/dist/src/tiles/tile-dispatcher.js +22 -30
  95. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  96. package/dist/src/tiles/tile-display-value-provider.js +5 -9
  97. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  98. package/dist/src/tiles/tile-mediatype-icon.js +12 -19
  99. package/dist/src/tiles/tile-mediatype-icon.js.map +1 -1
  100. package/dist/src/utils/collapse-repeated-quotes.js +1 -1
  101. package/dist/src/utils/collapse-repeated-quotes.js.map +1 -1
  102. package/dist/src/utils/facet-utils.js +3 -5
  103. package/dist/src/utils/facet-utils.js.map +1 -1
  104. package/dist/src/utils/format-count.js +10 -10
  105. package/dist/src/utils/format-count.js.map +1 -1
  106. package/dist/src/utils/resolve-mediatype.js +2 -3
  107. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  108. package/dist/test/collection-browser.test.js +336 -380
  109. package/dist/test/collection-browser.test.js.map +1 -1
  110. package/dist/test/collection-facets/facet-row.test.js +37 -52
  111. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  112. package/dist/test/collection-facets/facets-template.test.js +17 -23
  113. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  114. package/dist/test/collection-facets/more-facets-content.test.js +22 -32
  115. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  116. package/dist/test/collection-facets/more-facets-pagination.test.js +16 -22
  117. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  118. package/dist/test/collection-facets/toggle-switch.test.js +22 -19
  119. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  120. package/dist/test/collection-facets.test.js +60 -77
  121. package/dist/test/collection-facets.test.js.map +1 -1
  122. package/dist/test/empty-placeholder.test.js +11 -17
  123. package/dist/test/empty-placeholder.test.js.map +1 -1
  124. package/dist/test/expanded-date-picker.test.js +8 -14
  125. package/dist/test/expanded-date-picker.test.js.map +1 -1
  126. package/dist/test/icon-overlay.test.js +7 -6
  127. package/dist/test/icon-overlay.test.js.map +1 -1
  128. package/dist/test/image-block.test.js +16 -26
  129. package/dist/test/image-block.test.js.map +1 -1
  130. package/dist/test/item-image.test.js +23 -32
  131. package/dist/test/item-image.test.js.map +1 -1
  132. package/dist/test/manage/manage-bar.test.js +21 -33
  133. package/dist/test/manage/manage-bar.test.js.map +1 -1
  134. package/dist/test/manage/remove-items-modal-content.test.js +10 -15
  135. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  136. package/dist/test/mocks/mock-search-service.js +2 -3
  137. package/dist/test/mocks/mock-search-service.js.map +1 -1
  138. package/dist/test/restoration-state-handler.test.js +14 -54
  139. package/dist/test/restoration-state-handler.test.js.map +1 -1
  140. package/dist/test/review-block.test.js +16 -18
  141. package/dist/test/review-block.test.js.map +1 -1
  142. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +2 -3
  143. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  144. package/dist/test/sort-filter-bar/alpha-bar.test.js +18 -24
  145. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  146. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +178 -180
  147. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  148. package/dist/test/text-overlay.test.js +16 -15
  149. package/dist/test/text-overlay.test.js.map +1 -1
  150. package/dist/test/text-snippet-block.test.js +14 -19
  151. package/dist/test/text-snippet-block.test.js.map +1 -1
  152. package/dist/test/tile-stats.test.js +73 -34
  153. package/dist/test/tile-stats.test.js.map +1 -1
  154. package/dist/test/tiles/grid/account-tile.test.js +25 -25
  155. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  156. package/dist/test/tiles/grid/collection-tile.test.js +13 -19
  157. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  158. package/dist/test/tiles/grid/item-tile.test.js +64 -91
  159. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  160. package/dist/test/tiles/grid/search-tile.test.js +9 -13
  161. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  162. package/dist/test/tiles/hover/hover-pane-controller.test.js +23 -35
  163. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  164. package/dist/test/tiles/hover/tile-hover-pane.test.js +12 -16
  165. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  166. package/dist/test/tiles/list/tile-list-compact.test.js +34 -48
  167. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  168. package/dist/test/tiles/list/tile-list.test.js +76 -105
  169. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  170. package/dist/test/tiles/tile-dispatcher.test.js +17 -30
  171. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  172. package/dist/test/tiles/tile-mediatype-icon.test.js +12 -24
  173. package/dist/test/tiles/tile-mediatype-icon.test.js.map +1 -1
  174. package/eslint.config.mjs +53 -53
  175. package/index.html +24 -24
  176. package/local.archive.org.cert +86 -86
  177. package/local.archive.org.key +27 -27
  178. package/package.json +119 -118
  179. package/renovate.json +6 -6
  180. package/src/collection-browser.ts +3071 -2829
  181. package/src/collection-facets/facet-row.ts +299 -296
  182. package/src/collection-facets.ts +1010 -995
  183. package/src/data-source/collection-browser-data-source-interface.ts +345 -333
  184. package/src/data-source/collection-browser-data-source.ts +1441 -1401
  185. package/src/data-source/collection-browser-query-state.ts +59 -65
  186. package/src/data-source/models.ts +56 -43
  187. package/src/models.ts +864 -870
  188. package/src/restoration-state-handler.ts +546 -544
  189. package/test/collection-browser.test.ts +2413 -2403
  190. package/test/restoration-state-handler.test.ts +480 -510
  191. package/tsconfig.json +25 -20
  192. package/vite.config.ts +29 -22
  193. package/web-dev-server.config.mjs +30 -30
  194. package/web-test-runner.config.mjs +41 -41
@@ -1 +1 @@
1
- {"version":3,"file":"format-count.js","sourceRoot":"","sources":["../../../src/utils/format-count.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAUzC;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,YAA0B;IAC3D,IAAI,OAAO,GAAY,CAAC,CAAC;IACzB,IAAI,MAAM,IAAI,UAAa,EAAE,CAAC;QAC5B,OAAO,GAAG,UAAa,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,IAAI,OAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,OAAS,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,IAAI,IAAK,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QACvD,OAAO,GAAG,IAAK,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,SAAiB,CAAC,EAAE,OAAgB;IACjD,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAW,CAAC,CAAC;IACxB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,OAAe,EACf,OAAgB,EAChB,MAAmB,EACnB,MAAc;IAEd,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAa;YAChB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,UAAU,CAAC,CAAC;QACtC,KAAK,OAAS;YACZ,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,UAAU,CAAC,CAAC;QACtC,KAAK,IAAK;YACR,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,WAAW,CAAC,CAAC;QAEvC;YACE,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,KAAyB,EACzB,eAA6B,MAAM,EACnC,cAA2B,OAAO,EAClC,SAAiB,OAAO;IAExB,4BAA4B;IAC5B,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC","sourcesContent":["/*\n * Replaces Petabox www/common/Util::number_format()\n * For positive numbers only.\n */\nimport { msg, str } from '@lit/localize';\n\nexport type NumberFormat =\n | 'short' // 1.2 [K | thousand]\n | 'long'; // 1,200 [No label for numbers < 1,000,000]\nexport type LabelFormat =\n | 'short' // [1.2]K\n | 'long'; // [1.2] thousand\ntype Divisor = 1_000_000_000 | 1_000_000 | 1_000 | 1;\n\n/**\n * Return the magnitude of a number.\n */\nfunction magnitude(number: number, numberFormat: NumberFormat): Divisor {\n let divisor: Divisor = 1;\n if (number >= 1_000_000_000) {\n divisor = 1_000_000_000;\n } else if (number >= 1_000_000) {\n divisor = 1_000_000;\n } else if (number >= 1_000 && numberFormat === 'short') {\n divisor = 1_000;\n }\n return divisor;\n}\n\n/**\n * Round a number given passed magnitude.\n * Significant digits of value less than 10 get a decimal.\n */\nfunction round(number: number = 0, divisor: Divisor): number {\n const result = number / divisor;\n const roundToOne = result < 10;\n let rounded: number = 0;\n if (roundToOne) {\n rounded = Math.round((result + Number.EPSILON) * 10) / 10;\n } else {\n rounded = Math.round(result);\n }\n return rounded;\n}\n\n/**\n * Return a label for a number and format.\n */\nfunction labelize(\n rounded: number,\n divisor: Divisor,\n format: LabelFormat,\n locale: string,\n): string {\n switch (divisor) {\n case 1_000_000_000:\n if (format === 'short') {\n return msg(str`${rounded}B`);\n }\n return msg(str`${rounded} billion`);\n case 1_000_000:\n if (format === 'short') {\n return msg(str`${rounded}M`);\n }\n return msg(str`${rounded} million`);\n case 1_000:\n if (format === 'short') {\n return msg(str`${rounded}K`);\n }\n return msg(str`${rounded} thousand`);\n\n default:\n return new Intl.NumberFormat(locale).format(rounded);\n }\n}\n\n/**\n * Format a \"count\" number into short \"icon\" or longer text string.\n * For positive numbers only.\n */\nexport function formatCount(\n count: number | undefined,\n numberFormat: NumberFormat = 'long',\n labelFormat: LabelFormat = 'short',\n locale: string = 'en-US',\n): string {\n // Return blank if undefined\n const number = count ?? -1;\n if (number < 0) {\n return '';\n }\n const divisor = magnitude(number, numberFormat);\n const rounded = round(number, divisor);\n return labelize(rounded, divisor, labelFormat, locale);\n}\n"]}
1
+ {"version":3,"file":"format-count.js","sourceRoot":"","sources":["../../../src/utils/format-count.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAUzC;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,YAA0B;IAC3D,IAAI,OAAO,GAAY,CAAC,CAAC;IACzB,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;QAC5B,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,SAAS,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,IAAI,KAAK,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QACvD,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,SAAiB,CAAC,EAAE,OAAgB;IACjD,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAW,CAAC,CAAC;IACxB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,OAAe,EACf,OAAgB,EAChB,MAAmB,EACnB,MAAc;IAEd,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,aAAa;YAChB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,UAAU,CAAC,CAAC;QACtC,KAAK,SAAS;YACZ,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,UAAU,CAAC,CAAC;QACtC,KAAK,KAAK;YACR,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,WAAW,CAAC,CAAC;QAEvC;YACE,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,KAAyB,EACzB,eAA6B,MAAM,EACnC,cAA2B,OAAO,EAClC,SAAiB,OAAO;IAExB,4BAA4B;IAC5B,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC","sourcesContent":["/*\n * Replaces Petabox www/common/Util::number_format()\n * For positive numbers only.\n */\nimport { msg, str } from '@lit/localize';\n\nexport type NumberFormat =\n | 'short' // 1.2 [K | thousand]\n | 'long'; // 1,200 [No label for numbers < 1,000,000]\nexport type LabelFormat =\n | 'short' // [1.2]K\n | 'long'; // [1.2] thousand\ntype Divisor = 1_000_000_000 | 1_000_000 | 1_000 | 1;\n\n/**\n * Return the magnitude of a number.\n */\nfunction magnitude(number: number, numberFormat: NumberFormat): Divisor {\n let divisor: Divisor = 1;\n if (number >= 1_000_000_000) {\n divisor = 1_000_000_000;\n } else if (number >= 1_000_000) {\n divisor = 1_000_000;\n } else if (number >= 1_000 && numberFormat === 'short') {\n divisor = 1_000;\n }\n return divisor;\n}\n\n/**\n * Round a number given passed magnitude.\n * Significant digits of value less than 10 get a decimal.\n */\nfunction round(number: number = 0, divisor: Divisor): number {\n const result = number / divisor;\n const roundToOne = result < 10;\n let rounded: number = 0;\n if (roundToOne) {\n rounded = Math.round((result + Number.EPSILON) * 10) / 10;\n } else {\n rounded = Math.round(result);\n }\n return rounded;\n}\n\n/**\n * Return a label for a number and format.\n */\nfunction labelize(\n rounded: number,\n divisor: Divisor,\n format: LabelFormat,\n locale: string,\n): string {\n switch (divisor) {\n case 1_000_000_000:\n if (format === 'short') {\n return msg(str`${rounded}B`);\n }\n return msg(str`${rounded} billion`);\n case 1_000_000:\n if (format === 'short') {\n return msg(str`${rounded}M`);\n }\n return msg(str`${rounded} million`);\n case 1_000:\n if (format === 'short') {\n return msg(str`${rounded}K`);\n }\n return msg(str`${rounded} thousand`);\n\n default:\n return new Intl.NumberFormat(locale).format(rounded);\n }\n}\n\n/**\n * Format a \"count\" number into short \"icon\" or longer text string.\n * For positive numbers only.\n */\nexport function formatCount(\n count: number | undefined,\n numberFormat: NumberFormat = 'long',\n labelFormat: LabelFormat = 'short',\n locale: string = 'en-US',\n): string {\n // Return blank if undefined\n const number = count ?? -1;\n if (number < 0) {\n return '';\n }\n const divisor = magnitude(number, numberFormat);\n const rounded = round(number, divisor);\n return labelize(rounded, divisor, labelFormat, locale);\n}\n"]}
@@ -4,7 +4,6 @@
4
4
  * @param result The search result to extract a mediatype from
5
5
  */
6
6
  export function resolveMediatype(result) {
7
- var _a, _b, _c;
8
7
  /**
9
8
  * hit_type == 'favorited_search' is basically a new hit_type
10
9
  * - we are getting from PPS.
@@ -16,9 +15,9 @@ export function resolveMediatype(result) {
16
15
  * if backend hit_type == 'favorited_search'
17
16
  * - let's assume a "search" as new mediatype
18
17
  */
19
- if (((_a = result === null || result === void 0 ? void 0 : result.rawMetadata) === null || _a === void 0 ? void 0 : _a.hit_type) === 'favorited_search') {
18
+ if (result?.rawMetadata?.hit_type === 'favorited_search') {
20
19
  return 'search';
21
20
  }
22
- return (_c = (_b = result.mediatype) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 'data';
21
+ return result.mediatype?.value ?? 'data';
23
22
  }
24
23
  //# sourceMappingURL=resolve-mediatype.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-mediatype.js","sourceRoot":"","sources":["../../../src/utils/resolve-mediatype.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;;IACnD;;;;;;;;;;OAUG;IACH,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,QAAQ,MAAK,kBAAkB,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,MAAA,MAAA,MAAM,CAAC,SAAS,0CAAE,KAAK,mCAAI,MAAM,CAAC;AAC3C,CAAC","sourcesContent":["import type { MediaType } from '@internetarchive/field-parsers';\nimport type { SearchResult } from '@internetarchive/search-service';\n\n/**\n * Returns the mediatype string for the given search result, taking into account\n * the special `favorited_search` hit type.\n * @param result The search result to extract a mediatype from\n */\nexport function resolveMediatype(result: SearchResult): MediaType {\n /**\n * hit_type == 'favorited_search' is basically a new hit_type\n * - we are getting from PPS.\n * - which gives response for fav- collection\n * - having favorited items like account/collection/item etc..\n * - as user can also favorite a search result (a search page)\n * - so we need to have response (having fav- items and fav- search results)\n *\n * if backend hit_type == 'favorited_search'\n * - let's assume a \"search\" as new mediatype\n */\n if (result?.rawMetadata?.hit_type === 'favorited_search') {\n return 'search';\n }\n\n return result.mediatype?.value ?? 'data';\n}\n"]}
1
+ {"version":3,"file":"resolve-mediatype.js","sourceRoot":"","sources":["../../../src/utils/resolve-mediatype.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD;;;;;;;;;;OAUG;IACH,IAAI,MAAM,EAAE,WAAW,EAAE,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC;AAC3C,CAAC","sourcesContent":["import type { MediaType } from '@internetarchive/field-parsers';\nimport type { SearchResult } from '@internetarchive/search-service';\n\n/**\n * Returns the mediatype string for the given search result, taking into account\n * the special `favorited_search` hit type.\n * @param result The search result to extract a mediatype from\n */\nexport function resolveMediatype(result: SearchResult): MediaType {\n /**\n * hit_type == 'favorited_search' is basically a new hit_type\n * - we are getting from PPS.\n * - which gives response for fav- collection\n * - having favorited items like account/collection/item etc..\n * - as user can also favorite a search result (a search page)\n * - so we need to have response (having fav- items and fav- search results)\n *\n * if backend hit_type == 'favorited_search'\n * - let's assume a \"search\" as new mediatype\n */\n if (result?.rawMetadata?.hit_type === 'favorited_search') {\n return 'search';\n }\n\n return result.mediatype?.value ?? 'data';\n}\n"]}