@internetarchive/collection-browser 0.2.6-alpha1 → 0.2.6-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 (35) hide show
  1. package/dist/src/assets/img/icons/no-search-result.d.ts +2 -0
  2. package/dist/src/assets/img/icons/no-search-result.js +5 -0
  3. package/dist/src/assets/img/icons/no-search-result.js.map +1 -0
  4. package/dist/src/assets/img/icons/no-search-term.d.ts +2 -0
  5. package/dist/src/assets/img/icons/no-search-term.js +5 -0
  6. package/dist/src/assets/img/icons/no-search-term.js.map +1 -0
  7. package/dist/src/collection-browser.d.ts +7 -0
  8. package/dist/src/collection-browser.js +95 -58
  9. package/dist/src/collection-browser.js.map +1 -1
  10. package/dist/src/empty-placeholder.d.ts +9 -0
  11. package/dist/src/empty-placeholder.js +72 -0
  12. package/dist/src/empty-placeholder.js.map +1 -0
  13. package/dist/src/tiles/grid/item-tile.d.ts +0 -5
  14. package/dist/src/tiles/grid/item-tile.js +10 -55
  15. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  16. package/dist/src/tiles/tile-dispatcher.js +0 -1
  17. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  18. package/dist/test/collection-browser.test.js +2 -0
  19. package/dist/test/collection-browser.test.js.map +1 -1
  20. package/dist/test/empty-placeholder.test.d.ts +1 -0
  21. package/dist/test/empty-placeholder.test.js +26 -0
  22. package/dist/test/empty-placeholder.test.js.map +1 -0
  23. package/package.json +1 -1
  24. package/src/assets/img/icons/no-search-result.ts +5 -0
  25. package/src/assets/img/icons/no-search-term.ts +5 -0
  26. package/src/collection-browser.ts +103 -61
  27. package/src/empty-placeholder.ts +70 -0
  28. package/src/tiles/grid/item-tile.ts +5 -56
  29. package/src/tiles/tile-dispatcher.ts +0 -1
  30. package/test/collection-browser.test.ts +3 -0
  31. package/test/empty-placeholder.test.ts +35 -0
  32. package/dist/test/tiles/grid/item-tile.test.d.ts +0 -1
  33. package/dist/test/tiles/grid/item-tile.test.js +0 -96
  34. package/dist/test/tiles/grid/item-tile.test.js.map +0 -1
  35. package/test/tiles/grid/item-tile.test.ts +0 -116
@@ -2,9 +2,7 @@
2
2
  import { css, CSSResultGroup, html, LitElement, nothing } from 'lit';
3
3
  import { customElement, property } from 'lit/decorators.js';
4
4
  import { ifDefined } from 'lit/directives/if-defined.js';
5
- import { SortParam } from '@internetarchive/search-service';
6
5
 
7
- import { formatDate } from '../../utils/format-date';
8
6
  import { TileModel } from '../../models';
9
7
 
10
8
  import '../mediatype-icon';
@@ -17,10 +15,9 @@ export class ItemTile extends LitElement {
17
15
 
18
16
  @property({ type: String }) baseImageUrl?: string;
19
17
 
20
- @property({ type: Object }) sortParam?: SortParam;
21
-
22
18
  render() {
23
19
  const itemTitle = this.model?.title;
20
+ const itemCreator = this.model?.creator;
24
21
  return html`
25
22
  <div class="container">
26
23
  <div class="item-info">
@@ -36,11 +33,9 @@ export class ItemTile extends LitElement {
36
33
  .baseImageUrl=${this.baseImageUrl}>
37
34
  </item-image>
38
35
  </div>
39
- ${
40
- this.doesSortedByDate
41
- ? this.sortedDateInfoTemplate
42
- : this.creatorTemplate
43
- }
36
+ <div class="created-by truncated">
37
+ ${itemCreator ? html`<span>by&nbsp;${itemCreator}</span>` : nothing}
38
+ </div>
44
39
  </div>
45
40
 
46
41
  <tile-stats
@@ -54,51 +49,6 @@ export class ItemTile extends LitElement {
54
49
  `;
55
50
  }
56
51
 
57
- private get doesSortedByDate() {
58
- return ['date', 'reviewdate', 'addeddate', 'publicdate'].includes(
59
- this.sortParam?.field as string
60
- );
61
- }
62
-
63
- private get sortedDateInfoTemplate() {
64
- let sortedValue;
65
-
66
- switch (this.sortParam?.field) {
67
- case 'date':
68
- sortedValue = { field: 'published', value: this.model?.datePublished };
69
- break;
70
- case 'reviewdate':
71
- sortedValue = { field: 'reviewed', value: this.model?.dateReviewed };
72
- break;
73
- case 'addeddate':
74
- sortedValue = { field: 'added', value: this.model?.dateAdded };
75
- break;
76
- case 'publicdate':
77
- sortedValue = { field: 'archived', value: this.model?.dateArchived };
78
- break;
79
- default:
80
- break;
81
- }
82
-
83
- return html`
84
- <div class="date-sorted-by truncated">
85
- <span>
86
- ${sortedValue?.field} ${formatDate(sortedValue?.value, 'long')}
87
- </span>
88
- </div>
89
- `;
90
- }
91
-
92
- private get creatorTemplate() {
93
- return html`
94
- <div class="created-by truncated">
95
- ${this.model?.creator
96
- ? html`<span>by&nbsp;${this.model?.creator}</span>`
97
- : nothing}
98
- </div>
99
- `;
100
- }
101
-
102
52
  static get styles(): CSSResultGroup {
103
53
  return css`
104
54
  .container {
@@ -139,8 +89,7 @@ export class ItemTile extends LitElement {
139
89
  text-decoration: underline;
140
90
  }
141
91
 
142
- .created-by,
143
- .date-sorted-by {
92
+ .created-by {
144
93
  display: flex;
145
94
  justify-content: center;
146
95
  align-items: flex-end; /* Important to start text from bottom */
@@ -154,7 +154,6 @@ export class TileDispatcher
154
154
  .currentHeight=${this.currentHeight}
155
155
  .collectionNameCache=${this.collectionNameCache}
156
156
  .baseImageUrl=${this.baseImageUrl}
157
- .sortParam=${sortParam}
158
157
  ></item-tile>`;
159
158
  }
160
159
  case 'list-compact':
@@ -12,6 +12,9 @@ describe('Collection Browser', () => {
12
12
  html`<collection-browser></collection-browser>`
13
13
  );
14
14
 
15
+ el.baseQuery = 'hello';
16
+ await el.updateComplete;
17
+
15
18
  const facets = el.shadowRoot?.querySelector('collection-facets');
16
19
  const sortBar = el.shadowRoot?.querySelector('sort-filter-bar');
17
20
  const infiniteScroller = el.shadowRoot?.querySelector('infinite-scroller');
@@ -0,0 +1,35 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import { EmptyPlaceholder } from '../src/empty-placeholder';
5
+ import '../src/empty-placeholder';
6
+
7
+ describe('Empty Placeholder', () => {
8
+ it('should render with no-search-term placeholder', async () => {
9
+ const el = await fixture<EmptyPlaceholder>(
10
+ html`<empty-placeholder></empty-placeholder>`
11
+ );
12
+
13
+ el.placeholderType = 'no-search-term';
14
+ await el.updateComplete;
15
+
16
+ const notSearchTerm = el.shadowRoot?.querySelector('.no-term');
17
+ const infiniteScroller = el.shadowRoot?.querySelector('infinite-scroller');
18
+
19
+ expect(notSearchTerm).to.exist;
20
+ expect(infiniteScroller).to.not.exist;
21
+ });
22
+
23
+ it('should render with no-search-result placeholder', async () => {
24
+ const el = await fixture<EmptyPlaceholder>(
25
+ html`<empty-placeholder></empty-placeholder>`
26
+ );
27
+
28
+ el.placeholderType = 'no-search-result';
29
+ await el.updateComplete;
30
+
31
+ expect(el.shadowRoot?.querySelector('.no-result')).to.exist;
32
+ expect(el.shadowRoot?.querySelector('.no-term')).to.not.exist;
33
+ expect(el.shadowRoot?.querySelector('collection-facets')).to.not.exist;
34
+ });
35
+ });
@@ -1 +0,0 @@
1
- import '../../../src/tiles/grid/item-tile';
@@ -1,96 +0,0 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../../../src/tiles/grid/item-tile';
5
- describe('Item Tile', () => {
6
- it('should render initial component', async () => {
7
- var _a, _b, _c;
8
- const el = await fixture(html `<item-tile></item-tile>`);
9
- const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
10
- const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
11
- const itemTitle = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#title');
12
- expect(itemInfo).to.exist;
13
- expect(itemImage).to.exist;
14
- expect(itemTitle).to.exist;
15
- });
16
- it('should render with created-by element', async () => {
17
- var _a, _b, _c;
18
- const el = await fixture(html `<item-tile></item-tile>`);
19
- const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
20
- const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
21
- const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
22
- expect(itemInfo).to.exist;
23
- expect(createdBy).to.exist;
24
- expect(dateSortedBy).to.not.exist;
25
- });
26
- it('should not render with created-by but date element', async () => {
27
- var _a, _b;
28
- const el = await fixture(html `<item-tile></item-tile>`);
29
- el.sortParam = {
30
- field: 'date',
31
- direction: 'desc',
32
- };
33
- await el.updateComplete;
34
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
35
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
36
- expect(createdBy).to.not.exist;
37
- expect(dateSortedBy).to.exist;
38
- });
39
- it('should not render with created-by but reviewdate element', async () => {
40
- var _a, _b;
41
- const el = await fixture(html `<item-tile></item-tile>`);
42
- el.sortParam = {
43
- field: 'reviewdate',
44
- direction: 'desc',
45
- };
46
- await el.updateComplete;
47
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
48
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
49
- expect(createdBy).to.not.exist;
50
- expect(dateSortedBy).to.exist;
51
- });
52
- it('should not render with created-by but publicdate element', async () => {
53
- var _a, _b;
54
- const el = await fixture(html `<item-tile></item-tile>`);
55
- el.sortParam = {
56
- field: 'publicdate',
57
- direction: 'desc',
58
- };
59
- await el.updateComplete;
60
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
61
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
62
- expect(createdBy).to.not.exist;
63
- expect(dateSortedBy).to.exist;
64
- });
65
- it('should render with created-by when sorting not related to date', async () => {
66
- var _a, _b, _c;
67
- const el = await fixture(html `<item-tile></item-tile>`);
68
- el.sortParam = {
69
- field: 'addeddate',
70
- direction: 'asc',
71
- };
72
- await el.updateComplete;
73
- const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
74
- const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
75
- const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
76
- expect(itemInfo).to.exist;
77
- expect(createdBy).to.not.exist;
78
- expect(dateSortedBy).to.exist;
79
- });
80
- it('should render with created-by when sort field id not like date', async () => {
81
- var _a, _b, _c;
82
- const el = await fixture(html `<item-tile></item-tile>`);
83
- el.sortParam = {
84
- field: 'week',
85
- direction: 'asc',
86
- };
87
- await el.updateComplete;
88
- const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
89
- const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
90
- const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
91
- expect(itemInfo).to.exist;
92
- expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort
93
- expect(createdBy).to.exist;
94
- });
95
- });
96
- //# sourceMappingURL=item-tile.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"item-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/item-tile.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport { ItemTile } from '../../../src/tiles/grid/item-tile';\n\nimport '../../../src/tiles/grid/item-tile';\n\ndescribe('Item Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('item-image');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(itemTitle).to.exist;\n });\n\n it('should render with created-by element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(itemInfo).to.exist;\n expect(createdBy).to.exist;\n expect(dateSortedBy).to.not.exist;\n });\n\n it('should not render with created-by but date element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'date',\n direction: 'desc',\n };\n await el.updateComplete;\n\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should not render with created-by but reviewdate element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'reviewdate',\n direction: 'desc',\n };\n await el.updateComplete;\n\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should not render with created-by but publicdate element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'publicdate',\n direction: 'desc',\n };\n await el.updateComplete;\n\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should render with created-by when sorting not related to date', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'addeddate',\n direction: 'asc',\n };\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(itemInfo).to.exist;\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should render with created-by when sort field id not like date', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'week',\n direction: 'asc',\n };\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(itemInfo).to.exist;\n expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort\n expect(createdBy).to.exist;\n });\n});\n"]}
@@ -1,116 +0,0 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import { ItemTile } from '../../../src/tiles/grid/item-tile';
5
-
6
- import '../../../src/tiles/grid/item-tile';
7
-
8
- describe('Item Tile', () => {
9
- it('should render initial component', async () => {
10
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
11
-
12
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
13
- const itemImage = el.shadowRoot?.querySelector('item-image');
14
- const itemTitle = el.shadowRoot?.querySelector('#title');
15
-
16
- expect(itemInfo).to.exist;
17
- expect(itemImage).to.exist;
18
- expect(itemTitle).to.exist;
19
- });
20
-
21
- it('should render with created-by element', async () => {
22
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
23
-
24
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
25
- const createdBy = el.shadowRoot?.querySelector('.created-by');
26
- const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
27
-
28
- expect(itemInfo).to.exist;
29
- expect(createdBy).to.exist;
30
- expect(dateSortedBy).to.not.exist;
31
- });
32
-
33
- it('should not render with created-by but date element', async () => {
34
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
35
-
36
- el.sortParam = {
37
- field: 'date',
38
- direction: 'desc',
39
- };
40
- await el.updateComplete;
41
-
42
- const createdBy = el.shadowRoot?.querySelector('.created-by');
43
- const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
44
-
45
- expect(createdBy).to.not.exist;
46
- expect(dateSortedBy).to.exist;
47
- });
48
-
49
- it('should not render with created-by but reviewdate element', async () => {
50
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
51
-
52
- el.sortParam = {
53
- field: 'reviewdate',
54
- direction: 'desc',
55
- };
56
- await el.updateComplete;
57
-
58
- const createdBy = el.shadowRoot?.querySelector('.created-by');
59
- const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
60
-
61
- expect(createdBy).to.not.exist;
62
- expect(dateSortedBy).to.exist;
63
- });
64
-
65
- it('should not render with created-by but publicdate element', async () => {
66
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
67
-
68
- el.sortParam = {
69
- field: 'publicdate',
70
- direction: 'desc',
71
- };
72
- await el.updateComplete;
73
-
74
- const createdBy = el.shadowRoot?.querySelector('.created-by');
75
- const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
76
-
77
- expect(createdBy).to.not.exist;
78
- expect(dateSortedBy).to.exist;
79
- });
80
-
81
- it('should render with created-by when sorting not related to date', async () => {
82
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
83
-
84
- el.sortParam = {
85
- field: 'addeddate',
86
- direction: 'asc',
87
- };
88
- await el.updateComplete;
89
-
90
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
91
- const createdBy = el.shadowRoot?.querySelector('.created-by');
92
- const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
93
-
94
- expect(itemInfo).to.exist;
95
- expect(createdBy).to.not.exist;
96
- expect(dateSortedBy).to.exist;
97
- });
98
-
99
- it('should render with created-by when sort field id not like date', async () => {
100
- const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
101
-
102
- el.sortParam = {
103
- field: 'week',
104
- direction: 'asc',
105
- };
106
- await el.updateComplete;
107
-
108
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
109
- const createdBy = el.shadowRoot?.querySelector('.created-by');
110
- const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
111
-
112
- expect(itemInfo).to.exist;
113
- expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort
114
- expect(createdBy).to.exist;
115
- });
116
- });