@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.
Files changed (66) hide show
  1. package/dist/browser/pacem-2d.js +149 -2
  2. package/dist/browser/pacem-2d.js.map +1 -1
  3. package/dist/browser/pacem-2d.min.js +1 -1
  4. package/dist/browser/pacem-3d.js +646 -2
  5. package/dist/browser/pacem-3d.js.map +1 -1
  6. package/dist/browser/pacem-3d.min.js +1 -1
  7. package/dist/browser/pacem-charts.js +21 -1
  8. package/dist/browser/pacem-charts.js.map +1 -1
  9. package/dist/browser/pacem-charts.min.js +1 -1
  10. package/dist/browser/pacem-cms.js +118 -3
  11. package/dist/browser/pacem-cms.js.map +1 -1
  12. package/dist/browser/pacem-cms.min.js +1 -1
  13. package/dist/browser/pacem-core.js +870 -9
  14. package/dist/browser/pacem-core.js.map +1 -1
  15. package/dist/browser/pacem-core.min.js +2 -2
  16. package/dist/browser/pacem-foundation.js +296 -1
  17. package/dist/browser/pacem-foundation.js.map +1 -1
  18. package/dist/browser/pacem-foundation.min.js +1 -1
  19. package/dist/browser/pacem-fx.js +18 -1
  20. package/dist/browser/pacem-fx.js.map +1 -1
  21. package/dist/browser/pacem-fx.min.js +1 -1
  22. package/dist/browser/pacem-logging.js +15 -1
  23. package/dist/browser/pacem-logging.js.map +1 -1
  24. package/dist/browser/pacem-logging.min.js +1 -1
  25. package/dist/browser/pacem-maps.js +97 -1
  26. package/dist/browser/pacem-maps.js.map +1 -1
  27. package/dist/browser/pacem-maps.min.js +1 -1
  28. package/dist/browser/pacem-media.js +14 -1
  29. package/dist/browser/pacem-media.js.map +1 -1
  30. package/dist/browser/pacem-media.min.js +1 -1
  31. package/dist/browser/pacem-networking.js +22 -1
  32. package/dist/browser/pacem-networking.js.map +1 -1
  33. package/dist/browser/pacem-networking.min.js +1 -1
  34. package/dist/browser/pacem-numerical.js +360 -1
  35. package/dist/browser/pacem-numerical.js.map +1 -1
  36. package/dist/browser/pacem-numerical.min.js +1 -1
  37. package/dist/browser/pacem-plus.js +195 -4
  38. package/dist/browser/pacem-plus.js.map +1 -1
  39. package/dist/browser/pacem-plus.min.js +1 -1
  40. package/dist/browser/pacem-scaffolding.js +420 -38
  41. package/dist/browser/pacem-scaffolding.js.map +1 -1
  42. package/dist/browser/pacem-scaffolding.min.js +2 -2
  43. package/dist/browser/pacem-ui.js +143 -19
  44. package/dist/browser/pacem-ui.js.map +1 -1
  45. package/dist/browser/pacem-ui.min.js +2 -2
  46. package/dist/bundle/pacem.min.mjs +147 -147
  47. package/dist/bundle/pacem.mjs +2905 -1417
  48. package/dist/bundle/pacem.mjs.map +3 -3
  49. package/dist/docs/pacem-2d.json +11549 -0
  50. package/dist/docs/pacem-3d.json +29096 -0
  51. package/dist/docs/pacem-charts.json +4244 -0
  52. package/dist/docs/pacem-cms.json +9325 -0
  53. package/dist/docs/pacem-core.json +40109 -0
  54. package/dist/docs/pacem-foundation.json +8941 -0
  55. package/dist/docs/pacem-fx.json +3121 -0
  56. package/dist/docs/pacem-logging.json +941 -0
  57. package/dist/docs/pacem-maps.json +17387 -0
  58. package/dist/docs/pacem-media.json +1203 -0
  59. package/dist/docs/pacem-networking.json +1798 -0
  60. package/dist/docs/pacem-numerical.json +13706 -0
  61. package/dist/docs/pacem-plus.json +8468 -0
  62. package/dist/docs/pacem-scaffolding.json +34788 -0
  63. package/dist/docs/pacem-ui.json +18628 -0
  64. package/dist/typings/index.d.ts +4109 -31
  65. package/dist/vscode.html-custom.json +1303 -741
  66. package/package.json +4 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem v1.0.0-bessel (https://js.pacem.it)
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem v1.0.0-bessel (https://js.pacem.it)
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-bessel (https://js.pacem.it)
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem v1.0.0-bessel (https://js.pacem.it)
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();