@internetarchive/collection-browser 1.14.4 → 1.14.5-alpha2

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 (277) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +26 -26
  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/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +9 -9
  10. package/dist/index.js +9 -9
  11. package/dist/src/app-root.d.ts +64 -64
  12. package/dist/src/app-root.js +311 -311
  13. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  15. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  17. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  18. package/dist/src/assets/img/icons/chevron.js +2 -2
  19. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  20. package/dist/src/assets/img/icons/contract.js +2 -2
  21. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  22. package/dist/src/assets/img/icons/empty-query.js +2 -2
  23. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  24. package/dist/src/assets/img/icons/expand.js +2 -2
  25. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  27. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  31. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  32. package/dist/src/assets/img/icons/login-required.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  61. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  62. package/dist/src/assets/img/icons/null-result.js +2 -2
  63. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  64. package/dist/src/assets/img/icons/restricted.js +2 -2
  65. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  66. package/dist/src/assets/img/icons/reviews.js +2 -2
  67. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  68. package/dist/src/assets/img/icons/upload.js +2 -2
  69. package/dist/src/assets/img/icons/views.d.ts +1 -1
  70. package/dist/src/assets/img/icons/views.js +2 -2
  71. package/dist/src/circular-activity-indicator.d.ts +5 -5
  72. package/dist/src/circular-activity-indicator.js +17 -17
  73. package/dist/src/collection-browser.d.ts +525 -524
  74. package/dist/src/collection-browser.js +1871 -1859
  75. package/dist/src/collection-browser.js.map +1 -1
  76. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  77. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  78. package/dist/src/collection-facets/facets-template.d.ts +20 -20
  79. package/dist/src/collection-facets/facets-template.js +152 -152
  80. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  81. package/dist/src/collection-facets/more-facets-content.js +359 -359
  82. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  83. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  84. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  85. package/dist/src/collection-facets/toggle-switch.js +94 -94
  86. package/dist/src/collection-facets.d.ts +104 -104
  87. package/dist/src/collection-facets.js +507 -506
  88. package/dist/src/collection-facets.js.map +1 -1
  89. package/dist/src/empty-placeholder.d.ts +23 -23
  90. package/dist/src/empty-placeholder.js +74 -74
  91. package/dist/src/expanded-date-picker.d.ts +43 -43
  92. package/dist/src/expanded-date-picker.js +109 -109
  93. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  94. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  95. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  96. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  97. package/dist/src/manage/manage-bar.d.ts +26 -26
  98. package/dist/src/manage/manage-bar.js +53 -53
  99. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  100. package/dist/src/mediatype/mediatype-config.js +91 -91
  101. package/dist/src/models.d.ts +164 -164
  102. package/dist/src/models.js +269 -269
  103. package/dist/src/restoration-state-handler.d.ts +70 -70
  104. package/dist/src/restoration-state-handler.js +355 -355
  105. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  106. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  107. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  108. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  109. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  110. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  111. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  112. package/dist/src/sort-filter-bar/img/list.js +2 -2
  113. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  114. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  115. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  116. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  117. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  118. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  119. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  120. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  121. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  122. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  123. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
  124. package/dist/src/sort-filter-bar/sort-filter-bar.js +637 -637
  125. package/dist/src/styles/item-image-styles.d.ts +8 -8
  126. package/dist/src/styles/item-image-styles.js +9 -9
  127. package/dist/src/styles/sr-only.d.ts +1 -1
  128. package/dist/src/styles/sr-only.js +2 -2
  129. package/dist/src/tiles/base-tile-component.d.ts +19 -18
  130. package/dist/src/tiles/base-tile-component.js +63 -59
  131. package/dist/src/tiles/base-tile-component.js.map +1 -1
  132. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  133. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  134. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  135. package/dist/src/tiles/grid/account-tile.js +72 -72
  136. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  137. package/dist/src/tiles/grid/collection-tile.js +80 -80
  138. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  139. package/dist/src/tiles/grid/item-tile.js +134 -134
  140. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  141. package/dist/src/tiles/grid/search-tile.js +51 -51
  142. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  143. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  144. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  145. package/dist/src/tiles/grid/tile-stats.js +48 -48
  146. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  147. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  148. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  149. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  150. package/dist/src/tiles/image-block.d.ts +17 -17
  151. package/dist/src/tiles/image-block.js +73 -73
  152. package/dist/src/tiles/item-image.d.ts +36 -36
  153. package/dist/src/tiles/item-image.js +127 -127
  154. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  155. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  156. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  157. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  158. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  159. package/dist/src/tiles/list/tile-list.js +302 -302
  160. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  161. package/dist/src/tiles/mediatype-icon.js +47 -47
  162. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  163. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  164. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  165. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  166. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  167. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  168. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  169. package/dist/src/tiles/text-snippet-block.js +73 -73
  170. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  171. package/dist/src/tiles/tile-dispatcher.js +235 -235
  172. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  173. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  174. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  175. package/dist/src/utils/analytics-events.d.ts +25 -25
  176. package/dist/src/utils/analytics-events.js +27 -27
  177. package/dist/src/utils/array-equals.d.ts +4 -4
  178. package/dist/src/utils/array-equals.js +10 -10
  179. package/dist/src/utils/format-count.d.ts +7 -7
  180. package/dist/src/utils/format-count.js +76 -76
  181. package/dist/src/utils/format-date.d.ts +2 -2
  182. package/dist/src/utils/format-date.js +25 -25
  183. package/dist/src/utils/format-unit-size.d.ts +2 -2
  184. package/dist/src/utils/format-unit-size.js +33 -33
  185. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  186. package/dist/src/utils/local-date-from-utc.js +15 -15
  187. package/dist/src/utils/sha1.d.ts +2 -2
  188. package/dist/src/utils/sha1.js +8 -8
  189. package/dist/test/collection-browser.test.d.ts +1 -1
  190. package/dist/test/collection-browser.test.js +1098 -1098
  191. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  192. package/dist/test/collection-facets/facets-template.test.js +134 -134
  193. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  194. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  195. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  196. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  197. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  198. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  199. package/dist/test/collection-facets.test.d.ts +2 -2
  200. package/dist/test/collection-facets.test.js +682 -682
  201. package/dist/test/empty-placeholder.test.d.ts +1 -1
  202. package/dist/test/empty-placeholder.test.js +63 -63
  203. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  204. package/dist/test/expanded-date-picker.test.js +95 -95
  205. package/dist/test/icon-overlay.test.d.ts +1 -1
  206. package/dist/test/icon-overlay.test.js +24 -24
  207. package/dist/test/image-block.test.d.ts +1 -1
  208. package/dist/test/image-block.test.js +48 -48
  209. package/dist/test/item-image.test.d.ts +1 -1
  210. package/dist/test/item-image.test.js +86 -86
  211. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  212. package/dist/test/manage/manage-bar.test.js +72 -72
  213. package/dist/test/mediatype-config.test.d.ts +1 -1
  214. package/dist/test/mediatype-config.test.js +16 -16
  215. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  216. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  217. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  218. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  219. package/dist/test/mocks/mock-search-responses.d.ts +21 -21
  220. package/dist/test/mocks/mock-search-responses.js +709 -709
  221. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  222. package/dist/test/mocks/mock-search-service.js +50 -50
  223. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  224. package/dist/test/restoration-state-handler.test.js +270 -270
  225. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  226. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  227. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  228. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  229. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  230. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  231. package/dist/test/text-overlay.test.d.ts +1 -1
  232. package/dist/test/text-overlay.test.js +48 -48
  233. package/dist/test/text-snippet-block.test.d.ts +1 -1
  234. package/dist/test/text-snippet-block.test.js +57 -57
  235. package/dist/test/tile-stats.test.d.ts +1 -1
  236. package/dist/test/tile-stats.test.js +33 -33
  237. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  238. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  239. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  240. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  241. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  242. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  243. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  244. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  245. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  246. package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
  247. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  248. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  249. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  250. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  251. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  252. package/dist/test/tiles/list/tile-list.test.js +242 -242
  253. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  254. package/dist/test/tiles/tile-dispatcher.test.js +94 -94
  255. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  256. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  257. package/dist/test/utils/array-equals.test.d.ts +1 -1
  258. package/dist/test/utils/array-equals.test.js +26 -26
  259. package/dist/test/utils/format-count.test.d.ts +1 -1
  260. package/dist/test/utils/format-count.test.js +23 -23
  261. package/dist/test/utils/format-date.test.d.ts +1 -1
  262. package/dist/test/utils/format-date.test.js +17 -17
  263. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  264. package/dist/test/utils/format-unit-size.test.js +17 -17
  265. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  266. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  267. package/local.archive.org.cert +86 -86
  268. package/local.archive.org.key +27 -27
  269. package/package.json +1 -1
  270. package/renovate.json +6 -6
  271. package/src/collection-browser.ts +11 -1
  272. package/src/collection-facets.ts +1 -0
  273. package/src/tiles/base-tile-component.ts +2 -0
  274. package/src/tiles/tile-dispatcher.ts +7 -5
  275. package/tsconfig.json +21 -21
  276. package/web-dev-server.config.mjs +30 -30
  277. package/web-test-runner.config.mjs +41 -41
@@ -1,36 +1,36 @@
1
- import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
- export declare class MoreFacetsPagination extends LitElement {
3
- /**
4
- * Total number of pages
5
- */
6
- size: number;
7
- /**
8
- * Number of pages can be moved in back/forward
9
- */
10
- step: number;
11
- currentPage: number;
12
- pages?: number[];
13
- firstUpdated(): void;
14
- updated(changed: Map<string, any>): void;
15
- /** creates `this.pages` array that notes which pages to draw
16
- * - `0` is elipses marker
17
- * - rule: selected page is centered between -2/+2 pages
18
- * - outlier: first page selected, show _1_ 2 3 ... N
19
- * - outlier: second page selected, show 1 _2_ 3 4 ... N
20
- * - outlier: last page selected, show 1 ... N-2 N-1 _N_
21
- * - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
22
- */
23
- observePageCount(): void;
24
- private createFirstNode;
25
- private createMiddelNode;
26
- private createLastNode;
27
- private get getEllipsisTemplate();
28
- emitPageClick(): void;
29
- private onRewind;
30
- private onForward;
31
- private onChange;
32
- private getPageTemplate;
33
- private get getPagesTemplate();
34
- render(): TemplateResult<1>;
35
- static get styles(): CSSResultGroup;
36
- }
1
+ import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
+ export declare class MoreFacetsPagination extends LitElement {
3
+ /**
4
+ * Total number of pages
5
+ */
6
+ size: number;
7
+ /**
8
+ * Number of pages can be moved in back/forward
9
+ */
10
+ step: number;
11
+ currentPage: number;
12
+ pages?: number[];
13
+ firstUpdated(): void;
14
+ updated(changed: Map<string, any>): void;
15
+ /** creates `this.pages` array that notes which pages to draw
16
+ * - `0` is elipses marker
17
+ * - rule: selected page is centered between -2/+2 pages
18
+ * - outlier: first page selected, show _1_ 2 3 ... N
19
+ * - outlier: second page selected, show 1 _2_ 3 4 ... N
20
+ * - outlier: last page selected, show 1 ... N-2 N-1 _N_
21
+ * - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
22
+ */
23
+ observePageCount(): void;
24
+ private createFirstNode;
25
+ private createMiddelNode;
26
+ private createLastNode;
27
+ private get getEllipsisTemplate();
28
+ emitPageClick(): void;
29
+ private onRewind;
30
+ private onForward;
31
+ private onChange;
32
+ private getPageTemplate;
33
+ private get getPagesTemplate();
34
+ render(): TemplateResult<1>;
35
+ static get styles(): CSSResultGroup;
36
+ }
@@ -1,162 +1,162 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing, } from 'lit';
3
- import { customElement, property, state } from 'lit/decorators.js';
4
- import arrowLeftIcon from '../assets/img/icons/arrow-left';
5
- import arrowRightIcon from '../assets/img/icons/arrow-right';
6
- import { srOnlyStyle } from '../styles/sr-only';
7
- let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
8
- constructor() {
9
- super(...arguments);
10
- /**
11
- * Number of pages can be moved in back/forward
12
- */
13
- this.step = 2;
14
- this.currentPage = 1;
15
- this.pages = [];
16
- }
17
- firstUpdated() {
18
- this.observePageCount();
19
- }
20
- updated(changed) {
21
- if (changed.has('size')) {
22
- this.observePageCount();
23
- }
24
- if (changed.has('currentPage')) {
25
- this.observePageCount();
26
- this.emitPageClick();
27
- }
28
- }
29
- /** creates `this.pages` array that notes which pages to draw
30
- * - `0` is elipses marker
31
- * - rule: selected page is centered between -2/+2 pages
32
- * - outlier: first page selected, show _1_ 2 3 ... N
33
- * - outlier: second page selected, show 1 _2_ 3 4 ... N
34
- * - outlier: last page selected, show 1 ... N-2 N-1 _N_
35
- * - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
36
- */
37
- observePageCount() {
38
- this.pages = []; /* `0` is elipses marker */
39
- const paginatorMaxPagesToShow = 7;
40
- const atMinThreshold = this.size <= paginatorMaxPagesToShow;
41
- /** Display outliers */
42
- if (this.size <= 5) {
43
- // display all pages
44
- this.pages = [...Array(this.size).keys()].map(i => i + 1);
45
- return;
46
- }
47
- if (this.size === paginatorMaxPagesToShow) {
48
- // edge: 7 pages
49
- if (this.currentPage === 2) {
50
- this.pages = [1, 2, 3, 4, 0, this.size];
51
- return;
52
- }
53
- if (this.currentPage === this.size - 1) {
54
- this.pages = [1, 0, 4, 5, this.size - 1, this.size];
55
- return;
56
- }
57
- }
58
- if (this.currentPage === 1) {
59
- // first page
60
- this.pages = [1, 2, 3, 0, this.size];
61
- return;
62
- }
63
- if (this.currentPage === this.size) {
64
- // last page
65
- this.pages = [1, 0, this.size - 2, this.size - 1, this.size];
66
- return;
67
- }
68
- if (this.currentPage === this.size - 1) {
69
- // second last page
70
- this.pages = [
71
- 1,
72
- 0,
73
- this.size - 3,
74
- this.size - 2,
75
- this.size - 1,
76
- this.size,
77
- ];
78
- return;
79
- }
80
- if (atMinThreshold &&
81
- this.currentPage > 1 &&
82
- this.currentPage < paginatorMaxPagesToShow) {
83
- this.pages = [...Array(this.size).keys()].map(i => i + 1);
84
- return;
85
- }
86
- /* The rest here calculates the range to display in "page window" */
87
- let startPage = this.currentPage - this.step;
88
- let endPage = this.currentPage + this.step;
89
- if (startPage <= 0) {
90
- endPage += -startPage + 1;
91
- startPage = 1;
92
- }
93
- if (endPage >= this.size) {
94
- startPage = Math.max(startPage - (endPage - this.size), 1);
95
- endPage = this.size;
96
- }
97
- if (startPage === 2) {
98
- endPage -= 1;
99
- }
100
- if (endPage === this.size - 1) {
101
- startPage += 1;
102
- }
103
- // create first page node
104
- this.createFirstNode(startPage);
105
- // create middle pages node
106
- this.createMiddelNode(startPage, endPage);
107
- // create last page node
108
- this.createLastNode(endPage);
109
- }
110
- createFirstNode(startPage) {
111
- var _a, _b;
112
- if (startPage > 1) {
113
- (_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(1);
114
- }
115
- if (startPage > 2) {
116
- (_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(0); // let's asssume 0 is for ellipsis template
117
- }
118
- }
119
- createMiddelNode(startPage, endPage) {
120
- var _a;
121
- for (let page = startPage; page <= endPage; page += 1) {
122
- (_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(page);
123
- }
124
- }
125
- createLastNode(endPage) {
126
- var _a, _b;
127
- if (endPage < this.size - 1) {
128
- (_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(0); // let's asssume 0 is for ellipsis template
129
- }
130
- if (endPage < this.size) {
131
- (_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(this.size);
132
- }
133
- }
134
- get getEllipsisTemplate() {
135
- return html `<i class="ellipses">...</i>`;
136
- }
137
- emitPageClick() {
138
- this.dispatchEvent(new CustomEvent('pageNumberClicked', {
139
- detail: { page: this.currentPage },
140
- bubbles: true,
141
- composed: true,
142
- }));
143
- }
144
- onRewind() {
145
- this.currentPage -= 1;
146
- if (this.currentPage < 1) {
147
- this.currentPage = 1;
148
- }
149
- }
150
- onForward() {
151
- this.currentPage += 1;
152
- if (this.currentPage > this.size) {
153
- this.currentPage = this.size;
154
- }
155
- }
156
- onChange(page) {
157
- this.currentPage = page;
158
- }
159
- getPageTemplate(page) {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing, } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import arrowLeftIcon from '../assets/img/icons/arrow-left';
5
+ import arrowRightIcon from '../assets/img/icons/arrow-right';
6
+ import { srOnlyStyle } from '../styles/sr-only';
7
+ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ /**
11
+ * Number of pages can be moved in back/forward
12
+ */
13
+ this.step = 2;
14
+ this.currentPage = 1;
15
+ this.pages = [];
16
+ }
17
+ firstUpdated() {
18
+ this.observePageCount();
19
+ }
20
+ updated(changed) {
21
+ if (changed.has('size')) {
22
+ this.observePageCount();
23
+ }
24
+ if (changed.has('currentPage')) {
25
+ this.observePageCount();
26
+ this.emitPageClick();
27
+ }
28
+ }
29
+ /** creates `this.pages` array that notes which pages to draw
30
+ * - `0` is elipses marker
31
+ * - rule: selected page is centered between -2/+2 pages
32
+ * - outlier: first page selected, show _1_ 2 3 ... N
33
+ * - outlier: second page selected, show 1 _2_ 3 4 ... N
34
+ * - outlier: last page selected, show 1 ... N-2 N-1 _N_
35
+ * - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
36
+ */
37
+ observePageCount() {
38
+ this.pages = []; /* `0` is elipses marker */
39
+ const paginatorMaxPagesToShow = 7;
40
+ const atMinThreshold = this.size <= paginatorMaxPagesToShow;
41
+ /** Display outliers */
42
+ if (this.size <= 5) {
43
+ // display all pages
44
+ this.pages = [...Array(this.size).keys()].map(i => i + 1);
45
+ return;
46
+ }
47
+ if (this.size === paginatorMaxPagesToShow) {
48
+ // edge: 7 pages
49
+ if (this.currentPage === 2) {
50
+ this.pages = [1, 2, 3, 4, 0, this.size];
51
+ return;
52
+ }
53
+ if (this.currentPage === this.size - 1) {
54
+ this.pages = [1, 0, 4, 5, this.size - 1, this.size];
55
+ return;
56
+ }
57
+ }
58
+ if (this.currentPage === 1) {
59
+ // first page
60
+ this.pages = [1, 2, 3, 0, this.size];
61
+ return;
62
+ }
63
+ if (this.currentPage === this.size) {
64
+ // last page
65
+ this.pages = [1, 0, this.size - 2, this.size - 1, this.size];
66
+ return;
67
+ }
68
+ if (this.currentPage === this.size - 1) {
69
+ // second last page
70
+ this.pages = [
71
+ 1,
72
+ 0,
73
+ this.size - 3,
74
+ this.size - 2,
75
+ this.size - 1,
76
+ this.size,
77
+ ];
78
+ return;
79
+ }
80
+ if (atMinThreshold &&
81
+ this.currentPage > 1 &&
82
+ this.currentPage < paginatorMaxPagesToShow) {
83
+ this.pages = [...Array(this.size).keys()].map(i => i + 1);
84
+ return;
85
+ }
86
+ /* The rest here calculates the range to display in "page window" */
87
+ let startPage = this.currentPage - this.step;
88
+ let endPage = this.currentPage + this.step;
89
+ if (startPage <= 0) {
90
+ endPage += -startPage + 1;
91
+ startPage = 1;
92
+ }
93
+ if (endPage >= this.size) {
94
+ startPage = Math.max(startPage - (endPage - this.size), 1);
95
+ endPage = this.size;
96
+ }
97
+ if (startPage === 2) {
98
+ endPage -= 1;
99
+ }
100
+ if (endPage === this.size - 1) {
101
+ startPage += 1;
102
+ }
103
+ // create first page node
104
+ this.createFirstNode(startPage);
105
+ // create middle pages node
106
+ this.createMiddelNode(startPage, endPage);
107
+ // create last page node
108
+ this.createLastNode(endPage);
109
+ }
110
+ createFirstNode(startPage) {
111
+ var _a, _b;
112
+ if (startPage > 1) {
113
+ (_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(1);
114
+ }
115
+ if (startPage > 2) {
116
+ (_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(0); // let's asssume 0 is for ellipsis template
117
+ }
118
+ }
119
+ createMiddelNode(startPage, endPage) {
120
+ var _a;
121
+ for (let page = startPage; page <= endPage; page += 1) {
122
+ (_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(page);
123
+ }
124
+ }
125
+ createLastNode(endPage) {
126
+ var _a, _b;
127
+ if (endPage < this.size - 1) {
128
+ (_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(0); // let's asssume 0 is for ellipsis template
129
+ }
130
+ if (endPage < this.size) {
131
+ (_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(this.size);
132
+ }
133
+ }
134
+ get getEllipsisTemplate() {
135
+ return html `<i class="ellipses">...</i>`;
136
+ }
137
+ emitPageClick() {
138
+ this.dispatchEvent(new CustomEvent('pageNumberClicked', {
139
+ detail: { page: this.currentPage },
140
+ bubbles: true,
141
+ composed: true,
142
+ }));
143
+ }
144
+ onRewind() {
145
+ this.currentPage -= 1;
146
+ if (this.currentPage < 1) {
147
+ this.currentPage = 1;
148
+ }
149
+ }
150
+ onForward() {
151
+ this.currentPage += 1;
152
+ if (this.currentPage > this.size) {
153
+ this.currentPage = this.size;
154
+ }
155
+ }
156
+ onChange(page) {
157
+ this.currentPage = page;
158
+ }
159
+ getPageTemplate(page) {
160
160
  return html `
161
161
  <button
162
162
  @click=${() => this.onChange(page)}
@@ -165,20 +165,20 @@ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
165
165
  >
166
166
  ${page}
167
167
  </button>
168
- `;
169
- }
170
- get getPagesTemplate() {
171
- var _a;
172
- if (!this.pages || !this.pages.length) {
173
- return nothing;
174
- }
168
+ `;
169
+ }
170
+ get getPagesTemplate() {
171
+ var _a;
172
+ if (!this.pages || !this.pages.length) {
173
+ return nothing;
174
+ }
175
175
  return html `
176
- ${(_a = this.pages) === null || _a === void 0 ? void 0 : _a.map(page => html `${page !== 0
177
- ? this.getPageTemplate(page)
176
+ ${(_a = this.pages) === null || _a === void 0 ? void 0 : _a.map(page => html `${page !== 0
177
+ ? this.getPageTemplate(page)
178
178
  : this.getEllipsisTemplate}`)}
179
- `;
180
- }
181
- render() {
179
+ `;
180
+ }
181
+ render() {
182
182
  return html `
183
183
  <div class="facets-pagination">
184
184
  <button class="arrow-icon rewind" @click=${this.onRewind}>
@@ -191,11 +191,11 @@ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
191
191
  ${arrowRightIcon}
192
192
  </button>
193
193
  </div>
194
- `;
195
- }
196
- static get styles() {
197
- return [
198
- srOnlyStyle,
194
+ `;
195
+ }
196
+ static get styles() {
197
+ return [
198
+ srOnlyStyle,
199
199
  css `
200
200
  .facets-pagination {
201
201
  user-select: none;
@@ -240,24 +240,24 @@ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
240
240
  .page-numbers {
241
241
  display: inline-block;
242
242
  }
243
- `,
244
- ];
245
- }
246
- };
247
- __decorate([
248
- property({ type: Number })
249
- ], MoreFacetsPagination.prototype, "size", void 0);
250
- __decorate([
251
- property({ type: Number })
252
- ], MoreFacetsPagination.prototype, "step", void 0);
253
- __decorate([
254
- property({ type: Number })
255
- ], MoreFacetsPagination.prototype, "currentPage", void 0);
256
- __decorate([
257
- state()
258
- ], MoreFacetsPagination.prototype, "pages", void 0);
259
- MoreFacetsPagination = __decorate([
260
- customElement('more-facets-pagination')
261
- ], MoreFacetsPagination);
262
- export { MoreFacetsPagination };
243
+ `,
244
+ ];
245
+ }
246
+ };
247
+ __decorate([
248
+ property({ type: Number })
249
+ ], MoreFacetsPagination.prototype, "size", void 0);
250
+ __decorate([
251
+ property({ type: Number })
252
+ ], MoreFacetsPagination.prototype, "step", void 0);
253
+ __decorate([
254
+ property({ type: Number })
255
+ ], MoreFacetsPagination.prototype, "currentPage", void 0);
256
+ __decorate([
257
+ state()
258
+ ], MoreFacetsPagination.prototype, "pages", void 0);
259
+ MoreFacetsPagination = __decorate([
260
+ customElement('more-facets-pagination')
261
+ ], MoreFacetsPagination);
262
+ export { MoreFacetsPagination };
263
263
  //# sourceMappingURL=more-facets-pagination.js.map
@@ -1,41 +1,41 @@
1
- import { LitElement, CSSResultGroup } from 'lit';
2
- export declare type Side = 'left' | 'right';
3
- export declare class ToggleSwitch extends LitElement {
4
- /**
5
- * The value this switch should have when toggled to the left.
6
- */
7
- leftValue: string;
8
- /**
9
- * The human-readable label to display on the left side of this switch.
10
- * If none is provided, `leftValue` is used.
11
- */
12
- leftLabel?: string;
13
- /**
14
- * The value this switch should have when toggled to the right.
15
- */
16
- rightValue: string;
17
- /**
18
- * The human-readable label to display on the right side of this switch.
19
- * If none is provided, `rightValue` is used.
20
- */
21
- rightLabel?: string;
22
- /**
23
- * Which side of the switch is selected (`'left'` or `'right'`).
24
- */
25
- side: Side;
26
- private leftRadio;
27
- render(): import("lit-html").TemplateResult<1>;
28
- /**
29
- * The currently selected value of this switch.
30
- */
31
- get value(): string;
32
- /**
33
- * The label for the currently selected value of this switch.
34
- * Falls back to the current value if its label is not defined.
35
- */
36
- get selectedLabel(): string;
37
- private handleClick;
38
- private handleRadioChange;
39
- private emitChangeEvent;
40
- static get styles(): CSSResultGroup;
41
- }
1
+ import { LitElement, CSSResultGroup } from 'lit';
2
+ export declare type Side = 'left' | 'right';
3
+ export declare class ToggleSwitch extends LitElement {
4
+ /**
5
+ * The value this switch should have when toggled to the left.
6
+ */
7
+ leftValue: string;
8
+ /**
9
+ * The human-readable label to display on the left side of this switch.
10
+ * If none is provided, `leftValue` is used.
11
+ */
12
+ leftLabel?: string;
13
+ /**
14
+ * The value this switch should have when toggled to the right.
15
+ */
16
+ rightValue: string;
17
+ /**
18
+ * The human-readable label to display on the right side of this switch.
19
+ * If none is provided, `rightValue` is used.
20
+ */
21
+ rightLabel?: string;
22
+ /**
23
+ * Which side of the switch is selected (`'left'` or `'right'`).
24
+ */
25
+ side: Side;
26
+ private leftRadio;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ /**
29
+ * The currently selected value of this switch.
30
+ */
31
+ get value(): string;
32
+ /**
33
+ * The label for the currently selected value of this switch.
34
+ * Falls back to the current value if its label is not defined.
35
+ */
36
+ get selectedLabel(): string;
37
+ private handleClick;
38
+ private handleRadioChange;
39
+ private emitChangeEvent;
40
+ static get styles(): CSSResultGroup;
41
+ }