@teipublisher/pb-components 2.26.1-next.2 → 3.0.0-next-4.1
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/docker-cypress.yml +54 -0
- package/.github/workflows/main.yml +6 -4
- package/.github/workflows/node.js.yml +56 -21
- package/.github/workflows/release.js.yml +19 -17
- package/.releaserc.json +1 -1
- package/CHANGELOG.md +351 -9
- package/Dockerfile +78 -70
- package/README.md +112 -4
- package/css/components.css +5 -5
- package/css/gridjs/mermaid.min.css +1 -1
- package/css/leaflet/Control.Geocoder.css +1 -126
- package/css/leaflet/images/layers.png +0 -0
- package/css/tify/tify.css +6 -5
- package/css/tom-select/tom-select.bootstrap4.min.css +1 -1
- package/css/tom-select/tom-select.bootstrap5.min.css +1 -1
- package/css/tom-select/tom-select.default.min.css +1 -1
- package/css/tom-select/tom-select.default.min.css.map +1 -0
- package/css/tom-select/tom-select.min.css +1 -1
- package/cypress.config.js +84 -0
- package/dist/api.html +1 -1
- package/dist/css/design-system.css +607 -0
- package/dist/demo/bundle-test.html +4 -3
- package/dist/demo/components.css +46 -1
- package/dist/demo/design-system.html +710 -0
- package/dist/demo/dts-client.html +2 -2
- package/dist/demo/pb-autocomplete.html +23 -11
- package/dist/demo/pb-autocomplete2.html +66 -55
- package/dist/demo/pb-autocomplete3.html +17 -8
- package/dist/demo/pb-blacklab-highlight.html +28 -11
- package/dist/demo/pb-blacklab-results.html +3 -2
- package/dist/demo/pb-browse-docs.html +24 -24
- package/dist/demo/pb-browse-docs2.html +3 -3
- package/dist/demo/pb-clipboard.html +32 -28
- package/dist/demo/pb-code-editor.html +6 -6
- package/dist/demo/pb-code-highlight.html +63 -63
- package/dist/demo/pb-codepen.html +1 -1
- package/dist/demo/pb-collapse.html +1 -1
- package/dist/demo/pb-collapse2.html +2 -2
- package/dist/demo/pb-combo-box.html +135 -130
- package/dist/demo/pb-custom-form.html +64 -55
- package/dist/demo/pb-dialog.html +12 -6
- package/dist/demo/pb-document.html +1 -1
- package/dist/demo/pb-download.html +68 -59
- package/dist/demo/pb-drawer.html +67 -46
- package/dist/demo/pb-drawer2.html +65 -58
- package/dist/demo/pb-edit-app.html +2 -2
- package/dist/demo/pb-edit-xml.html +1 -1
- package/dist/demo/pb-facsimile-2.html +26 -11
- package/dist/demo/pb-facsimile-3.html +25 -10
- package/dist/demo/pb-facsimile-dedup-test-2.html +48 -0
- package/dist/demo/pb-facsimile-dedup-test.html +48 -0
- package/dist/demo/pb-facsimile.html +4 -4
- package/dist/demo/pb-formula.html +1 -1
- package/dist/demo/pb-grid.html +22 -8
- package/dist/demo/pb-highlight.html +2 -2
- package/dist/demo/pb-i18n-simple.html +1 -0
- package/dist/demo/pb-i18n.html +15 -5
- package/dist/demo/pb-image-strip-standalone.html +2 -2
- package/dist/demo/pb-image-strip-view.html +2 -2
- package/dist/demo/pb-leaflet-map.html +3 -3
- package/dist/demo/pb-leaflet-map2.html +2 -2
- package/dist/demo/pb-leaflet-map3.html +3 -3
- package/dist/demo/pb-link.html +1 -1
- package/dist/demo/pb-load.html +2 -6
- package/dist/demo/pb-login.html +1 -3
- package/dist/demo/pb-manage-odds.html +9 -4
- package/dist/demo/pb-markdown.html +1 -1
- package/dist/demo/pb-media-query.html +2 -2
- package/dist/demo/pb-mei.html +2 -2
- package/dist/demo/pb-mei2.html +2 -2
- package/dist/demo/pb-message.html +2 -3
- package/dist/demo/pb-odd-editor.html +54 -52
- package/dist/demo/pb-page-header.html +27 -0
- package/dist/demo/pb-popover.html +1 -1
- package/dist/demo/pb-print-preview.html +2 -2
- package/dist/demo/pb-progress.html +4 -4
- package/dist/demo/pb-repeat.html +32 -36
- package/dist/demo/pb-search.html +16 -5
- package/dist/demo/pb-search2.html +4 -4
- package/dist/demo/pb-search3.html +3 -3
- package/dist/demo/pb-search4.html +3 -3
- package/dist/demo/pb-select-feature.html +4 -4
- package/dist/demo/pb-select-feature2.html +4 -4
- package/dist/demo/pb-select-feature3.html +2 -2
- package/dist/demo/pb-select-i18n.html +58 -53
- package/dist/demo/pb-select-odd.html +1 -1
- package/dist/demo/pb-select.html +190 -75
- package/dist/demo/pb-select2.html +91 -37
- package/dist/demo/pb-select3.html +109 -41
- package/dist/demo/pb-svg.html +1 -1
- package/dist/demo/pb-table-grid.html +26 -15
- package/dist/demo/pb-tabs.html +15 -7
- package/dist/demo/pb-tify.html +7 -7
- package/dist/demo/pb-timeline.html +1 -1
- package/dist/demo/pb-timeline2.html +1 -1
- package/dist/demo/pb-toggle-feature.html +26 -23
- package/dist/demo/pb-toggle-feature2.html +4 -4
- package/dist/demo/pb-toggle-feature3.html +2 -2
- package/dist/demo/pb-toggle-feature4.html +56 -54
- package/dist/demo/pb-version.html +2 -2
- package/dist/demo/pb-view.html +78 -40
- package/dist/demo/pb-view2.html +69 -46
- package/dist/demo/pb-view3.html +53 -48
- package/dist/demo/pb-view4.html +70 -49
- package/dist/demo/pb-zoom.html +2 -2
- package/dist/{es-global-bridge-d8ce175d.js → es-global-bridge-D8ZcUcx_.js} +0 -4
- package/dist/focus-mixin-VCsFap6b.js +768 -0
- package/dist/images/icons.svg +217 -0
- package/dist/jinn-codemirror-DETLdm08.js +1 -0
- package/dist/lib/openseadragon.min.js +80 -0
- package/dist/lib/openseadragon.min.js.map +1 -0
- package/dist/pb-code-editor.js +25 -20
- package/dist/pb-component-docs.js +414 -3225
- package/dist/pb-components-bundle.js +3046 -4402
- package/dist/pb-dialog-tklYGWfc.js +121 -0
- package/dist/pb-edit-app.js +208 -107
- package/dist/pb-elements.json +716 -249
- package/dist/pb-facsimile.js +46 -0
- package/dist/pb-i18n-C0NDma4h.js +1 -0
- package/dist/pb-leaflet-map.js +23 -23
- package/dist/pb-mei.js +152 -134
- package/dist/pb-mixin-DHoWQheB.js +1 -0
- package/dist/pb-odd-editor.js +1671 -1231
- package/dist/pb-tify.js +1 -27
- package/dist/unsafe-html-D5VGo9Oq.js +1 -0
- package/dist/urls-BEONu_g4.js +1 -0
- package/eslint.config.mjs +92 -0
- package/gh-pages.js +5 -3
- package/i18n/common/en.json +6 -0
- package/i18n/common/pl.json +2 -2
- package/images/icons.svg +217 -0
- package/index.html +0 -5
- package/lib/leaflet-src.js.map +1 -0
- package/lib/leaflet.markercluster-src.js.map +1 -0
- package/lib/openseadragon.min.js +6 -6
- package/package.json +56 -81
- package/pb-elements.json +716 -249
- package/rollup.config.mjs +312 -0
- package/src/assets/components.css +5 -5
- package/src/assets/design-system.css +607 -0
- package/src/authority/airtable.js +20 -21
- package/src/authority/anton.js +129 -129
- package/src/authority/custom.js +70 -27
- package/src/authority/geonames.js +38 -32
- package/src/authority/gnd.js +50 -42
- package/src/authority/kbga.js +136 -134
- package/src/authority/metagrid.js +44 -46
- package/src/authority/reconciliation.js +66 -68
- package/src/authority/registry.js +4 -4
- package/src/docs/demo-utils.js +91 -0
- package/src/docs/pb-component-docs.js +287 -147
- package/src/docs/pb-component-view.js +380 -273
- package/src/docs/pb-components-list.js +115 -51
- package/src/docs/pb-demo-snippet.js +199 -174
- package/src/dts-client.js +306 -303
- package/src/dts-select-endpoint.js +125 -85
- package/src/parse-date-service.js +184 -135
- package/src/pb-ajax.js +175 -173
- package/src/pb-authority-lookup.js +198 -158
- package/src/pb-autocomplete.js +731 -313
- package/src/pb-blacklab-highlight.js +266 -260
- package/src/pb-blacklab-results.js +230 -225
- package/src/pb-browse-docs.js +601 -484
- package/src/pb-browse.js +68 -65
- package/src/pb-clipboard.js +97 -76
- package/src/pb-code-editor.js +111 -103
- package/src/pb-code-highlight.js +234 -204
- package/src/pb-codepen.js +81 -73
- package/src/pb-collapse.js +265 -152
- package/src/pb-combo-box.js +191 -191
- package/src/pb-components-bundle.js +1 -7
- package/src/pb-components.js +2 -6
- package/src/pb-custom-form.js +230 -141
- package/src/pb-dialog.js +99 -63
- package/src/pb-document.js +118 -91
- package/src/pb-download.js +214 -198
- package/src/pb-drawer.js +146 -149
- package/src/pb-edit-app.js +471 -240
- package/src/pb-edit-xml.js +101 -98
- package/src/pb-events.js +126 -107
- package/src/pb-facs-link.js +130 -101
- package/src/pb-facsimile.js +494 -410
- package/src/pb-fetch.js +389 -0
- package/src/pb-formula.js +152 -154
- package/src/pb-geolocation.js +130 -132
- package/src/pb-grid-action.js +59 -56
- package/src/pb-grid.js +388 -228
- package/src/pb-highlight.js +142 -142
- package/src/pb-hotkeys.js +40 -42
- package/src/pb-i18n.js +115 -127
- package/src/pb-icon-button.js +108 -0
- package/src/pb-icon.js +283 -0
- package/src/pb-image-strip.js +85 -79
- package/src/pb-lang.js +142 -57
- package/src/pb-leaflet-map.js +551 -483
- package/src/pb-link.js +132 -126
- package/src/pb-load.js +495 -428
- package/src/pb-login.js +303 -248
- package/src/pb-manage-odds.js +384 -338
- package/src/pb-map-icon.js +90 -90
- package/src/pb-map-layer.js +86 -86
- package/src/pb-markdown.js +107 -110
- package/src/pb-media-query.js +75 -73
- package/src/pb-mei.js +523 -303
- package/src/pb-message.js +144 -98
- package/src/pb-mixin.js +268 -265
- package/src/pb-navigation.js +83 -96
- package/src/pb-observable.js +39 -39
- package/src/pb-odd-editor.js +1209 -948
- package/src/pb-odd-elementspec-editor.js +375 -310
- package/src/pb-odd-model-editor.js +1189 -941
- package/src/pb-odd-parameter-editor.js +269 -170
- package/src/pb-odd-rendition-editor.js +184 -131
- package/src/pb-page.js +451 -422
- package/src/pb-paginate.js +260 -178
- package/src/pb-panel.js +217 -183
- package/src/pb-popover-themes.js +16 -9
- package/src/pb-popover.js +297 -288
- package/src/pb-print-preview.js +128 -128
- package/src/pb-progress.js +52 -52
- package/src/pb-repeat.js +141 -108
- package/src/pb-restricted.js +85 -78
- package/src/pb-search.js +258 -230
- package/src/pb-select-feature.js +210 -126
- package/src/pb-select-odd.js +184 -118
- package/src/pb-select-template.js +113 -78
- package/src/pb-select.js +330 -229
- package/src/pb-split-list.js +181 -176
- package/src/pb-svg.js +81 -80
- package/src/pb-table-column.js +55 -55
- package/src/pb-table-grid.js +334 -205
- package/src/pb-tabs.js +238 -61
- package/src/pb-tify.js +3331 -126
- package/src/pb-timeline.js +394 -255
- package/src/pb-toggle-feature.js +196 -188
- package/src/pb-upload.js +201 -176
- package/src/pb-version.js +22 -34
- package/src/pb-view-annotate.js +138 -102
- package/src/pb-view.js +1722 -1272
- package/src/pb-zoom.js +144 -46
- package/src/search-result-service.js +256 -223
- package/src/seed-element.js +14 -22
- package/src/settings.js +4 -4
- package/src/theming.js +98 -91
- package/src/urls.js +403 -289
- package/src/utils.js +53 -51
- package/vite.config.js +86 -0
- package/css/pb-styles.css +0 -51
- package/dist/iron-form-3b8dcaa7.js +0 -210
- package/dist/jinn-codemirror-da0e2d1f.js +0 -1
- package/dist/paper-checkbox-515a5284.js +0 -1597
- package/dist/paper-icon-button-b1d31571.js +0 -398
- package/dist/paper-listbox-a3b7175c.js +0 -1265
- package/dist/pb-i18n-0611135a.js +0 -1
- package/dist/pb-mixin-b1caa22e.js +0 -158
- package/dist/polymer-hack.js +0 -1
- package/dist/vaadin-element-mixin-6e4cee3a.js +0 -527
- package/lib/Control.Geocoder.min.js +0 -2
- package/lib/Control.Geocoder.min.js.map +0 -1
- package/src/assets/pb-styles.css +0 -51
- package/src/pb-light-dom.js +0 -40
- package/src/polymer-hack.js +0 -6
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import { LitElement, html, css } from 'lit
|
|
2
|
-
import { unsafeHTML } from 'lit
|
|
1
|
+
import { LitElement, html, css } from 'lit';
|
|
2
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
3
|
+
import { themableMixin } from './theming.js';
|
|
3
4
|
import { pbMixin, waitOnce } from './pb-mixin.js';
|
|
4
|
-
import { translate } from
|
|
5
|
-
import { createConnectors } from
|
|
6
|
-
import
|
|
7
|
-
import '@polymer/paper-input/paper-input';
|
|
8
|
-
import '@polymer/paper-icon-button';
|
|
5
|
+
import { translate } from './pb-i18n.js';
|
|
6
|
+
import { createConnectors } from './authority/connectors.js';
|
|
7
|
+
import './pb-restricted.js';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Performs authority lookups via configurable connectors.
|
|
12
|
-
*
|
|
11
|
+
*
|
|
13
12
|
* @fires pb-authority-select - Fired when user selects an entry from the list
|
|
14
13
|
* @fires pb-authority-edit-entity - Fired when user clicks the edit button next to an entry
|
|
15
14
|
* @fires pb-authority-new-entity - Fired when user clicks the add new entity button
|
|
16
|
-
* @fires pb-authority-lookup - When received, starts a lookup using the passed in query string and
|
|
15
|
+
* @fires pb-authority-lookup - When received, starts a lookup using the passed in query string and
|
|
17
16
|
* authority type
|
|
18
17
|
*/
|
|
19
|
-
export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
18
|
+
export class PbAuthorityLookup extends themableMixin(pbMixin(LitElement)) {
|
|
20
19
|
static get properties() {
|
|
21
20
|
return {
|
|
22
21
|
/**
|
|
@@ -32,7 +31,7 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
32
31
|
*/
|
|
33
32
|
sortByLabel: {
|
|
34
33
|
type: Boolean,
|
|
35
|
-
attribute: 'sort-by-label'
|
|
34
|
+
attribute: 'sort-by-label',
|
|
36
35
|
},
|
|
37
36
|
/**
|
|
38
37
|
* A list of comma-separated stopwords which should be excluded
|
|
@@ -40,16 +39,16 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
40
39
|
* HTML text
|
|
41
40
|
*/
|
|
42
41
|
stopwords: {
|
|
43
|
-
type: String
|
|
42
|
+
type: String,
|
|
44
43
|
},
|
|
45
44
|
/**
|
|
46
45
|
* A list of space- or comma-separated group names, whose members will be
|
|
47
46
|
* allowed to add or edit entries in the local register (if enabled).
|
|
48
|
-
*
|
|
47
|
+
*
|
|
49
48
|
* @default "tei"
|
|
50
49
|
*/
|
|
51
50
|
group: {
|
|
52
|
-
type: String
|
|
51
|
+
type: String,
|
|
53
52
|
},
|
|
54
53
|
/**
|
|
55
54
|
* The authority type to use. Should correspond to a name defined for one of the connectors.
|
|
@@ -95,19 +94,21 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
95
94
|
|
|
96
95
|
this._stopwordSet = new Set();
|
|
97
96
|
if (this.stopwords) {
|
|
98
|
-
this.stopwords.split(/\s*,\s*/).forEach(
|
|
97
|
+
this.stopwords.split(/\s*,\s*/).forEach(sw => this._stopwordSet.add(sw.toLowerCase()));
|
|
99
98
|
}
|
|
100
99
|
|
|
101
100
|
this.subscribeTo('pb-authority-lookup', ev => {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
this.query = ev.detail.query;
|
|
102
|
+
this.type = ev.detail.type;
|
|
103
|
+
this._results = [];
|
|
104
|
+
this._query();
|
|
106
105
|
});
|
|
107
106
|
|
|
108
107
|
waitOnce('pb-page-ready', () => {
|
|
109
108
|
const connectors = createConnectors(this.getEndpoint(), this);
|
|
110
|
-
connectors.forEach(connector => {
|
|
109
|
+
connectors.forEach(connector => {
|
|
110
|
+
this._authorities[connector.register] = connector;
|
|
111
|
+
});
|
|
111
112
|
if (this.autoLookup) {
|
|
112
113
|
this._query();
|
|
113
114
|
}
|
|
@@ -118,23 +119,39 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
118
119
|
|
|
119
120
|
render() {
|
|
120
121
|
return html`
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
<
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
122
|
+
<header>
|
|
123
|
+
<input
|
|
124
|
+
id="query"
|
|
125
|
+
type="search"
|
|
126
|
+
placeholder="${translate('annotations.lookup')}"
|
|
127
|
+
.value="${this.query}"
|
|
128
|
+
@input="${e => this._queryChanged(e)}"
|
|
129
|
+
@change="${e => this._queryChanged(e)}"
|
|
130
|
+
aria-label="${translate('annotations.lookup')}"
|
|
131
|
+
/>
|
|
132
|
+
${this._authorities[this.type] && this._authorities[this.type].editable
|
|
133
|
+
? html`
|
|
134
|
+
<pb-restricted group="${this.group}">
|
|
135
|
+
<button
|
|
136
|
+
@click="${this._addEntity}"
|
|
137
|
+
title="${translate('annotations.add-entity')}"
|
|
138
|
+
type="button"
|
|
139
|
+
>
|
|
140
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512">
|
|
141
|
+
<path
|
|
142
|
+
fill="none"
|
|
143
|
+
stroke="currentColor"
|
|
144
|
+
stroke-linecap="round"
|
|
145
|
+
stroke-linejoin="round"
|
|
146
|
+
stroke-width="32"
|
|
147
|
+
d="M256 112v288M400 256H112"
|
|
148
|
+
/>
|
|
149
|
+
</svg>
|
|
150
|
+
</button>
|
|
151
|
+
</pb-restricted>
|
|
152
|
+
`
|
|
153
|
+
: null}
|
|
154
|
+
</header>
|
|
138
155
|
<slot name="authform"></slot>
|
|
139
156
|
<div id="output">
|
|
140
157
|
<ul part="output">
|
|
@@ -151,11 +168,16 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
151
168
|
return Promise.resolve();
|
|
152
169
|
}
|
|
153
170
|
const authority = this._authorities[register];
|
|
154
|
-
console.log(
|
|
171
|
+
console.log(
|
|
172
|
+
'<pb-authority-lookup> Retrieving info for %s from %s using %s',
|
|
173
|
+
id,
|
|
174
|
+
register,
|
|
175
|
+
authority.constructor.name,
|
|
176
|
+
);
|
|
155
177
|
let info = await authority.info(id, container);
|
|
156
178
|
if (info.strings) {
|
|
157
179
|
info = Object.assign(info, {
|
|
158
|
-
strings: info.strings.filter(
|
|
180
|
+
strings: info.strings.filter(s => s && !this._stopwordSet.has(s.toLowerCase())),
|
|
159
181
|
});
|
|
160
182
|
}
|
|
161
183
|
return info;
|
|
@@ -164,42 +186,134 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
164
186
|
_formatItem(item) {
|
|
165
187
|
return html`
|
|
166
188
|
<li>
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
189
|
+
<div>
|
|
190
|
+
<button @click="${() => this._select(item)}" title="link to" type="button">
|
|
191
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512">
|
|
192
|
+
<path
|
|
193
|
+
d="M208 352h-64a96 96 0 010-192h64M304 160h64a96 96 0 010 192h-64M163.29 256h187.42"
|
|
194
|
+
fill="none"
|
|
195
|
+
stroke="currentColor"
|
|
196
|
+
stroke-linecap="round"
|
|
197
|
+
stroke-linejoin="round"
|
|
198
|
+
stroke-width="36"
|
|
199
|
+
/>
|
|
200
|
+
</svg>
|
|
201
|
+
</button>
|
|
202
|
+
${item.link
|
|
203
|
+
? html`<a target="_blank" href="${item.link}">${unsafeHTML(item.label)}</a>`
|
|
204
|
+
: html`${unsafeHTML(item.label)}`}
|
|
205
|
+
<div class="badges">
|
|
206
|
+
${item.occurrences > 0
|
|
207
|
+
? html`<span class="occurrences badge" part="occurrences">${item.occurrences}</span>`
|
|
208
|
+
: null}
|
|
209
|
+
${item.provider
|
|
210
|
+
? html`<span class="source badge" part="source">${item.provider}</span>`
|
|
211
|
+
: null}
|
|
212
|
+
<span class="register badge" part="register">${item.register}</span>
|
|
213
|
+
${this._authorities[this.type] && this._authorities[this.type].editable
|
|
214
|
+
? html` <pb-restricted group="${this.group}">
|
|
215
|
+
<button
|
|
216
|
+
@click="${() => this._editEntity(item)}"
|
|
217
|
+
title="${translate('annotations.edit-entity')}"
|
|
218
|
+
type="button"
|
|
219
|
+
>
|
|
220
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512">
|
|
221
|
+
<path
|
|
222
|
+
d="M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48"
|
|
223
|
+
fill="none"
|
|
224
|
+
stroke="currentColor"
|
|
225
|
+
stroke-linecap="round"
|
|
226
|
+
stroke-linejoin="round"
|
|
227
|
+
stroke-width="32"
|
|
228
|
+
/>
|
|
229
|
+
<path
|
|
230
|
+
d="M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z"
|
|
231
|
+
/>
|
|
232
|
+
</svg>
|
|
233
|
+
</button>
|
|
234
|
+
</pb-restricted>`
|
|
235
|
+
: null}
|
|
179
236
|
</div>
|
|
180
|
-
|
|
181
|
-
${item.provider ? html`<div><span class="source" part="source">${item.provider}</span></div>` :null}
|
|
182
|
-
<div><span class="register" part="register">${item.register}</span></div>
|
|
183
|
-
|
|
184
|
-
${
|
|
185
|
-
this._authorities[this.type] && this._authorities[this.type].editable ?
|
|
186
|
-
html`
|
|
187
|
-
<pb-restricted group="${this.group}">
|
|
188
|
-
<div class="icons">
|
|
189
|
-
<paper-icon-button
|
|
190
|
-
icon="editor:mode-edit"
|
|
191
|
-
@click="${() => this._editEntity(item)}"
|
|
192
|
-
title="${translate('annotations.edit-entity')}"
|
|
193
|
-
></paper-icon-button>
|
|
194
|
-
</div>
|
|
195
|
-
</pb-restricted>` : null
|
|
196
|
-
}
|
|
237
|
+
</div>
|
|
197
238
|
${item.details ? html`<div class="details" part="details">${item.details}</div>` : null}
|
|
198
|
-
|
|
199
239
|
</li>
|
|
200
240
|
`;
|
|
201
241
|
}
|
|
202
242
|
|
|
243
|
+
static get styles() {
|
|
244
|
+
return css`
|
|
245
|
+
:host {
|
|
246
|
+
display: flex;
|
|
247
|
+
flex-direction: column;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
header {
|
|
251
|
+
display: flex;
|
|
252
|
+
justify-content: space-between;
|
|
253
|
+
align-items: center;
|
|
254
|
+
margin-bottom: 1rem;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
header > input {
|
|
258
|
+
flex-grow: 1;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.link {
|
|
262
|
+
flex-grow: 2;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
#output {
|
|
266
|
+
overflow: auto;
|
|
267
|
+
/*FireFox*/
|
|
268
|
+
scrollbar-width: none;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
#output > ul {
|
|
272
|
+
width: 100%;
|
|
273
|
+
padding: 0;
|
|
274
|
+
list-style: none;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
#output > ul > li {
|
|
278
|
+
border-bottom: 1px solid var(--pb-color-border);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
#output > ul > li > div {
|
|
282
|
+
display: flex;
|
|
283
|
+
justify-content: space-between;
|
|
284
|
+
align-items: center;
|
|
285
|
+
flex-wrap: wrap;
|
|
286
|
+
gap: 0.125rem;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
#output > ul > li > div > a {
|
|
290
|
+
flex-grow: 2;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.badges {
|
|
294
|
+
display: inline-flex;
|
|
295
|
+
gap: 0.125rem;
|
|
296
|
+
align-items: center;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.badge {
|
|
300
|
+
font-size: 0.75rem;
|
|
301
|
+
border-radius: 4px;
|
|
302
|
+
padding: 4px;
|
|
303
|
+
color: var(--pb-color-inverse);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.source {
|
|
307
|
+
background-color: #637b8c;
|
|
308
|
+
}
|
|
309
|
+
.register {
|
|
310
|
+
background-color: var(--pb-color-lighter, #35424b);
|
|
311
|
+
}
|
|
312
|
+
.occurrences {
|
|
313
|
+
background-color: var(--pb-color-focus, #f6a623);
|
|
314
|
+
}
|
|
315
|
+
`;
|
|
316
|
+
}
|
|
203
317
|
|
|
204
318
|
_select(item) {
|
|
205
319
|
const connector = this._authorities[item.register];
|
|
@@ -208,13 +322,13 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
208
322
|
type: item.register,
|
|
209
323
|
properties: {
|
|
210
324
|
ref: item.id,
|
|
211
|
-
}
|
|
325
|
+
},
|
|
212
326
|
};
|
|
213
327
|
if (connector) {
|
|
214
328
|
connector
|
|
215
329
|
.select(item)
|
|
216
330
|
.then(() => this.emitTo('pb-authority-select', options))
|
|
217
|
-
.catch(
|
|
331
|
+
.catch(e => this.emitTo('pb-authority-error', { status: e.message }));
|
|
218
332
|
} else {
|
|
219
333
|
this.emitTo('pb-authority-select', options);
|
|
220
334
|
}
|
|
@@ -225,24 +339,23 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
225
339
|
if (connector) {
|
|
226
340
|
connector
|
|
227
341
|
.select(item)
|
|
228
|
-
.then(() => this.emitTo('pb-authority-edit-entity', {id: item.id, type: item.register}));
|
|
342
|
+
.then(() => this.emitTo('pb-authority-edit-entity', { id: item.id, type: item.register }));
|
|
229
343
|
} else {
|
|
230
|
-
this.emitTo('pb-authority-edit-entity', {id: item.id, type: item.register});
|
|
344
|
+
this.emitTo('pb-authority-edit-entity', { id: item.id, type: item.register });
|
|
231
345
|
}
|
|
232
346
|
}
|
|
233
347
|
|
|
234
|
-
_queryChanged() {
|
|
348
|
+
_queryChanged(e) {
|
|
235
349
|
this._results = [];
|
|
236
|
-
|
|
237
|
-
|
|
350
|
+
this.query = e.target.value;
|
|
351
|
+
this._query();
|
|
238
352
|
}
|
|
239
353
|
|
|
240
354
|
_query() {
|
|
241
355
|
this.emitTo('pb-start-update');
|
|
242
356
|
this._authorities[this.type].query(this.query).then(results => {
|
|
243
|
-
this._occurrences(results.items)
|
|
244
|
-
.
|
|
245
|
-
this._results = merged;
|
|
357
|
+
this._occurrences(results.items).then(merged => {
|
|
358
|
+
this._results = merged;
|
|
246
359
|
});
|
|
247
360
|
this.emitTo('pb-end-update');
|
|
248
361
|
// this.shadowRoot.getElementById('query').focus();
|
|
@@ -250,7 +363,7 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
250
363
|
}
|
|
251
364
|
|
|
252
365
|
_addEntity() {
|
|
253
|
-
this.emitTo('pb-authority-new-entity', {query: this.query, type: this.type});
|
|
366
|
+
this.emitTo('pb-authority-new-entity', { query: this.query, type: this.type });
|
|
254
367
|
}
|
|
255
368
|
|
|
256
369
|
_occurrences(items) {
|
|
@@ -259,13 +372,13 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
259
372
|
}
|
|
260
373
|
const params = new FormData();
|
|
261
374
|
params.append('register', this.type);
|
|
262
|
-
items.forEach(
|
|
375
|
+
items.forEach(item => {
|
|
263
376
|
params.append('id', item.id);
|
|
264
377
|
});
|
|
265
|
-
return new Promise(
|
|
378
|
+
return new Promise(resolve => {
|
|
266
379
|
fetch(`${this.getEndpoint()}/api/annotations/occurrences`, {
|
|
267
380
|
method: 'POST',
|
|
268
|
-
body: params
|
|
381
|
+
body: params,
|
|
269
382
|
})
|
|
270
383
|
.then(response => {
|
|
271
384
|
if (response.ok) {
|
|
@@ -273,7 +386,7 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
273
386
|
}
|
|
274
387
|
})
|
|
275
388
|
.then(json => {
|
|
276
|
-
items.forEach(
|
|
389
|
+
items.forEach(item => {
|
|
277
390
|
if (json[item.id]) {
|
|
278
391
|
item.occurrences = json[item.id];
|
|
279
392
|
} else {
|
|
@@ -295,80 +408,7 @@ export class PbAuthorityLookup extends pbMixin(LitElement) {
|
|
|
295
408
|
});
|
|
296
409
|
resolve(items);
|
|
297
410
|
});
|
|
298
|
-
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
static get styles() {
|
|
302
|
-
return css`
|
|
303
|
-
:host {
|
|
304
|
-
display: flex;
|
|
305
|
-
flex-direction: column;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
header {
|
|
309
|
-
display: flex;
|
|
310
|
-
align-items: center;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
.link {
|
|
314
|
-
flex-grow: 2;
|
|
315
|
-
}
|
|
316
|
-
#output {
|
|
317
|
-
overflow: auto;
|
|
318
|
-
/*FireFox*/
|
|
319
|
-
scrollbar-width: none;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/*
|
|
323
|
-
#output .icons{
|
|
324
|
-
visibility: hidden;
|
|
325
|
-
}
|
|
326
|
-
#output .icons:hover{
|
|
327
|
-
visibility: visible;
|
|
328
|
-
}
|
|
329
|
-
*/
|
|
330
|
-
|
|
331
|
-
#output ul {
|
|
332
|
-
width: 100%;
|
|
333
|
-
padding: 0;
|
|
334
|
-
list-style: none;
|
|
335
|
-
}
|
|
336
|
-
#output li {
|
|
337
|
-
display: flex;
|
|
338
|
-
justify-content: space-between;
|
|
339
|
-
flex-wrap: wrap;
|
|
340
|
-
align-items: center;
|
|
341
|
-
border-bottom: 1px solid #efefef;
|
|
342
|
-
}
|
|
343
|
-
#output li:hover{
|
|
344
|
-
background:#efefef;
|
|
345
|
-
}
|
|
346
|
-
#output td:nth-child(3), #output td:nth-child(4), #output td:nth-child(5) {
|
|
347
|
-
text-align: right;
|
|
348
|
-
vertical-align: middle;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
.details, .source, .register, .occurrences {
|
|
352
|
-
font-size: .85rem;
|
|
353
|
-
width: 100%;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
.source, .register, .occurrences {
|
|
357
|
-
border-radius: 4px;
|
|
358
|
-
padding: 4px;
|
|
359
|
-
color: var(--pb-color-inverse);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
.source {
|
|
363
|
-
background-color: #637b8c;
|
|
364
|
-
}
|
|
365
|
-
.register {
|
|
366
|
-
background-color: var(--pb-color-lighter);
|
|
367
|
-
}
|
|
368
|
-
.occurrences {
|
|
369
|
-
background-color: var(--pb-color-focus);
|
|
370
|
-
}
|
|
371
|
-
`;
|
|
411
|
+
});
|
|
372
412
|
}
|
|
373
413
|
}
|
|
374
414
|
customElements.define('pb-authority-lookup', PbAuthorityLookup);
|