@teipublisher/pb-components 2.26.0-next-3.11 → 2.26.0-next-3.13
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 +3 -3
- package/CHANGELOG.md +38 -0
- package/Dockerfile +78 -70
- package/css/components.css +5 -5
- package/dist/demo/components.css +2 -8
- package/dist/demo/pb-drawer2.html +1 -1
- package/dist/demo/pb-leaflet-map.html +1 -1
- package/dist/demo/pb-progress.html +2 -2
- package/dist/demo/pb-repeat.html +1 -3
- package/dist/demo/pb-view3.html +1 -1
- package/dist/{paper-icon-button-0fb125c4.js → paper-icon-button-72125e67.js} +1 -1
- package/dist/pb-code-editor.js +25 -20
- package/dist/pb-component-docs.js +58 -54
- package/dist/pb-components-bundle.js +1937 -1782
- package/dist/pb-edit-app.js +167 -107
- package/dist/pb-elements.json +45 -45
- 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 +923 -756
- package/dist/pb-tify.js +2 -2
- package/dist/{vaadin-element-mixin-6633322b.js → vaadin-element-mixin-84fb7d82.js} +181 -143
- package/gh-pages.js +5 -3
- package/i18n/common/pl.json +2 -2
- package/lib/openseadragon.min.js +1 -1
- package/package.json +2 -2
- package/pb-elements.json +45 -45
- 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 +47 -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 +150 -146
- package/src/pb-authority-lookup.js +183 -146
- 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 +212 -207
- package/src/pb-combo-box.js +190 -190
- package/src/pb-components-bundle.js +1 -1
- package/src/pb-custom-form.js +151 -149
- package/src/pb-dialog.js +96 -60
- package/src/pb-document.js +89 -90
- package/src/pb-download.js +210 -198
- package/src/pb-drawer.js +145 -148
- package/src/pb-edit-app.js +301 -229
- package/src/pb-edit-xml.js +98 -96
- package/src/pb-events.js +114 -107
- package/src/pb-facs-link.js +104 -102
- package/src/pb-facsimile.js +411 -413
- 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 +132 -128
- package/src/pb-leaflet-map.js +488 -485
- package/src/pb-link.js +126 -124
- package/src/pb-load.js +431 -426
- package/src/pb-login.js +291 -248
- package/src/pb-manage-odds.js +364 -318
- 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 +144 -144
- package/src/pb-mixin.js +269 -264
- package/src/pb-navigation.js +80 -82
- package/src/pb-observable.js +38 -38
- package/src/pb-odd-editor.js +1053 -955
- package/src/pb-odd-elementspec-editor.js +348 -297
- package/src/pb-odd-model-editor.js +1061 -901
- package/src/pb-odd-parameter-editor.js +200 -178
- package/src/pb-odd-rendition-editor.js +136 -124
- package/src/pb-page.js +431 -421
- package/src/pb-paginate.js +202 -190
- package/src/pb-panel.js +191 -179
- package/src/pb-popover-themes.js +7 -5
- 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 +252 -241
- 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 +271 -229
- package/src/pb-toggle-feature.js +182 -175
- package/src/pb-upload.js +184 -174
- package/src/pb-version.js +30 -30
- package/src/pb-view-annotate.js +132 -98
- package/src/pb-view.js +1289 -1270
- package/src/pb-zoom.js +75 -59
- 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 +96 -96
- package/src/urls.js +289 -289
- package/src/utils.js +53 -51
package/src/pb-restricted.js
CHANGED
|
@@ -3,45 +3,45 @@ import { pbMixin } from './pb-mixin.js';
|
|
|
3
3
|
import { registry } from './urls.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
7
|
* @param {Array<String>} arr array containg string values (name of groups)
|
|
8
8
|
* @param {String} val value to check if it's in the array
|
|
9
9
|
* @returns true if the checked values is in the array
|
|
10
10
|
*/
|
|
11
11
|
function _isItemInArray(arr, val) {
|
|
12
|
-
|
|
12
|
+
return arr.some(arrVal => val === arrVal);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @param {object} user user name returned by login function;
|
|
16
|
+
*
|
|
17
|
+
* @param {object} user user name returned by login function;
|
|
18
18
|
* @param {object} groups contains groups (an array) the logged user is a member of
|
|
19
19
|
* @param {string} targetGroups string containing (optionally) space separated list of target groups
|
|
20
20
|
* @returns true if user is member of one of the target groups
|
|
21
21
|
*/
|
|
22
22
|
export function isLoggedIn(user, groups, targetGroups) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
const groupArray = targetGroups.split(/[\s+,]+/);
|
|
31
|
-
let exists = false;
|
|
32
|
-
groupArray.forEach(async (oneItem) => {
|
|
33
|
-
exists = _isItemInArray(groups, oneItem) || exists;
|
|
34
|
-
});
|
|
35
|
-
return exists;
|
|
23
|
+
if (user == null) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (targetGroups) {
|
|
27
|
+
if (!groups) {
|
|
28
|
+
return false;
|
|
36
29
|
}
|
|
37
|
-
|
|
30
|
+
const groupArray = targetGroups.split(/[\s+,]+/);
|
|
31
|
+
let exists = false;
|
|
32
|
+
groupArray.forEach(async oneItem => {
|
|
33
|
+
exists = _isItemInArray(groups, oneItem) || exists;
|
|
34
|
+
});
|
|
35
|
+
return exists;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* Show content if the user is logged in. Optionally requires the user
|
|
42
42
|
* to be member of a specific group. Listens for the `pb-login` event
|
|
43
43
|
* triggered by `pb-login` to be notified of user changes.
|
|
44
|
-
*
|
|
44
|
+
*
|
|
45
45
|
* You may specify fallback content to be shown if the user is not logged in
|
|
46
46
|
* within a slot named 'fallback'.
|
|
47
47
|
*
|
|
@@ -50,69 +50,76 @@ export function isLoggedIn(user, groups, targetGroups) {
|
|
|
50
50
|
* @fires pb-login - When received, changes the state of the component according to the user info received
|
|
51
51
|
*/
|
|
52
52
|
export class PbRestricted extends pbMixin(LitElement) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
53
|
+
static get properties() {
|
|
54
|
+
return {
|
|
55
|
+
...super.properties,
|
|
56
|
+
/** Id of the pb-login element to connect to
|
|
57
|
+
* @deprecated no longer used
|
|
58
|
+
*/
|
|
59
|
+
login: {
|
|
60
|
+
type: String,
|
|
61
|
+
},
|
|
62
|
+
show: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
reflect: true,
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* If set, requires the logged in user to be member of
|
|
68
|
+
* the given group.
|
|
69
|
+
* Multiple groups can be defined separating items by space and/or comma.
|
|
70
|
+
*/
|
|
71
|
+
group: {
|
|
72
|
+
type: String,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
constructor() {
|
|
78
|
+
super();
|
|
79
|
+
this.show = false;
|
|
80
|
+
}
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
this.subscribeTo('pb-login', (ev) => {
|
|
91
|
-
this.show = this._loggedIn(ev.detail.user, ev.detail.groups);
|
|
92
|
-
}, []);
|
|
93
|
-
this.show = registry.currentUser && this._loggedIn(registry.currentUser.user, registry.currentUser.groups);
|
|
82
|
+
firstUpdated() {
|
|
83
|
+
const fallback = this.shadowRoot.querySelector('slot[name=fallback]');
|
|
84
|
+
const hasFallback = fallback.assignedNodes().length > 0;
|
|
85
|
+
if (hasFallback) {
|
|
86
|
+
console.log(this);
|
|
87
|
+
this.classList.add('fallback');
|
|
94
88
|
}
|
|
95
89
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
90
|
+
this.subscribeTo(
|
|
91
|
+
'pb-login',
|
|
92
|
+
ev => {
|
|
93
|
+
this.show = this._loggedIn(ev.detail.user, ev.detail.groups);
|
|
94
|
+
},
|
|
95
|
+
[],
|
|
96
|
+
);
|
|
97
|
+
this.show =
|
|
98
|
+
registry.currentUser &&
|
|
99
|
+
this._loggedIn(registry.currentUser.user, registry.currentUser.groups);
|
|
100
|
+
}
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
render() {
|
|
103
|
+
return html`
|
|
104
|
+
${this.show && !this.disabled ? html`<slot></slot>` : html`<slot name="fallback"></slot>`}
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
107
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
static get styles() {
|
|
109
|
+
return css`
|
|
110
|
+
:host {
|
|
111
|
+
display: none;
|
|
112
|
+
}
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
:host(.fallback),
|
|
115
|
+
:host([show]) {
|
|
116
|
+
display: inherit;
|
|
117
|
+
}
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
_loggedIn(user, groups) {
|
|
122
|
+
return isLoggedIn(user, groups, this.group);
|
|
123
|
+
}
|
|
117
124
|
}
|
|
118
|
-
customElements.define('pb-restricted', PbRestricted);
|
|
125
|
+
customElements.define('pb-restricted', PbRestricted);
|