@internetarchive/ia-book-actions 0.0.25 → 0.0.27-a1

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.
package/demo/index.html CHANGED
@@ -174,10 +174,8 @@
174
174
  document.querySelectorAll('.printDisabled input[type=checkbox]').forEach((item) => {
175
175
  item.addEventListener('click', (e) => {
176
176
  if (e.target.checked) {
177
- if (e.target.value === 'is_printdisabled') lendingStatus1.is_printdisabled = true;
178
177
  if (e.target.value === 'user_is_printdisabled') lendingStatus1.user_is_printdisabled = true;
179
178
  } else {
180
- if (e.target.value === 'is_printdisabled') lendingStatus1.is_printdisabled = false;
181
179
  if (e.target.value === 'user_is_printdisabled') lendingStatus1.user_is_printdisabled = false;
182
180
  }
183
181
 
@@ -279,7 +277,6 @@
279
277
  <label><input type="checkbox" name="user" value="isLoggedIn" />isLoggedIn</label>
280
278
  </td>
281
279
  <td class="printDisabled">
282
- <label><input type="checkbox" name="is_printdisabled" value="is_printdisabled" />is_printdisabled</label>
283
280
  <label><input type="checkbox" name="user_is_printdisabled" value="user_is_printdisabled" />user_is_printdisabled</label>
284
281
  </td>
285
282
  <td class="availableToBrowse">
@@ -0,0 +1,146 @@
1
+ <!doctype html>
2
+ <html lang="en-GB">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
7
+ <style>
8
+ html {
9
+ font-size: 10px;
10
+ /* This is to match petabox's base font size */
11
+ }
12
+ body {
13
+ margin: 0;
14
+ text-align: center;
15
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
16
+ }
17
+ #demo {
18
+ height: 50px;
19
+ }
20
+ ia-book-actions {
21
+ --white: #fff;
22
+ --black: #000;
23
+ --primaryBGColor: var(--black);
24
+ --secondaryBGColor: #222;
25
+ --tertiaryBGColor: #333;
26
+ --primaryTextColor: var(--white);
27
+ --primaryCTAFill: #194880;
28
+ --primaryCTABorder: #c5d1df;
29
+ --secondaryCTAFill: #333;
30
+ --secondaryCTABorder: #999;
31
+ --secondaryCTAFillRGB: 51, 51, 51;
32
+ --primaryErrorCTAFill: #e51c26;
33
+ --primaryErrorCTABorder: #f8c6c8;
34
+ --primaryCTAFillRGB: 25, 72, 128;
35
+ --primaryErrorCTAFillRGB: 229, 28, 38;
36
+ --primaryDisableCTAFill: #767676;
37
+ }
38
+
39
+ fieldset {
40
+ width: fit-content;
41
+ margin-top: 50px;
42
+ }
43
+ fieldset legend {
44
+ text-align: left;
45
+ font-size: 12px;
46
+ }
47
+ td {
48
+ color: white;
49
+ font-size: 14px;
50
+ border-radius: 5%;
51
+ display: table-cell;
52
+ text-align: initial;
53
+ margin: 5px 0;
54
+ width: max-content;
55
+ display: block;
56
+ }
57
+ label {
58
+ padding: 10px;
59
+ display: block;
60
+ cursor: pointer;
61
+ margin: 2px;
62
+ background: #4e545a;
63
+ border-radius: 10px;
64
+ }
65
+ input[type="radio"], input[type="checkbox"] {
66
+ margin-top: 0;
67
+ vertical-align: middle;
68
+ }
69
+
70
+ .initial td {
71
+ float: left;
72
+ margin: 2px;
73
+ }
74
+
75
+ body.modal-manager-open {
76
+ overflow: hidden;
77
+ }
78
+
79
+ modal-manager[mode='closed'] {
80
+ display: none;
81
+ }
82
+ </style>
83
+ </head>
84
+
85
+ <body>
86
+ <ia-bookreader class="focus-on-child-only" signedin="" fullscreen="">
87
+ <div slot="header">
88
+ <ia-book-actions></ia-book-actions>
89
+ </div>
90
+ <div slot="main">
91
+ <div id="BookReader"></div>
92
+ </div>
93
+ </ia-bookreader>
94
+
95
+
96
+ <script type="module">
97
+ /* eslint-disable */
98
+ import '@internetarchive/bookreader';
99
+ import '@internetarchive/bookreader/BookReader/jquery-1.10.1.js';
100
+ import '@internetarchive/bookreader/BookReader/BookReader.js';
101
+ import '../src/ia-book-actions.js';
102
+ import {
103
+ defaultLendingStatus,
104
+ canBrowseAndBorrow,
105
+ } from '../src/assets/data/lending-get-status-service.js';
106
+ import { ModalConfig } from '@internetarchive/modal-manager';
107
+
108
+ const userid = '@neeraj-archive';
109
+ const identifier = 'naturalhistoryof00unse_4111';
110
+ let bwbPurchaseUrl = 'https://www.betterworldbooks.com/product/detail/cambridge-ancient-hist-v04-0521044863';
111
+
112
+ let iaBookActions = document.querySelector('ia-book-actions');
113
+
114
+ // for debugging
115
+ window.iaBookActions = iaBookActions;
116
+
117
+ const modalConfig = new ModalConfig();
118
+ modalConfig.headerColor = '#d9534f';
119
+
120
+ let lendingBarPostInit = function lendingBarPostInit() {
121
+ setTimeout(function() {
122
+ console.log('executed', 'br.init()');
123
+ }, 100);
124
+ }
125
+
126
+ // set defaultLendingStatus for unavailable (without borrowables) book
127
+ iaBookActions.userid = userid;
128
+ iaBookActions.identifier = identifier;
129
+ iaBookActions.bookTitle = 'Contemporary Black biography. Volume 39 : profiles from the interContemporary Black biography. Volume 39';
130
+ iaBookActions.lendingStatus = canBrowseAndBorrow;
131
+ iaBookActions.bwbPurchaseUrl = '';
132
+ iaBookActions.modalConfig = modalConfig;
133
+ iaBookActions.lendingBarPostInit = lendingBarPostInit;
134
+ iaBookActions.tokenDelay = 2000; // 2 seconds
135
+ iaBookActions.returnUrl = 'https://openlibrary.org';
136
+
137
+ let lendingStatus1 = iaBookActions.lendingStatus;
138
+
139
+ const manifest = await fetch('https://ia801302.us.archive.org/BookReader/BookReaderJSIA.php?id=goody&itemPath=/29/items/goody&server=ia801302.us.archive.org&format=jsonp&subPrefix=goody&requestUri=/details/goody/mode/1up%3Fview%3Dtheater%26ui%3Dembed%26wrapper%3Dfalse');
140
+
141
+ console.log('manifest ****', manifest).then(res => res.json());
142
+ </script>
143
+
144
+ </div>
145
+ </body>
146
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@internetarchive/ia-book-actions",
3
- "version": "0.0.25",
3
+ "version": "0.0.27-a1",
4
4
  "description": "Bookreader actions for borrowable book",
5
5
  "author": "Internet Archive",
6
6
  "license": "AGPL-3.0-only",
@@ -22,7 +22,7 @@ export default class ActionsHandler extends LitElement {
22
22
  }
23
23
 
24
24
  sendEvent(eventCategory, eventAction) {
25
- window?.archive_analytics?.send_event_no_sampling(
25
+ window?.archive_analytics?.send_event(
26
26
  eventCategory,
27
27
  eventAction,
28
28
  `identifier=${this.identifier}`
@@ -146,9 +146,17 @@ export class GetLendingActions {
146
146
  }
147
147
 
148
148
  borrowPrintDisabledAction() {
149
+ const lendingStatus = this.lendingStatus || {};
150
+ const browsingHasExpired =
151
+ !lendingStatus.available_to_browse && lendingStatus.browsingExpired;
152
+
153
+ // one hour borrow config
154
+ const oneHrBorrow = browsingHasExpired
155
+ ? this.actionsConfig.browseAgainConfig()
156
+ : this.actionsConfig.firstBrowseConfig();
149
157
  return {
150
158
  primaryTitle: bookTitles.eligible_pd,
151
- primaryActions: [this.actionsConfig.borrowBookConfig()],
159
+ primaryActions: [oneHrBorrow, this.actionsConfig.borrowBookConfig()],
152
160
  primaryColor: 'primary',
153
161
  secondaryActions: [
154
162
  this.actionsConfig.adminAccessConfig(),
@@ -401,8 +409,7 @@ export class GetLendingActions {
401
409
  const notBorrowable =
402
410
  !lendingStatus.available_to_borrow && !lendingStatus.available_to_browse;
403
411
 
404
- const userCanAccessPrintDisabled =
405
- lendingStatus.is_printdisabled && lendingStatus.user_is_printdisabled;
412
+ const userCanAccessPrintDisabled = lendingStatus.user_is_printdisabled;
406
413
 
407
414
  const canBorrow =
408
415
  (lendingStatus.available_to_browse ||
@@ -70,7 +70,7 @@ export class LoanTokenPoller {
70
70
  }
71
71
 
72
72
  sendEvent(eventCategory, eventAction) {
73
- window?.archive_analytics?.send_event_no_sampling(
73
+ window?.archive_analytics?.send_event(
74
74
  eventCategory,
75
75
  eventAction,
76
76
  `identifier=${this.identifier}`