@internetarchive/collection-browser 1.14.1-alpha.0 → 1.14.2

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 (267) 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/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +523 -522
  72. package/dist/src/collection-browser.js +1841 -1834
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  75. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  76. package/dist/src/collection-facets/facets-template.d.ts +20 -20
  77. package/dist/src/collection-facets/facets-template.js +152 -152
  78. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  79. package/dist/src/collection-facets/more-facets-content.js +359 -359
  80. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  81. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  82. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  83. package/dist/src/collection-facets/toggle-switch.js +94 -94
  84. package/dist/src/collection-facets.d.ts +104 -104
  85. package/dist/src/collection-facets.js +506 -506
  86. package/dist/src/empty-placeholder.d.ts +23 -23
  87. package/dist/src/empty-placeholder.js +74 -74
  88. package/dist/src/expanded-date-picker.d.ts +43 -43
  89. package/dist/src/expanded-date-picker.js +109 -109
  90. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  91. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  92. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  93. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  94. package/dist/src/manage/manage-bar.d.ts +26 -26
  95. package/dist/src/manage/manage-bar.js +53 -53
  96. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  97. package/dist/src/mediatype/mediatype-config.js +85 -85
  98. package/dist/src/models.d.ts +164 -164
  99. package/dist/src/models.js +269 -269
  100. package/dist/src/restoration-state-handler.d.ts +70 -70
  101. package/dist/src/restoration-state-handler.js +355 -355
  102. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  103. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  104. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  105. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  106. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  107. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  108. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  109. package/dist/src/sort-filter-bar/img/list.js +2 -2
  110. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  112. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  118. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  120. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
  121. package/dist/src/sort-filter-bar/sort-filter-bar.js +637 -637
  122. package/dist/src/styles/item-image-styles.d.ts +8 -8
  123. package/dist/src/styles/item-image-styles.js +9 -9
  124. package/dist/src/styles/sr-only.d.ts +1 -1
  125. package/dist/src/styles/sr-only.js +2 -2
  126. package/dist/src/tiles/base-tile-component.d.ts +18 -18
  127. package/dist/src/tiles/base-tile-component.js +59 -59
  128. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  129. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  130. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  131. package/dist/src/tiles/grid/account-tile.js +72 -72
  132. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  133. package/dist/src/tiles/grid/collection-tile.js +80 -80
  134. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  135. package/dist/src/tiles/grid/item-tile.js +134 -134
  136. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  137. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  138. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  139. package/dist/src/tiles/grid/tile-stats.js +48 -48
  140. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  141. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  142. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  143. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  144. package/dist/src/tiles/image-block.d.ts +17 -17
  145. package/dist/src/tiles/image-block.js +72 -72
  146. package/dist/src/tiles/item-image.d.ts +35 -35
  147. package/dist/src/tiles/item-image.js +117 -117
  148. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  149. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  150. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  151. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  152. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  153. package/dist/src/tiles/list/tile-list.js +298 -298
  154. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  155. package/dist/src/tiles/mediatype-icon.js +47 -47
  156. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  157. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  158. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  159. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  160. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  161. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  162. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  163. package/dist/src/tiles/text-snippet-block.js +73 -73
  164. package/dist/src/tiles/tile-dispatcher.d.ts +63 -63
  165. package/dist/src/tiles/tile-dispatcher.js +225 -225
  166. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  167. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  168. package/dist/src/utils/analytics-events.d.ts +25 -25
  169. package/dist/src/utils/analytics-events.js +27 -27
  170. package/dist/src/utils/array-equals.d.ts +4 -4
  171. package/dist/src/utils/array-equals.js +10 -10
  172. package/dist/src/utils/format-count.d.ts +7 -7
  173. package/dist/src/utils/format-count.js +76 -76
  174. package/dist/src/utils/format-date.d.ts +2 -2
  175. package/dist/src/utils/format-date.js +25 -25
  176. package/dist/src/utils/format-unit-size.d.ts +2 -2
  177. package/dist/src/utils/format-unit-size.js +33 -33
  178. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  179. package/dist/src/utils/local-date-from-utc.js +15 -15
  180. package/dist/src/utils/sha1.d.ts +2 -2
  181. package/dist/src/utils/sha1.js +8 -8
  182. package/dist/test/collection-browser.test.d.ts +1 -1
  183. package/dist/test/collection-browser.test.js +1098 -1099
  184. package/dist/test/collection-browser.test.js.map +1 -1
  185. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  186. package/dist/test/collection-facets/facets-template.test.js +134 -134
  187. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  188. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  189. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  190. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  191. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  192. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  193. package/dist/test/collection-facets.test.d.ts +2 -2
  194. package/dist/test/collection-facets.test.js +682 -682
  195. package/dist/test/empty-placeholder.test.d.ts +1 -1
  196. package/dist/test/empty-placeholder.test.js +63 -63
  197. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  198. package/dist/test/expanded-date-picker.test.js +95 -95
  199. package/dist/test/icon-overlay.test.d.ts +1 -1
  200. package/dist/test/icon-overlay.test.js +24 -24
  201. package/dist/test/image-block.test.d.ts +1 -1
  202. package/dist/test/image-block.test.js +48 -48
  203. package/dist/test/item-image.test.d.ts +1 -1
  204. package/dist/test/item-image.test.js +86 -86
  205. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  206. package/dist/test/manage/manage-bar.test.js +72 -72
  207. package/dist/test/mediatype-config.test.d.ts +1 -1
  208. package/dist/test/mediatype-config.test.js +16 -16
  209. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  210. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  211. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  212. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  213. package/dist/test/mocks/mock-search-responses.d.ts +21 -21
  214. package/dist/test/mocks/mock-search-responses.js +709 -709
  215. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  216. package/dist/test/mocks/mock-search-service.js +50 -50
  217. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  218. package/dist/test/restoration-state-handler.test.js +270 -270
  219. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  220. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  221. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  222. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  223. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  224. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  225. package/dist/test/text-overlay.test.d.ts +1 -1
  226. package/dist/test/text-overlay.test.js +48 -48
  227. package/dist/test/text-snippet-block.test.d.ts +1 -1
  228. package/dist/test/text-snippet-block.test.js +57 -57
  229. package/dist/test/tile-stats.test.d.ts +1 -1
  230. package/dist/test/tile-stats.test.js +33 -33
  231. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  232. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  233. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  234. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  235. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  236. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  237. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  238. package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
  239. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  240. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  241. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  242. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  243. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  244. package/dist/test/tiles/list/tile-list.test.js +242 -242
  245. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  246. package/dist/test/tiles/tile-dispatcher.test.js +94 -94
  247. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  248. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  249. package/dist/test/utils/array-equals.test.d.ts +1 -1
  250. package/dist/test/utils/array-equals.test.js +26 -26
  251. package/dist/test/utils/format-count.test.d.ts +1 -1
  252. package/dist/test/utils/format-count.test.js +23 -23
  253. package/dist/test/utils/format-date.test.d.ts +1 -1
  254. package/dist/test/utils/format-date.test.js +17 -17
  255. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  256. package/dist/test/utils/format-unit-size.test.js +17 -17
  257. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  258. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  259. package/local.archive.org.cert +86 -86
  260. package/local.archive.org.key +27 -27
  261. package/package.json +1 -1
  262. package/renovate.json +6 -6
  263. package/src/collection-browser.ts +9 -0
  264. package/test/collection-browser.test.ts +1 -2
  265. package/tsconfig.json +21 -21
  266. package/web-dev-server.config.mjs +30 -30
  267. 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
+ }