@pacem/pacem-ui 2.0.0-goldbach → 2.0.0-hadamard
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 +228 -145
- 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 +71 -71
- package/dist/bundle/pacem-ui.mjs +282 -226
- package/dist/bundle/pacem-ui.mjs.map +4 -4
- package/dist/docs/pacem-ui.json +171 -149
- package/dist/esm/adapter.js +1 -1
- package/dist/esm/anchor.js +1 -1
- package/dist/esm/balloon.js +94 -28
- package/dist/esm/binder.js +1 -1
- package/dist/esm/blade.js +1 -1
- package/dist/esm/bottom-sheet.js +1 -1
- package/dist/esm/button.js +4 -5
- 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 +17 -5
- 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 +5 -2
- 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 +1 -1
- package/dist/esm/window.js +1 -1
- package/package.json +1 -1
- package/typings/index.d.ts +47 -10
package/dist/esm/calendar.js
CHANGED
package/dist/esm/collapse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @pacem/pacem-ui v2.0.0-
|
|
2
|
+
* @pacem/pacem-ui v2.0.0-hadamard (https://js.pacem.it)
|
|
3
3
|
* Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -39,12 +39,12 @@ export class DialogResultEvent extends CustomTypedEvent {
|
|
|
39
39
|
export class PacemDialogBase extends Components.PacemElement {
|
|
40
40
|
#deferred;
|
|
41
41
|
/** Opens the dialog, optionally seeding its `state`. @returns A promise resolved with the {@link DialogResultEventArgs} once the dialog is committed. */
|
|
42
|
-
open(state) {
|
|
42
|
+
open(state, rejectOnDeny = false) {
|
|
43
43
|
const lb = this.lightbox;
|
|
44
44
|
if (!Utils.isNull(this.#deferred)) {
|
|
45
45
|
throw `Dialog already open.`;
|
|
46
46
|
}
|
|
47
|
-
const deferred = this.#deferred = Promise.withResolvers();
|
|
47
|
+
const deferred = (this.#deferred = { promise: Promise.withResolvers(), rejectOnDeny }).promise;
|
|
48
48
|
if (this.hide || this.disabled) {
|
|
49
49
|
this.log(Logging.LogLevel.Warn, 'Dialog hidden or disabled, opening forbidden.');
|
|
50
50
|
deferred.reject();
|
|
@@ -61,9 +61,21 @@ export class PacemDialogBase extends Components.PacemElement {
|
|
|
61
61
|
avoidHandler(evt);
|
|
62
62
|
this.log(Logging.LogLevel.Debug, `Committing dialog by clicking '${btn}'.`);
|
|
63
63
|
const state = this.state;
|
|
64
|
-
var drevt = new DialogResultEvent({ button: btn, state
|
|
64
|
+
var drevt = new DialogResultEvent({ button: btn, state });
|
|
65
65
|
this.lightbox.show = false;
|
|
66
|
-
this.#deferred
|
|
66
|
+
const { promise, rejectOnDeny } = this.#deferred;
|
|
67
|
+
if (rejectOnDeny) {
|
|
68
|
+
switch (btn) {
|
|
69
|
+
case DialogButton.Cancel:
|
|
70
|
+
case DialogButton.No:
|
|
71
|
+
promise.reject(drevt.detail);
|
|
72
|
+
default:
|
|
73
|
+
promise.resolve(drevt.detail);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
promise.resolve(drevt.detail);
|
|
78
|
+
}
|
|
67
79
|
this.#deferred = null;
|
|
68
80
|
this.dispatchEvent(drevt);
|
|
69
81
|
}
|
package/dist/esm/dialog.js
CHANGED
package/dist/esm/divider.js
CHANGED
package/dist/esm/icon.js
CHANGED
package/dist/esm/image.js
CHANGED
package/dist/esm/index-iife.js
CHANGED
package/dist/esm/index.js
CHANGED
package/dist/esm/iterative.js
CHANGED
package/dist/esm/lightbox.js
CHANGED
package/dist/esm/loader.js
CHANGED
package/dist/esm/markdown-svc.js
CHANGED
package/dist/esm/markdown.js
CHANGED
package/dist/esm/marquee.js
CHANGED
package/dist/esm/media-query.js
CHANGED
package/dist/esm/menu.js
CHANGED
package/dist/esm/pager.js
CHANGED
package/dist/esm/picture.js
CHANGED
package/dist/esm/progressbar.js
CHANGED
package/dist/esm/sidebar.js
CHANGED
package/dist/esm/slideshow.js
CHANGED
package/dist/esm/tabs.js
CHANGED
package/dist/esm/ticker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @pacem/pacem-ui v2.0.0-
|
|
2
|
+
* @pacem/pacem-ui v2.0.0-hadamard (https://js.pacem.it)
|
|
3
3
|
* Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -32,8 +32,11 @@ let PacemTickerElement = class PacemTickerElement extends Components.PacemSafeCo
|
|
|
32
32
|
content = content.toLocaleString();
|
|
33
33
|
}
|
|
34
34
|
if (typeof content === 'string') {
|
|
35
|
+
// (sanitizing a string parses it: a fragment comes back)
|
|
35
36
|
const safeContent = this.sanitize(content);
|
|
36
|
-
this.#newContent =
|
|
37
|
+
this.#newContent = typeof safeContent === 'string'
|
|
38
|
+
? this._buildMarkupNode(safeContent)
|
|
39
|
+
: Array.from(safeContent.childNodes);
|
|
37
40
|
}
|
|
38
41
|
else if (content instanceof Node) {
|
|
39
42
|
const safeContent = this.sanitize(content);
|
package/dist/esm/toast.js
CHANGED
package/dist/esm/toc.js
CHANGED
package/dist/esm/tuner.js
CHANGED
package/dist/esm/types.js
CHANGED
package/dist/esm/vibration.js
CHANGED
package/dist/esm/view.js
CHANGED
package/dist/esm/window.js
CHANGED
package/package.json
CHANGED
package/typings/index.d.ts
CHANGED
|
@@ -28,6 +28,13 @@ declare interface AdapterPageButtonRefreshEventArgs {
|
|
|
28
28
|
|
|
29
29
|
declare const AdapterPageButtonRefreshEventName = "pagerefresh";
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* CSS custom property a balloon publishes on itself when placed: the room left (px) on its side of the target, within
|
|
33
|
+
* the viewport, so that its contents can fit (e.g. `max-height: var(--pacem-balloon-available-height)` on a scrolling
|
|
34
|
+
* list). Updated whenever the balloon repositions (scroll, resize, when tracking).
|
|
35
|
+
*/
|
|
36
|
+
declare const AVAILABLE_HEIGHT_VAR = "--pacem-balloon-available-height";
|
|
37
|
+
|
|
31
38
|
/** Cross-axis alignment of a {@link PacemBalloonElement} relative to its `target`. */
|
|
32
39
|
declare enum BalloonAlignment {
|
|
33
40
|
Start = "start",
|
|
@@ -61,8 +68,25 @@ declare type BalloonOptions = {
|
|
|
61
68
|
align?: BalloonAlignment;
|
|
62
69
|
/** Optimizes the start- and end-alignments in case of tiny targets. */
|
|
63
70
|
autoAdjust?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* With an automatic position (`auto`, `x`, `y`), the side that wins whenever the balloon fits there, on either axis
|
|
73
|
+
* (otherwise, as by default, the larger side of the position's axis). An explicit position (`top`, `left`...) still
|
|
74
|
+
* wins over it. E.g. `bottom` for dropdowns.
|
|
75
|
+
*/
|
|
76
|
+
prefer?: BalloonPlacement;
|
|
64
77
|
};
|
|
65
78
|
|
|
79
|
+
/** A side of `target` a {@link PacemBalloonElement} can sit on. */
|
|
80
|
+
declare const BalloonPlacement: {
|
|
81
|
+
readonly Top: 'top';
|
|
82
|
+
readonly Left: 'left';
|
|
83
|
+
readonly Bottom: 'bottom';
|
|
84
|
+
readonly Right: 'right';
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/** A side of `target` a {@link PacemBalloonElement} can sit on. */
|
|
88
|
+
declare type BalloonPlacement = typeof BalloonPlacement[keyof typeof BalloonPlacement];
|
|
89
|
+
|
|
66
90
|
/** Event name fired by {@link PacemBalloonElement} once it has finished popping out (after the hide transition). */
|
|
67
91
|
declare const BalloonPopoutEventName = "popout";
|
|
68
92
|
|
|
@@ -70,15 +94,18 @@ declare const BalloonPopoutEventName = "popout";
|
|
|
70
94
|
declare const BalloonPopupEventName = "popup";
|
|
71
95
|
|
|
72
96
|
/** Side of `target` a {@link PacemBalloonElement} is anchored to (with automatic variants that pick the side with the most room). */
|
|
73
|
-
declare
|
|
74
|
-
Top
|
|
75
|
-
Left
|
|
76
|
-
Bottom
|
|
77
|
-
Right
|
|
78
|
-
Auto
|
|
79
|
-
HorizontalAuto
|
|
80
|
-
VerticalAuto
|
|
81
|
-
}
|
|
97
|
+
declare const BalloonPosition: {
|
|
98
|
+
readonly Top: 'top';
|
|
99
|
+
readonly Left: 'left';
|
|
100
|
+
readonly Bottom: 'bottom';
|
|
101
|
+
readonly Right: 'right';
|
|
102
|
+
readonly Auto: 'auto';
|
|
103
|
+
readonly HorizontalAuto: 'x';
|
|
104
|
+
readonly VerticalAuto: 'y';
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/** Side of `target` a {@link PacemBalloonElement} is anchored to (with automatic variants that pick the side with the most room). */
|
|
108
|
+
declare type BalloonPosition = typeof BalloonPosition[keyof typeof BalloonPosition];
|
|
82
109
|
|
|
83
110
|
/** Whether a {@link PacemBalloonElement} sizes itself freely or matches its `target`'s size along the anchored axis. */
|
|
84
111
|
declare enum BalloonSizing {
|
|
@@ -415,6 +442,14 @@ declare class PacemBalloonElement extends Components_2.PacemElement {
|
|
|
415
442
|
private _registerEvents;
|
|
416
443
|
private _unregisterEvents;
|
|
417
444
|
private _onLayoutChange;
|
|
445
|
+
/**
|
|
446
|
+
* The side {@link BalloonOptions.prefer} asks for, when the balloon fits there (its natural size, on that side of the
|
|
447
|
+
* target, within the viewport); `null` otherwise, or when nothing is preferred.
|
|
448
|
+
* @param room The room around the target, per side.
|
|
449
|
+
*/
|
|
450
|
+
private _preferredSide;
|
|
451
|
+
/** The room left on a side of the target (the whole viewport height for a side that is not above or below). */
|
|
452
|
+
private _availableHeight;
|
|
418
453
|
private _adjust;
|
|
419
454
|
private _adjustWatchers;
|
|
420
455
|
/**
|
|
@@ -712,7 +747,7 @@ declare abstract class PacemDialogBase extends Components_2.PacemElement {
|
|
|
712
747
|
/** @readonly Gets the underlying {@link Lightbox} instance this dialog shows/hides itself through. */
|
|
713
748
|
protected abstract get lightbox(): Lightbox;
|
|
714
749
|
/** Opens the dialog, optionally seeding its `state`. @returns A promise resolved with the {@link DialogResultEventArgs} once the dialog is committed. */
|
|
715
|
-
open(state?: any): Promise<DialogResultEventArgs>;
|
|
750
|
+
open(state?: any, rejectOnDeny?: boolean): Promise<DialogResultEventArgs>;
|
|
716
751
|
/** Closes the dialog with the given button outcome, resolving the pending `open()` promise and dispatching a {@link DialogResultEvent}. */
|
|
717
752
|
protected commit(btn: DialogButton, evt: Event): void;
|
|
718
753
|
}
|
|
@@ -1322,11 +1357,13 @@ declare namespace UI {
|
|
|
1322
1357
|
BalloonBehavior,
|
|
1323
1358
|
BalloonTrigger,
|
|
1324
1359
|
BalloonAlignment,
|
|
1360
|
+
BalloonPlacement,
|
|
1325
1361
|
BalloonPosition,
|
|
1326
1362
|
BalloonSizing,
|
|
1327
1363
|
BalloonPopupEventName,
|
|
1328
1364
|
BalloonPopoutEventName,
|
|
1329
1365
|
BalloonOptions,
|
|
1366
|
+
AVAILABLE_HEIGHT_VAR,
|
|
1330
1367
|
PacemBalloonElement,
|
|
1331
1368
|
BinderAnchor,
|
|
1332
1369
|
BinderEnd,
|