@pacem/pacem-ui 2.0.0-babbage → 2.0.0-chebyshev
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/dist/browser/pacem-ui.js +71 -9
- package/dist/browser/pacem-ui.js.map +1 -1
- package/dist/browser/pacem-ui.min.js +2 -2
- package/dist/bundle/pacem-ui.min.mjs +57 -57
- package/dist/bundle/pacem-ui.mjs +67 -9
- package/dist/bundle/pacem-ui.mjs.map +2 -2
- package/dist/docs/pacem-ui.json +32 -1
- package/dist/esm/adapter.js +1 -1
- package/dist/esm/anchor.js +1 -1
- package/dist/esm/balloon.js +1 -1
- package/dist/esm/binder.js +57 -9
- package/dist/esm/blade.js +1 -1
- package/dist/esm/bottom-sheet.js +1 -1
- package/dist/esm/button.js +1 -1
- package/dist/esm/buttonset.js +1 -1
- package/dist/esm/calendar.js +1 -1
- package/dist/esm/collapse.js +1 -1
- package/dist/esm/dialog-abstractions.js +1 -1
- package/dist/esm/dialog.js +1 -1
- package/dist/esm/divider.js +1 -1
- package/dist/esm/icon.js +1 -1
- package/dist/esm/image.js +1 -1
- package/dist/esm/index-components-ui.js +1 -1
- package/dist/esm/index-components.js +1 -1
- package/dist/esm/index-iife.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/infinite-scroller.js +1 -1
- package/dist/esm/iterative.js +1 -1
- package/dist/esm/lightbox-abstractions.js +1 -1
- package/dist/esm/lightbox.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/markdown-svc.js +1 -1
- package/dist/esm/markdown.js +1 -1
- package/dist/esm/marquee.js +1 -1
- package/dist/esm/media-query.js +1 -1
- package/dist/esm/menu.js +1 -1
- package/dist/esm/pager.js +1 -1
- package/dist/esm/picture.js +1 -1
- package/dist/esm/progressbar.js +1 -1
- package/dist/esm/sidebar.js +1 -1
- package/dist/esm/slideshow.js +1 -1
- package/dist/esm/social-twitter.js +1 -1
- package/dist/esm/sticky-header.js +1 -1
- package/dist/esm/tabs.js +1 -1
- package/dist/esm/ticker.js +1 -1
- package/dist/esm/toast.js +1 -1
- package/dist/esm/toc.js +1 -1
- package/dist/esm/tuner.js +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/vibration.js +1 -1
- package/dist/esm/view.js +15 -1
- package/dist/esm/window.js +1 -1
- package/package.json +1 -1
- package/typings/index.d.ts +11 -1
package/dist/bundle/pacem-ui.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @pacem/pacem-ui v2.0.0-
|
|
2
|
+
* @pacem/pacem-ui v2.0.0-chebyshev (https://js.pacem.it)
|
|
3
3
|
* Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -1318,6 +1318,10 @@ var PacemBinderElement = class PacemBinderElement2 extends Components4.PacemElem
|
|
|
1318
1318
|
this._setPathVisibility();
|
|
1319
1319
|
}
|
|
1320
1320
|
break;
|
|
1321
|
+
case "layer":
|
|
1322
|
+
this._hostSvg();
|
|
1323
|
+
this._draw();
|
|
1324
|
+
break;
|
|
1321
1325
|
}
|
|
1322
1326
|
}
|
|
1323
1327
|
disconnectedCallback() {
|
|
@@ -1357,27 +1361,66 @@ var PacemBinderElement = class PacemBinderElement2 extends Components4.PacemElem
|
|
|
1357
1361
|
Utils4.addClass(svg, PCSS4 + "-binder " + this.className);
|
|
1358
1362
|
svg.style.top = "0";
|
|
1359
1363
|
svg.style.left = "0";
|
|
1360
|
-
svg.style.overflow = "hidden";
|
|
1361
1364
|
svg.style.pointerEvents = "none";
|
|
1362
1365
|
const path = this._path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
1363
1366
|
path.setAttribute("fill", "none");
|
|
1364
1367
|
path.setAttribute("display", "none");
|
|
1365
1368
|
this._setPathVisibility();
|
|
1366
1369
|
svg.appendChild(path);
|
|
1367
|
-
this.
|
|
1368
|
-
document.body.appendChild(svg);
|
|
1370
|
+
this._hostSvg();
|
|
1369
1371
|
STD_EVENTS.forEach((e) => {
|
|
1370
1372
|
path.addEventListener(e, this._broadcastHandler, false);
|
|
1371
1373
|
});
|
|
1372
1374
|
}
|
|
1373
1375
|
}
|
|
1374
|
-
/**
|
|
1376
|
+
/** Whether the SVG lives in a custom {@link layer} rather than in the full-page overlay. */
|
|
1377
|
+
get _layered() {
|
|
1378
|
+
const layer = this.layer;
|
|
1379
|
+
return !Utils4.isNull(layer) && layer !== document.body;
|
|
1380
|
+
}
|
|
1381
|
+
/** Appends the SVG to its host ({@link layer} or `document.body`), adapting its overflow and size accordingly. */
|
|
1382
|
+
_hostSvg() {
|
|
1383
|
+
const svg = this._svg;
|
|
1384
|
+
if (Utils4.isNull(svg)) {
|
|
1385
|
+
return;
|
|
1386
|
+
}
|
|
1387
|
+
const layered = this._layered;
|
|
1388
|
+
svg.style.overflow = layered ? "visible" : "hidden";
|
|
1389
|
+
this.invalidateSize();
|
|
1390
|
+
const host = layered ? this.layer : document.body;
|
|
1391
|
+
if (svg.parentNode !== host) {
|
|
1392
|
+
host.appendChild(svg);
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
/** Resizes the shared full-page SVG overlay to match the current document size; call after layout changes that may affect `document.body`'s scroll size. A {@link layer}-hosted SVG just fills its host. */
|
|
1375
1396
|
invalidateSize() {
|
|
1376
1397
|
const svg = this._svg;
|
|
1377
|
-
if (
|
|
1378
|
-
|
|
1379
|
-
|
|
1398
|
+
if (Utils4.isNull(svg)) {
|
|
1399
|
+
return;
|
|
1400
|
+
}
|
|
1401
|
+
if (this._layered) {
|
|
1402
|
+
svg.setAttribute("width", "100%");
|
|
1403
|
+
svg.setAttribute("height", "100%");
|
|
1404
|
+
return;
|
|
1380
1405
|
}
|
|
1406
|
+
svg.setAttribute("width", document.body.scrollWidth.toString());
|
|
1407
|
+
svg.setAttribute("height", document.body.scrollHeight.toString());
|
|
1408
|
+
}
|
|
1409
|
+
/** Page coordinates of the origin the curve is drawn against: the {@link layer}'s (scrolled) padding box, or the page itself. */
|
|
1410
|
+
_getOrigin() {
|
|
1411
|
+
if (!this._layered) {
|
|
1412
|
+
return { x: 0, y: 0 };
|
|
1413
|
+
}
|
|
1414
|
+
const layer = this.layer;
|
|
1415
|
+
const offset = Utils4.offset(layer);
|
|
1416
|
+
return {
|
|
1417
|
+
x: offset.left + layer.clientLeft - layer.scrollLeft,
|
|
1418
|
+
y: offset.top + layer.clientTop - layer.scrollTop
|
|
1419
|
+
};
|
|
1420
|
+
}
|
|
1421
|
+
/** Translates a page-based layout into the coordinates of the drawing origin. */
|
|
1422
|
+
_toLocal(size, origin) {
|
|
1423
|
+
return { ...size, left: size.left - origin.x, top: size.top - origin.y };
|
|
1381
1424
|
}
|
|
1382
1425
|
_computeAnchorPoints(target, anchor, end, ref, refAnchor, refEnd, tension) {
|
|
1383
1426
|
var p1, p2, c1, c2;
|
|
@@ -1709,7 +1752,8 @@ var PacemBinderElement = class PacemBinderElement2 extends Components4.PacemElem
|
|
|
1709
1752
|
path.setAttribute("d", "");
|
|
1710
1753
|
return;
|
|
1711
1754
|
}
|
|
1712
|
-
const
|
|
1755
|
+
const origin = this._getOrigin(), size1 = this._toLocal(state1.size, origin), size2 = this._toLocal(state2.size, origin);
|
|
1756
|
+
const { points, anchors } = this._computeAnchorPoints(size1, state1.anchor, this.fromEnd, size2, state2.anchor, this.toEnd, this.tension), p0 = points[0], c0 = points[1], p1 = points[2], c1 = points[3], anchor0 = anchors[0], anchor1 = anchors[1];
|
|
1713
1757
|
const x0 = p0.x;
|
|
1714
1758
|
const y0 = p0.y;
|
|
1715
1759
|
const cx0 = c0.x;
|
|
@@ -1805,6 +1849,9 @@ __decorate4([
|
|
|
1805
1849
|
__decorate4([
|
|
1806
1850
|
Watch4({ emit: false, converter: PropertyConverters4.Boolean })
|
|
1807
1851
|
], PacemBinderElement.prototype, "interactive", void 0);
|
|
1852
|
+
__decorate4([
|
|
1853
|
+
Watch4({ emit: false, converter: PropertyConverters4.Element })
|
|
1854
|
+
], PacemBinderElement.prototype, "layer", void 0);
|
|
1808
1855
|
PacemBinderElement = __decorate4([
|
|
1809
1856
|
CustomElement4({ tagName: P4 + "-binder" })
|
|
1810
1857
|
], PacemBinderElement);
|
|
@@ -5789,6 +5836,7 @@ var ElementOrStringPropertyConverter = {
|
|
|
5789
5836
|
var PacemViewElement = class PacemViewElement2 extends PacemEventTarget6 {
|
|
5790
5837
|
constructor() {
|
|
5791
5838
|
super(...arguments);
|
|
5839
|
+
this.#renderVersion = 0;
|
|
5792
5840
|
this._templateChangeHandler = (evt) => {
|
|
5793
5841
|
const tmplProxy = evt.target;
|
|
5794
5842
|
this._setTmpl(tmplProxy.target);
|
|
@@ -5809,6 +5857,8 @@ var PacemViewElement = class PacemViewElement2 extends PacemEventTarget6 {
|
|
|
5809
5857
|
);
|
|
5810
5858
|
};
|
|
5811
5859
|
}
|
|
5860
|
+
/** Bumped by every new content: a pending `render` dispatch from superseded content is dropped. */
|
|
5861
|
+
#renderVersion;
|
|
5812
5862
|
propertyChangedCallback(name, old, val, first) {
|
|
5813
5863
|
super.propertyChangedCallback(name, old, val, first);
|
|
5814
5864
|
if (name === "url" || name === "disabled") {
|
|
@@ -5865,6 +5915,7 @@ var PacemViewElement = class PacemViewElement2 extends PacemEventTarget6 {
|
|
|
5865
5915
|
}
|
|
5866
5916
|
_setTmpl(tmpl) {
|
|
5867
5917
|
cancelAnimationFrame(this._renderHandle);
|
|
5918
|
+
this.#renderVersion++;
|
|
5868
5919
|
this.innerHTML = "";
|
|
5869
5920
|
this._dispatchPrerender();
|
|
5870
5921
|
this._renderHandle = requestAnimationFrame(() => {
|
|
@@ -5927,6 +5978,7 @@ var PacemViewElement = class PacemViewElement2 extends PacemEventTarget6 {
|
|
|
5927
5978
|
}
|
|
5928
5979
|
_manageResult(result) {
|
|
5929
5980
|
cancelAnimationFrame(this._renderHandle);
|
|
5981
|
+
const version = ++this.#renderVersion;
|
|
5930
5982
|
this.scrollTo({ top: 0, left: 0, behavior: "instant" });
|
|
5931
5983
|
this.innerHTML = "";
|
|
5932
5984
|
this._dispatchPrerender();
|
|
@@ -5935,12 +5987,18 @@ var PacemViewElement = class PacemViewElement2 extends PacemEventTarget6 {
|
|
|
5935
5987
|
this.fetching = false;
|
|
5936
5988
|
this.progress = Number.NaN;
|
|
5937
5989
|
Utils32.addAnimationEndCallback(this, () => {
|
|
5990
|
+
if (version !== this.#renderVersion) {
|
|
5991
|
+
return;
|
|
5992
|
+
}
|
|
5938
5993
|
this._dispatchRender();
|
|
5939
5994
|
}, ANIM_TIMEOUT);
|
|
5940
5995
|
});
|
|
5941
5996
|
}
|
|
5942
5997
|
#resizeHandle;
|
|
5943
5998
|
_dispatchRender() {
|
|
5999
|
+
if (!this.isConnected) {
|
|
6000
|
+
return;
|
|
6001
|
+
}
|
|
5944
6002
|
const resizer = new Components33.PacemResizeElement();
|
|
5945
6003
|
resizer.target = this;
|
|
5946
6004
|
resizer.addEventListener(Components33.ResizeEventName, this._debounceDispatchHandler);
|