@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.
- 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 +15 -0
- package/Dockerfile +78 -70
- package/css/components.css +5 -5
- package/dist/demo/pb-drawer2.html +1 -1
- package/dist/demo/pb-facsimile.html +2 -2
- package/dist/demo/pb-leaflet-map.html +1 -1
- 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 +1827 -1520
- package/dist/pb-edit-app.js +167 -107
- package/dist/pb-elements.json +54 -54
- 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 +925 -758
- package/dist/pb-tify.js +2 -2
- package/dist/{vaadin-element-mixin-859a0132.js → vaadin-element-mixin-ad07ba25.js} +88 -61
- package/gh-pages.js +5 -3
- package/lib/openseadragon.min.js +6 -6
- package/package.json +3 -2
- package/pb-elements.json +54 -54
- 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 +171 -167
- package/src/pb-authority-lookup.js +96 -81
- 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 +149 -146
- package/src/pb-combo-box.js +190 -190
- package/src/pb-components-bundle.js +1 -1
- package/src/pb-custom-form.js +150 -149
- package/src/pb-document.js +89 -90
- package/src/pb-download.js +208 -195
- package/src/pb-drawer.js +145 -148
- package/src/pb-edit-app.js +301 -229
- package/src/pb-edit-xml.js +99 -96
- package/src/pb-events.js +114 -107
- package/src/pb-facs-link.js +104 -102
- package/src/pb-facsimile.js +444 -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 +83 -70
- 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 +275 -254
- 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 +143 -130
- 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 +1056 -958
- package/src/pb-odd-elementspec-editor.js +348 -297
- package/src/pb-odd-model-editor.js +1058 -898
- package/src/pb-odd-parameter-editor.js +200 -178
- package/src/pb-odd-rendition-editor.js +136 -124
- package/src/pb-page.js +432 -422
- 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 +49 -49
- package/src/pb-repeat.js +105 -104
- package/src/pb-restricted.js +84 -77
- package/src/pb-search.js +238 -221
- 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 +198 -185
- 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 +1282 -1263
- package/src/pb-zoom.js +40 -40
- 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 +91 -91
- package/src/urls.js +289 -289
- package/src/utils.js +53 -51
package/src/pb-collapse.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {LitElement, html, css} from 'lit-element';
|
|
2
|
-
import {pbMixin} from './pb-mixin.js';
|
|
3
|
-
import {themableMixin} from
|
|
1
|
+
import { LitElement, html, css } from 'lit-element';
|
|
2
|
+
import { pbMixin } from './pb-mixin.js';
|
|
3
|
+
import { themableMixin } from './theming.js';
|
|
4
4
|
import '@polymer/iron-icon';
|
|
5
5
|
import '@polymer/iron-icons';
|
|
6
6
|
import '@polymer/iron-collapse';
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
/**
|
|
10
9
|
* A collapsible block: in collapsed state it only shows a header and expands if clicked.
|
|
11
10
|
* The header should go into slot `collapse-trigger`, the content into `collapse-content`.
|
|
@@ -31,165 +30,169 @@ import '@polymer/iron-collapse';
|
|
|
31
30
|
* @fires pb-collapse-open - Fires opening the collapsed section
|
|
32
31
|
*/
|
|
33
32
|
export class PbCollapse extends themableMixin(pbMixin(LitElement)) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
33
|
+
static get properties() {
|
|
34
|
+
return {
|
|
35
|
+
...super.properties,
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated
|
|
38
|
+
* Corresponds to the iron-collapse's horizontal property.
|
|
39
|
+
*/
|
|
40
|
+
horizontal: {
|
|
41
|
+
type: Boolean,
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Corresponds to the iron-collapse's noAnimation property.
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
noAnimation: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
attribute: 'no-animation',
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Whether currently expanded.
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
opened: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* By default, an open collapse is closed if another pb-collapse is expanded on the same event channel.
|
|
60
|
+
* Set to true to keep multiple pb-collapse open at the same time.
|
|
61
|
+
*/
|
|
62
|
+
toggles: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* The iron-icon when collapsed. Value must be one of the icons defined by iron-icons
|
|
67
|
+
*/
|
|
68
|
+
expandIcon: {
|
|
69
|
+
type: String,
|
|
70
|
+
attribute: 'expand-icon',
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* The icon when expanded.
|
|
74
|
+
*/
|
|
75
|
+
collapseIcon: {
|
|
76
|
+
type: String,
|
|
77
|
+
attribute: 'collapse-icon',
|
|
78
|
+
},
|
|
79
|
+
/**
|
|
80
|
+
* Whether to hide the expand/collapse icon.
|
|
81
|
+
*/
|
|
82
|
+
noIcons: {
|
|
83
|
+
type: Boolean,
|
|
84
|
+
attribute: 'no-icons',
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
89
88
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
89
|
+
constructor() {
|
|
90
|
+
super();
|
|
91
|
+
this.horizontal = false;
|
|
92
|
+
this.noAnimation = false;
|
|
93
|
+
this.opened = false;
|
|
94
|
+
this.expandIcon = 'icons:expand-more';
|
|
95
|
+
this.collapseIcon = 'icons:expand-less';
|
|
96
|
+
this.noIcons = false;
|
|
97
|
+
this.toggles = false;
|
|
98
|
+
}
|
|
100
99
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
for (const collapse of this.querySelectorAll('pb-collapse')) {
|
|
112
|
-
if (collapse === ev.detail._source) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
this.close();
|
|
117
|
-
});
|
|
100
|
+
connectedCallback() {
|
|
101
|
+
super.connectedCallback();
|
|
102
|
+
this.addEventListener('pb-collapse-open', () => {
|
|
103
|
+
this.open();
|
|
104
|
+
});
|
|
105
|
+
if (this.toggles) {
|
|
106
|
+
this.subscribeTo('pb-collapse-open', ev => {
|
|
107
|
+
if (!ev.detail || ev.detail._source === this) {
|
|
108
|
+
return;
|
|
118
109
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* opens the collapsible section
|
|
123
|
-
*/
|
|
124
|
-
open() {
|
|
125
|
-
if (this.opened) {
|
|
110
|
+
for (const collapse of this.querySelectorAll('pb-collapse')) {
|
|
111
|
+
if (collapse === ev.detail._source) {
|
|
126
112
|
return;
|
|
113
|
+
}
|
|
127
114
|
}
|
|
128
|
-
this.
|
|
129
|
-
|
|
130
|
-
this.emitTo('pb-collapse-open', this);
|
|
115
|
+
this.close();
|
|
116
|
+
});
|
|
131
117
|
}
|
|
118
|
+
}
|
|
132
119
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
120
|
+
/**
|
|
121
|
+
* opens the collapsible section
|
|
122
|
+
*/
|
|
123
|
+
open() {
|
|
124
|
+
if (this.opened) {
|
|
125
|
+
return;
|
|
140
126
|
}
|
|
127
|
+
this.opened = true;
|
|
141
128
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
129
|
+
this.emitTo('pb-collapse-open', this);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* closes the collapsible section
|
|
134
|
+
*/
|
|
135
|
+
close() {
|
|
136
|
+
if (this.opened) {
|
|
137
|
+
this.opened = false;
|
|
150
138
|
}
|
|
139
|
+
}
|
|
151
140
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
<slot id="collapseTrigger" name="collapse-trigger"></slot>
|
|
161
|
-
</div>
|
|
162
|
-
<iron-collapse id="collapse" horizontal="${this.horizontal}" no-animation="${this.noAnimation}" .opened="${this.opened}">
|
|
163
|
-
<slot name="collapse-content"></slot>
|
|
164
|
-
</iron-collapse>
|
|
165
|
-
`;
|
|
141
|
+
/**
|
|
142
|
+
* toggles the collapsible state
|
|
143
|
+
*/
|
|
144
|
+
toggle() {
|
|
145
|
+
this.opened = !this.opened;
|
|
146
|
+
if (this.opened) {
|
|
147
|
+
this.emitTo('pb-collapse-open', this.data);
|
|
166
148
|
}
|
|
149
|
+
}
|
|
167
150
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
151
|
+
render() {
|
|
152
|
+
return html`
|
|
153
|
+
<div id="trigger" @click="${this.toggle}" class="collapse-trigger">
|
|
154
|
+
${!this.noIcons
|
|
155
|
+
? html`<iron-icon
|
|
156
|
+
icon="${this.opened ? this.collapseIcon : this.expandIcon}"
|
|
157
|
+
></iron-icon>`
|
|
158
|
+
: null}
|
|
159
|
+
<slot id="collapseTrigger" name="collapse-trigger"></slot>
|
|
160
|
+
</div>
|
|
161
|
+
<iron-collapse
|
|
162
|
+
id="collapse"
|
|
163
|
+
horizontal="${this.horizontal}"
|
|
164
|
+
no-animation="${this.noAnimation}"
|
|
165
|
+
.opened="${this.opened}"
|
|
166
|
+
>
|
|
167
|
+
<slot name="collapse-content"></slot>
|
|
168
|
+
</iron-collapse>
|
|
169
|
+
`;
|
|
170
|
+
}
|
|
174
171
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
172
|
+
static get styles() {
|
|
173
|
+
return css`
|
|
174
|
+
:host {
|
|
175
|
+
display: block;
|
|
176
|
+
position: relative;
|
|
177
|
+
}
|
|
180
178
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
#trigger {
|
|
180
|
+
display: grid;
|
|
181
|
+
align-items: center;
|
|
182
|
+
grid-template-columns: min-content auto;
|
|
183
|
+
}
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
185
|
+
iron-icon {
|
|
186
|
+
padding: var(--pb-collapse-icon-padding, 0 4px 0 0);
|
|
187
|
+
}
|
|
189
188
|
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
:host(.icon-right) iron-icon {
|
|
190
|
+
position: absolute;
|
|
191
|
+
right: 0;
|
|
192
|
+
}
|
|
193
|
+
`;
|
|
194
|
+
}
|
|
192
195
|
}
|
|
193
196
|
if (!customElements.get('pb-collapse')) {
|
|
194
|
-
|
|
197
|
+
customElements.define('pb-collapse', PbCollapse);
|
|
195
198
|
}
|