@teipublisher/pb-components 2.26.1-next.2 → 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 +267 -9
- 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-6e4cee3a.js +0 -527
- package/src/assets/pb-styles.css +0 -51
- package/src/pb-light-dom.js +0 -40
package/src/pb-zoom.js
CHANGED
|
@@ -1,58 +1,140 @@
|
|
|
1
|
-
import { LitElement, html } from 'lit-element';
|
|
1
|
+
import { LitElement, css, html } from 'lit-element';
|
|
2
2
|
import { pbMixin } from './pb-mixin';
|
|
3
|
-
import '
|
|
4
|
-
import '
|
|
3
|
+
import { translate } from './pb-i18n';
|
|
4
|
+
import { themableMixin } from './theming';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Zoom button to enlarge/shrink the font for the views. This component
|
|
8
|
-
*
|
|
7
|
+
* Zoom button to enlarge/shrink the font for the views. This component manages
|
|
8
|
+
* the global zoom level by setting CSS custom properties on the document root.
|
|
9
9
|
*
|
|
10
10
|
* @fires pb-zoom - sends an event for e.g. pb-views to react to
|
|
11
|
+
* @cssprop --pb-zoom-factor - the zoom factor, e.g. 1.0 for normal size, 1.5 for 150%, 0.5 for 50%
|
|
12
|
+
* @cssprop --pb-min-zoom - the minimum zoom factor, e.g. 0.5 for 50%
|
|
13
|
+
* @cssprop --pb-max-zoom - the maximum zoom factor, e.g. 3.0 for 300%
|
|
11
14
|
*/
|
|
12
|
-
export class PbZoom extends pbMixin(LitElement) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
export class PbZoom extends themableMixin(pbMixin(LitElement)) {
|
|
16
|
+
static get properties() {
|
|
17
|
+
return {
|
|
18
|
+
...super.properties,
|
|
19
|
+
/**
|
|
20
|
+
* Either 'in' or 'out'
|
|
21
|
+
*/
|
|
22
|
+
direction: {
|
|
23
|
+
type: String,
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* The current zoom factor
|
|
27
|
+
*/
|
|
28
|
+
zoomFactor: {
|
|
29
|
+
type: Number,
|
|
30
|
+
reflect: true,
|
|
31
|
+
attribute: 'zoom-factor'
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
constructor() {
|
|
37
|
+
super();
|
|
38
|
+
this.direction = 'in';
|
|
39
|
+
this.zoomFactor = 1.0;
|
|
40
|
+
}
|
|
36
41
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
connectedCallback() {
|
|
43
|
+
super.connectedCallback();
|
|
44
|
+
this._loadZoomPreference();
|
|
45
|
+
}
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
_handleClick() {
|
|
48
|
+
this.emitTo('pb-zoom', { direction: this.direction });
|
|
49
|
+
this.zoom(this.direction);
|
|
50
|
+
}
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Zoom the displayed content by increasing or decreasing font size.
|
|
54
|
+
* Sets the zoom factor on the document root so it applies globally.
|
|
55
|
+
*
|
|
56
|
+
* @param {string} direction either `in` or `out`
|
|
57
|
+
*/
|
|
58
|
+
zoom(direction) {
|
|
59
|
+
const currentZoom = parseFloat(
|
|
60
|
+
getComputedStyle(document.documentElement).getPropertyValue('--pb-zoom-factor') || '1'
|
|
61
|
+
);
|
|
62
|
+
const step = 0.1;
|
|
63
|
+
const minZoom = 0.5;
|
|
64
|
+
const maxZoom = 2.0;
|
|
65
|
+
|
|
66
|
+
let newZoom = direction === 'in'
|
|
67
|
+
? Math.min(currentZoom + step, maxZoom)
|
|
68
|
+
: Math.max(currentZoom - step, minZoom);
|
|
69
|
+
|
|
70
|
+
document.documentElement.style.setProperty('--pb-zoom-factor', newZoom.toString());
|
|
71
|
+
this.zoomFactor = newZoom;
|
|
72
|
+
|
|
73
|
+
// Store user preference
|
|
74
|
+
localStorage.setItem('pb-zoom-preference', newZoom.toString());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Load the user's saved zoom preference from localStorage and apply it globally.
|
|
79
|
+
*/
|
|
80
|
+
_loadZoomPreference() {
|
|
81
|
+
const savedZoom = localStorage.getItem('pb-zoom-preference');
|
|
82
|
+
if (savedZoom) {
|
|
83
|
+
const zoomValue = parseFloat(savedZoom);
|
|
84
|
+
if (!isNaN(zoomValue)) {
|
|
85
|
+
document.documentElement.style.setProperty('--pb-zoom-factor', zoomValue.toString());
|
|
86
|
+
this.zoomFactor = zoomValue;
|
|
87
|
+
}
|
|
49
88
|
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
render() {
|
|
92
|
+
return html`
|
|
93
|
+
<a
|
|
94
|
+
href="#"
|
|
95
|
+
@click="${this._handleClick}"
|
|
96
|
+
title="${this.direction === 'in'
|
|
97
|
+
? translate('toolbar.zoom.in')
|
|
98
|
+
: translate('toolbar.zoom.out')} (current zoom: ${this.zoomFactor.toFixed(1)})"
|
|
99
|
+
>
|
|
100
|
+
<slot name="icon">
|
|
101
|
+
${this.direction === 'in'
|
|
102
|
+
? html`
|
|
103
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
104
|
+
<path
|
|
105
|
+
d="M18.031 16.6168L22.3137 20.8995L20.8995 22.3137L16.6168 18.031C15.0769 19.263 13.124 20 11 20C6.032 20 2 15.968 2 11C2 6.032 6.032 2 11 2C15.968 2 20 6.032 20 11C20 13.124 19.263 15.0769 18.031 16.6168ZM16.0247 15.8748C17.2475 14.6146 18 12.8956 18 11C18 7.1325 14.8675 4 11 4C7.1325 4 4 7.1325 4 11C4 14.8675 7.1325 18 11 18C12.8956 18 14.6146 17.2475 15.8748 16.0247L16.0247 15.8748ZM10 10V7H12V10H15V12H12V15H10V12H7V10H10Z"
|
|
106
|
+
></path>
|
|
107
|
+
</svg>
|
|
108
|
+
`
|
|
109
|
+
: html`
|
|
110
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
111
|
+
<path
|
|
112
|
+
d="M18.031 16.6168L22.3137 20.8995L20.8995 22.3137L16.6168 18.031C15.0769 19.263 13.124 20 11 20C6.032 20 2 15.968 2 11C2 6.032 6.032 2 11 2C15.968 2 20 6.032 20 11C20 13.124 19.263 15.0769 18.031 16.6168ZM16.0247 15.8748C17.2475 14.6146 18 12.8956 18 11C18 7.1325 14.8675 4 11 4C7.1325 4 4 7.1325 4 11C4 14.8675 7.1325 18 11 18C12.8956 18 14.6146 17.2475 15.8748 16.0247L16.0247 15.8748ZM7 10H15V12H7V10Z"
|
|
113
|
+
></path>
|
|
114
|
+
</svg>
|
|
115
|
+
`}
|
|
116
|
+
</slot>
|
|
117
|
+
</a>
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
static get styles() {
|
|
122
|
+
return css`
|
|
123
|
+
a {
|
|
124
|
+
color: inherit;
|
|
125
|
+
text-decoration: none;
|
|
126
|
+
}
|
|
127
|
+
a:hover {
|
|
128
|
+
color: inherit;
|
|
129
|
+
}
|
|
130
|
+
`;
|
|
131
|
+
}
|
|
50
132
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
133
|
+
/**
|
|
134
|
+
* Fired when the user clicks the element.
|
|
135
|
+
*
|
|
136
|
+
* @event pb-zoom
|
|
137
|
+
* @param {String} direction: either 'in' or 'out'
|
|
138
|
+
*/
|
|
57
139
|
}
|
|
58
|
-
customElements.define('pb-zoom', PbZoom);
|
|
140
|
+
customElements.define('pb-zoom', PbZoom);
|
package/src/polymer-hack.js
CHANGED