@teipublisher/pb-components 2.25.5 → 2.25.6

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 (128) 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 +8 -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-leaflet-map.html +1 -1
  9. package/dist/demo/pb-repeat.html +1 -3
  10. package/dist/demo/pb-view3.html +1 -1
  11. package/dist/{paper-icon-button-0fb125c4.js → paper-icon-button-72125e67.js} +1 -1
  12. package/dist/pb-code-editor.js +25 -20
  13. package/dist/pb-component-docs.js +58 -54
  14. package/dist/pb-components-bundle.js +1827 -1520
  15. package/dist/pb-edit-app.js +167 -107
  16. package/dist/pb-elements.json +54 -54
  17. package/dist/{pb-i18n-0611135a.js → pb-i18n-4cc00bfe.js} +1 -1
  18. package/dist/pb-leaflet-map.js +23 -23
  19. package/dist/pb-mei.js +56 -41
  20. package/dist/{pb-mixin-b1caa22e.js → pb-mixin-886ece32.js} +1 -1
  21. package/dist/pb-odd-editor.js +925 -758
  22. package/dist/pb-tify.js +2 -2
  23. package/dist/{vaadin-element-mixin-859a0132.js → vaadin-element-mixin-ad07ba25.js} +88 -61
  24. package/gh-pages.js +5 -3
  25. package/package.json +2 -2
  26. package/pb-elements.json +54 -54
  27. package/src/assets/components.css +5 -5
  28. package/src/authority/airtable.js +20 -21
  29. package/src/authority/anton.js +129 -129
  30. package/src/authority/custom.js +23 -21
  31. package/src/authority/geonames.js +38 -32
  32. package/src/authority/gnd.js +47 -42
  33. package/src/authority/kbga.js +137 -134
  34. package/src/authority/metagrid.js +44 -46
  35. package/src/authority/reconciliation.js +66 -67
  36. package/src/authority/registry.js +4 -4
  37. package/src/docs/pb-component-docs.js +2 -2
  38. package/src/docs/pb-component-view.js +5 -5
  39. package/src/docs/pb-components-list.js +2 -2
  40. package/src/docs/pb-demo-snippet.js +2 -2
  41. package/src/dts-client.js +299 -297
  42. package/src/dts-select-endpoint.js +90 -82
  43. package/src/parse-date-service.js +184 -135
  44. package/src/pb-ajax.js +171 -167
  45. package/src/pb-authority-lookup.js +96 -81
  46. package/src/pb-autocomplete.js +292 -280
  47. package/src/pb-blacklab-highlight.js +264 -259
  48. package/src/pb-blacklab-results.js +236 -221
  49. package/src/pb-browse-docs.js +540 -475
  50. package/src/pb-browse.js +68 -65
  51. package/src/pb-clipboard.js +79 -76
  52. package/src/pb-code-editor.js +110 -102
  53. package/src/pb-code-highlight.js +209 -204
  54. package/src/pb-codepen.js +79 -72
  55. package/src/pb-collapse.js +149 -146
  56. package/src/pb-combo-box.js +190 -190
  57. package/src/pb-components-bundle.js +1 -1
  58. package/src/pb-custom-form.js +150 -149
  59. package/src/pb-document.js +89 -90
  60. package/src/pb-download.js +208 -195
  61. package/src/pb-drawer.js +145 -148
  62. package/src/pb-edit-app.js +301 -229
  63. package/src/pb-edit-xml.js +99 -96
  64. package/src/pb-events.js +114 -107
  65. package/src/pb-facs-link.js +104 -102
  66. package/src/pb-facsimile.js +411 -413
  67. package/src/pb-formula.js +151 -153
  68. package/src/pb-geolocation.js +129 -131
  69. package/src/pb-grid-action.js +53 -56
  70. package/src/pb-grid.js +231 -228
  71. package/src/pb-highlight.js +140 -140
  72. package/src/pb-hotkeys.js +40 -42
  73. package/src/pb-i18n.js +101 -104
  74. package/src/pb-image-strip.js +84 -78
  75. package/src/pb-lang.js +83 -70
  76. package/src/pb-leaflet-map.js +488 -485
  77. package/src/pb-link.js +126 -124
  78. package/src/pb-load.js +431 -426
  79. package/src/pb-login.js +275 -254
  80. package/src/pb-manage-odds.js +364 -318
  81. package/src/pb-map-icon.js +89 -89
  82. package/src/pb-map-layer.js +85 -85
  83. package/src/pb-markdown.js +90 -99
  84. package/src/pb-media-query.js +74 -72
  85. package/src/pb-mei.js +306 -295
  86. package/src/pb-message.js +143 -130
  87. package/src/pb-mixin.js +269 -264
  88. package/src/pb-navigation.js +80 -82
  89. package/src/pb-observable.js +38 -38
  90. package/src/pb-odd-editor.js +1056 -958
  91. package/src/pb-odd-elementspec-editor.js +348 -297
  92. package/src/pb-odd-model-editor.js +1058 -898
  93. package/src/pb-odd-parameter-editor.js +200 -178
  94. package/src/pb-odd-rendition-editor.js +136 -124
  95. package/src/pb-page.js +432 -422
  96. package/src/pb-paginate.js +202 -190
  97. package/src/pb-panel.js +191 -179
  98. package/src/pb-popover-themes.js +7 -5
  99. package/src/pb-popover.js +296 -287
  100. package/src/pb-print-preview.js +127 -127
  101. package/src/pb-progress.js +49 -49
  102. package/src/pb-repeat.js +105 -104
  103. package/src/pb-restricted.js +84 -77
  104. package/src/pb-search.js +238 -221
  105. package/src/pb-select-feature.js +127 -120
  106. package/src/pb-select-odd.js +132 -124
  107. package/src/pb-select-template.js +89 -78
  108. package/src/pb-select.js +251 -227
  109. package/src/pb-split-list.js +179 -174
  110. package/src/pb-svg.js +80 -79
  111. package/src/pb-table-column.js +54 -54
  112. package/src/pb-table-grid.js +221 -203
  113. package/src/pb-tabs.js +61 -63
  114. package/src/pb-tify.js +154 -154
  115. package/src/pb-timeline.js +271 -229
  116. package/src/pb-toggle-feature.js +198 -185
  117. package/src/pb-upload.js +184 -174
  118. package/src/pb-version.js +30 -30
  119. package/src/pb-view-annotate.js +132 -98
  120. package/src/pb-view.js +1282 -1263
  121. package/src/pb-zoom.js +40 -40
  122. package/src/polymer-hack.js +1 -1
  123. package/src/search-result-service.js +256 -223
  124. package/src/seed-element.js +13 -20
  125. package/src/settings.js +4 -4
  126. package/src/theming.js +91 -91
  127. package/src/urls.js +289 -289
  128. 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);