@pacem/pacem 1.0.0-bessel → 1.0.0-binet
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-2d.js +149 -2
- package/dist/browser/pacem-2d.js.map +1 -1
- package/dist/browser/pacem-2d.min.js +1 -1
- package/dist/browser/pacem-3d.js +646 -2
- package/dist/browser/pacem-3d.js.map +1 -1
- package/dist/browser/pacem-3d.min.js +1 -1
- package/dist/browser/pacem-charts.js +21 -1
- package/dist/browser/pacem-charts.js.map +1 -1
- package/dist/browser/pacem-charts.min.js +1 -1
- package/dist/browser/pacem-cms.js +118 -3
- package/dist/browser/pacem-cms.js.map +1 -1
- package/dist/browser/pacem-cms.min.js +1 -1
- package/dist/browser/pacem-core.js +870 -9
- package/dist/browser/pacem-core.js.map +1 -1
- package/dist/browser/pacem-core.min.js +2 -2
- package/dist/browser/pacem-foundation.js +296 -1
- package/dist/browser/pacem-foundation.js.map +1 -1
- package/dist/browser/pacem-foundation.min.js +1 -1
- package/dist/browser/pacem-fx.js +18 -1
- package/dist/browser/pacem-fx.js.map +1 -1
- package/dist/browser/pacem-fx.min.js +1 -1
- package/dist/browser/pacem-logging.js +15 -1
- package/dist/browser/pacem-logging.js.map +1 -1
- package/dist/browser/pacem-logging.min.js +1 -1
- package/dist/browser/pacem-maps.js +97 -1
- package/dist/browser/pacem-maps.js.map +1 -1
- package/dist/browser/pacem-maps.min.js +1 -1
- package/dist/browser/pacem-media.js +14 -1
- package/dist/browser/pacem-media.js.map +1 -1
- package/dist/browser/pacem-media.min.js +1 -1
- package/dist/browser/pacem-networking.js +22 -1
- package/dist/browser/pacem-networking.js.map +1 -1
- package/dist/browser/pacem-networking.min.js +1 -1
- package/dist/browser/pacem-numerical.js +360 -1
- package/dist/browser/pacem-numerical.js.map +1 -1
- package/dist/browser/pacem-numerical.min.js +1 -1
- package/dist/browser/pacem-plus.js +195 -4
- package/dist/browser/pacem-plus.js.map +1 -1
- package/dist/browser/pacem-plus.min.js +1 -1
- package/dist/browser/pacem-scaffolding.js +420 -38
- package/dist/browser/pacem-scaffolding.js.map +1 -1
- package/dist/browser/pacem-scaffolding.min.js +2 -2
- package/dist/browser/pacem-ui.js +143 -19
- package/dist/browser/pacem-ui.js.map +1 -1
- package/dist/browser/pacem-ui.min.js +2 -2
- package/dist/bundle/pacem.min.mjs +147 -147
- package/dist/bundle/pacem.mjs +2905 -1417
- package/dist/bundle/pacem.mjs.map +3 -3
- package/dist/docs/pacem-2d.json +11549 -0
- package/dist/docs/pacem-3d.json +29096 -0
- package/dist/docs/pacem-charts.json +4244 -0
- package/dist/docs/pacem-cms.json +9325 -0
- package/dist/docs/pacem-core.json +40109 -0
- package/dist/docs/pacem-foundation.json +8941 -0
- package/dist/docs/pacem-fx.json +3121 -0
- package/dist/docs/pacem-logging.json +941 -0
- package/dist/docs/pacem-maps.json +17387 -0
- package/dist/docs/pacem-media.json +1203 -0
- package/dist/docs/pacem-networking.json +1798 -0
- package/dist/docs/pacem-numerical.json +13706 -0
- package/dist/docs/pacem-plus.json +8468 -0
- package/dist/docs/pacem-scaffolding.json +34788 -0
- package/dist/docs/pacem-ui.json +18628 -0
- package/dist/typings/index.d.ts +4109 -31
- package/dist/vscode.html-custom.json +1303 -741
- package/package.json +4 -2
package/dist/browser/pacem-fx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @pacem/pacem v1.0.0-
|
|
2
|
+
* @pacem/pacem v1.0.0-binet (https://js.pacem.it)
|
|
3
3
|
* Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
13
13
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
14
|
};
|
|
15
|
+
/** Base class for `fx` (visual-effect) custom elements: provides the `target` element the effect operates on. */
|
|
15
16
|
class PacemFxElement extends pacemCore.PacemEventTarget {
|
|
16
17
|
}
|
|
17
18
|
__decorate$6([
|
|
@@ -26,6 +27,7 @@
|
|
|
26
27
|
};
|
|
27
28
|
//namespace Pacem.Components.Fx {
|
|
28
29
|
const RIPPLE_CSS = "ripple";
|
|
30
|
+
/** Produces a Material-style ripple wave, centered on the pointer, on the `target` element's `mousedown`/`touchstart`. */
|
|
29
31
|
let PacemFxRippleElement = class PacemFxRippleElement extends PacemFxElement {
|
|
30
32
|
constructor() {
|
|
31
33
|
super(...arguments);
|
|
@@ -161,6 +163,7 @@
|
|
|
161
163
|
}
|
|
162
164
|
return css;
|
|
163
165
|
}
|
|
166
|
+
/** Overlays the `target` element with a pulsing (expanding, fading) outline, tracking its position and size. */
|
|
164
167
|
let PacemFxPulseElement = class PacemFxPulseElement extends PacemFxElement {
|
|
165
168
|
constructor() {
|
|
166
169
|
super();
|
|
@@ -253,6 +256,7 @@
|
|
|
253
256
|
return pacemCore.PropertyConverters.Json.convert(attr);
|
|
254
257
|
}
|
|
255
258
|
};
|
|
259
|
+
/** Animates the `target` element (position and size) between a `from` and a `to` state, "hero"-transition style. */
|
|
256
260
|
let PacemFxHeroElement = class PacemFxHeroElement extends PacemFxElement {
|
|
257
261
|
propertyChangedCallback(name, old, val, first) {
|
|
258
262
|
super.propertyChangedCallback(name, old, val, first);
|
|
@@ -310,6 +314,7 @@
|
|
|
310
314
|
}
|
|
311
315
|
pacemCore.Utils.removeClass(tget, HERO_CSS);
|
|
312
316
|
}
|
|
317
|
+
/** Reverts the `target` element back to its original (`from`) state and returns a promise resolved once the transition completes. */
|
|
313
318
|
reset() {
|
|
314
319
|
//
|
|
315
320
|
if (pacemCore.Utils.isNull(this._originalState) || pacemCore.Utils.isNull(this._targetState)) {
|
|
@@ -321,6 +326,7 @@
|
|
|
321
326
|
this.dispatchEvent(new Event(HERO_OUT));
|
|
322
327
|
});
|
|
323
328
|
}
|
|
329
|
+
/** Starts the hero transition to the `to` state and returns a promise resolved once it completes. */
|
|
324
330
|
start() {
|
|
325
331
|
if (!this.disabled && !pacemCore.Utils.isNull(this.target)) {
|
|
326
332
|
let goal;
|
|
@@ -397,6 +403,7 @@
|
|
|
397
403
|
};
|
|
398
404
|
//namespace Pacem.Components.Fx {
|
|
399
405
|
const CSS_CLASS = pacemCore.PCSS + '-fx-list';
|
|
406
|
+
/** Watches the `target` element's children and dispatches `itemadded`/`itemremoved` events as they are mutated, styling the target as an fx list. */
|
|
400
407
|
let PacemFxListElement = class PacemFxListElement extends PacemFxElement {
|
|
401
408
|
constructor() {
|
|
402
409
|
super(...arguments);
|
|
@@ -482,6 +489,7 @@
|
|
|
482
489
|
function pctFormatter(v) {
|
|
483
490
|
return Math.round(v * 1000) / 10 + '%';
|
|
484
491
|
}
|
|
492
|
+
/** A single color stop within a `PacemFxGradientItemElement` (radial or linear gradient). */
|
|
485
493
|
let PacemFxGradientStopElement = class PacemFxGradientStopElement extends pacemCore.Components.PacemItemElement {
|
|
486
494
|
findContainer() {
|
|
487
495
|
return pacemCore.CustomElementUtils.findAncestor(this, i => i instanceof PacemFxGradientItemElement);
|
|
@@ -505,6 +513,7 @@
|
|
|
505
513
|
PacemFxGradientStopElement = __decorate$1([
|
|
506
514
|
pacemCore.CustomElement({ tagName: pacemCore.P + '-fx-gradient-stop' })
|
|
507
515
|
], PacemFxGradientStopElement);
|
|
516
|
+
/** Base class for gradient-shape elements (radial, linear, ...) hosting `PacemFxGradientStopElement` color stops and producing a CSS gradient string. */
|
|
508
517
|
class PacemFxGradientItemElement extends pacemCore.Components.PacemCrossItemsContainerElement {
|
|
509
518
|
constructor() {
|
|
510
519
|
super(...arguments);
|
|
@@ -538,6 +547,7 @@
|
|
|
538
547
|
_dispatchGradientChange() {
|
|
539
548
|
this.dispatchEvent(new GradientChangeEvent());
|
|
540
549
|
}
|
|
550
|
+
/** Builds the CSS color for a stop, applying the given opacity (if in the `0`-`1` range) on top of the base `color`. */
|
|
541
551
|
buildColor(color, opacity) {
|
|
542
552
|
if (opacity >= 0 && opacity <= 1) {
|
|
543
553
|
const clr = pacemFoundation.Colors.parse(color);
|
|
@@ -546,6 +556,7 @@
|
|
|
546
556
|
return color;
|
|
547
557
|
}
|
|
548
558
|
}
|
|
559
|
+
/** Radial `<gradient>` shape, hosting one or more `PacemFxGradientStopElement` color stops. */
|
|
549
560
|
let PacemFxRadialGradientElement = class PacemFxRadialGradientElement extends PacemFxGradientItemElement {
|
|
550
561
|
doesPropertyTriggerGradientChange(prop) {
|
|
551
562
|
return ['shape', 'size', 'center', 'items', 'hide', 'disabled'].indexOf(prop) >= 0;
|
|
@@ -590,6 +601,7 @@
|
|
|
590
601
|
PacemFxRadialGradientElement = __decorate$1([
|
|
591
602
|
pacemCore.CustomElement({ tagName: pacemCore.P + '-fx-gradient-radial' })
|
|
592
603
|
], PacemFxRadialGradientElement);
|
|
604
|
+
/** Linear `<gradient>` shape, hosting one or more `PacemFxGradientStopElement` color stops. */
|
|
593
605
|
let PacemFxLinearGradientElement = class PacemFxLinearGradientElement extends PacemFxGradientItemElement {
|
|
594
606
|
doesPropertyTriggerGradientChange(prop) {
|
|
595
607
|
return ['angle', 'items', 'hide', 'disabled'].indexOf(prop) >= 0;
|
|
@@ -617,6 +629,7 @@
|
|
|
617
629
|
PacemFxLinearGradientElement = __decorate$1([
|
|
618
630
|
pacemCore.CustomElement({ tagName: pacemCore.P + '-fx-gradient-linear' })
|
|
619
631
|
], PacemFxLinearGradientElement);
|
|
632
|
+
/** Applies a combined CSS gradient (built from its `PacemFxGradientItemElement` children) as the `target` element's background fill or text color. */
|
|
620
633
|
let PacemFxGradientElement = class PacemFxGradientElement extends pacemCore.Components.PacemItemsContainerElement {
|
|
621
634
|
constructor() {
|
|
622
635
|
super(...arguments);
|
|
@@ -720,15 +733,18 @@
|
|
|
720
733
|
const FANCY_CSS = pacemCore.PCSS + "-fancy";
|
|
721
734
|
const FANCIFY_CSS = pacemCore.PCSS + "-fancify";
|
|
722
735
|
const DEFAULT_GAP = 20;
|
|
736
|
+
/** Reveals the `target` element's text content word by word, wrapping each word in an animated `<span>`. */
|
|
723
737
|
let PacemFxFancyElement = class PacemFxFancyElement extends PacemFxElement {
|
|
724
738
|
constructor() {
|
|
725
739
|
super(...arguments);
|
|
726
740
|
this._progress = .0;
|
|
727
741
|
this._started = false;
|
|
728
742
|
}
|
|
743
|
+
/** @readonly Gets the current show progress, as a number between `0` and `1`. */
|
|
729
744
|
get progress() {
|
|
730
745
|
return this._progress;
|
|
731
746
|
}
|
|
747
|
+
/** @readonly Gets whether the fancify animation has (fully) started. */
|
|
732
748
|
get started() {
|
|
733
749
|
return this._started;
|
|
734
750
|
}
|
|
@@ -777,6 +793,7 @@
|
|
|
777
793
|
}
|
|
778
794
|
this._textNodes = a;
|
|
779
795
|
}
|
|
796
|
+
/** Starts (or restarts) the fancify effect on the `target` element. */
|
|
780
797
|
start() {
|
|
781
798
|
if (!this.disabled) {
|
|
782
799
|
this._reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pacem-fx.js","sources":["../esm/types.js","../esm/ripple.js","../esm/pulse.js","../esm/hero.js","../esm/list.js","../esm/gradient.js","../esm/fancy.js","../esm/index-iife.js"],"sourcesContent":["var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';\nexport class PacemFxElement extends PacemEventTarget {\n}\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemFxElement.prototype, \"target\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, ViewChild, Utils, PacemEventTarget } from '@pacem/pacem-core';\nimport { Point } from '@pacem/pacem-foundation';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst RIPPLE_CSS = \"ripple\";\nlet PacemFxRippleElement = class PacemFxRippleElement extends PacemFxElement {\n constructor() {\n super(...arguments);\n this._lock = false;\n this._remove = false;\n this._rippleHandler = (e) => {\n if (this.disabled || (this.target instanceof PacemEventTarget && this.target.disabled)) {\n return;\n }\n if (e instanceof MouseEvent && e.button !== 0) {\n // only the 'main' (left) button click goes.\n return;\n }\n const rect = Utils.offset(this.target);\n const style = getComputedStyle(this.target);\n const css = this.style;\n css.top = rect.top + 'px';\n css.left = rect.left + 'px';\n css.width = rect.width + 'px';\n css.height = rect.height + 'px';\n css.borderRadius = style.borderRadius;\n const pointSrc = e.type === 'touchstart' ? e.touches[0] : e;\n const point = { x: pointSrc.pageX, y: pointSrc.pageY };\n const topLeft = { x: rect.left, y: rect.top }, topRight = { x: rect.left + rect.width, y: rect.top }, bottomLeft = { x: rect.left, y: rect.top + rect.height }, bottomRight = { x: topRight.x, y: bottomLeft.y };\n const radius = Math.max(Point.distance(point, topLeft), Point.distance(point, topRight), Point.distance(point, bottomRight), Point.distance(point, bottomLeft));\n const wave = this._wave;\n wave.style.left = (point.x - rect.left - radius) + 'px';\n wave.style.top = (point.y - rect.top - radius) + 'px';\n wave.style.width = wave.style.height = (2 * radius) + 'px';\n Utils.addAnimationEndCallback(wave, () => {\n this._lock = false;\n this._tryRemove();\n });\n this._lock = true;\n Utils.addClass(wave, 'ripple-go');\n };\n this._unrippleHandler = (e) => {\n this._remove = true;\n this._tryRemove();\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // target switch?\n if (name === 'target') {\n if (!Utils.isNull(old)) {\n this._reset(old);\n }\n if (!Utils.isNull(val)) {\n this._set(val);\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (!Utils.isNull(this.target))\n this._set();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.target))\n this._reset();\n super.disconnectedCallback();\n }\n _tryRemove() {\n if (!this._lock && this._remove) {\n this._remove = false;\n Utils.removeClass(this._wave, 'ripple-go');\n }\n }\n _set(val = this.target) {\n val.addEventListener('mousedown', this._rippleHandler, false);\n val.addEventListener('touchstart', this._rippleHandler, false);\n val.addEventListener('touchend', this._unrippleHandler, false);\n val.addEventListener('mouseup', this._unrippleHandler, false);\n val.addEventListener('mousemove', this._unrippleHandler, false);\n }\n _reset(old = this.target) {\n old.removeEventListener('mousedown', this._rippleHandler, false);\n old.removeEventListener('touchstart', this._rippleHandler, false);\n old.removeEventListener('touchend', this._unrippleHandler, false);\n old.removeEventListener('mouseup', this._unrippleHandler, false);\n old.removeEventListener('mousemove', this._unrippleHandler, false);\n }\n};\n__decorate([\n ViewChild('.' + RIPPLE_CSS)\n], PacemFxRippleElement.prototype, \"_wave\", void 0);\nPacemFxRippleElement = __decorate([\n CustomElement({\n tagName: P + '-fx-ripple', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${RIPPLE_CSS}\"></div>`\n })\n], PacemFxRippleElement);\nexport { PacemFxRippleElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, PCSS, ViewChild, Utils, Components } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst PULSE_CSS = \"pulse\";\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nfunction buildAnimationName(id) {\n return `${PCSS}-fx-pulse-${id}`;\n}\nfunction ensureCssAnimation(id, args, rx = '0', ry = rx) {\n const selector = 'style#' + id;\n const existing = document.querySelector(selector);\n if (Utils.isNull(existing)) {\n const newStyle = document.createElement('style');\n newStyle.id = id;\n document.head.appendChild(newStyle);\n }\n const css = document.querySelector(selector);\n const w = args.width, h = args.height, dim = Math.max(w, h), x = .5 * (dim - w), y = .5 * (dim - h);\n css.sheet.insertRule(`@keyframes ${buildAnimationName(id)} {\r\n 0%{\r\n opacity: .25; stroke-thickness: 0; rx: ${rx}; ry: ${ry}; x: ${x}px; y: ${y}px; width: ${args.width}px; height: ${args.height}px;\r\n }\r\n 50%{\r\n width: ${args.width}px; height: ${args.height}px; transform: scale(1); stroke-width: 10px; rx: ${rx}; ry: ${ry}; opacity: .333; x: ${x}px; y: ${y}px; width: ${w}px; height: ${h}px;\r\n }\r\n 80%{\r\n stroke-width: 10px;\r\n }\r\n 100%{\r\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${dim}px; height: ${dim}px; x: 0; y: 0\r\n }\r\n}`, 0);\n for (let j = css.sheet.rules.length - 1; j > 0; j--) {\n css.sheet.deleteRule(j);\n }\n return css;\n}\nlet PacemFxPulseElement = class PacemFxPulseElement extends PacemFxElement {\n constructor() {\n super();\n this._resizeHandler = (e) => {\n this._pulse(e.detail);\n };\n this.#key = Utils.uniqueCode();\n }\n #key;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._pulse();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._sheet)) {\n this._sheet.remove();\n this._sheet = null;\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'disabled' && !first) {\n this._pulse();\n }\n }\n _pulse(size = this._resize.currentSize) {\n const inert = Utils.isNull(this.target) || Utils.isNull(size) || !(size.height > 0) || !(size.width > 0);\n this._resize.disabled = this.disabled;\n if (this.disabled || inert) {\n Utils.addClass(this, 'pulse-off');\n return;\n }\n Utils.removeClass(this, 'pulse-off');\n const rect = size;\n const style = getComputedStyle(this.target);\n const css = this.style;\n const dim = Math.max(rect.width, rect.height);\n css.width = dim + 'px';\n css.height = dim + 'px';\n css.top = (rect.top + .5 * (rect.height - dim)) + 'px';\n css.left = (rect.left + .5 * (rect.width - dim)) + 'px';\n const rect1 = this._rect1, rect2 = this._rect2;\n const css1 = rect1.style, css2 = rect2.style;\n this._sheet = ensureCssAnimation(this.#key, size, style.borderTopLeftRadius);\n const animationName = buildAnimationName(this.#key);\n css1.animation = css2.animation = `${animationName} both cubic-bezier(0.37, 0, 0.63, 1) 1.25s infinite`;\n css2.animationDelay = '.175s';\n }\n};\n__decorate([\n ViewChild(P + '-resize')\n], PacemFxPulseElement.prototype, \"_resize\", void 0);\n__decorate([\n ViewChild('svg')\n], PacemFxPulseElement.prototype, \"_svg\", void 0);\n__decorate([\n ViewChild('svg > rect[rect1]')\n], PacemFxPulseElement.prototype, \"_rect1\", void 0);\n__decorate([\n ViewChild('svg > rect[rect2]')\n], PacemFxPulseElement.prototype, \"_rect2\", void 0);\nPacemFxPulseElement = __decorate([\n CustomElement({\n tagName: P + '-fx-pulse', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-resize target=\"{{ :host.target }}\" watch-position=\"true\" on-${Components.ResizeEventName}=\":host._resizeHandler($event)\"></${P}-resize>\r\n<svg class=\"${PULSE_CSS}\" xmlns=\"${SVG_NS}\">\r\n <rect rect1 /><rect rect2 />\r\n</svg>`\n })\n], PacemFxPulseElement);\nexport { PacemFxPulseElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Watch, PropertyConverters, P, PCSS, Utils } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst HERO_CSS = PCSS + \"-hero\";\nconst TRANSITION = 200;\nconst HEROING_IN = \"entering\";\nconst HEROING_OUT = \"exiting\";\nconst HERO_IN = \"entered\";\nconst HERO_OUT = \"exited\";\nconst rectOrElementConverter = {\n convert: attr => {\n if (attr.trim().startsWith('#'))\n return PropertyConverters.Element.convert(attr);\n return PropertyConverters.Json.convert(attr);\n }\n};\nlet PacemFxHeroElement = class PacemFxHeroElement extends PacemFxElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // target switch?\n if (name === 'target' && !Utils.isNull(old)) {\n this._resetTarget(old);\n }\n // recompute back path (originalState)?\n if (name === 'from' && this.hero && !Utils.isNull(val)) {\n this._originalState = this._computeFromState();\n }\n // trigger\n if (name === 'hero' || name === 'target' || name === 'goal') {\n if (!Utils.isNull(this.target)) {\n if (this.hero) {\n this.start();\n }\n else {\n this.reset();\n }\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.hero && !Utils.isNull(this.target))\n this.start();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.target))\n this.reset();\n super.disconnectedCallback();\n }\n _computeFromState() {\n const tget = this.target, offset = Utils.offset(tget);\n if (this.from instanceof Element) {\n let from = Utils.offset(this.from);\n return { x: from.left, y: from.top, width: from.width, height: from.height };\n }\n else {\n return { x: offset.left, y: offset.top, width: offset.width, height: offset.height };\n }\n }\n _resetTarget(tget = this.target) {\n // reset inline style options\n const style = tget.style;\n // reset position/size\n style.top = style.left = style.height = style.width = '';\n for (let j = 0; j < style.length; j++) {\n let prop = style.item(j);\n style[prop] = '';\n }\n for (let prop in this._originalStyle) {\n style[prop] = this._originalStyle[prop];\n }\n Utils.removeClass(tget, HERO_CSS);\n }\n reset() {\n //\n if (Utils.isNull(this._originalState) || Utils.isNull(this._targetState)) {\n return;\n }\n this.dispatchEvent(new Event(HEROING_OUT));\n return this._animate(this._targetState, this._originalState).then(() => {\n this._resetTarget();\n this.dispatchEvent(new Event(HERO_OUT));\n });\n }\n start() {\n if (!this.disabled && !Utils.isNull(this.target)) {\n let goal;\n if (this.to instanceof Element) {\n let to = Utils.offset(this.to);\n goal = { x: to.left, y: to.top, width: to.width, height: to.height };\n }\n else {\n goal = this.to;\n }\n const tget = this.target, wSize = Utils.windowSize, state = goal || { x: 0, y: 0, width: wSize.width, height: wSize.height }, style = tget.style;\n this._targetState = state;\n let start = this._originalState = this._computeFromState();\n // save inline style options\n this._originalStyle = {};\n for (let j = 0; j < style.length; j++) {\n let prop = style.item(j);\n this._originalStyle[prop] = style[prop];\n }\n //\n Utils.addClass(tget, HERO_CSS);\n this.dispatchEvent(new Event(HEROING_IN));\n return this._animate(start, state).then(() => {\n this.dispatchEvent(new Event(HERO_IN));\n });\n }\n // nothing to do\n return Promise.resolve();\n }\n _animate(from, to) {\n const tget = this.target, style = tget.style;\n // transformations to make target state look like original state\n // i.e. `target state` gets constrained to fit `original state`.\n const scaleX = from.width / to.width, scaleY = from.height / to.height, translateX = (from.x - to.x) + 'px', translateY = (from.y - to.y) + 'px';\n style.transformOrigin = '0 0';\n style.transition = 'none';\n // set final state\n style.transform = `translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`;\n style.width = to.width + 'px';\n style.height = to.height + 'px';\n style.top = to.y + 'px';\n style.left = to.x + 'px';\n // hero-animate\n requestAnimationFrame(() => {\n let duration = this.duration || TRANSITION;\n style.transition = `transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${duration}ms, opacity ${duration}ms`;\n style.transform = `translate(0, 0) scale(1)`;\n });\n return Utils.waitForAnimationEnd(tget, TRANSITION + 10);\n // Utils.addAnimationEndCallback(tget, callback, TRANSITION + 10);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemFxHeroElement.prototype, \"hero\", void 0);\n__decorate([\n Watch({ converter: rectOrElementConverter, emit: false })\n], PacemFxHeroElement.prototype, \"to\", void 0);\n__decorate([\n Watch({ converter: rectOrElementConverter, emit: false })\n], PacemFxHeroElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemFxHeroElement.prototype, \"duration\", void 0);\nPacemFxHeroElement = __decorate([\n CustomElement({ tagName: P + '-fx-hero' })\n], PacemFxHeroElement);\nexport { PacemFxHeroElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Utils } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst CSS_CLASS = PCSS + '-fx-list';\nlet PacemFxListElement = class PacemFxListElement extends PacemFxElement {\n constructor() {\n super(...arguments);\n this._observed = (items) => {\n const children = Array.from(this.target.children);\n for (let item of items) {\n item.removedNodes.forEach(n => {\n if (n instanceof Element) {\n this.dispatchEvent(new CustomEvent('itemremoved', { detail: n }));\n }\n });\n item.addedNodes.forEach((n, j) => {\n if (n instanceof Element) {\n this.dispatchEvent(new CustomEvent('itemadded', { detail: { item: n, index: children.indexOf(n) } }));\n }\n });\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (!Utils.isNull(this.target)) {\n this._setup();\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._observer)) {\n this._observer.disconnect();\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target') {\n if (old) {\n this._reset(old);\n }\n else {\n this._setup();\n }\n }\n }\n _reset(el) {\n Utils.removeClass(el, CSS_CLASS);\n this._observer.disconnect();\n }\n _setup() {\n const target = this.target;\n Utils.addClass(target, CSS_CLASS);\n const obs = this._observer = new MutationObserver(this._observed);\n obs.observe(target, { childList: true });\n }\n};\nPacemFxListElement = __decorate([\n CustomElement({\n tagName: P + '-fx-list'\n })\n], PacemFxListElement);\nexport { PacemFxListElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Watch, PropertyConverters, P, PCSS, Components, CustomElementUtils, Utils, Debounce } from '@pacem/pacem-core';\nimport { Size, Colors } from '@pacem/pacem-foundation';\n//namespace Pacem.Components.Fx {\nconst GradientChangeEventName = 'gradientchange';\nclass GradientChangeEvent extends Event {\n constructor() {\n super(GradientChangeEventName, { cancelable: false, bubbles: false });\n }\n}\nconst SizeOrNumberConverter = {\n convert: (attr, el) => {\n try {\n return Size.parse(attr);\n }\n catch {\n return PropertyConverters.Number.convert(attr, el);\n }\n }\n};\nfunction pctFormatter(v) {\n return Math.round(v * 1000) / 10 + '%';\n}\nlet PacemFxGradientStopElement = class PacemFxGradientStopElement extends Components.PacemItemElement {\n findContainer() {\n return CustomElementUtils.findAncestor(this, i => i instanceof PacemFxGradientItemElement);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && (name === 'offset' || name === 'color' || name === 'opacity' || name === 'disabled' || name === 'hide')) {\n this.dispatchEvent(new GradientChangeEvent());\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemFxGradientStopElement.prototype, \"offset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFxGradientStopElement.prototype, \"color\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemFxGradientStopElement.prototype, \"opacity\", void 0);\nPacemFxGradientStopElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient-stop' })\n], PacemFxGradientStopElement);\nexport { PacemFxGradientStopElement };\nexport class PacemFxGradientItemElement extends Components.PacemCrossItemsContainerElement {\n constructor() {\n super(...arguments);\n this._dispatchGradientChangeHandler = (e) => {\n this._dispatchGradientChange();\n };\n }\n validate(item) {\n return item instanceof PacemFxGradientStopElement;\n }\n register(item) {\n const registered = super.register(item);\n if (registered) {\n item.addEventListener(GradientChangeEventName, this._dispatchGradientChangeHandler, false);\n }\n return registered;\n }\n unregister(item) {\n const unregistered = super.unregister(item);\n if (unregistered) {\n item.removeEventListener(GradientChangeEventName, this._dispatchGradientChangeHandler, false);\n }\n return unregistered;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && this.doesPropertyTriggerGradientChange(name)) {\n this._dispatchGradientChange();\n }\n }\n _dispatchGradientChange() {\n this.dispatchEvent(new GradientChangeEvent());\n }\n buildColor(color, opacity) {\n if (opacity >= 0 && opacity <= 1) {\n const clr = Colors.parse(color);\n return Colors.stringify(Utils.extend(clr, { a: opacity }));\n }\n return color;\n }\n}\nlet PacemFxRadialGradientElement = class PacemFxRadialGradientElement extends PacemFxGradientItemElement {\n doesPropertyTriggerGradientChange(prop) {\n return ['shape', 'size', 'center', 'items', 'hide', 'disabled'].indexOf(prop) >= 0;\n }\n buildGradient() {\n const items = this.items;\n if (Utils.isNullOrEmpty(items)) {\n return '';\n }\n const shape = this.shape === 'circle' ? 'circle' : 'ellipse';\n const center = this.center ?? { x: .5, y: .5 };\n const size = this.size;\n let dim = '';\n if (!Utils.isNullOrEmpty(size)) {\n if (typeof size === 'number') {\n dim = `${size}px`;\n }\n else {\n dim = `${pctFormatter(size.width / 2)} ${pctFormatter(size.height / 2)}`;\n }\n }\n let stops = [];\n for (let { offset, color, hide, disabled, opacity } of items) {\n if (hide || disabled) {\n continue;\n }\n const clr = this.buildColor(color, opacity);\n stops.push(`${clr} ${pctFormatter(offset)}`);\n }\n return `radial-gradient(${shape} ${dim} at ${pctFormatter(center.x)} ${pctFormatter(center.y)} in oklab, ${stops.join(', ')})`;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFxRadialGradientElement.prototype, \"shape\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemFxRadialGradientElement.prototype, \"center\", void 0);\n__decorate([\n Watch({ emit: false, converter: SizeOrNumberConverter })\n], PacemFxRadialGradientElement.prototype, \"size\", void 0);\nPacemFxRadialGradientElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient-radial' })\n], PacemFxRadialGradientElement);\nexport { PacemFxRadialGradientElement };\nlet PacemFxLinearGradientElement = class PacemFxLinearGradientElement extends PacemFxGradientItemElement {\n doesPropertyTriggerGradientChange(prop) {\n return ['angle', 'items', 'hide', 'disabled'].indexOf(prop) >= 0;\n }\n buildGradient() {\n const items = this.items;\n if (Utils.isNullOrEmpty(items)) {\n return '';\n }\n const angle = this.angle ?? 0;\n let stops = [];\n for (let { offset, color, hide, disabled, opacity } of items) {\n if (hide || disabled) {\n continue;\n }\n const clr = this.buildColor(color, opacity);\n stops.push(`${clr} ${pctFormatter(offset)}`);\n }\n return `linear-gradient(${angle}deg in oklab, ${stops.join(', ')})`;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemFxLinearGradientElement.prototype, \"angle\", void 0);\nPacemFxLinearGradientElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient-linear' })\n], PacemFxLinearGradientElement);\nexport { PacemFxLinearGradientElement };\nlet PacemFxGradientElement = class PacemFxGradientElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._gradientChangeHandler = (e) => {\n this._buildGradient();\n };\n }\n validate(item) {\n return item instanceof PacemFxGradientItemElement;\n }\n register(item) {\n const registered = super.register(item);\n if (registered) {\n item.addEventListener(GradientChangeEventName, this._gradientChangeHandler, false);\n }\n return registered;\n }\n unregister(item) {\n const unregistered = super.unregister(item);\n if (unregistered) {\n item.removeEventListener(GradientChangeEventName, this._gradientChangeHandler, false);\n }\n return unregistered;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._buildGradient();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'target':\n if (old) {\n this._removeGradient(old);\n }\n case 'mode':\n case 'disabled':\n this._buildGradient();\n break;\n }\n }\n }\n _removeGradient(tget) {\n Utils.removeClass(tget, PCSS + '-fx-gradient-text');\n Utils.removeClass(tget, PCSS + '-fx-gradient-fill');\n tget.style.backgroundImage = '';\n }\n _buildGradient() {\n const tget = this.target;\n if (Utils.isNull(tget)) {\n return;\n }\n let gradients = '';\n const items = this.disabled ? [] : this.items ?? [];\n for (let item of items) {\n if (item.hide || item.disabled) {\n continue;\n }\n const gradient = item.buildGradient();\n if (Utils.isNullOrEmpty(gradient)) {\n continue;\n }\n gradients += gradient;\n if (!gradients.trim().endsWith(',')) {\n gradients += ',';\n }\n }\n if (!Utils.isNullOrEmpty(gradients)) {\n const t = PCSS + '-fx-gradient-text', f = PCSS + '-fx-gradient-fill';\n const ist = this.mode === 'text';\n Utils.removeClass(tget, ist ? f : t);\n Utils.addClass(tget, ist ? t : f);\n tget.style.backgroundImage = gradients.substring(0, gradients.length - 1);\n }\n else {\n this._removeGradient(tget);\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemFxGradientElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemFxGradientElement.prototype, \"mode\", void 0);\n__decorate([\n Debounce(true)\n], PacemFxGradientElement.prototype, \"_buildGradient\", null);\nPacemFxGradientElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient' })\n], PacemFxGradientElement);\nexport { PacemFxGradientElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Watch, PropertyConverters, P, PCSS, Utils, PropertyChangeEvent } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst FANCY_CSS = PCSS + \"-fancy\";\nconst FANCIFY_CSS = PCSS + \"-fancify\";\nconst DEFAULT_GAP = 20;\nlet PacemFxFancyElement = class PacemFxFancyElement extends PacemFxElement {\n constructor() {\n super(...arguments);\n this._progress = .0;\n this._started = false;\n }\n get progress() {\n return this._progress;\n }\n get started() {\n return this._started;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'fancify' || name === 'target') {\n if (!Utils.isNull(this.target)) {\n if (this.fancify) {\n this.start();\n }\n else {\n this._reset();\n }\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.fancify && !Utils.isNull(this.target))\n this.start();\n }\n disconnectedCallback() {\n cancelAnimationFrame(this._handle);\n clearTimeout(this._handle1);\n if (!Utils.isNull(this.target))\n this._reset();\n super.disconnectedCallback();\n }\n _reset() {\n Utils.removeClass(this.target, FANCY_CSS);\n if (this._started) {\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'started', oldValue: this._started, currentValue: this._started = false }));\n }\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'progress', oldValue: this._progress, currentValue: this._progress = 0 }));\n if (Utils.isNull(this._originalContent))\n this._originalContent = this.target.innerHTML;\n else\n this.target.innerHTML = this._originalContent;\n }\n _parse() {\n let n, a = [], walker = document.createTreeWalker(this.target, NodeFilter.SHOW_TEXT);\n while (n = walker.nextNode()) {\n if (n.textContent) {\n a.push(n);\n }\n }\n this._textNodes = a;\n }\n start() {\n if (!this.disabled) {\n this._reset();\n this._parse();\n this._startShow();\n this._handle1 = setTimeout(() => {\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'started', oldValue: this._started, currentValue: this._started = true }));\n }, this.delay || 0);\n }\n }\n _startShow(ndx = 0) {\n Utils.addClass(this.target, FANCY_CSS);\n const trunks = this._textNodes, length = trunks.length;\n this._fancify(trunks[ndx]);\n const old = this._progress;\n ndx++;\n const curr = this._progress = ndx / length;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'progress', oldValue: old, currentValue: curr }));\n if (ndx < length) {\n this._handle = requestAnimationFrame(() => {\n this._startShow(ndx);\n });\n }\n }\n _fancify(node) {\n const content = node.textContent;\n if (Utils.isNullOrEmpty(content) || !/[^\\s]/.test(content)) {\n return;\n }\n const leftPad = /^\\s/.test(content), rightPad = /\\s$/.test(content);\n node.textContent = '';\n //\n const words = content.trim().split(' '), gap = this.gap || DEFAULT_GAP, delay = this.delay || 0;\n let j = 0;\n for (let word of words) {\n var span = document.createElement('span');\n span.className = FANCIFY_CSS;\n span.style.animationDelay = `${(delay + j * gap)}ms`;\n if (leftPad || j > 0)\n node.parentElement.insertBefore(document.createTextNode(' '), node);\n span.textContent = word;\n node.parentElement.insertBefore(span, node);\n j++;\n }\n //\n if (rightPad)\n node.parentElement.insertBefore(document.createTextNode(' '), node);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemFxFancyElement.prototype, \"fancify\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemFxFancyElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemFxFancyElement.prototype, \"gap\", void 0);\nPacemFxFancyElement = __decorate([\n CustomElement({ tagName: P + '-fx-fancy' })\n], PacemFxFancyElement);\nexport { PacemFxFancyElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","PacemEventTarget","Watch","PropertyConverters","Utils","Point","ViewChild","CustomElement","P","Defaults","PCSS","Components","Size","CustomElementUtils","Colors","Debounce","PropertyChangeEvent","DeepMerger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pacem-fx.js","sources":["../esm/types.js","../esm/ripple.js","../esm/pulse.js","../esm/hero.js","../esm/list.js","../esm/gradient.js","../esm/fancy.js","../esm/index-iife.js"],"sourcesContent":["var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';\n/** Base class for `fx` (visual-effect) custom elements: provides the `target` element the effect operates on. */\nexport class PacemFxElement extends PacemEventTarget {\n}\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemFxElement.prototype, \"target\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, ViewChild, Utils, PacemEventTarget } from '@pacem/pacem-core';\nimport { Point } from '@pacem/pacem-foundation';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst RIPPLE_CSS = \"ripple\";\n/** Produces a Material-style ripple wave, centered on the pointer, on the `target` element's `mousedown`/`touchstart`. */\nlet PacemFxRippleElement = class PacemFxRippleElement extends PacemFxElement {\n constructor() {\n super(...arguments);\n this._lock = false;\n this._remove = false;\n this._rippleHandler = (e) => {\n if (this.disabled || (this.target instanceof PacemEventTarget && this.target.disabled)) {\n return;\n }\n if (e instanceof MouseEvent && e.button !== 0) {\n // only the 'main' (left) button click goes.\n return;\n }\n const rect = Utils.offset(this.target);\n const style = getComputedStyle(this.target);\n const css = this.style;\n css.top = rect.top + 'px';\n css.left = rect.left + 'px';\n css.width = rect.width + 'px';\n css.height = rect.height + 'px';\n css.borderRadius = style.borderRadius;\n const pointSrc = e.type === 'touchstart' ? e.touches[0] : e;\n const point = { x: pointSrc.pageX, y: pointSrc.pageY };\n const topLeft = { x: rect.left, y: rect.top }, topRight = { x: rect.left + rect.width, y: rect.top }, bottomLeft = { x: rect.left, y: rect.top + rect.height }, bottomRight = { x: topRight.x, y: bottomLeft.y };\n const radius = Math.max(Point.distance(point, topLeft), Point.distance(point, topRight), Point.distance(point, bottomRight), Point.distance(point, bottomLeft));\n const wave = this._wave;\n wave.style.left = (point.x - rect.left - radius) + 'px';\n wave.style.top = (point.y - rect.top - radius) + 'px';\n wave.style.width = wave.style.height = (2 * radius) + 'px';\n Utils.addAnimationEndCallback(wave, () => {\n this._lock = false;\n this._tryRemove();\n });\n this._lock = true;\n Utils.addClass(wave, 'ripple-go');\n };\n this._unrippleHandler = (e) => {\n this._remove = true;\n this._tryRemove();\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // target switch?\n if (name === 'target') {\n if (!Utils.isNull(old)) {\n this._reset(old);\n }\n if (!Utils.isNull(val)) {\n this._set(val);\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (!Utils.isNull(this.target))\n this._set();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.target))\n this._reset();\n super.disconnectedCallback();\n }\n _tryRemove() {\n if (!this._lock && this._remove) {\n this._remove = false;\n Utils.removeClass(this._wave, 'ripple-go');\n }\n }\n _set(val = this.target) {\n val.addEventListener('mousedown', this._rippleHandler, false);\n val.addEventListener('touchstart', this._rippleHandler, false);\n val.addEventListener('touchend', this._unrippleHandler, false);\n val.addEventListener('mouseup', this._unrippleHandler, false);\n val.addEventListener('mousemove', this._unrippleHandler, false);\n }\n _reset(old = this.target) {\n old.removeEventListener('mousedown', this._rippleHandler, false);\n old.removeEventListener('touchstart', this._rippleHandler, false);\n old.removeEventListener('touchend', this._unrippleHandler, false);\n old.removeEventListener('mouseup', this._unrippleHandler, false);\n old.removeEventListener('mousemove', this._unrippleHandler, false);\n }\n};\n__decorate([\n ViewChild('.' + RIPPLE_CSS)\n], PacemFxRippleElement.prototype, \"_wave\", void 0);\nPacemFxRippleElement = __decorate([\n CustomElement({\n tagName: P + '-fx-ripple', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${RIPPLE_CSS}\"></div>`\n })\n], PacemFxRippleElement);\nexport { PacemFxRippleElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, PCSS, ViewChild, Utils, Components } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst PULSE_CSS = \"pulse\";\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nfunction buildAnimationName(id) {\n return `${PCSS}-fx-pulse-${id}`;\n}\nfunction ensureCssAnimation(id, args, rx = '0', ry = rx) {\n const selector = 'style#' + id;\n const existing = document.querySelector(selector);\n if (Utils.isNull(existing)) {\n const newStyle = document.createElement('style');\n newStyle.id = id;\n document.head.appendChild(newStyle);\n }\n const css = document.querySelector(selector);\n const w = args.width, h = args.height, dim = Math.max(w, h), x = .5 * (dim - w), y = .5 * (dim - h);\n css.sheet.insertRule(`@keyframes ${buildAnimationName(id)} {\r\n 0%{\r\n opacity: .25; stroke-thickness: 0; rx: ${rx}; ry: ${ry}; x: ${x}px; y: ${y}px; width: ${args.width}px; height: ${args.height}px;\r\n }\r\n 50%{\r\n width: ${args.width}px; height: ${args.height}px; transform: scale(1); stroke-width: 10px; rx: ${rx}; ry: ${ry}; opacity: .333; x: ${x}px; y: ${y}px; width: ${w}px; height: ${h}px;\r\n }\r\n 80%{\r\n stroke-width: 10px;\r\n }\r\n 100%{\r\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${dim}px; height: ${dim}px; x: 0; y: 0\r\n }\r\n}`, 0);\n for (let j = css.sheet.rules.length - 1; j > 0; j--) {\n css.sheet.deleteRule(j);\n }\n return css;\n}\n/** Overlays the `target` element with a pulsing (expanding, fading) outline, tracking its position and size. */\nlet PacemFxPulseElement = class PacemFxPulseElement extends PacemFxElement {\n constructor() {\n super();\n this._resizeHandler = (e) => {\n this._pulse(e.detail);\n };\n this.#key = Utils.uniqueCode();\n }\n #key;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._pulse();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._sheet)) {\n this._sheet.remove();\n this._sheet = null;\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'disabled' && !first) {\n this._pulse();\n }\n }\n _pulse(size = this._resize.currentSize) {\n const inert = Utils.isNull(this.target) || Utils.isNull(size) || !(size.height > 0) || !(size.width > 0);\n this._resize.disabled = this.disabled;\n if (this.disabled || inert) {\n Utils.addClass(this, 'pulse-off');\n return;\n }\n Utils.removeClass(this, 'pulse-off');\n const rect = size;\n const style = getComputedStyle(this.target);\n const css = this.style;\n const dim = Math.max(rect.width, rect.height);\n css.width = dim + 'px';\n css.height = dim + 'px';\n css.top = (rect.top + .5 * (rect.height - dim)) + 'px';\n css.left = (rect.left + .5 * (rect.width - dim)) + 'px';\n const rect1 = this._rect1, rect2 = this._rect2;\n const css1 = rect1.style, css2 = rect2.style;\n this._sheet = ensureCssAnimation(this.#key, size, style.borderTopLeftRadius);\n const animationName = buildAnimationName(this.#key);\n css1.animation = css2.animation = `${animationName} both cubic-bezier(0.37, 0, 0.63, 1) 1.25s infinite`;\n css2.animationDelay = '.175s';\n }\n};\n__decorate([\n ViewChild(P + '-resize')\n], PacemFxPulseElement.prototype, \"_resize\", void 0);\n__decorate([\n ViewChild('svg')\n], PacemFxPulseElement.prototype, \"_svg\", void 0);\n__decorate([\n ViewChild('svg > rect[rect1]')\n], PacemFxPulseElement.prototype, \"_rect1\", void 0);\n__decorate([\n ViewChild('svg > rect[rect2]')\n], PacemFxPulseElement.prototype, \"_rect2\", void 0);\nPacemFxPulseElement = __decorate([\n CustomElement({\n tagName: P + '-fx-pulse', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-resize target=\"{{ :host.target }}\" watch-position=\"true\" on-${Components.ResizeEventName}=\":host._resizeHandler($event)\"></${P}-resize>\r\n<svg class=\"${PULSE_CSS}\" xmlns=\"${SVG_NS}\">\r\n <rect rect1 /><rect rect2 />\r\n</svg>`\n })\n], PacemFxPulseElement);\nexport { PacemFxPulseElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Watch, PropertyConverters, P, PCSS, Utils } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst HERO_CSS = PCSS + \"-hero\";\nconst TRANSITION = 200;\nconst HEROING_IN = \"entering\";\nconst HEROING_OUT = \"exiting\";\nconst HERO_IN = \"entered\";\nconst HERO_OUT = \"exited\";\nconst rectOrElementConverter = {\n convert: attr => {\n if (attr.trim().startsWith('#'))\n return PropertyConverters.Element.convert(attr);\n return PropertyConverters.Json.convert(attr);\n }\n};\n/** Animates the `target` element (position and size) between a `from` and a `to` state, \"hero\"-transition style. */\nlet PacemFxHeroElement = class PacemFxHeroElement extends PacemFxElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // target switch?\n if (name === 'target' && !Utils.isNull(old)) {\n this._resetTarget(old);\n }\n // recompute back path (originalState)?\n if (name === 'from' && this.hero && !Utils.isNull(val)) {\n this._originalState = this._computeFromState();\n }\n // trigger\n if (name === 'hero' || name === 'target' || name === 'goal') {\n if (!Utils.isNull(this.target)) {\n if (this.hero) {\n this.start();\n }\n else {\n this.reset();\n }\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.hero && !Utils.isNull(this.target))\n this.start();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.target))\n this.reset();\n super.disconnectedCallback();\n }\n _computeFromState() {\n const tget = this.target, offset = Utils.offset(tget);\n if (this.from instanceof Element) {\n let from = Utils.offset(this.from);\n return { x: from.left, y: from.top, width: from.width, height: from.height };\n }\n else {\n return { x: offset.left, y: offset.top, width: offset.width, height: offset.height };\n }\n }\n _resetTarget(tget = this.target) {\n // reset inline style options\n const style = tget.style;\n // reset position/size\n style.top = style.left = style.height = style.width = '';\n for (let j = 0; j < style.length; j++) {\n let prop = style.item(j);\n style[prop] = '';\n }\n for (let prop in this._originalStyle) {\n style[prop] = this._originalStyle[prop];\n }\n Utils.removeClass(tget, HERO_CSS);\n }\n /** Reverts the `target` element back to its original (`from`) state and returns a promise resolved once the transition completes. */\n reset() {\n //\n if (Utils.isNull(this._originalState) || Utils.isNull(this._targetState)) {\n return;\n }\n this.dispatchEvent(new Event(HEROING_OUT));\n return this._animate(this._targetState, this._originalState).then(() => {\n this._resetTarget();\n this.dispatchEvent(new Event(HERO_OUT));\n });\n }\n /** Starts the hero transition to the `to` state and returns a promise resolved once it completes. */\n start() {\n if (!this.disabled && !Utils.isNull(this.target)) {\n let goal;\n if (this.to instanceof Element) {\n let to = Utils.offset(this.to);\n goal = { x: to.left, y: to.top, width: to.width, height: to.height };\n }\n else {\n goal = this.to;\n }\n const tget = this.target, wSize = Utils.windowSize, state = goal || { x: 0, y: 0, width: wSize.width, height: wSize.height }, style = tget.style;\n this._targetState = state;\n let start = this._originalState = this._computeFromState();\n // save inline style options\n this._originalStyle = {};\n for (let j = 0; j < style.length; j++) {\n let prop = style.item(j);\n this._originalStyle[prop] = style[prop];\n }\n //\n Utils.addClass(tget, HERO_CSS);\n this.dispatchEvent(new Event(HEROING_IN));\n return this._animate(start, state).then(() => {\n this.dispatchEvent(new Event(HERO_IN));\n });\n }\n // nothing to do\n return Promise.resolve();\n }\n _animate(from, to) {\n const tget = this.target, style = tget.style;\n // transformations to make target state look like original state\n // i.e. `target state` gets constrained to fit `original state`.\n const scaleX = from.width / to.width, scaleY = from.height / to.height, translateX = (from.x - to.x) + 'px', translateY = (from.y - to.y) + 'px';\n style.transformOrigin = '0 0';\n style.transition = 'none';\n // set final state\n style.transform = `translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`;\n style.width = to.width + 'px';\n style.height = to.height + 'px';\n style.top = to.y + 'px';\n style.left = to.x + 'px';\n // hero-animate\n requestAnimationFrame(() => {\n let duration = this.duration || TRANSITION;\n style.transition = `transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${duration}ms, opacity ${duration}ms`;\n style.transform = `translate(0, 0) scale(1)`;\n });\n return Utils.waitForAnimationEnd(tget, TRANSITION + 10);\n // Utils.addAnimationEndCallback(tget, callback, TRANSITION + 10);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemFxHeroElement.prototype, \"hero\", void 0);\n__decorate([\n Watch({ converter: rectOrElementConverter, emit: false })\n], PacemFxHeroElement.prototype, \"to\", void 0);\n__decorate([\n Watch({ converter: rectOrElementConverter, emit: false })\n], PacemFxHeroElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemFxHeroElement.prototype, \"duration\", void 0);\nPacemFxHeroElement = __decorate([\n CustomElement({ tagName: P + '-fx-hero' })\n], PacemFxHeroElement);\nexport { PacemFxHeroElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Utils } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst CSS_CLASS = PCSS + '-fx-list';\n/** Watches the `target` element's children and dispatches `itemadded`/`itemremoved` events as they are mutated, styling the target as an fx list. */\nlet PacemFxListElement = class PacemFxListElement extends PacemFxElement {\n constructor() {\n super(...arguments);\n this._observed = (items) => {\n const children = Array.from(this.target.children);\n for (let item of items) {\n item.removedNodes.forEach(n => {\n if (n instanceof Element) {\n this.dispatchEvent(new CustomEvent('itemremoved', { detail: n }));\n }\n });\n item.addedNodes.forEach((n, j) => {\n if (n instanceof Element) {\n this.dispatchEvent(new CustomEvent('itemadded', { detail: { item: n, index: children.indexOf(n) } }));\n }\n });\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (!Utils.isNull(this.target)) {\n this._setup();\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._observer)) {\n this._observer.disconnect();\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target') {\n if (old) {\n this._reset(old);\n }\n else {\n this._setup();\n }\n }\n }\n _reset(el) {\n Utils.removeClass(el, CSS_CLASS);\n this._observer.disconnect();\n }\n _setup() {\n const target = this.target;\n Utils.addClass(target, CSS_CLASS);\n const obs = this._observer = new MutationObserver(this._observed);\n obs.observe(target, { childList: true });\n }\n};\nPacemFxListElement = __decorate([\n CustomElement({\n tagName: P + '-fx-list'\n })\n], PacemFxListElement);\nexport { PacemFxListElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Watch, PropertyConverters, P, PCSS, Components, CustomElementUtils, Utils, Debounce } from '@pacem/pacem-core';\nimport { Size, Colors } from '@pacem/pacem-foundation';\n//namespace Pacem.Components.Fx {\nconst GradientChangeEventName = 'gradientchange';\nclass GradientChangeEvent extends Event {\n constructor() {\n super(GradientChangeEventName, { cancelable: false, bubbles: false });\n }\n}\nconst SizeOrNumberConverter = {\n convert: (attr, el) => {\n try {\n return Size.parse(attr);\n }\n catch {\n return PropertyConverters.Number.convert(attr, el);\n }\n }\n};\nfunction pctFormatter(v) {\n return Math.round(v * 1000) / 10 + '%';\n}\n/** A single color stop within a `PacemFxGradientItemElement` (radial or linear gradient). */\nlet PacemFxGradientStopElement = class PacemFxGradientStopElement extends Components.PacemItemElement {\n findContainer() {\n return CustomElementUtils.findAncestor(this, i => i instanceof PacemFxGradientItemElement);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && (name === 'offset' || name === 'color' || name === 'opacity' || name === 'disabled' || name === 'hide')) {\n this.dispatchEvent(new GradientChangeEvent());\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemFxGradientStopElement.prototype, \"offset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFxGradientStopElement.prototype, \"color\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemFxGradientStopElement.prototype, \"opacity\", void 0);\nPacemFxGradientStopElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient-stop' })\n], PacemFxGradientStopElement);\nexport { PacemFxGradientStopElement };\n/** Base class for gradient-shape elements (radial, linear, ...) hosting `PacemFxGradientStopElement` color stops and producing a CSS gradient string. */\nexport class PacemFxGradientItemElement extends Components.PacemCrossItemsContainerElement {\n constructor() {\n super(...arguments);\n this._dispatchGradientChangeHandler = (e) => {\n this._dispatchGradientChange();\n };\n }\n validate(item) {\n return item instanceof PacemFxGradientStopElement;\n }\n register(item) {\n const registered = super.register(item);\n if (registered) {\n item.addEventListener(GradientChangeEventName, this._dispatchGradientChangeHandler, false);\n }\n return registered;\n }\n unregister(item) {\n const unregistered = super.unregister(item);\n if (unregistered) {\n item.removeEventListener(GradientChangeEventName, this._dispatchGradientChangeHandler, false);\n }\n return unregistered;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && this.doesPropertyTriggerGradientChange(name)) {\n this._dispatchGradientChange();\n }\n }\n _dispatchGradientChange() {\n this.dispatchEvent(new GradientChangeEvent());\n }\n /** Builds the CSS color for a stop, applying the given opacity (if in the `0`-`1` range) on top of the base `color`. */\n buildColor(color, opacity) {\n if (opacity >= 0 && opacity <= 1) {\n const clr = Colors.parse(color);\n return Colors.stringify(Utils.extend(clr, { a: opacity }));\n }\n return color;\n }\n}\n/** Radial `<gradient>` shape, hosting one or more `PacemFxGradientStopElement` color stops. */\nlet PacemFxRadialGradientElement = class PacemFxRadialGradientElement extends PacemFxGradientItemElement {\n doesPropertyTriggerGradientChange(prop) {\n return ['shape', 'size', 'center', 'items', 'hide', 'disabled'].indexOf(prop) >= 0;\n }\n buildGradient() {\n const items = this.items;\n if (Utils.isNullOrEmpty(items)) {\n return '';\n }\n const shape = this.shape === 'circle' ? 'circle' : 'ellipse';\n const center = this.center ?? { x: .5, y: .5 };\n const size = this.size;\n let dim = '';\n if (!Utils.isNullOrEmpty(size)) {\n if (typeof size === 'number') {\n dim = `${size}px`;\n }\n else {\n dim = `${pctFormatter(size.width / 2)} ${pctFormatter(size.height / 2)}`;\n }\n }\n let stops = [];\n for (let { offset, color, hide, disabled, opacity } of items) {\n if (hide || disabled) {\n continue;\n }\n const clr = this.buildColor(color, opacity);\n stops.push(`${clr} ${pctFormatter(offset)}`);\n }\n return `radial-gradient(${shape} ${dim} at ${pctFormatter(center.x)} ${pctFormatter(center.y)} in oklab, ${stops.join(', ')})`;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFxRadialGradientElement.prototype, \"shape\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemFxRadialGradientElement.prototype, \"center\", void 0);\n__decorate([\n Watch({ emit: false, converter: SizeOrNumberConverter })\n], PacemFxRadialGradientElement.prototype, \"size\", void 0);\nPacemFxRadialGradientElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient-radial' })\n], PacemFxRadialGradientElement);\nexport { PacemFxRadialGradientElement };\n/** Linear `<gradient>` shape, hosting one or more `PacemFxGradientStopElement` color stops. */\nlet PacemFxLinearGradientElement = class PacemFxLinearGradientElement extends PacemFxGradientItemElement {\n doesPropertyTriggerGradientChange(prop) {\n return ['angle', 'items', 'hide', 'disabled'].indexOf(prop) >= 0;\n }\n buildGradient() {\n const items = this.items;\n if (Utils.isNullOrEmpty(items)) {\n return '';\n }\n const angle = this.angle ?? 0;\n let stops = [];\n for (let { offset, color, hide, disabled, opacity } of items) {\n if (hide || disabled) {\n continue;\n }\n const clr = this.buildColor(color, opacity);\n stops.push(`${clr} ${pctFormatter(offset)}`);\n }\n return `linear-gradient(${angle}deg in oklab, ${stops.join(', ')})`;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemFxLinearGradientElement.prototype, \"angle\", void 0);\nPacemFxLinearGradientElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient-linear' })\n], PacemFxLinearGradientElement);\nexport { PacemFxLinearGradientElement };\n/** Applies a combined CSS gradient (built from its `PacemFxGradientItemElement` children) as the `target` element's background fill or text color. */\nlet PacemFxGradientElement = class PacemFxGradientElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._gradientChangeHandler = (e) => {\n this._buildGradient();\n };\n }\n validate(item) {\n return item instanceof PacemFxGradientItemElement;\n }\n register(item) {\n const registered = super.register(item);\n if (registered) {\n item.addEventListener(GradientChangeEventName, this._gradientChangeHandler, false);\n }\n return registered;\n }\n unregister(item) {\n const unregistered = super.unregister(item);\n if (unregistered) {\n item.removeEventListener(GradientChangeEventName, this._gradientChangeHandler, false);\n }\n return unregistered;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._buildGradient();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'target':\n if (old) {\n this._removeGradient(old);\n }\n case 'mode':\n case 'disabled':\n this._buildGradient();\n break;\n }\n }\n }\n _removeGradient(tget) {\n Utils.removeClass(tget, PCSS + '-fx-gradient-text');\n Utils.removeClass(tget, PCSS + '-fx-gradient-fill');\n tget.style.backgroundImage = '';\n }\n _buildGradient() {\n const tget = this.target;\n if (Utils.isNull(tget)) {\n return;\n }\n let gradients = '';\n const items = this.disabled ? [] : this.items ?? [];\n for (let item of items) {\n if (item.hide || item.disabled) {\n continue;\n }\n const gradient = item.buildGradient();\n if (Utils.isNullOrEmpty(gradient)) {\n continue;\n }\n gradients += gradient;\n if (!gradients.trim().endsWith(',')) {\n gradients += ',';\n }\n }\n if (!Utils.isNullOrEmpty(gradients)) {\n const t = PCSS + '-fx-gradient-text', f = PCSS + '-fx-gradient-fill';\n const ist = this.mode === 'text';\n Utils.removeClass(tget, ist ? f : t);\n Utils.addClass(tget, ist ? t : f);\n tget.style.backgroundImage = gradients.substring(0, gradients.length - 1);\n }\n else {\n this._removeGradient(tget);\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemFxGradientElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemFxGradientElement.prototype, \"mode\", void 0);\n__decorate([\n Debounce(true)\n], PacemFxGradientElement.prototype, \"_buildGradient\", null);\nPacemFxGradientElement = __decorate([\n CustomElement({ tagName: P + '-fx-gradient' })\n], PacemFxGradientElement);\nexport { PacemFxGradientElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Watch, PropertyConverters, P, PCSS, Utils, PropertyChangeEvent } from '@pacem/pacem-core';\nimport { PacemFxElement } from './types';\n//namespace Pacem.Components.Fx {\nconst FANCY_CSS = PCSS + \"-fancy\";\nconst FANCIFY_CSS = PCSS + \"-fancify\";\nconst DEFAULT_GAP = 20;\n/** Reveals the `target` element's text content word by word, wrapping each word in an animated `<span>`. */\nlet PacemFxFancyElement = class PacemFxFancyElement extends PacemFxElement {\n constructor() {\n super(...arguments);\n this._progress = .0;\n this._started = false;\n }\n /** @readonly Gets the current show progress, as a number between `0` and `1`. */\n get progress() {\n return this._progress;\n }\n /** @readonly Gets whether the fancify animation has (fully) started. */\n get started() {\n return this._started;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'fancify' || name === 'target') {\n if (!Utils.isNull(this.target)) {\n if (this.fancify) {\n this.start();\n }\n else {\n this._reset();\n }\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.fancify && !Utils.isNull(this.target))\n this.start();\n }\n disconnectedCallback() {\n cancelAnimationFrame(this._handle);\n clearTimeout(this._handle1);\n if (!Utils.isNull(this.target))\n this._reset();\n super.disconnectedCallback();\n }\n _reset() {\n Utils.removeClass(this.target, FANCY_CSS);\n if (this._started) {\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'started', oldValue: this._started, currentValue: this._started = false }));\n }\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'progress', oldValue: this._progress, currentValue: this._progress = 0 }));\n if (Utils.isNull(this._originalContent))\n this._originalContent = this.target.innerHTML;\n else\n this.target.innerHTML = this._originalContent;\n }\n _parse() {\n let n, a = [], walker = document.createTreeWalker(this.target, NodeFilter.SHOW_TEXT);\n while (n = walker.nextNode()) {\n if (n.textContent) {\n a.push(n);\n }\n }\n this._textNodes = a;\n }\n /** Starts (or restarts) the fancify effect on the `target` element. */\n start() {\n if (!this.disabled) {\n this._reset();\n this._parse();\n this._startShow();\n this._handle1 = setTimeout(() => {\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'started', oldValue: this._started, currentValue: this._started = true }));\n }, this.delay || 0);\n }\n }\n _startShow(ndx = 0) {\n Utils.addClass(this.target, FANCY_CSS);\n const trunks = this._textNodes, length = trunks.length;\n this._fancify(trunks[ndx]);\n const old = this._progress;\n ndx++;\n const curr = this._progress = ndx / length;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'progress', oldValue: old, currentValue: curr }));\n if (ndx < length) {\n this._handle = requestAnimationFrame(() => {\n this._startShow(ndx);\n });\n }\n }\n _fancify(node) {\n const content = node.textContent;\n if (Utils.isNullOrEmpty(content) || !/[^\\s]/.test(content)) {\n return;\n }\n const leftPad = /^\\s/.test(content), rightPad = /\\s$/.test(content);\n node.textContent = '';\n //\n const words = content.trim().split(' '), gap = this.gap || DEFAULT_GAP, delay = this.delay || 0;\n let j = 0;\n for (let word of words) {\n var span = document.createElement('span');\n span.className = FANCIFY_CSS;\n span.style.animationDelay = `${(delay + j * gap)}ms`;\n if (leftPad || j > 0)\n node.parentElement.insertBefore(document.createTextNode(' '), node);\n span.textContent = word;\n node.parentElement.insertBefore(span, node);\n j++;\n }\n //\n if (rightPad)\n node.parentElement.insertBefore(document.createTextNode(' '), node);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemFxFancyElement.prototype, \"fancify\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemFxFancyElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemFxFancyElement.prototype, \"gap\", void 0);\nPacemFxFancyElement = __decorate([\n CustomElement({ tagName: P + '-fx-fancy' })\n], PacemFxFancyElement);\nexport { PacemFxFancyElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","PacemEventTarget","Watch","PropertyConverters","Utils","Point","ViewChild","CustomElement","P","Defaults","PCSS","Components","Size","CustomElementUtils","Colors","Debounce","PropertyChangeEvent","DeepMerger"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @pacem/pacem v1.0.0-
|
|
2
|
+
* @pacem/pacem v1.0.0-binet (https://js.pacem.it)
|
|
3
3
|
* Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -13,9 +13,14 @@
|
|
|
13
13
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
14
|
};
|
|
15
15
|
const DEFAULT_DATA = { current: 0, count: 0, average: 0, max: Number.MIN_VALUE, min: Number.MAX_VALUE };
|
|
16
|
+
/**
|
|
17
|
+
* Base class for tracker elements (e.g. {@link PacemFpsElement}) that feed successive numeric samples
|
|
18
|
+
* through `entry` and expose running statistics through `data`.
|
|
19
|
+
*/
|
|
16
20
|
class PacemTrackerElement extends pacemCore.PacemEventTarget {
|
|
17
21
|
constructor() {
|
|
18
22
|
super();
|
|
23
|
+
/** @readonly Gets the aggregate statistics (count, average, min, max, current) computed so far. */
|
|
19
24
|
this.data = DEFAULT_DATA;
|
|
20
25
|
}
|
|
21
26
|
propertyChangedCallback(name, old, val, first) {
|
|
@@ -32,6 +37,7 @@
|
|
|
32
37
|
return pacemCore.Utils.fromResultAsync(fn);
|
|
33
38
|
//return Utils.fromResult/*Async*/(fn());
|
|
34
39
|
}
|
|
40
|
+
/** Resets `data` back to its initial (empty) state. */
|
|
35
41
|
reset() {
|
|
36
42
|
this.data = DEFAULT_DATA;
|
|
37
43
|
}
|
|
@@ -56,6 +62,7 @@
|
|
|
56
62
|
const DEFAULT_CONFIG = {
|
|
57
63
|
error: true, info: true, warn: true
|
|
58
64
|
};
|
|
65
|
+
/** A {@link Logging.Logger} implementation that forwards enabled log levels to the browser's `console`. */
|
|
59
66
|
let PacemConsoleElement = class PacemConsoleElement extends pacemCore.PacemEventTarget {
|
|
60
67
|
constructor() {
|
|
61
68
|
super(...arguments);
|
|
@@ -67,6 +74,12 @@
|
|
|
67
74
|
this._config = pacemCore.Utils.extend({}, DEFAULT_CONFIG, val ?? {});
|
|
68
75
|
}
|
|
69
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Logs `message` to the browser console, provided the element isn't disabled and `level` is enabled in `configuration`.
|
|
79
|
+
* @param level Severity/level of the message.
|
|
80
|
+
* @param message Content to log.
|
|
81
|
+
* @param category Optional grouping category (rendered as a `console.group`).
|
|
82
|
+
*/
|
|
70
83
|
log(level, message, category) {
|
|
71
84
|
try {
|
|
72
85
|
/* console enabled? better check: you might find cumbersome behaviors on IE/Edge when F12 tools aren't available! */
|
|
@@ -124,6 +137,7 @@
|
|
|
124
137
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
125
138
|
};
|
|
126
139
|
//namespace Pacem.Components.Logging {
|
|
140
|
+
/** Tracks the browser's rendering frame rate (frames per second) via `requestAnimationFrame`, feeding it into {@link PacemTrackerElement}'s `data`. */
|
|
127
141
|
let PacemFpsElement = class PacemFpsElement extends PacemTrackerElement {
|
|
128
142
|
constructor() {
|
|
129
143
|
super();
|