@teipublisher/pb-components 2.25.5 → 2.25.7

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 (130) hide show
  1. package/.github/workflows/main.yml +3 -3
  2. package/.github/workflows/node.js.yml +3 -3
  3. package/.github/workflows/release.js.yml +3 -3
  4. package/CHANGELOG.md +15 -0
  5. package/Dockerfile +78 -70
  6. package/css/components.css +5 -5
  7. package/dist/demo/pb-drawer2.html +1 -1
  8. package/dist/demo/pb-facsimile.html +2 -2
  9. package/dist/demo/pb-leaflet-map.html +1 -1
  10. package/dist/demo/pb-repeat.html +1 -3
  11. package/dist/demo/pb-view3.html +1 -1
  12. package/dist/{paper-icon-button-0fb125c4.js → paper-icon-button-72125e67.js} +1 -1
  13. package/dist/pb-code-editor.js +25 -20
  14. package/dist/pb-component-docs.js +58 -54
  15. package/dist/pb-components-bundle.js +1827 -1520
  16. package/dist/pb-edit-app.js +167 -107
  17. package/dist/pb-elements.json +54 -54
  18. package/dist/{pb-i18n-0611135a.js → pb-i18n-4cc00bfe.js} +1 -1
  19. package/dist/pb-leaflet-map.js +23 -23
  20. package/dist/pb-mei.js +56 -41
  21. package/dist/{pb-mixin-b1caa22e.js → pb-mixin-886ece32.js} +1 -1
  22. package/dist/pb-odd-editor.js +925 -758
  23. package/dist/pb-tify.js +2 -2
  24. package/dist/{vaadin-element-mixin-859a0132.js → vaadin-element-mixin-ad07ba25.js} +88 -61
  25. package/gh-pages.js +5 -3
  26. package/lib/openseadragon.min.js +6 -6
  27. package/package.json +3 -2
  28. package/pb-elements.json +54 -54
  29. package/src/assets/components.css +5 -5
  30. package/src/authority/airtable.js +20 -21
  31. package/src/authority/anton.js +129 -129
  32. package/src/authority/custom.js +23 -21
  33. package/src/authority/geonames.js +38 -32
  34. package/src/authority/gnd.js +47 -42
  35. package/src/authority/kbga.js +137 -134
  36. package/src/authority/metagrid.js +44 -46
  37. package/src/authority/reconciliation.js +66 -67
  38. package/src/authority/registry.js +4 -4
  39. package/src/docs/pb-component-docs.js +2 -2
  40. package/src/docs/pb-component-view.js +5 -5
  41. package/src/docs/pb-components-list.js +2 -2
  42. package/src/docs/pb-demo-snippet.js +2 -2
  43. package/src/dts-client.js +299 -297
  44. package/src/dts-select-endpoint.js +90 -82
  45. package/src/parse-date-service.js +184 -135
  46. package/src/pb-ajax.js +171 -167
  47. package/src/pb-authority-lookup.js +96 -81
  48. package/src/pb-autocomplete.js +292 -280
  49. package/src/pb-blacklab-highlight.js +264 -259
  50. package/src/pb-blacklab-results.js +236 -221
  51. package/src/pb-browse-docs.js +540 -475
  52. package/src/pb-browse.js +68 -65
  53. package/src/pb-clipboard.js +79 -76
  54. package/src/pb-code-editor.js +110 -102
  55. package/src/pb-code-highlight.js +209 -204
  56. package/src/pb-codepen.js +79 -72
  57. package/src/pb-collapse.js +149 -146
  58. package/src/pb-combo-box.js +190 -190
  59. package/src/pb-components-bundle.js +1 -1
  60. package/src/pb-custom-form.js +150 -149
  61. package/src/pb-document.js +89 -90
  62. package/src/pb-download.js +208 -195
  63. package/src/pb-drawer.js +145 -148
  64. package/src/pb-edit-app.js +301 -229
  65. package/src/pb-edit-xml.js +99 -96
  66. package/src/pb-events.js +114 -107
  67. package/src/pb-facs-link.js +104 -102
  68. package/src/pb-facsimile.js +444 -410
  69. package/src/pb-formula.js +151 -153
  70. package/src/pb-geolocation.js +129 -131
  71. package/src/pb-grid-action.js +53 -56
  72. package/src/pb-grid.js +231 -228
  73. package/src/pb-highlight.js +140 -140
  74. package/src/pb-hotkeys.js +40 -42
  75. package/src/pb-i18n.js +101 -104
  76. package/src/pb-image-strip.js +84 -78
  77. package/src/pb-lang.js +83 -70
  78. package/src/pb-leaflet-map.js +488 -485
  79. package/src/pb-link.js +126 -124
  80. package/src/pb-load.js +431 -426
  81. package/src/pb-login.js +275 -254
  82. package/src/pb-manage-odds.js +364 -318
  83. package/src/pb-map-icon.js +89 -89
  84. package/src/pb-map-layer.js +85 -85
  85. package/src/pb-markdown.js +90 -99
  86. package/src/pb-media-query.js +74 -72
  87. package/src/pb-mei.js +306 -295
  88. package/src/pb-message.js +143 -130
  89. package/src/pb-mixin.js +269 -264
  90. package/src/pb-navigation.js +80 -82
  91. package/src/pb-observable.js +38 -38
  92. package/src/pb-odd-editor.js +1056 -958
  93. package/src/pb-odd-elementspec-editor.js +348 -297
  94. package/src/pb-odd-model-editor.js +1058 -898
  95. package/src/pb-odd-parameter-editor.js +200 -178
  96. package/src/pb-odd-rendition-editor.js +136 -124
  97. package/src/pb-page.js +432 -422
  98. package/src/pb-paginate.js +202 -190
  99. package/src/pb-panel.js +191 -179
  100. package/src/pb-popover-themes.js +7 -5
  101. package/src/pb-popover.js +296 -287
  102. package/src/pb-print-preview.js +127 -127
  103. package/src/pb-progress.js +49 -49
  104. package/src/pb-repeat.js +105 -104
  105. package/src/pb-restricted.js +84 -77
  106. package/src/pb-search.js +238 -221
  107. package/src/pb-select-feature.js +127 -120
  108. package/src/pb-select-odd.js +132 -124
  109. package/src/pb-select-template.js +89 -78
  110. package/src/pb-select.js +251 -227
  111. package/src/pb-split-list.js +179 -174
  112. package/src/pb-svg.js +80 -79
  113. package/src/pb-table-column.js +54 -54
  114. package/src/pb-table-grid.js +221 -203
  115. package/src/pb-tabs.js +61 -63
  116. package/src/pb-tify.js +154 -154
  117. package/src/pb-timeline.js +271 -229
  118. package/src/pb-toggle-feature.js +198 -185
  119. package/src/pb-upload.js +184 -174
  120. package/src/pb-version.js +30 -30
  121. package/src/pb-view-annotate.js +132 -98
  122. package/src/pb-view.js +1282 -1263
  123. package/src/pb-zoom.js +40 -40
  124. package/src/polymer-hack.js +1 -1
  125. package/src/search-result-service.js +256 -223
  126. package/src/seed-element.js +13 -20
  127. package/src/settings.js +4 -4
  128. package/src/theming.js +91 -91
  129. package/src/urls.js +289 -289
  130. package/src/utils.js +53 -51
package/src/pb-ajax.js CHANGED
@@ -3,7 +3,7 @@ import '@polymer/iron-ajax';
3
3
  import '@polymer/paper-dialog';
4
4
  import '@polymer/paper-dialog-scrollable';
5
5
  import { pbMixin } from './pb-mixin.js';
6
- import { get as i18n } from "./pb-i18n.js";
6
+ import { get as i18n } from './pb-i18n.js';
7
7
  import './pb-message.js';
8
8
 
9
9
  /**
@@ -23,180 +23,184 @@ import './pb-message.js';
23
23
 
24
24
  */
25
25
  export class PbAjax extends pbMixin(LitElement) {
26
- static get properties() {
27
- return {
28
- ...super.properties,
29
- /**
30
- * the URL to send a request to
31
- */
32
- url: {
33
- type: String
34
- },
35
- /**
36
- * Title of link that triggers the request
37
- */
38
- title: {
39
- type: String
40
- },
41
- /**
42
- * HTTP method to use, e.g. 'get', 'post', 'delete' ...
43
- */
44
- method: {
45
- type: String
46
- },
47
- /**
48
- * If set, emits an event with the given name to the channel
49
- * this component is subscribed to.
50
- */
51
- event: {
52
- type: String
53
- },
54
- /**
55
- * If set, display a confirmation dialog with the message text given in
56
- * this property. The user may cancel the action.
57
- */
58
- confirm: {
59
- type: String
60
- },
61
- /**
62
- * Set to not show the server's response
63
- */
64
- quiet: {
65
- type: Boolean
66
- },
67
- _message: {
68
- type: String
69
- }
70
- };
26
+ static get properties() {
27
+ return {
28
+ ...super.properties,
29
+ /**
30
+ * the URL to send a request to
31
+ */
32
+ url: {
33
+ type: String,
34
+ },
35
+ /**
36
+ * Title of link that triggers the request
37
+ */
38
+ title: {
39
+ type: String,
40
+ },
41
+ /**
42
+ * HTTP method to use, e.g. 'get', 'post', 'delete' ...
43
+ */
44
+ method: {
45
+ type: String,
46
+ },
47
+ /**
48
+ * If set, emits an event with the given name to the channel
49
+ * this component is subscribed to.
50
+ */
51
+ event: {
52
+ type: String,
53
+ },
54
+ /**
55
+ * If set, display a confirmation dialog with the message text given in
56
+ * this property. The user may cancel the action.
57
+ */
58
+ confirm: {
59
+ type: String,
60
+ },
61
+ /**
62
+ * Set to not show the server's response
63
+ */
64
+ quiet: {
65
+ type: Boolean,
66
+ },
67
+ _message: {
68
+ type: String,
69
+ },
70
+ };
71
+ }
72
+
73
+ constructor() {
74
+ super();
75
+ this.method = 'get';
76
+ this.confirm = null;
77
+ this.quiet = false;
78
+ }
79
+
80
+ connectedCallback() {
81
+ super.connectedCallback();
82
+ this.subscribeTo('pb-update', this._onUpdate.bind(this));
83
+ }
84
+
85
+ render() {
86
+ return html`
87
+ <a id="button" @click="${this._handleClick}" title="${this.title}"><slot></slot></a>
88
+ <iron-ajax
89
+ id="loadContent"
90
+ verbose
91
+ handle-as="text"
92
+ method="${this.method}"
93
+ with-credentials
94
+ @error="${this._handleError}"
95
+ @response="${this._handleResponse}"
96
+ ></iron-ajax>
97
+ <pb-message id="confirmDialog"></pb-message>
98
+ <slot name="title" style="display: none"></slot>
99
+ <progress id="progress" max="100"></progress>
100
+ `;
101
+ }
102
+
103
+ firstUpdated() {
104
+ super.firstUpdated();
105
+ const slot = this.shadowRoot.querySelector('slot[name=title]');
106
+ this._dialogTitle = '';
107
+ slot.assignedNodes().forEach(node => {
108
+ this._dialogTitle += node.innerHTML;
109
+ });
110
+ this.button = this.querySelector('paper-button');
111
+ this.progress = this.shadowRoot.querySelector('progress');
112
+ }
113
+
114
+ static get styles() {
115
+ return css`
116
+ :host {
117
+ display: block;
118
+ }
119
+ slot[name='title'] {
120
+ margin: 0;
121
+ }
122
+ progress {
123
+ width: 100%;
124
+ display: none;
125
+ }
126
+ progress.running {
127
+ display: block;
128
+ }
129
+ `;
130
+ }
131
+
132
+ _handleClick(ev) {
133
+ ev.preventDefault();
134
+ if (this.confirm) {
135
+ const dialog = this.shadowRoot.getElementById('confirmDialog');
136
+ dialog
137
+ .confirm(this._dialogTitle, i18n(this.confirm))
138
+ .then(() => this.trigger())
139
+ .catch(() => console.log('<pb-ajax> Action cancelled'));
140
+ } else {
141
+ this.trigger();
71
142
  }
72
-
73
- constructor() {
74
- super();
75
- this.method = 'get';
76
- this.confirm = null;
77
- this.quiet = false;
78
- }
79
-
80
- connectedCallback() {
81
- super.connectedCallback();
82
- this.subscribeTo('pb-update', this._onUpdate.bind(this));
83
- }
84
-
85
- render() {
86
- return html`
87
- <a id="button" @click="${this._handleClick}" title="${this.title}"><slot></slot></a>
88
- <iron-ajax
89
- id="loadContent"
90
- verbose
91
- handle-as="text"
92
- method="${this.method}"
93
- with-credentials
94
- @error="${this._handleError}"
95
- @response="${this._handleResponse}"></iron-ajax>
96
- <pb-message id="confirmDialog"></pb-message>
97
- <slot name="title" style="display: none"></slot>
98
- <progress id="progress" max="100"></progress>
99
- `;
100
- }
101
-
102
- firstUpdated() {
103
- super.firstUpdated();
104
- const slot = this.shadowRoot.querySelector('slot[name=title]');
105
- this._dialogTitle = '';
106
- slot.assignedNodes().forEach(node => {this._dialogTitle += node.innerHTML});
107
- this.button = this.querySelector('paper-button');
108
- this.progress = this.shadowRoot.querySelector('progress');
109
- }
110
-
111
- static get styles() {
112
- return css`
113
- :host {
114
- display: block;
115
- }
116
- slot[name="title"] {
117
- margin: 0;
118
- }
119
- progress{
120
- width: 100%;
121
- display: none;
122
- }
123
- progress.running{
124
- display: block;
125
- }
126
- `;
143
+ }
144
+
145
+ async trigger() {
146
+ this._disable();
147
+ const loader = this.shadowRoot.getElementById('loadContent');
148
+ loader.url = `${this.getEndpoint()}/${this.url}`;
149
+ this.emitTo('pb-start-update');
150
+ await this.shadowRoot.getElementById('loadContent').generateRequest();
151
+ }
152
+
153
+ _enable() {
154
+ if (this.button) {
155
+ this.button.removeAttribute('disabled');
156
+ this.button.removeAttribute('readonly');
157
+ this.progress.classList.remove('running');
127
158
  }
159
+ }
128
160
 
129
- _handleClick(ev) {
130
- ev.preventDefault();
131
- if (this.confirm) {
132
- const dialog = this.shadowRoot.getElementById('confirmDialog');
133
- dialog.confirm(this._dialogTitle, i18n(this.confirm))
134
- .then(() => this.trigger())
135
- .catch(() => console.log('<pb-ajax> Action cancelled'));
136
- } else {
137
- this.trigger();
138
- }
161
+ _disable() {
162
+ if (this.button) {
163
+ this.button.setAttribute('disabled', 'disabled');
164
+ this.button.setAttribute('readonly', 'readonly');
165
+ this.progress.classList.add('running');
139
166
  }
140
-
141
- async trigger() {
142
- this._disable();
143
- const loader = this.shadowRoot.getElementById('loadContent');
144
- loader.url = `${this.getEndpoint()}/${this.url}`;
145
- this.emitTo('pb-start-update');
146
- await this.shadowRoot.getElementById('loadContent').generateRequest();
147
- }
148
-
149
- _enable(){
150
- if(this.button){
151
- this.button.removeAttribute('disabled');
152
- this.button.removeAttribute('readonly');
153
- this.progress.classList.remove('running');
154
- }
167
+ }
168
+
169
+ _handleResponse() {
170
+ this._enable();
171
+ const resp = this.shadowRoot.getElementById('loadContent').lastResponse;
172
+ this._message = resp;
173
+ if (!this.quiet) {
174
+ const dialog = this.shadowRoot.getElementById('confirmDialog');
175
+ dialog.show(this._dialogTitle, this._message);
155
176
  }
156
- _disable(){
157
- if(this.button){
158
- this.button.setAttribute('disabled','disabled');
159
- this.button.setAttribute('readonly','readonly');
160
- this.progress.classList.add('running');
161
- }
162
- }
163
-
164
177
 
165
- _handleResponse() {
166
- this._enable();
167
- const resp = this.shadowRoot.getElementById('loadContent').lastResponse;
168
- this._message = resp;
169
- if (!this.quiet) {
170
- const dialog = this.shadowRoot.getElementById('confirmDialog');
171
- dialog.show(this._dialogTitle, this._message);
172
- }
178
+ this.emitTo('pb-end-update');
173
179
 
174
- this.emitTo('pb-end-update');
175
-
176
- if (this.event) {
177
- this.emitTo(this.event);
178
- }
179
- }
180
-
181
- _handleError() {
182
- this._enable();
183
- const loader = this.shadowRoot.getElementById('loadContent');
184
- const msg = loader.lastError.response;
185
- const parser = new DOMParser();
186
- const doc = parser.parseFromString(msg, "application/xml");
187
- const node = doc.querySelector('message');
188
- if (node) {
189
- this._message = node.textContent;
190
- } else {
191
- this._message = msg;
192
- }
193
- const dialog = this.shadowRoot.getElementById('confirmDialog');
194
- dialog.show(i18n('dialogs.error'), this._message);
195
- this.emitTo('pb-end-update');
180
+ if (this.event) {
181
+ this.emitTo(this.event);
196
182
  }
197
-
198
- _onUpdate(ev) {
199
- this.shadowRoot.getElementById('loadContent').params = ev.detail.params;
183
+ }
184
+
185
+ _handleError() {
186
+ this._enable();
187
+ const loader = this.shadowRoot.getElementById('loadContent');
188
+ const msg = loader.lastError.response;
189
+ const parser = new DOMParser();
190
+ const doc = parser.parseFromString(msg, 'application/xml');
191
+ const node = doc.querySelector('message');
192
+ if (node) {
193
+ this._message = node.textContent;
194
+ } else {
195
+ this._message = msg;
200
196
  }
197
+ const dialog = this.shadowRoot.getElementById('confirmDialog');
198
+ dialog.show(i18n('dialogs.error'), this._message);
199
+ this.emitTo('pb-end-update');
200
+ }
201
+
202
+ _onUpdate(ev) {
203
+ this.shadowRoot.getElementById('loadContent').params = ev.detail.params;
204
+ }
201
205
  }
202
206
  customElements.define('pb-ajax', PbAjax);