@teipublisher/pb-components 2.26.1-next.3 → 3.0.0
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/.github/workflows/main.yml +3 -3
- package/.github/workflows/node.js.yml +3 -3
- package/.github/workflows/release.js.yml +4 -4
- package/.releaserc.json +2 -2
- package/CHANGELOG.md +262 -11
- package/Dockerfile +78 -70
- package/css/components.css +5 -5
- package/css/leaflet/images/layers.png +0 -0
- package/dist/demo/components.css +46 -1
- package/dist/demo/pb-browse-docs2.html +1 -1
- package/dist/demo/pb-dialog.html +3 -5
- package/dist/demo/pb-drawer2.html +1 -1
- package/dist/demo/pb-facsimile.html +2 -2
- package/dist/demo/pb-grid.html +19 -6
- package/dist/demo/pb-leaflet-map.html +1 -1
- package/dist/demo/pb-login.html +0 -2
- package/dist/demo/pb-message.html +1 -2
- package/dist/demo/pb-progress.html +2 -2
- package/dist/demo/pb-repeat.html +1 -3
- package/dist/demo/pb-search.html +7 -4
- package/dist/demo/pb-search3.html +1 -1
- package/dist/demo/pb-search4.html +2 -2
- package/dist/demo/pb-view3.html +1 -1
- package/dist/{iron-form-3b8dcaa7.js → iron-form-dfb3e3b1.js} +95 -95
- package/dist/paper-checkbox-645e1077.js +200 -0
- package/dist/{paper-icon-button-b1d31571.js → paper-icon-button-984162bd.js} +1 -1
- package/dist/{paper-checkbox-515a5284.js → paper-inky-focus-behavior-fa16796b.js} +58 -247
- package/dist/{paper-listbox-a3b7175c.js → paper-listbox-5f5d1cec.js} +152 -162
- package/dist/pb-code-editor.js +25 -20
- package/dist/pb-component-docs.js +68 -64
- package/dist/pb-components-bundle.js +1983 -2293
- package/dist/pb-edit-app.js +167 -107
- package/dist/pb-elements.json +176 -120
- package/dist/{pb-i18n-0611135a.js → pb-i18n-4cc00bfe.js} +1 -1
- package/dist/pb-leaflet-map.js +23 -23
- package/dist/pb-mei.js +56 -41
- package/dist/{pb-mixin-b1caa22e.js → pb-mixin-886ece32.js} +1 -1
- package/dist/pb-odd-editor.js +1023 -782
- package/dist/pb-tify.js +2 -2
- package/dist/vaadin-element-mixin-beb74ffd.js +545 -0
- package/gh-pages.js +5 -3
- package/i18n/common/en.json +6 -0
- package/i18n/common/pl.json +2 -2
- package/lib/openseadragon.min.js +6 -6
- package/package.json +3 -3
- package/pb-elements.json +176 -120
- package/src/assets/components.css +5 -5
- package/src/authority/airtable.js +20 -21
- package/src/authority/anton.js +129 -129
- package/src/authority/custom.js +23 -21
- package/src/authority/geonames.js +38 -32
- package/src/authority/gnd.js +50 -42
- package/src/authority/kbga.js +137 -134
- package/src/authority/metagrid.js +44 -46
- package/src/authority/reconciliation.js +66 -67
- package/src/authority/registry.js +4 -4
- package/src/docs/pb-component-docs.js +2 -2
- package/src/docs/pb-component-view.js +5 -5
- package/src/docs/pb-components-list.js +2 -2
- package/src/docs/pb-demo-snippet.js +2 -2
- package/src/dts-client.js +299 -297
- package/src/dts-select-endpoint.js +90 -82
- package/src/parse-date-service.js +184 -135
- package/src/pb-ajax.js +158 -171
- package/src/pb-authority-lookup.js +191 -156
- package/src/pb-autocomplete.js +292 -280
- package/src/pb-blacklab-highlight.js +264 -259
- package/src/pb-blacklab-results.js +236 -221
- package/src/pb-browse-docs.js +540 -475
- package/src/pb-browse.js +68 -65
- package/src/pb-clipboard.js +79 -76
- package/src/pb-code-editor.js +110 -102
- package/src/pb-code-highlight.js +209 -204
- package/src/pb-codepen.js +79 -72
- package/src/pb-collapse.js +211 -151
- package/src/pb-combo-box.js +190 -190
- package/src/pb-components-bundle.js +1 -1
- package/src/pb-components.js +1 -0
- package/src/pb-custom-form.js +173 -153
- package/src/pb-dialog.js +98 -62
- package/src/pb-document.js +89 -90
- package/src/pb-download.js +212 -196
- package/src/pb-drawer.js +145 -148
- package/src/pb-edit-app.js +301 -229
- package/src/pb-edit-xml.js +100 -97
- package/src/pb-events.js +114 -107
- package/src/pb-facs-link.js +104 -102
- package/src/pb-facsimile.js +474 -410
- package/src/pb-formula.js +151 -153
- package/src/pb-geolocation.js +129 -131
- package/src/pb-grid-action.js +53 -56
- package/src/pb-grid.js +231 -228
- package/src/pb-highlight.js +140 -140
- package/src/pb-hotkeys.js +40 -42
- package/src/pb-i18n.js +101 -104
- package/src/pb-image-strip.js +84 -78
- package/src/pb-lang.js +142 -57
- package/src/pb-leaflet-map.js +488 -485
- package/src/pb-link.js +126 -124
- package/src/pb-load.js +431 -429
- package/src/pb-login.js +299 -244
- package/src/pb-manage-odds.js +352 -336
- package/src/pb-map-icon.js +89 -89
- package/src/pb-map-layer.js +85 -85
- package/src/pb-markdown.js +90 -99
- package/src/pb-media-query.js +74 -72
- package/src/pb-mei.js +306 -295
- package/src/pb-message.js +139 -97
- package/src/pb-mixin.js +269 -264
- package/src/pb-navigation.js +80 -95
- package/src/pb-observable.js +38 -38
- package/src/pb-odd-editor.js +1054 -958
- package/src/pb-odd-elementspec-editor.js +349 -298
- package/src/pb-odd-model-editor.js +1075 -909
- package/src/pb-odd-parameter-editor.js +200 -178
- package/src/pb-odd-rendition-editor.js +136 -124
- package/src/pb-page.js +431 -422
- package/src/pb-paginate.js +228 -179
- package/src/pb-panel.js +198 -182
- package/src/pb-popover-themes.js +15 -8
- package/src/pb-popover.js +296 -287
- package/src/pb-print-preview.js +127 -127
- package/src/pb-progress.js +51 -51
- package/src/pb-repeat.js +105 -104
- package/src/pb-restricted.js +84 -77
- package/src/pb-search.js +256 -228
- package/src/pb-select-feature.js +127 -120
- package/src/pb-select-odd.js +132 -124
- package/src/pb-select-template.js +89 -78
- package/src/pb-select.js +251 -227
- package/src/pb-split-list.js +179 -174
- package/src/pb-svg.js +80 -79
- package/src/pb-table-column.js +54 -54
- package/src/pb-table-grid.js +221 -203
- package/src/pb-tabs.js +61 -63
- package/src/pb-tify.js +154 -154
- package/src/pb-timeline.js +382 -249
- package/src/pb-toggle-feature.js +195 -187
- package/src/pb-upload.js +184 -174
- package/src/pb-version.js +30 -30
- package/src/pb-view-annotate.js +135 -98
- package/src/pb-view.js +1282 -1270
- package/src/pb-zoom.js +127 -45
- package/src/polymer-hack.js +1 -1
- package/src/search-result-service.js +256 -223
- package/src/seed-element.js +13 -20
- package/src/settings.js +4 -4
- package/src/theming.js +98 -91
- package/src/urls.js +289 -289
- package/src/utils.js +53 -51
- package/css/pb-styles.css +0 -51
- package/dist/vaadin-element-mixin-fe4a4883.js +0 -527
- package/src/assets/pb-styles.css +0 -51
- package/src/pb-light-dom.js +0 -41
package/src/pb-message.js
CHANGED
|
@@ -1,120 +1,162 @@
|
|
|
1
|
-
import { LitElement, html } from 'lit-element';
|
|
1
|
+
import { LitElement, html, css } from 'lit-element';
|
|
2
2
|
import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
|
|
3
|
-
import { translate } from
|
|
4
|
-
import { pbLightDom } from './pb-light-dom.js';
|
|
3
|
+
import { translate } from './pb-i18n.js';
|
|
5
4
|
import './pb-dialog.js';
|
|
5
|
+
import { themableMixin } from './theming.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Show a dialog with buttons. Used by ODD editor.
|
|
9
9
|
*/
|
|
10
|
-
export class PbMessage extends
|
|
10
|
+
export class PbMessage extends themableMixin(LitElement) {
|
|
11
|
+
static get styles() {
|
|
12
|
+
return css`
|
|
13
|
+
:host {
|
|
14
|
+
display: block;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
}
|
|
11
18
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
19
|
+
static get properties() {
|
|
20
|
+
return {
|
|
21
|
+
/**
|
|
22
|
+
* the dialog box title
|
|
23
|
+
*/
|
|
24
|
+
title: {
|
|
25
|
+
type: String,
|
|
26
|
+
reflect: true,
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* type of message. Can be either 'message' or 'confirm'. In case of confirm the buttons 'yes' and 'no'
|
|
30
|
+
* will be shown and the dialog becomes modal.
|
|
31
|
+
*/
|
|
32
|
+
type: {
|
|
33
|
+
type: String,
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* main message text to be shown on dialog.
|
|
37
|
+
*/
|
|
38
|
+
message: {
|
|
39
|
+
type: String,
|
|
40
|
+
reflect: true,
|
|
41
|
+
},
|
|
42
|
+
open: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
reflect: true,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
37
48
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
constructor() {
|
|
50
|
+
super();
|
|
51
|
+
this.title = '';
|
|
52
|
+
this.message = '';
|
|
53
|
+
this.type = 'message'; // defaults to 'message'
|
|
54
|
+
this.open = false;
|
|
55
|
+
}
|
|
44
56
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
render() {
|
|
58
|
+
return html`
|
|
59
|
+
<pb-dialog>
|
|
60
|
+
<h2 id="title" slot="title">${unsafeHTML(this.title)}</h2>
|
|
61
|
+
<div id="message" class="message" tabindex="0">
|
|
62
|
+
${this.message ? unsafeHTML(this.message) : html`<slot></slot>`}
|
|
63
|
+
</div>
|
|
50
64
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
<div class="buttons" slot="footer">
|
|
66
|
+
${this.isMessage()
|
|
67
|
+
? html`<button class="close" autofocus="autofocus">
|
|
68
|
+
${translate('dialogs.close')}
|
|
69
|
+
</button>`
|
|
70
|
+
: html`
|
|
71
|
+
<button class="confirm" autofocus="autofocus">${translate('dialogs.yes')}</button>
|
|
72
|
+
<button class="reject" autofocus="autofocus">${translate('dialogs.no')}</button>
|
|
73
|
+
`}
|
|
74
|
+
</div>
|
|
75
|
+
</pb-dialog>
|
|
76
|
+
`;
|
|
77
|
+
}
|
|
57
78
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
79
|
+
firstUpdated() {
|
|
80
|
+
// this.shadowRoot.getElementById('modal').open();
|
|
81
|
+
this.modal = this.renderRoot.querySelector('pb-dialog');
|
|
82
|
+
}
|
|
61
83
|
|
|
62
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Open a modal dialog to display a message to the user.
|
|
86
|
+
*
|
|
87
|
+
* @param {string} title The title of the dialog
|
|
88
|
+
* @param {string} message The message to display in the dialog body
|
|
89
|
+
*/
|
|
90
|
+
show(title, message) {
|
|
91
|
+
this.type = 'message';
|
|
92
|
+
this.set(title, message);
|
|
93
|
+
this.open = true;
|
|
94
|
+
this.modal.openDialog();
|
|
63
95
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
96
|
+
return new Promise((resolve, reject) => {
|
|
97
|
+
// Wait for the next render cycle to ensure elements are available
|
|
98
|
+
requestAnimationFrame(() => {
|
|
99
|
+
const close = this.renderRoot.querySelector('.close');
|
|
100
|
+
close.addEventListener('click', () => {
|
|
101
|
+
this.open = false;
|
|
102
|
+
this.modal.closeDialog();
|
|
103
|
+
resolve({ once: true });
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Open a modal dialog to prompt the user for confirmation.
|
|
111
|
+
* Returns a promise which will be resolved upon confirmation
|
|
112
|
+
* and rejected otherwise.
|
|
113
|
+
*
|
|
114
|
+
* @param {string} title The title of the dialog
|
|
115
|
+
* @param {string} message The message to display in the dialog body
|
|
116
|
+
* @returns {Promise} promise which will be resolved upon confirmation and rejected otherwise
|
|
117
|
+
*/
|
|
118
|
+
confirm(title, message) {
|
|
119
|
+
this.type = 'confirm';
|
|
120
|
+
this.set(title, message);
|
|
121
|
+
this.open = true;
|
|
122
|
+
this.modal.openDialog();
|
|
75
123
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
* and rejected otherwise.
|
|
80
|
-
*
|
|
81
|
-
* @param {string} title The title of the dialog
|
|
82
|
-
* @param {string} message The message to display in the dialog body
|
|
83
|
-
* @returns {Promise} promise which will be resolved upon confirmation and rejected otherwise
|
|
84
|
-
*/
|
|
85
|
-
confirm(title, message) {
|
|
86
|
-
this.type = 'confirm';
|
|
87
|
-
this.set(`<h1>${title}</h1>`, `<p>${message}</p>`);
|
|
88
|
-
this.modal.openDialog();
|
|
124
|
+
return new Promise((resolve, reject) => {
|
|
125
|
+
// Wait for the next render cycle to ensure elements are available
|
|
126
|
+
requestAnimationFrame(() => {
|
|
89
127
|
const confirm = this.renderRoot.querySelector('.confirm');
|
|
90
128
|
const cancel = this.renderRoot.querySelector('.reject');
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
129
|
+
confirm.addEventListener('click', () => {
|
|
130
|
+
this.open = false;
|
|
131
|
+
this.modal.closeDialog();
|
|
132
|
+
resolve({ once: true });
|
|
94
133
|
});
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (message) {
|
|
104
|
-
this.message = message;
|
|
105
|
-
this.modal.message = this.message;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
isMessage() {
|
|
111
|
-
return this.type === 'message'
|
|
112
|
-
}
|
|
134
|
+
cancel.addEventListener('click', () => {
|
|
135
|
+
this.open = false;
|
|
136
|
+
this.modal.closeDialog();
|
|
137
|
+
reject({ once: true });
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
113
142
|
|
|
114
|
-
|
|
115
|
-
|
|
143
|
+
set(title, message) {
|
|
144
|
+
if (title || message) {
|
|
145
|
+
if (title) {
|
|
146
|
+
this.title = title;
|
|
147
|
+
}
|
|
148
|
+
if (message) {
|
|
149
|
+
this.message = message;
|
|
150
|
+
}
|
|
116
151
|
}
|
|
152
|
+
}
|
|
117
153
|
|
|
154
|
+
isMessage() {
|
|
155
|
+
return this.type === 'message';
|
|
156
|
+
}
|
|
118
157
|
|
|
158
|
+
isConfirm() {
|
|
159
|
+
return this.type === 'confirm';
|
|
160
|
+
}
|
|
119
161
|
}
|
|
120
162
|
customElements.define('pb-message', PbMessage);
|