@teipublisher/pb-components 2.26.1-next.3 → 3.0.0-next-4.2
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 +53 -0
- package/.github/workflows/node.js.yml +70 -21
- package/.releaserc.json +7 -2
- package/CHANGELOG.md +363 -11
- 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/.github/workflows/main.yml +0 -24
- package/.github/workflows/release.js.yml +0 -34
- 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-fe4a4883.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 -41
- package/src/polymer-hack.js +0 -6
package/Dockerfile
CHANGED
|
@@ -1,41 +1,12 @@
|
|
|
1
|
-
ARG EXIST_VERSION=
|
|
1
|
+
ARG EXIST_VERSION=release
|
|
2
|
+
ARG BUILD=local
|
|
3
|
+
ARG PUBLISHER_VERSION=master
|
|
2
4
|
|
|
3
5
|
# START STAGE 1
|
|
4
|
-
FROM
|
|
5
|
-
|
|
6
|
-
USER root
|
|
7
|
-
|
|
8
|
-
ENV ANT_VERSION 1.10.15
|
|
9
|
-
ENV ANT_HOME /etc/ant-${ANT_VERSION}
|
|
10
|
-
|
|
11
|
-
WORKDIR /tmp
|
|
12
|
-
|
|
13
|
-
RUN apt-get update && apt-get install -y \
|
|
14
|
-
git \
|
|
15
|
-
curl
|
|
16
|
-
|
|
17
|
-
RUN curl -L -o apache-ant-${ANT_VERSION}-bin.tar.gz https://downloads.apache.org/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz \
|
|
18
|
-
&& mkdir ant-${ANT_VERSION} \
|
|
19
|
-
&& tar -zxvf apache-ant-${ANT_VERSION}-bin.tar.gz \
|
|
20
|
-
&& mv apache-ant-${ANT_VERSION} ${ANT_HOME} \
|
|
21
|
-
&& rm apache-ant-${ANT_VERSION}-bin.tar.gz \
|
|
22
|
-
&& rm -rf ant-${ANT_VERSION} \
|
|
23
|
-
&& rm -rf ${ANT_HOME}/manual \
|
|
24
|
-
&& unset ANT_VERSION
|
|
25
|
-
|
|
26
|
-
ENV PATH ${PATH}:${ANT_HOME}/bin
|
|
6
|
+
FROM ghcr.io/eeditiones/builder:latest AS builder
|
|
27
7
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
FROM builder as tei
|
|
31
|
-
|
|
32
|
-
ARG TEMPLATING_VERSION=1.1.0
|
|
33
|
-
ARG PUBLISHER_LIB_VERSION=3.0.0
|
|
34
|
-
ARG ROUTER_VERSION=1.8.0
|
|
35
|
-
ARG PUBLISHER_VERSION=master
|
|
36
|
-
|
|
37
|
-
# add key
|
|
38
|
-
RUN mkdir -p ~/.ssh && ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
|
|
8
|
+
ARG ROUTER_VERSION=1.10.0
|
|
9
|
+
ARG PUBLISHER_VERSION
|
|
39
10
|
|
|
40
11
|
# Build tei-publisher-app
|
|
41
12
|
RUN git clone https://github.com/eeditiones/tei-publisher-app.git \
|
|
@@ -53,38 +24,75 @@ COPY i18n/common/* resources/i18n/common/
|
|
|
53
24
|
|
|
54
25
|
RUN ant
|
|
55
26
|
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
27
|
+
WORKDIR /tmp
|
|
28
|
+
|
|
29
|
+
ADD http://exist-db.org/exist/apps/public-repo/public/roaster-${ROUTER_VERSION}.xar 001.xar
|
|
30
|
+
ADD https://github.com/eeditiones/tei-publisher-lib/releases/latest/download/tei-publisher-lib.xar 002.xar
|
|
31
|
+
|
|
32
|
+
FROM duncdrum/existdb:${EXIST_VERSION} AS build_local
|
|
33
|
+
|
|
34
|
+
ARG USR=root
|
|
35
|
+
USER ${USR}
|
|
36
|
+
|
|
37
|
+
ONBUILD COPY --from=builder /tmp/tei-publisher-app/build/*.xar /exist/autodeploy/
|
|
38
|
+
ONBUILD COPY --from=builder /tmp/*.xar /exist/autodeploy/
|
|
39
|
+
|
|
40
|
+
# TODO(DP): Tagging scheme add EXIST_VERSION to the tag
|
|
41
|
+
FROM ghcr.io/jinntec/base:main AS build_prod
|
|
42
|
+
|
|
43
|
+
ARG USR=nonroot
|
|
44
|
+
USER ${USR}
|
|
45
|
+
|
|
46
|
+
# Copy EXPATH dependencies
|
|
47
|
+
ONBUILD COPY --from=builder --chown=${USR} /tmp/tei-publisher-app/build/*.xar /exist/autodeploy/
|
|
48
|
+
ONBUILD COPY --from=builder --chown=${USR} /tmp/*.xar /exist/autodeploy/
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
FROM build_${BUILD}
|
|
52
|
+
|
|
53
|
+
ARG USR
|
|
54
|
+
USER ${USR}
|
|
55
|
+
|
|
56
|
+
WORKDIR /exist
|
|
57
|
+
|
|
58
|
+
# ARG ADMIN_PASS=none
|
|
59
|
+
|
|
60
|
+
ARG CACHE_MEM
|
|
61
|
+
ARG MAX_BROKER
|
|
62
|
+
ARG JVM_MAX_RAM_PERCENTAGE
|
|
63
|
+
ARG HTTP_PORT=8080
|
|
64
|
+
ARG HTTPS_PORT=8443
|
|
65
|
+
|
|
66
|
+
ARG NER_ENDPOINT=http://localhost:8001
|
|
67
|
+
ARG CONTEXT_PATH=auto
|
|
68
|
+
ARG PROXY_CACHING=false
|
|
69
|
+
|
|
70
|
+
ENV JDK_JAVA_OPTIONS="\
|
|
71
|
+
-Dteipublisher.ner-endpoint=${NER_ENDPOINT} \
|
|
72
|
+
-Dteipublisher.context-path=${CONTEXT_PATH} \
|
|
73
|
+
-Dteipublisher.proxy-caching=${PROXY_CACHING}"
|
|
74
|
+
|
|
75
|
+
# ENV JAVA_TOOL_OPTIONS="\
|
|
76
|
+
# -Dfile.encoding=UTF8 \
|
|
77
|
+
# -Dsun.jnu.encoding=UTF-8 \
|
|
78
|
+
# -Djava.awt.headless=true \
|
|
79
|
+
# -Dorg.exist.db-connection.cacheSize=${CACHE_MEM:-256}M \
|
|
80
|
+
# -Dorg.exist.db-connection.pool.max=${MAX_BROKER:-20} \
|
|
81
|
+
# -Dlog4j.configurationFile=/exist/etc/log4j2.xml \
|
|
82
|
+
# -Dexist.home=/exist \
|
|
83
|
+
# -Dexist.configurationFile=/exist/etc/conf.xml \
|
|
84
|
+
# -Djetty.home=/exist \
|
|
85
|
+
# -Dexist.jetty.config=/exist/etc/jetty/standard.enabled-jetty-configs \
|
|
86
|
+
# -Dteipublisher.ner-endpoint=${NER_ENDPOINT} \
|
|
87
|
+
# -Dteipublisher.context-path=${CONTEXT_PATH} \
|
|
88
|
+
# -Dteipublisher.proxy-caching=${PROXY_CACHING} \
|
|
89
|
+
# -XX:+UseG1GC \
|
|
90
|
+
# -XX:+UseStringDeduplication \
|
|
91
|
+
# -XX:+UseContainerSupport \
|
|
92
|
+
# -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE:-75.0} \
|
|
93
|
+
# -XX:+ExitOnOutOfMemoryError"
|
|
94
|
+
|
|
95
|
+
# pre-populate the database by launching it once and change default pw
|
|
96
|
+
RUN [ "java", "org.exist.start.Main", "client", "--no-gui", "-l", "-u", "admin", "-P", "" ]
|
|
97
|
+
|
|
98
|
+
EXPOSE ${HTTP_PORT} ${HTTPS_PORT}
|
package/README.md
CHANGED
|
@@ -26,7 +26,6 @@ All components talk to an endpoint, which will either be a TEI Publisher instanc
|
|
|
26
26
|
To include components into your own application, you can load them from a CDN:
|
|
27
27
|
|
|
28
28
|
```html
|
|
29
|
-
<script src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
30
29
|
<script type="module" src="https://cdn.jsdelivr.net/npm/@teipublisher/pb-components/dist/pb-components-bundle.js"></script>
|
|
31
30
|
```
|
|
32
31
|
|
|
@@ -62,20 +61,129 @@ Run `npm run build:production` to generate the set of bundle files in `dist`, co
|
|
|
62
61
|
|
|
63
62
|
## Development
|
|
64
63
|
|
|
65
|
-
For development, run `npm start` as described above. It
|
|
64
|
+
For development, run `npm start` as described above. It starts a Vite development server (port 5173 by default), opens a browser window, and watches for file changes. Every component should have a demo to show its functionality.
|
|
65
|
+
|
|
66
|
+
When running locally with Vite, the demos can work in three ways:
|
|
67
|
+
|
|
68
|
+
1. **Standalone (no backend):** the demos run fully in the browser using mocked responses.
|
|
69
|
+
2. **Via Vite proxy:** the demos use relative or root-relative URLs (e.g. `/exist/...`) and Vite forwards those to your local eXist-db on `http://localhost:8080`.
|
|
70
|
+
3. **Direct to eXist-db:** the demos point to `http://localhost:8080/exist/...` without Vite.
|
|
71
|
+
|
|
72
|
+
### Demo best practices
|
|
73
|
+
|
|
74
|
+
When adding or editing demo files, please:
|
|
75
|
+
|
|
76
|
+
- Use **root-relative endpoints** (e.g. `/exist/...`) instead of hard-coding `http://localhost:8080/...`.
|
|
77
|
+
- With the Vite proxy configured, `/exist/...` will be transparently forwarded to your local eXist-db.
|
|
78
|
+
- Demo pages should be tested via `e2e` tests in cypress.
|
|
79
|
+
- Standalone demos are preferable.
|
|
80
|
+
|
|
81
|
+
By following these guidelines, all demo pages remain portable: they can run standalone in Vite (offline) or against a live TEI Publisher backend without code changes.
|
|
82
|
+
|
|
83
|
+
### App configuration
|
|
66
84
|
|
|
67
85
|
You can configure TEI Publisher (or an app generated from it) to load components from the development server. This allows you to directly test changes you made to components within the full TEI Publisher environment.
|
|
68
86
|
|
|
69
|
-
In TEI Publisher, open `modules/config.xqm` and change variable `$config:webcomponents` to the value *dev*. Below,
|
|
87
|
+
In TEI Publisher, open `modules/config.xqm` and change variable `$config:webcomponents` to the value *dev*. Below, set `$config:webcomponents-cdn` to `http://localhost:5173`:
|
|
70
88
|
|
|
71
89
|
```xquery
|
|
72
90
|
declare variable $config:webcomponents := "dev";
|
|
73
91
|
|
|
74
|
-
declare variable $config:webcomponents-cdn := "http://localhost:
|
|
92
|
+
declare variable $config:webcomponents-cdn := "http://localhost:5173";
|
|
75
93
|
```
|
|
76
94
|
|
|
77
95
|
After reloading TEI Publisher in the browser, components should be loaded from your local development server.
|
|
78
96
|
|
|
97
|
+
## Testing
|
|
98
|
+
|
|
99
|
+
This project uses Cypress for both component testing and end-to-end testing.
|
|
100
|
+
|
|
101
|
+
### Running Tests
|
|
102
|
+
|
|
103
|
+
**Component Tests (Fast):**
|
|
104
|
+
```bash
|
|
105
|
+
npm run cy:run:ct
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**End-to-End Tests (Full):**
|
|
109
|
+
```bash
|
|
110
|
+
npm run cy:run:e2e
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Interactive Mode:**
|
|
114
|
+
```bash
|
|
115
|
+
npm run cy:open
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Running Individual Specs:**
|
|
119
|
+
|
|
120
|
+
For **Component Tests** (single spec):
|
|
121
|
+
```bash
|
|
122
|
+
npx cypress run --component --spec "test/cypress/component/pb-button.cy.js"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
For **E2E Tests** (single spec with dev server):
|
|
126
|
+
```bash
|
|
127
|
+
npx concurrently --kill-others --success first 'vite --no-open' 'npx cypress run --e2e --spec "test/cypress/e2e/pb-button.e2e.cy.js"'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
For **E2E Tests** (multiple specs with dev server):
|
|
131
|
+
```bash
|
|
132
|
+
npx concurrently --kill-others --success first 'vite --no-open' 'npx cypress run --e2e --spec "test/cypress/e2e/pb-button.e2e.cy.js,test/cypress/e2e/pb-dialog.e2e.cy.js"'
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Note:** E2E tests require the Vite dev server to be running. The `concurrently` command automatically starts and stops the dev server as needed.
|
|
136
|
+
|
|
137
|
+
### Test Architecture
|
|
138
|
+
|
|
139
|
+
- **Component Tests**: Test individual components in isolation using Cypress Component Testing
|
|
140
|
+
- **E2E Tests**: Test complete demo pages and component interactions using Cypress E2E Testing
|
|
141
|
+
- **Process Management**: Uses `concurrently` to automatically manage Vite dev server lifecycle during E2E tests
|
|
142
|
+
|
|
143
|
+
### Test Development Guidelines
|
|
144
|
+
|
|
145
|
+
When writing tests, follow these patterns:
|
|
146
|
+
|
|
147
|
+
**Component Tests:**
|
|
148
|
+
- Focus on component-specific functionality
|
|
149
|
+
- Test props, events, and basic rendering
|
|
150
|
+
- Avoid complex component interactions (use E2E tests instead)
|
|
151
|
+
|
|
152
|
+
**E2E Tests:**
|
|
153
|
+
- Test complete user workflows
|
|
154
|
+
- Use appropriate page load strategies (see Development section)
|
|
155
|
+
- Test component interactions and integration
|
|
156
|
+
|
|
157
|
+
**Demo Page Load Strategies:**
|
|
158
|
+
|
|
159
|
+
1. **Pages with `firePageReady()` calls:**
|
|
160
|
+
```javascript
|
|
161
|
+
beforeEach(() => {
|
|
162
|
+
cy.visit('/demo/pb-tabs.html')
|
|
163
|
+
cy.window().then(win => {
|
|
164
|
+
return new Cypress.Promise(resolve => {
|
|
165
|
+
win.addEventListener('pb-page-ready', resolve, { once: true })
|
|
166
|
+
})
|
|
167
|
+
})
|
|
168
|
+
})
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
2. **Pages with `<pb-page>` but no `firePageReady()`:**
|
|
172
|
+
```javascript
|
|
173
|
+
beforeEach(() => {
|
|
174
|
+
cy.visit('/demo/pb-dialog.html')
|
|
175
|
+
cy.get('pb-page', { timeout: 5000 }).should('exist')
|
|
176
|
+
})
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
3. **Simple pages:**
|
|
180
|
+
```javascript
|
|
181
|
+
beforeEach(() => {
|
|
182
|
+
cy.visit('/demo/pb-progress.html')
|
|
183
|
+
cy.get('body', { timeout: 3000 }).should('be.visible')
|
|
184
|
+
})
|
|
185
|
+
```
|
|
186
|
+
|
|
79
187
|
## Building Documentation
|
|
80
188
|
|
|
81
189
|
To regenerate the API documentation, run `npm run docs`.
|
package/css/components.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Global component theme stylesheet
|
|
3
|
-
*
|
|
4
|
-
* Styles defined here are injected into a components' shadow DOM.
|
|
5
|
-
*/
|
|
1
|
+
/*
|
|
2
|
+
* Global component theme stylesheet
|
|
3
|
+
*
|
|
4
|
+
* Styles defined here are injected into a components' shadow DOM.
|
|
5
|
+
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.gridjs-footer button,.gridjs-head button{background-color:transparent;background-image:none;border:none;cursor:pointer;margin:0;outline:none;padding:0}.gridjs-temp{position:relative}.gridjs-head{margin-bottom:5px;padding:5px 1px;width:100%}.gridjs-head:after{clear:both;content:"";display:block}.gridjs-head:empty{border:none;padding:0}.gridjs-container{color:#000;display:inline-block;overflow:hidden;padding:2px;position:relative;z-index:0}.gridjs-footer{background-color:#fff;border-bottom-width:1px;border-color:#e5e7eb;border-radius:0 0 8px 8px;border-top:1px solid #e5e7eb;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;padding:12px 24px;position:relative;width:100%;z-index:5}.gridjs-footer:empty{border:none;padding:0}input.gridjs-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #d2d6dc;border-radius:5px;font-size:14px;line-height:1.45;outline:none;padding:10px 13px}input.gridjs-input:focus{border-color:#9bc2f7;box-shadow:0 0 0 3px rgba(149,189,243,.5)}.gridjs-pagination{color:#3d4044}.gridjs-pagination:after{clear:both;content:"";display:block}.gridjs-pagination .gridjs-summary{float:left;margin-top:5px}.gridjs-pagination .gridjs-pages{float:right}.gridjs-pagination .gridjs-pages button{background-color:#fff;border:1px solid #d2d6dc;border-right:none;outline:none;padding:5px 14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gridjs-pagination .gridjs-pages button:focus{border-right:1px solid #d2d6dc;box-shadow:0 0 0 2px rgba(149,189,243,.5);margin-right:-1px;position:relative}.gridjs-pagination .gridjs-pages button:hover{background-color:#f7f7f7;color:#3c4257;outline:none}.gridjs-pagination .gridjs-pages button:disabled,.gridjs-pagination .gridjs-pages button:hover:disabled,.gridjs-pagination .gridjs-pages button[disabled]{background-color:#fff;color:#6b7280;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-spread{background-color:#fff;box-shadow:none;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-currentPage{background-color:#f7f7f7;font-weight:700}.gridjs-pagination .gridjs-pages button:last-child{border-bottom-right-radius:6px;border-right:1px solid #d2d6dc;border-top-right-radius:6px}.gridjs-pagination .gridjs-pages button:first-child{border-bottom-left-radius:6px;border-top-left-radius:6px}.gridjs-pagination .gridjs-pages button:last-child:focus{margin-right:0}button.gridjs-sort{background-color:transparent;background-position-x:center;background-repeat:no-repeat;background-size:contain;border:none;cursor:pointer;float:right;height:24px;margin:0;outline:none;padding:0;width:13px}button.gridjs-sort-neutral{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDEuOTk4IiBoZWlnaHQ9IjQwMS45OTgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMS45OTggNDAxLjk5OCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTczLjA5MiAxNjQuNDUyaDI1NS44MTNjNC45NDkgMCA5LjIzMy0xLjgwNyAxMi44NDgtNS40MjQgMy42MTMtMy42MTYgNS40MjctNy44OTggNS40MjctMTIuODQ3cy0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2IDUuNDI0QzIxMC4yMzIgMS44MTIgMjA1Ljk1MSAwIDIwMC45OTkgMHMtOS4yMzMgMS44MTItMTIuODUgNS40MjRMNjAuMjQyIDEzMy4zMzFjLTMuNjE3IDMuNjE3LTUuNDI0IDcuOTAxLTUuNDI0IDEyLjg1IDAgNC45NDggMS44MDcgOS4yMzEgNS40MjQgMTIuODQ3IDMuNjIxIDMuNjE3IDcuOTAyIDUuNDI0IDEyLjg1IDUuNDI0ek0zMjguOTA1IDIzNy41NDlINzMuMDkyYy00Ljk1MiAwLTkuMjMzIDEuODA4LTEyLjg1IDUuNDIxLTMuNjE3IDMuNjE3LTUuNDI0IDcuODk4LTUuNDI0IDEyLjg0N3MxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDhMMTg4LjE0OSAzOTYuNTdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4bDEyNy45MDctMTI3LjkwNmMzLjYxMy0zLjYxNCA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDggMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDctMy42MTQtMy42MTYtNy44OTktNS40Mi0xMi44NDgtNS40MnoiLz48L3N2Zz4=");background-position-y:center;opacity:.3}button.gridjs-sort-asc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgMTk3LjI4NyAxNTkuMDI4IDY5LjM4MWMtMy42MTMtMy42MTctNy44OTUtNS40MjQtMTIuODQ3LTUuNDI0cy05LjIzMyAxLjgwNy0xMi44NSA1LjQyNEw1LjQyNCAxOTcuMjg3QzEuODA3IDIwMC45MDQgMCAyMDUuMTg2IDAgMjEwLjEzNHMxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDdjMy42MjEgMy42MTcgNy45MDIgNS40MjUgMTIuODUgNS40MjVoMjU1LjgxM2M0Ljk0OSAwIDkuMjMzLTEuODA4IDEyLjg0OC01LjQyNSAzLjYxMy0zLjYxMyA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDdzLTEuODE0LTkuMjMtNS40MjctMTIuODQ3eiIvPjwvc3ZnPg==");background-position-y:35%;background-size:10px}button.gridjs-sort-desc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgNjkuMzc3Yy0zLjYxNC0zLjYxNy03Ljg5OC01LjQyNC0xMi44NDgtNS40MjRIMTguMjc0Yy00Ljk1MiAwLTkuMjMzIDEuODA3LTEyLjg1IDUuNDI0QzEuODA3IDcyLjk5OCAwIDc3LjI3OSAwIDgyLjIyOGMwIDQuOTQ4IDEuODA3IDkuMjI5IDUuNDI0IDEyLjg0N2wxMjcuOTA3IDEyNy45MDdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4TDI4Ni45MzUgOTUuMDc0YzMuNjEzLTMuNjE3IDUuNDI3LTcuODk4IDUuNDI3LTEyLjg0NyAwLTQuOTQ4LTEuODE0LTkuMjI5LTUuNDI3LTEyLjg1eiIvPjwvc3ZnPg==");background-position-y:65%;background-size:10px}button.gridjs-sort:focus{outline:none}table.gridjs-table{border-collapse:collapse;display:table;margin:0;max-width:100%;overflow:auto;padding:0;table-layout:fixed;text-align:left}.gridjs-tbody,td.gridjs-td{background-color:#fff}td.gridjs-td{border:1px solid #e5e7eb;box-sizing:content-box;padding:12px 24px}td.gridjs-td:first-child{border-left:none}td.gridjs-td:last-child{border-right:none}td.gridjs-message{text-align:center}th.gridjs-th{background-color:#f9fafb;border:1px solid #e5e7eb;border-top:none;box-sizing:border-box;color:#6b7280;outline:none;padding:14px 24px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}th.gridjs-th .gridjs-th-content{float:left;overflow:hidden;text-overflow:ellipsis;width:100%}th.gridjs-th-sort{cursor:pointer}th.gridjs-th-sort .gridjs-th-content{width:calc(100% - 15px)}th.gridjs-th-sort:focus,th.gridjs-th-sort:hover{background-color:#e5e7eb}th.gridjs-th-fixed{box-shadow:0 1px 0 0 #e5e7eb;position
|
|
1
|
+
.gridjs-footer button,.gridjs-head button{background-color:transparent;background-image:none;border:none;cursor:pointer;margin:0;outline:none;padding:0}.gridjs-temp{position:relative}.gridjs-head{margin-bottom:5px;padding:5px 1px;width:100%}.gridjs-head:after{clear:both;content:"";display:block}.gridjs-head:empty{border:none;padding:0}.gridjs-container{color:#000;display:inline-block;overflow:hidden;padding:2px;position:relative;z-index:0}.gridjs-footer{background-color:#fff;border-bottom-width:1px;border-color:#e5e7eb;border-radius:0 0 8px 8px;border-top:1px solid #e5e7eb;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;padding:12px 24px;position:relative;width:100%;z-index:5}.gridjs-footer:empty{border:none;padding:0}input.gridjs-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #d2d6dc;border-radius:5px;font-size:14px;line-height:1.45;outline:none;padding:10px 13px}input.gridjs-input:focus{border-color:#9bc2f7;box-shadow:0 0 0 3px rgba(149,189,243,.5)}.gridjs-pagination{color:#3d4044}.gridjs-pagination:after{clear:both;content:"";display:block}.gridjs-pagination .gridjs-summary{float:left;margin-top:5px}.gridjs-pagination .gridjs-pages{float:right}.gridjs-pagination .gridjs-pages button{background-color:#fff;border:1px solid #d2d6dc;border-right:none;outline:none;padding:5px 14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gridjs-pagination .gridjs-pages button:focus{border-right:1px solid #d2d6dc;box-shadow:0 0 0 2px rgba(149,189,243,.5);margin-right:-1px;position:relative}.gridjs-pagination .gridjs-pages button:hover{background-color:#f7f7f7;color:#3c4257;outline:none}.gridjs-pagination .gridjs-pages button:disabled,.gridjs-pagination .gridjs-pages button:hover:disabled,.gridjs-pagination .gridjs-pages button[disabled]{background-color:#fff;color:#6b7280;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-spread{background-color:#fff;box-shadow:none;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-currentPage{background-color:#f7f7f7;font-weight:700}.gridjs-pagination .gridjs-pages button:last-child{border-bottom-right-radius:6px;border-right:1px solid #d2d6dc;border-top-right-radius:6px}.gridjs-pagination .gridjs-pages button:first-child{border-bottom-left-radius:6px;border-top-left-radius:6px}.gridjs-pagination .gridjs-pages button:last-child:focus{margin-right:0}button.gridjs-sort{background-color:transparent;background-position-x:center;background-repeat:no-repeat;background-size:contain;border:none;cursor:pointer;float:right;height:24px;margin:0;outline:none;padding:0;width:13px}button.gridjs-sort-neutral{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDEuOTk4IiBoZWlnaHQ9IjQwMS45OTgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMS45OTggNDAxLjk5OCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTczLjA5MiAxNjQuNDUyaDI1NS44MTNjNC45NDkgMCA5LjIzMy0xLjgwNyAxMi44NDgtNS40MjQgMy42MTMtMy42MTYgNS40MjctNy44OTggNS40MjctMTIuODQ3cy0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2IDUuNDI0QzIxMC4yMzIgMS44MTIgMjA1Ljk1MSAwIDIwMC45OTkgMHMtOS4yMzMgMS44MTItMTIuODUgNS40MjRMNjAuMjQyIDEzMy4zMzFjLTMuNjE3IDMuNjE3LTUuNDI0IDcuOTAxLTUuNDI0IDEyLjg1IDAgNC45NDggMS44MDcgOS4yMzEgNS40MjQgMTIuODQ3IDMuNjIxIDMuNjE3IDcuOTAyIDUuNDI0IDEyLjg1IDUuNDI0ek0zMjguOTA1IDIzNy41NDlINzMuMDkyYy00Ljk1MiAwLTkuMjMzIDEuODA4LTEyLjg1IDUuNDIxLTMuNjE3IDMuNjE3LTUuNDI0IDcuODk4LTUuNDI0IDEyLjg0N3MxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDhMMTg4LjE0OSAzOTYuNTdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4bDEyNy45MDctMTI3LjkwNmMzLjYxMy0zLjYxNCA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDggMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDctMy42MTQtMy42MTYtNy44OTktNS40Mi0xMi44NDgtNS40MnoiLz48L3N2Zz4=");background-position-y:center;opacity:.3}button.gridjs-sort-asc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgMTk3LjI4NyAxNTkuMDI4IDY5LjM4MWMtMy42MTMtMy42MTctNy44OTUtNS40MjQtMTIuODQ3LTUuNDI0cy05LjIzMyAxLjgwNy0xMi44NSA1LjQyNEw1LjQyNCAxOTcuMjg3QzEuODA3IDIwMC45MDQgMCAyMDUuMTg2IDAgMjEwLjEzNHMxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDdjMy42MjEgMy42MTcgNy45MDIgNS40MjUgMTIuODUgNS40MjVoMjU1LjgxM2M0Ljk0OSAwIDkuMjMzLTEuODA4IDEyLjg0OC01LjQyNSAzLjYxMy0zLjYxMyA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDdzLTEuODE0LTkuMjMtNS40MjctMTIuODQ3eiIvPjwvc3ZnPg==");background-position-y:35%;background-size:10px}button.gridjs-sort-desc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgNjkuMzc3Yy0zLjYxNC0zLjYxNy03Ljg5OC01LjQyNC0xMi44NDgtNS40MjRIMTguMjc0Yy00Ljk1MiAwLTkuMjMzIDEuODA3LTEyLjg1IDUuNDI0QzEuODA3IDcyLjk5OCAwIDc3LjI3OSAwIDgyLjIyOGMwIDQuOTQ4IDEuODA3IDkuMjI5IDUuNDI0IDEyLjg0N2wxMjcuOTA3IDEyNy45MDdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4TDI4Ni45MzUgOTUuMDc0YzMuNjEzLTMuNjE3IDUuNDI3LTcuODk4IDUuNDI3LTEyLjg0NyAwLTQuOTQ4LTEuODE0LTkuMjI5LTUuNDI3LTEyLjg1eiIvPjwvc3ZnPg==");background-position-y:65%;background-size:10px}button.gridjs-sort:focus{outline:none}table.gridjs-table{border-collapse:collapse;display:table;margin:0;max-width:100%;overflow:auto;padding:0;table-layout:fixed;text-align:left;width:100%}.gridjs-tbody,td.gridjs-td{background-color:#fff}td.gridjs-td{border:1px solid #e5e7eb;box-sizing:content-box;padding:12px 24px}td.gridjs-td:first-child{border-left:none}td.gridjs-td:last-child{border-right:none}td.gridjs-message{text-align:center}th.gridjs-th{background-color:#f9fafb;border:1px solid #e5e7eb;border-top:none;box-sizing:border-box;color:#6b7280;outline:none;padding:14px 24px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}th.gridjs-th .gridjs-th-content{float:left;overflow:hidden;text-overflow:ellipsis;width:100%}th.gridjs-th-sort{cursor:pointer}th.gridjs-th-sort .gridjs-th-content{width:calc(100% - 15px)}th.gridjs-th-sort:focus,th.gridjs-th-sort:hover{background-color:#e5e7eb}th.gridjs-th-fixed{box-shadow:0 1px 0 0 #e5e7eb;position:sticky}@supports (-moz-appearance:none){th.gridjs-th-fixed{box-shadow:0 0 0 1px #e5e7eb}}th.gridjs-th:first-child{border-left:none}th.gridjs-th:last-child{border-right:none}.gridjs-tr{border:none}.gridjs-tr-selected td{background-color:#ebf5ff}.gridjs-tr:last-child td{border-bottom:0}.gridjs *,.gridjs :after,.gridjs :before{box-sizing:border-box}.gridjs-wrapper{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border-color:#e5e7eb;border-radius:8px 8px 0 0;border-top-width:1px;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;overflow:auto;position:relative;width:100%;z-index:1}.gridjs-wrapper:nth-last-of-type(2){border-bottom-width:1px;border-radius:8px}.gridjs-search{float:left}.gridjs-search-input{width:250px}.gridjs-loading-bar{background-color:#fff;opacity:.5;z-index:10}.gridjs-loading-bar,.gridjs-loading-bar:after{bottom:0;left:0;position:absolute;right:0;top:0}.gridjs-loading-bar:after{animation:shimmer 2s infinite;background-image:linear-gradient(90deg,hsla(0,0%,80%,0),hsla(0,0%,80%,.2) 20%,hsla(0,0%,80%,.5) 60%,hsla(0,0%,80%,0));content:"";transform:translateX(-100%)}@keyframes shimmer{to{transform:translateX(100%)}}.gridjs-td .gridjs-checkbox{cursor:pointer;display:block;margin:auto}.gridjs-resizable{bottom:0;position:absolute;right:0;top:0;width:5px}.gridjs-resizable:hover{background-color:#9bc2f7;cursor:ew-resize}
|
|
@@ -1,126 +1 @@
|
|
|
1
|
-
.leaflet-control-geocoder {
|
|
2
|
-
border-radius: 4px;
|
|
3
|
-
background: white;
|
|
4
|
-
min-width: 26px;
|
|
5
|
-
min-height: 26px;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.leaflet-touch .leaflet-control-geocoder {
|
|
9
|
-
min-width: 30px;
|
|
10
|
-
min-height: 30px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.leaflet-control-geocoder a,
|
|
14
|
-
.leaflet-control-geocoder .leaflet-control-geocoder-icon {
|
|
15
|
-
border-bottom: none;
|
|
16
|
-
display: inline-block;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.leaflet-control-geocoder .leaflet-control-geocoder-alternatives a {
|
|
20
|
-
width: inherit;
|
|
21
|
-
height: inherit;
|
|
22
|
-
line-height: inherit;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.leaflet-control-geocoder a:hover,
|
|
26
|
-
.leaflet-control-geocoder .leaflet-control-geocoder-icon:hover {
|
|
27
|
-
border-bottom: none;
|
|
28
|
-
display: inline-block;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.leaflet-control-geocoder-form {
|
|
32
|
-
display: none;
|
|
33
|
-
vertical-align: middle;
|
|
34
|
-
}
|
|
35
|
-
.leaflet-control-geocoder-expanded .leaflet-control-geocoder-form {
|
|
36
|
-
display: inline-block;
|
|
37
|
-
}
|
|
38
|
-
.leaflet-control-geocoder-form input {
|
|
39
|
-
font-size: 120%;
|
|
40
|
-
border: 0;
|
|
41
|
-
background-color: transparent;
|
|
42
|
-
width: 246px;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.leaflet-control-geocoder-icon {
|
|
46
|
-
border-radius: 4px;
|
|
47
|
-
width: 26px;
|
|
48
|
-
height: 26px;
|
|
49
|
-
border: none;
|
|
50
|
-
background-color: white;
|
|
51
|
-
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.2 13l3.4 6.6c.6 1.1 2.5-.4 2-1.2l-4-6.2z'/%3E%3Ccircle cx='10.8' cy='8.9' r='3.9' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
|
|
52
|
-
background-repeat: no-repeat;
|
|
53
|
-
background-position: center;
|
|
54
|
-
cursor: pointer;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.leaflet-touch .leaflet-control-geocoder-icon {
|
|
58
|
-
width: 30px;
|
|
59
|
-
height: 30px;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.leaflet-control-geocoder-throbber .leaflet-control-geocoder-icon {
|
|
63
|
-
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-linecap='round' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Cdefs/%3E%3Cg%3E%3Cpath stroke-opacity='.1' d='M14 8.4l3-5'/%3E%3Cpath stroke-opacity='.2' d='M15.6 10l5-3'/%3E%3Cpath stroke-opacity='.3' d='M16.2 12H22'/%3E%3Cpath stroke-opacity='.4' d='M15.6 14l5 3m-6.5-1.4l2.9 5'/%3E%3Cpath stroke-opacity='.5' d='M12 16.2V22m-2-6.4l-3 5'/%3E%3Cpath stroke-opacity='.6' d='M8.4 14l-5 3'/%3E%3Cpath stroke-opacity='.7' d='M7.8 12H2'/%3E%3Cpath stroke-opacity='.8' d='M8.4 10l-5-3'/%3E%3Cpath stroke-opacity='.9' d='M10 8.4l-3-5'/%3E%3Cpath d='M12 7.8V2'/%3E%3CanimateTransform attributeName='transform' calcMode='discrete' dur='1s' repeatCount='indefinite' type='rotate' values='0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12'/%3E%3C/g%3E%3C/svg%3E");
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.leaflet-control-geocoder-form-no-error {
|
|
67
|
-
display: none;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.leaflet-control-geocoder-form input:focus {
|
|
71
|
-
outline: none;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.leaflet-control-geocoder-form button {
|
|
75
|
-
display: none;
|
|
76
|
-
}
|
|
77
|
-
.leaflet-control-geocoder-error {
|
|
78
|
-
margin-top: 8px;
|
|
79
|
-
margin-left: 8px;
|
|
80
|
-
display: block;
|
|
81
|
-
color: #444;
|
|
82
|
-
}
|
|
83
|
-
.leaflet-control-geocoder-alternatives {
|
|
84
|
-
display: block;
|
|
85
|
-
width: 272px;
|
|
86
|
-
list-style: none;
|
|
87
|
-
padding: 0;
|
|
88
|
-
margin: 0;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.leaflet-control-geocoder-alternatives-minimized {
|
|
92
|
-
display: none;
|
|
93
|
-
height: 0;
|
|
94
|
-
}
|
|
95
|
-
.leaflet-control-geocoder-alternatives li {
|
|
96
|
-
white-space: nowrap;
|
|
97
|
-
display: block;
|
|
98
|
-
overflow: hidden;
|
|
99
|
-
padding: 5px 8px;
|
|
100
|
-
text-overflow: ellipsis;
|
|
101
|
-
border-bottom: 1px solid #ccc;
|
|
102
|
-
cursor: pointer;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.leaflet-control-geocoder-alternatives li a,
|
|
106
|
-
.leaflet-control-geocoder-alternatives li a:hover {
|
|
107
|
-
width: inherit;
|
|
108
|
-
height: inherit;
|
|
109
|
-
line-height: inherit;
|
|
110
|
-
background: inherit;
|
|
111
|
-
border-radius: inherit;
|
|
112
|
-
text-align: left;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.leaflet-control-geocoder-alternatives li:last-child {
|
|
116
|
-
border-bottom: none;
|
|
117
|
-
}
|
|
118
|
-
.leaflet-control-geocoder-alternatives li:hover,
|
|
119
|
-
.leaflet-control-geocoder-selected {
|
|
120
|
-
background-color: #f5f5f5;
|
|
121
|
-
}
|
|
122
|
-
.leaflet-control-geocoder-address-detail {
|
|
123
|
-
}
|
|
124
|
-
.leaflet-control-geocoder-address-context {
|
|
125
|
-
color: #666;
|
|
126
|
-
}
|
|
1
|
+
.leaflet-control-geocoder{border-radius:4px;background:#fff;min-width:26px;min-height:26px}.leaflet-touch .leaflet-control-geocoder{min-width:30px;min-height:30px}.leaflet-control-geocoder a,.leaflet-control-geocoder .leaflet-control-geocoder-icon{border-bottom:none;display:inline-block}.leaflet-control-geocoder .leaflet-control-geocoder-alternatives a{width:inherit;height:inherit;line-height:inherit}.leaflet-control-geocoder a:hover,.leaflet-control-geocoder .leaflet-control-geocoder-icon:hover{border-bottom:none;display:inline-block}.leaflet-control-geocoder-form{display:none;vertical-align:middle}.leaflet-control-geocoder-expanded .leaflet-control-geocoder-form{display:inline-block}.leaflet-control-geocoder-form input{font-size:120%;border:0;background-color:transparent;width:246px}.leaflet-control-geocoder-icon{border-radius:4px;width:26px;height:26px;border:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.2 13l3.4 6.6c.6 1.1 2.5-.4 2-1.2l-4-6.2z'/%3E%3Ccircle cx='10.8' cy='8.9' r='3.9' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;cursor:pointer}.leaflet-touch .leaflet-control-geocoder-icon{width:30px;height:30px}.leaflet-control-geocoder-throbber .leaflet-control-geocoder-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-linecap='round' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Cdefs/%3E%3Cg%3E%3Cpath stroke-opacity='.1' d='M14 8.4l3-5'/%3E%3Cpath stroke-opacity='.2' d='M15.6 10l5-3'/%3E%3Cpath stroke-opacity='.3' d='M16.2 12H22'/%3E%3Cpath stroke-opacity='.4' d='M15.6 14l5 3m-6.5-1.4l2.9 5'/%3E%3Cpath stroke-opacity='.5' d='M12 16.2V22m-2-6.4l-3 5'/%3E%3Cpath stroke-opacity='.6' d='M8.4 14l-5 3'/%3E%3Cpath stroke-opacity='.7' d='M7.8 12H2'/%3E%3Cpath stroke-opacity='.8' d='M8.4 10l-5-3'/%3E%3Cpath stroke-opacity='.9' d='M10 8.4l-3-5'/%3E%3Cpath d='M12 7.8V2'/%3E%3CanimateTransform attributeName='transform' calcMode='discrete' dur='1s' repeatCount='indefinite' type='rotate' values='0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12'/%3E%3C/g%3E%3C/svg%3E")}.leaflet-control-geocoder-form-no-error{display:none}.leaflet-control-geocoder-form input:focus{outline:none}.leaflet-control-geocoder-form button{display:none}.leaflet-control-geocoder-error{margin-top:8px;margin-left:8px;display:block;color:#444}.leaflet-control-geocoder-alternatives{display:block;width:272px;list-style:none;padding:0;margin:0}.leaflet-control-geocoder-alternatives-minimized{display:none;height:0}.leaflet-control-geocoder-alternatives li{white-space:nowrap;display:block;overflow:hidden;padding:5px 8px;text-overflow:ellipsis;border-bottom:1px solid #ccc;cursor:pointer}.leaflet-control-geocoder-alternatives li a,.leaflet-control-geocoder-alternatives li a:hover{width:inherit;height:inherit;line-height:inherit;background:inherit;border-radius:inherit;text-align:left}.leaflet-control-geocoder-alternatives li:last-child{border-bottom:none}.leaflet-control-geocoder-alternatives li:hover,.leaflet-control-geocoder-selected{background-color:#f5f5f5}.leaflet-control-geocoder-address-context{color:#666}
|
|
Binary file
|