@pacem/pacem 1.0.0-abel
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/LICENSE +191 -0
- package/NOTICE +4 -0
- package/dist/browser/pacem-2d.js +2755 -0
- package/dist/browser/pacem-2d.js.map +6 -0
- package/dist/browser/pacem-2d.min.js +7 -0
- package/dist/browser/pacem-2d.min.js.map +6 -0
- package/dist/browser/pacem-3d.js +7723 -0
- package/dist/browser/pacem-3d.js.map +6 -0
- package/dist/browser/pacem-3d.min.js +7 -0
- package/dist/browser/pacem-3d.min.js.map +6 -0
- package/dist/browser/pacem-charts.js +1628 -0
- package/dist/browser/pacem-charts.js.map +6 -0
- package/dist/browser/pacem-charts.min.js +7 -0
- package/dist/browser/pacem-charts.min.js.map +6 -0
- package/dist/browser/pacem-cms.js +2220 -0
- package/dist/browser/pacem-cms.js.map +6 -0
- package/dist/browser/pacem-cms.min.js +7 -0
- package/dist/browser/pacem-cms.min.js.map +6 -0
- package/dist/browser/pacem-core.js +9104 -0
- package/dist/browser/pacem-core.js.map +6 -0
- package/dist/browser/pacem-core.min.js +7 -0
- package/dist/browser/pacem-core.min.js.map +6 -0
- package/dist/browser/pacem-foundation.js +2138 -0
- package/dist/browser/pacem-foundation.js.map +6 -0
- package/dist/browser/pacem-foundation.min.js +7 -0
- package/dist/browser/pacem-foundation.min.js.map +6 -0
- package/dist/browser/pacem-fx.js +870 -0
- package/dist/browser/pacem-fx.js.map +6 -0
- package/dist/browser/pacem-fx.min.js +7 -0
- package/dist/browser/pacem-fx.min.js.map +6 -0
- package/dist/browser/pacem-logging.js +175 -0
- package/dist/browser/pacem-logging.js.map +6 -0
- package/dist/browser/pacem-logging.min.js +7 -0
- package/dist/browser/pacem-logging.min.js.map +6 -0
- package/dist/browser/pacem-maps.js +3642 -0
- package/dist/browser/pacem-maps.js.map +6 -0
- package/dist/browser/pacem-maps.min.js +7 -0
- package/dist/browser/pacem-maps.min.js.map +6 -0
- package/dist/browser/pacem-media.js +284 -0
- package/dist/browser/pacem-media.js.map +6 -0
- package/dist/browser/pacem-media.min.js +7 -0
- package/dist/browser/pacem-media.min.js.map +6 -0
- package/dist/browser/pacem-networking.js +434 -0
- package/dist/browser/pacem-networking.js.map +6 -0
- package/dist/browser/pacem-networking.min.js +7 -0
- package/dist/browser/pacem-networking.min.js.map +6 -0
- package/dist/browser/pacem-numerical.js +2627 -0
- package/dist/browser/pacem-numerical.js.map +6 -0
- package/dist/browser/pacem-numerical.min.js +7 -0
- package/dist/browser/pacem-numerical.min.js.map +6 -0
- package/dist/browser/pacem-plus.js +2373 -0
- package/dist/browser/pacem-plus.js.map +6 -0
- package/dist/browser/pacem-plus.min.js +7 -0
- package/dist/browser/pacem-plus.min.js.map +6 -0
- package/dist/browser/pacem-scaffolding.js +10435 -0
- package/dist/browser/pacem-scaffolding.js.map +6 -0
- package/dist/browser/pacem-scaffolding.min.js +7 -0
- package/dist/browser/pacem-scaffolding.min.js.map +6 -0
- package/dist/browser/pacem-ui.js +6348 -0
- package/dist/browser/pacem-ui.js.map +6 -0
- package/dist/browser/pacem-ui.min.js +7 -0
- package/dist/browser/pacem-ui.min.js.map +6 -0
- package/dist/bundle/pacem.min.mjs +997 -0
- package/dist/bundle/pacem.mjs +47067 -0
- package/dist/bundle/pacem.mjs.map +12 -0
- package/dist/typings/index.d.ts +9757 -0
- package/package.json +130 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pacem/pacem v1.0.0-abel (https://js.pacem.it)
|
|
3
|
+
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
|
+
* Licensed under Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
{"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)} {\n 0%{\n opacity: .25; stroke-thickness: 0; rx: ${rx}; ry: ${ry}; x: ${x}px; y: ${y}px; width: ${args.width}px; height: ${args.height}px;\n }\n 50%{\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;\n }\n 80%{\n stroke-width: 10px;\n }\n 100%{\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${dim}px; height: ${dim}px; x: 0; y: 0\n }\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>\n<svg class=\"${PULSE_CSS}\" xmlns=\"${SVG_NS}\">\n <rect rect1 /><rect rect2 />\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":";;;IAAA,IAAIA,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAEM,MAAM,cAAc,SAASC,0BAAgB,CAAC;IACrD;AACAF,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IACnD,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;;ICX9C,IAAIJ,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAID;IACA,MAAM,UAAU,GAAG,QAAQ;IAC3B,IAAI,oBAAoB,GAAG,MAAM,oBAAoB,SAAS,cAAc,CAAC;IAC7E,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;IAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;IAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK;IACrC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,YAAYC,0BAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;IACpG,gBAAgB;IAChB,YAAY;IACZ,YAAY,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;IAC3D;IACA,gBAAgB;IAChB,YAAY;IACZ,YAAY,MAAM,IAAI,GAAGG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAClD,YAAY,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;IACvD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;IAClC,YAAY,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;IACrC,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;IACvC,YAAY,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;IACzC,YAAY,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI;IAC3C,YAAY,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;IACjD,YAAY,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,YAAY,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE;IAClE,YAAY,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;IAC5N,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAACC,qBAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAEA,qBAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAEA,qBAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,EAAEA,qBAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3K,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;IACnC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,IAAI;IACnE,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,IAAI;IACjE,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI;IACtE,YAAYD,eAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM;IACtD,gBAAgB,IAAI,CAAC,KAAK,GAAG,KAAK;IAClC,gBAAgB,IAAI,CAAC,UAAU,EAAE;IACjC,YAAY,CAAC,CAAC;IACd,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI;IAC7B,YAAYA,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC7C,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK;IACvC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI;IAC/B,YAAY,IAAI,CAAC,UAAU,EAAE;IAC7B,QAAQ,CAAC;IACT,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D;IACA,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;IAC/B,YAAY,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;IACpC,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAChC,YAAY;IACZ,YAAY,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;IACpC,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9B,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;IACzC,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK;IAChC,YAAYA,eAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;IACtD,QAAQ;IACR,IAAI;IACJ,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;IAC5B,QAAQ,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IACrE,QAAQ,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IACtE,QAAQ,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACtE,QAAQ,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACrE,QAAQ,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACvE,IAAI;IACJ,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;IAC9B,QAAQ,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IACxE,QAAQ,GAAG,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IACzE,QAAQ,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACzE,QAAQ,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACxE,QAAQ,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IAC1E,IAAI;IACJ,CAAC;AACDL,gBAAU,CAAC;IACX,IAAIO,mBAAS,CAAC,GAAG,GAAG,UAAU;IAC9B,CAAC,EAAE,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;IACnD,oBAAoB,GAAGP,YAAU,CAAC;IAClC,IAAIQ,uBAAa,CAAC;IAClB,QAAQ,OAAO,EAAEC,WAAC,GAAG,YAAY,EAAE,MAAM,EAAEC,kBAAQ,CAAC,eAAe;IACnE,QAAQ,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ;IACpD,KAAK;IACL,CAAC,EAAE,oBAAoB,CAAC;;ICvGxB,IAAIV,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAGD;IACA,MAAM,SAAS,GAAG,OAAO;IACzB,MAAM,MAAM,GAAG,4BAA4B;IAC3C,SAAS,kBAAkB,CAAC,EAAE,EAAE;IAChC,IAAI,OAAO,CAAC,EAAEU,cAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnC;IACA,SAAS,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;IACzD,IAAI,MAAM,QAAQ,GAAG,QAAQ,GAAG,EAAE;IAClC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACrD,IAAI,IAAIN,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;IAChC,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;IACxD,QAAQ,QAAQ,CAAC,EAAE,GAAG,EAAE;IACxB,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC3C,IAAI;IACJ,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAChD,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;IACvG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC9D;AACA,+CAA+C,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;AACrI;AACA;AACA,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,iDAAiD,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;AACzL;AACA;AACA;AACA;AACA;AACA,mFAAmF,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC;AAC3G;AACA,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACzD,QAAQ,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/B,IAAI;IACJ,IAAI,OAAO,GAAG;IACd;IACA,IAAI,mBAAmB,GAAG,MAAM,mBAAmB,SAAS,cAAc,CAAC;IAC3E,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,EAAE;IACf,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK;IACrC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACjC,QAAQ,CAAC;IACT,QAAQ,IAAI,CAAC,IAAI,GAAGA,eAAK,CAAC,UAAU,EAAE;IACtC,IAAI;IACJ,IAAI,IAAI;IACR,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACxC,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IAChC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI;IAC9B,QAAQ;IACR,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,EAAE;IAC3C,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAC5C,QAAQ,MAAM,KAAK,GAAGA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAIA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAChH,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;IAC7C,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;IACpC,YAAYA,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC7C,YAAY;IACZ,QAAQ;IACR,QAAQA,eAAK,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;IAC5C,QAAQ,MAAM,IAAI,GAAG,IAAI;IACzB,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;IACnD,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;IAC9B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;IACrD,QAAQ,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI;IAC9B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI;IAC/B,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI;IAC9D,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,IAAI;IAC/D,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM;IACtD,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK;IACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;IACpF,QAAQ,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3D,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,aAAa,CAAC,mDAAmD,CAAC;IAC/G,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO;IACrC,IAAI;IACJ,CAAC;AACDL,gBAAU,CAAC;IACX,IAAIO,mBAAS,CAACE,WAAC,GAAG,SAAS;IAC3B,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;AACpDT,gBAAU,CAAC;IACX,IAAIO,mBAAS,CAAC,KAAK;IACnB,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACjDP,gBAAU,CAAC;IACX,IAAIO,mBAAS,CAAC,mBAAmB;IACjC,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACnDP,gBAAU,CAAC;IACX,IAAIO,mBAAS,CAAC,mBAAmB;IACjC,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;IACnD,mBAAmB,GAAGP,YAAU,CAAC;IACjC,IAAIQ,uBAAa,CAAC;IAClB,QAAQ,OAAO,EAAEC,WAAC,GAAG,WAAW,EAAE,MAAM,EAAEC,kBAAQ,CAAC,eAAe;IAClE,QAAQ,QAAQ,EAAE,CAAC,CAAC,EAAED,WAAC,CAAC,6DAA6D,EAAEG,oBAAU,CAAC,eAAe,CAAC,kCAAkC,EAAEH,WAAC,CAAC;AACxJ,YAAY,EAAE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;AAC1C;AACA,MAAM;IACN,KAAK;IACL,CAAC,EAAE,mBAAmB,CAAC;;ICjHvB,IAAIT,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAGD;IACA,MAAM,QAAQ,GAAGU,cAAI,GAAG,OAAO;IAC/B,MAAM,UAAU,GAAG,GAAG;IACtB,MAAM,UAAU,GAAG,UAAU;IAC7B,MAAM,WAAW,GAAG,SAAS;IAC7B,MAAM,OAAO,GAAG,SAAS;IACzB,MAAM,QAAQ,GAAG,QAAQ;IACzB,MAAM,sBAAsB,GAAG;IAC/B,IAAI,OAAO,EAAE,IAAI,IAAI;IACrB,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACvC,YAAY,OAAOP,4BAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3D,QAAQ,OAAOA,4BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACpD,IAAI;IACJ,CAAC;IACD,IAAI,kBAAkB,GAAG,MAAM,kBAAkB,SAAS,cAAc,CAAC;IACzE,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D;IACA,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,CAACC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;IACrD,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;IAClC,QAAQ;IACR;IACA,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;IAChE,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE;IAC1D,QAAQ;IACR;IACA,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE;IACrE,YAAY,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAC5C,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,oBAAoB,IAAI,CAAC,KAAK,EAAE;IAChC,gBAAgB;IAChB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,KAAK,EAAE;IAChC,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACnD,YAAY,IAAI,CAAC,KAAK,EAAE;IACxB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,YAAY,IAAI,CAAC,KAAK,EAAE;IACxB,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,iBAAiB,GAAG;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAGA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAC7D,QAAQ,IAAI,IAAI,CAAC,IAAI,YAAY,OAAO,EAAE;IAC1C,YAAY,IAAI,IAAI,GAAGA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,YAAY,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;IACxF,QAAQ;IACR,aAAa;IACb,YAAY,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAChG,QAAQ;IACR,IAAI;IACJ,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;IACrC;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;IAChC;IACA,QAAQ,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;IAChE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/C,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IAC5B,QAAQ;IACR,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;IAC9C,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IACnD,QAAQ;IACR,QAAQA,eAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;IACzC,IAAI;IACJ,IAAI,KAAK,GAAG;IACZ;IACA,QAAQ,IAAIA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAIA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;IAClF,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM;IAChF,YAAY,IAAI,CAAC,YAAY,EAAE;IAC/B,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,QAAQ,CAAC,CAAC;IACV,IAAI;IACJ,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAC1D,YAAY,IAAI,IAAI;IACpB,YAAY,IAAI,IAAI,CAAC,EAAE,YAAY,OAAO,EAAE;IAC5C,gBAAgB,IAAI,EAAE,GAAGA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,gBAAgB,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;IACpF,YAAY;IACZ,iBAAiB;IACjB,gBAAgB,IAAI,GAAG,IAAI,CAAC,EAAE;IAC9B,YAAY;IACZ,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,GAAGA,eAAK,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK;IAC5J,YAAY,IAAI,CAAC,YAAY,GAAG,KAAK;IACrC,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE;IACtE;IACA,YAAY,IAAI,CAAC,cAAc,GAAG,EAAE;IACpC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACnD,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IACvD,YAAY;IACZ;IACA,YAAYA,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC1C,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;IAC1D,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACtD,YAAY,CAAC,CAAC;IACd,QAAQ;IACR;IACA,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;IAChC,IAAI;IACJ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE;IACvB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK;IACpD;IACA;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI;IACxJ,QAAQ,KAAK,CAAC,eAAe,GAAG,KAAK;IACrC,QAAQ,KAAK,CAAC,UAAU,GAAG,MAAM;IACjC;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/F,QAAQ,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI;IACrC,QAAQ,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI;IACvC,QAAQ,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI;IAC/B,QAAQ,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI;IAChC;IACA,QAAQ,qBAAqB,CAAC,MAAM;IACpC,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,UAAU;IACtD,YAAY,KAAK,CAAC,UAAU,GAAG,CAAC,gDAAgD,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;IACrH,YAAY,KAAK,CAAC,SAAS,GAAG,CAAC,wBAAwB,CAAC;IACxD,QAAQ,CAAC,CAAC;IACV,QAAQ,OAAOA,eAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC;IAC/D;IACA,IAAI;IACJ,CAAC;AACDL,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IACnD,CAAC,EAAE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AAChDJ,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,KAAK,EAAE;IAC5D,CAAC,EAAE,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AAC9CH,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,KAAK,EAAE;IAC5D,CAAC,EAAE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AAChDH,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;IAC/D,CAAC,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;IACpD,kBAAkB,GAAGJ,YAAU,CAAC;IAChC,IAAIQ,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,UAAU,EAAE;IAC7C,CAAC,EAAE,kBAAkB,CAAC;;IC5JtB,IAAIT,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAGD;IACA,MAAM,SAAS,GAAGU,cAAI,GAAG,UAAU;IACnC,IAAI,kBAAkB,GAAG,MAAM,kBAAkB,SAAS,cAAc,CAAC;IACzE,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK;IACpC,YAAY,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC7D,YAAY,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI;IAC/C,oBAAoB,IAAI,CAAC,YAAY,OAAO,EAAE;IAC9C,wBAAwB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACzF,oBAAoB;IACpB,gBAAgB,CAAC,CAAC;IAClB,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;IAClD,oBAAoB,IAAI,CAAC,YAAY,OAAO,EAAE;IAC9C,wBAAwB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7H,oBAAoB;IACpB,gBAAgB,CAAC,CAAC;IAClB,YAAY;IACZ,QAAQ,CAAC;IACT,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,CAACN,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,QAAQ;IACR,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC3C,YAAY,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;IACvC,QAAQ;IACR,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;IAC/B,YAAY,IAAI,GAAG,EAAE;IACrB,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAChC,YAAY;IACZ,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,MAAM,EAAE;IAC7B,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,CAAC,EAAE,EAAE;IACf,QAAQA,eAAK,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC;IACxC,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;IACnC,IAAI;IACJ,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;IAClC,QAAQA,eAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IACzC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;IACzE,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI;IACJ,CAAC;IACD,kBAAkB,GAAGL,YAAU,CAAC;IAChC,IAAIQ,uBAAa,CAAC;IAClB,QAAQ,OAAO,EAAEC,WAAC,GAAG;IACrB,KAAK;IACL,CAAC,EAAE,kBAAkB,CAAC;;ICnEtB,IAAIT,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAGD;IACA,MAAM,uBAAuB,GAAG,gBAAgB;IAChD,MAAM,mBAAmB,SAAS,KAAK,CAAC;IACxC,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7E,IAAI;IACJ;IACA,MAAM,qBAAqB,GAAG;IAC9B,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK;IAC3B,QAAQ,IAAI;IACZ,YAAY,OAAOY,oBAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC,QAAQ;IACR,QAAQ,MAAM;IACd,YAAY,OAAOT,4BAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9D,QAAQ;IACR,IAAI;IACJ,CAAC;IACD,SAAS,YAAY,CAAC,CAAC,EAAE;IACzB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;IAC1C;IACA,IAAI,0BAA0B,GAAG,MAAM,0BAA0B,SAASQ,oBAAU,CAAC,gBAAgB,CAAC;IACtG,IAAI,aAAa,GAAG;IACpB,QAAQ,OAAOE,4BAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,0BAA0B,CAAC;IAClG,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,IAAI,CAAC,KAAK,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC,EAAE;IAC/H,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,mBAAmB,EAAE,CAAC;IACzD,QAAQ;IACR,IAAI;IACJ,CAAC;AACDd,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,0BAA0B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC1DJ,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AACzDJ,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;IAC3D,0BAA0B,GAAGJ,YAAU,CAAC;IACxC,IAAIQ,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,mBAAmB,EAAE;IACtD,CAAC,EAAE,0BAA0B,CAAC;IAEvB,MAAM,0BAA0B,SAASG,oBAAU,CAAC,+BAA+B,CAAC;IAC3F,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,8BAA8B,GAAG,CAAC,CAAC,KAAK;IACrD,YAAY,IAAI,CAAC,uBAAuB,EAAE;IAC1C,QAAQ,CAAC;IACT,IAAI;IACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,OAAO,IAAI,YAAY,0BAA0B;IACzD,IAAI;IACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/C,QAAQ,IAAI,UAAU,EAAE;IACxB,YAAY,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC;IACtG,QAAQ;IACR,QAAQ,OAAO,UAAU;IACzB,IAAI;IACJ,IAAI,UAAU,CAAC,IAAI,EAAE;IACrB,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;IACnD,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC;IACzG,QAAQ;IACR,QAAQ,OAAO,YAAY;IAC3B,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,EAAE;IACpE,YAAY,IAAI,CAAC,uBAAuB,EAAE;IAC1C,QAAQ;IACR,IAAI;IACJ,IAAI,uBAAuB,GAAG;IAC9B,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,mBAAmB,EAAE,CAAC;IACrD,IAAI;IACJ,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;IAC/B,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE;IAC1C,YAAY,MAAM,GAAG,GAAGG,sBAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC3C,YAAY,OAAOA,sBAAM,CAAC,SAAS,CAACV,eAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,QAAQ;IACR,QAAQ,OAAO,KAAK;IACpB,IAAI;IACJ;IACA,IAAI,4BAA4B,GAAG,MAAM,4BAA4B,SAAS,0BAA0B,CAAC;IACzG,IAAI,iCAAiC,CAAC,IAAI,EAAE;IAC5C,QAAQ,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1F,IAAI;IACJ,IAAI,aAAa,GAAG;IACpB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;IAChC,QAAQ,IAAIA,eAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;IACxC,YAAY,OAAO,EAAE;IACrB,QAAQ;IACR,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS;IACpE,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;IAC9B,QAAQ,IAAI,GAAG,GAAG,EAAE;IACpB,QAAQ,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;IACxC,YAAY,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAC1C,gBAAgB,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IACjC,YAAY;IACZ,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACxF,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE;IACtE,YAAY,IAAI,IAAI,IAAI,QAAQ,EAAE;IAClC,gBAAgB;IAChB,YAAY;IACZ,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;IACvD,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ;IACR,QAAQ,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtI,IAAI;IACJ,CAAC;AACDL,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,4BAA4B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAC3DJ,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,KAAK,EAAE;IAC9D,CAAC,EAAE,4BAA4B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC5DJ,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE;IAC3D,CAAC,EAAE,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1D,4BAA4B,GAAGH,YAAU,CAAC;IAC1C,IAAIQ,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,qBAAqB,EAAE;IACxD,CAAC,EAAE,4BAA4B,CAAC;IAEhC,IAAI,4BAA4B,GAAG,MAAM,4BAA4B,SAAS,0BAA0B,CAAC;IACzG,IAAI,iCAAiC,CAAC,IAAI,EAAE;IAC5C,QAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACxE,IAAI;IACJ,IAAI,aAAa,GAAG;IACpB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;IAChC,QAAQ,IAAIJ,eAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;IACxC,YAAY,OAAO,EAAE;IACrB,QAAQ;IACR,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IACrC,QAAQ,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE;IACtE,YAAY,IAAI,IAAI,IAAI,QAAQ,EAAE;IAClC,gBAAgB;IAChB,YAAY;IACZ,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;IACvD,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ;IACR,QAAQ,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI;IACJ,CAAC;AACDL,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC,EAAE,4BAA4B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;IAC3D,4BAA4B,GAAGJ,YAAU,CAAC;IAC1C,IAAIQ,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,qBAAqB,EAAE;IACxD,CAAC,EAAE,4BAA4B,CAAC;IAEhC,IAAI,sBAAsB,GAAG,MAAM,sBAAsB,SAASG,oBAAU,CAAC,0BAA0B,CAAC;IACxG,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,KAAK;IAC7C,YAAY,IAAI,CAAC,cAAc,EAAE;IACjC,QAAQ,CAAC;IACT,IAAI;IACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,OAAO,IAAI,YAAY,0BAA0B;IACzD,IAAI;IACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/C,QAAQ,IAAI,UAAU,EAAE;IACxB,YAAY,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC;IAC9F,QAAQ;IACR,QAAQ,OAAO,UAAU;IACzB,IAAI;IACJ,IAAI,UAAU,CAAC,IAAI,EAAE;IACrB,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;IACnD,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC;IACjG,QAAQ;IACR,QAAQ,OAAO,YAAY;IAC3B,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,CAAC,cAAc,EAAE;IAC7B,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,YAAY,QAAQ,IAAI;IACxB,gBAAgB,KAAK,QAAQ;IAC7B,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;IACjD,oBAAoB;IACpB,gBAAgB,KAAK,MAAM;IAC3B,gBAAgB,KAAK,UAAU;IAC/B,oBAAoB,IAAI,CAAC,cAAc,EAAE;IACzC,oBAAoB;IACpB;IACA,QAAQ;IACR,IAAI;IACJ,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQP,eAAK,CAAC,WAAW,CAAC,IAAI,EAAEM,cAAI,GAAG,mBAAmB,CAAC;IAC3D,QAAQN,eAAK,CAAC,WAAW,CAAC,IAAI,EAAEM,cAAI,GAAG,mBAAmB,CAAC;IAC3D,QAAQ,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE;IACvC,IAAI;IACJ,IAAI,cAAc,GAAG;IACrB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;IAChC,QAAQ,IAAIN,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,SAAS,GAAG,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IAC3D,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;IAChC,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;IAC5C,gBAAgB;IAChB,YAAY;IACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;IACjD,YAAY,IAAIA,eAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;IAC/C,gBAAgB;IAChB,YAAY;IACZ,YAAY,SAAS,IAAI,QAAQ;IACjC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IACjD,gBAAgB,SAAS,IAAI,GAAG;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,CAACA,eAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;IAC7C,YAAY,MAAM,CAAC,GAAGM,cAAI,GAAG,mBAAmB,EAAE,CAAC,GAAGA,cAAI,GAAG,mBAAmB;IAChF,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM;IAC5C,YAAYN,eAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,YAAYA,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,YAAY,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACrF,QAAQ;IACR,aAAa;IACb,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC,QAAQ;IACR,IAAI;IACJ,CAAC;AACDL,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IACnD,CAAC,EAAE,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACtDJ,gBAAU,CAAC;IACX,IAAIG,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAClD,CAAC,EAAE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACpDJ,gBAAU,CAAC;IACX,IAAIgB,kBAAQ,CAAC,IAAI;IACjB,CAAC,EAAE,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC;IAC5D,sBAAsB,GAAGhB,YAAU,CAAC;IACpC,IAAIQ,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,cAAc,EAAE;IACjD,CAAC,EAAE,sBAAsB,CAAC;;ICjQ1B,IAAI,UAAU,GAAG,CAACR,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;IACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAGD;IACA,MAAM,SAAS,GAAGU,cAAI,GAAG,QAAQ;IACjC,MAAM,WAAW,GAAGA,cAAI,GAAG,UAAU;IACrC,MAAM,WAAW,GAAG,EAAE;IACtB,IAAI,mBAAmB,GAAG,MAAM,mBAAmB,SAAS,cAAc,CAAC;IAC3E,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;IAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;IAC7B,IAAI;IACJ,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;IAC7B,IAAI;IACJ,IAAI,IAAI,OAAO,GAAG;IAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;IAC5B,IAAI;IACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;IACnD,QAAQ,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC5D,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE;IACrD,YAAY,IAAI,CAACN,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAC5C,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClC,oBAAoB,IAAI,CAAC,KAAK,EAAE;IAChC,gBAAgB;IAChB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,MAAM,EAAE;IACjC,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI,qBAAqB,GAAG;IAC5B,QAAQ,KAAK,CAAC,qBAAqB,EAAE;IACrC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACtD,YAAY,IAAI,CAAC,KAAK,EAAE;IACxB,IAAI;IACJ,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;IAC1C,QAAQ,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;IACnC,QAAQ,IAAI,CAACA,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,QAAQ,KAAK,CAAC,oBAAoB,EAAE;IACpC,IAAI;IACJ,IAAI,MAAM,GAAG;IACb,QAAQA,eAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;IAC3B,YAAY,IAAI,CAAC,aAAa,CAAC,IAAIY,6BAAmB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;IAClJ,QAAQ;IACR,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAIA,6BAAmB,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7I,QAAQ,IAAIZ,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC/C,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;IACzD;IACA,YAAY,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB;IACzD,IAAI;IACJ,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC;IAC5F,QAAQ,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE;IACtC,YAAY,IAAI,CAAC,CAAC,WAAW,EAAE;IAC/B,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,YAAY;IACZ,QAAQ;IACR,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;IAC3B,IAAI;IACJ,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,YAAY,IAAI,CAAC,MAAM,EAAE;IACzB,YAAY,IAAI,CAAC,UAAU,EAAE;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM;IAC7C,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAIY,6BAAmB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC;IACrJ,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/B,QAAQ;IACR,IAAI;IACJ,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,EAAE;IACxB,QAAQZ,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;IAC9C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM;IAC9D,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS;IAClC,QAAQ,GAAG,EAAE;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM;IAClD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAIY,6BAAmB,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACpH,QAAQ,IAAI,GAAG,GAAG,MAAM,EAAE;IAC1B,YAAY,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,MAAM;IACvD,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IACpC,YAAY,CAAC,CAAC;IACd,QAAQ;IACR,IAAI;IACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;IACnB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;IACxC,QAAQ,IAAIZ,eAAK,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;IACpE,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3E,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;IAC7B;IACA,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IACvG,QAAQ,IAAI,CAAC,GAAG,CAAC;IACjB,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;IAChC,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IACrD,YAAY,IAAI,CAAC,SAAS,GAAG,WAAW;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;IAChE,YAAY,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC;IAChC,gBAAgB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACnF,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI;IACnC,YAAY,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE;IACf,QAAQ;IACR;IACA,QAAQ,IAAI,QAAQ;IACpB,YAAY,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC/E,IAAI;IACJ,CAAC;IACD,UAAU,CAAC;IACX,IAAIF,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,OAAO,EAAE;IACnD,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;IACpD,UAAU,CAAC;IACX,IAAID,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAClD,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;IAClD,UAAU,CAAC;IACX,IAAID,eAAK,CAAC,EAAE,SAAS,EAAEC,4BAAkB,CAAC,MAAM,EAAE;IAClD,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;IAChD,mBAAmB,GAAG,UAAU,CAAC;IACjC,IAAII,uBAAa,CAAC,EAAE,OAAO,EAAEC,WAAC,GAAG,WAAW,EAAE;IAC9C,CAAC,EAAE,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/HvBS,8BAAU,CAAC,KAAK,CAAC,MAAM,CAAC;;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pacem/pacem v1.0.0-abel (https://js.pacem.it)
|
|
3
|
+
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
|
+
* Licensed under Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
!function(e,t){"use strict";var r=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};class i extends t.PacemEventTarget{}r([t.Watch({converter:t.PropertyConverters.Element})],i.prototype,"target",void 0);var s=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};const n="ripple";let a=class extends i{constructor(){super(...arguments),this._lock=!1,this._remove=!1,this._rippleHandler=r=>{if(this.disabled||this.target instanceof t.PacemEventTarget&&this.target.disabled)return;if(r instanceof MouseEvent&&0!==r.button)return;const i=t.Utils.offset(this.target),s=getComputedStyle(this.target),n=this.style;n.top=i.top+"px",n.left=i.left+"px",n.width=i.width+"px",n.height=i.height+"px",n.borderRadius=s.borderRadius;const a="touchstart"===r.type?r.touches[0]:r,o={x:a.pageX,y:a.pageY},l={x:i.left,y:i.top},h={x:i.left+i.width,y:i.top},c={x:i.left,y:i.top+i.height},d={x:h.x,y:c.y},p=Math.max(e.Point.distance(o,l),e.Point.distance(o,h),e.Point.distance(o,d),e.Point.distance(o,c)),u=this._wave;u.style.left=o.x-i.left-p+"px",u.style.top=o.y-i.top-p+"px",u.style.width=u.style.height=2*p+"px",t.Utils.addAnimationEndCallback(u,()=>{this._lock=!1,this._tryRemove()}),this._lock=!0,t.Utils.addClass(u,"ripple-go")},this._unrippleHandler=e=>{this._remove=!0,this._tryRemove()}}propertyChangedCallback(e,r,i,s){super.propertyChangedCallback(e,r,i,s),"target"===e&&(t.Utils.isNull(r)||this._reset(r),t.Utils.isNull(i)||this._set(i))}viewActivatedCallback(){super.viewActivatedCallback(),t.Utils.isNull(this.target)||this._set()}disconnectedCallback(){t.Utils.isNull(this.target)||this._reset(),super.disconnectedCallback()}_tryRemove(){!this._lock&&this._remove&&(this._remove=!1,t.Utils.removeClass(this._wave,"ripple-go"))}_set(e=this.target){e.addEventListener("mousedown",this._rippleHandler,!1),e.addEventListener("touchstart",this._rippleHandler,!1),e.addEventListener("touchend",this._unrippleHandler,!1),e.addEventListener("mouseup",this._unrippleHandler,!1),e.addEventListener("mousemove",this._unrippleHandler,!1)}_reset(e=this.target){e.removeEventListener("mousedown",this._rippleHandler,!1),e.removeEventListener("touchstart",this._rippleHandler,!1),e.removeEventListener("touchend",this._unrippleHandler,!1),e.removeEventListener("mouseup",this._unrippleHandler,!1),e.removeEventListener("mousemove",this._unrippleHandler,!1)}};s([t.ViewChild("."+n)],a.prototype,"_wave",void 0),a=s([t.CustomElement({tagName:t.P+"-fx-ripple",shadow:t.Defaults.USE_SHADOW_ROOT,template:`<div class="${n}"></div>`})],a);var o=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};function l(e){return`${t.PCSS}-fx-pulse-${e}`}let h=class extends i{constructor(){super(),this._resizeHandler=e=>{this._pulse(e.detail)},this.#e=t.Utils.uniqueCode()}#e;viewActivatedCallback(){super.viewActivatedCallback(),this._pulse()}disconnectedCallback(){t.Utils.isNull(this._sheet)||(this._sheet.remove(),this._sheet=null),super.disconnectedCallback()}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),"disabled"!==e||i||this._pulse()}_pulse(e=this._resize.currentSize){const r=t.Utils.isNull(this.target)||t.Utils.isNull(e)||!(e.height>0)||!(e.width>0);if(this._resize.disabled=this.disabled,this.disabled||r)return void t.Utils.addClass(this,"pulse-off");t.Utils.removeClass(this,"pulse-off");const i=e,s=getComputedStyle(this.target),n=this.style,a=Math.max(i.width,i.height);n.width=a+"px",n.height=a+"px",n.top=i.top+.5*(i.height-a)+"px",n.left=i.left+.5*(i.width-a)+"px";const o=this._rect1,h=this._rect2,c=o.style,d=h.style;this._sheet=function(e,r,i="0",s=i){const n="style#"+e,a=document.querySelector(n);if(t.Utils.isNull(a)){const t=document.createElement("style");t.id=e,document.head.appendChild(t)}const o=document.querySelector(n),h=r.width,c=r.height,d=Math.max(h,c),p=.5*(d-h),u=.5*(d-c);o.sheet.insertRule(`@keyframes ${l(e)} {\n 0%{\n opacity: .25; stroke-thickness: 0; rx: ${i}; ry: ${s}; x: ${p}px; y: ${u}px; width: ${r.width}px; height: ${r.height}px;\n }\n 50%{\n width: ${r.width}px; height: ${r.height}px; transform: scale(1); stroke-width: 10px; rx: ${i}; ry: ${s}; opacity: .333; x: ${p}px; y: ${u}px; width: ${h}px; height: ${c}px;\n }\n 80%{\n stroke-width: 10px;\n }\n 100%{\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${d}px; height: ${d}px; x: 0; y: 0\n }\n}`,0);for(let e=o.sheet.rules.length-1;e>0;e--)o.sheet.deleteRule(e);return o}(this.#e,e,s.borderTopLeftRadius);const p=l(this.#e);c.animation=d.animation=`${p} both cubic-bezier(0.37, 0, 0.63, 1) 1.25s infinite`,d.animationDelay=".175s"}};o([t.ViewChild(t.P+"-resize")],h.prototype,"_resize",void 0),o([t.ViewChild("svg")],h.prototype,"_svg",void 0),o([t.ViewChild("svg > rect[rect1]")],h.prototype,"_rect1",void 0),o([t.ViewChild("svg > rect[rect2]")],h.prototype,"_rect2",void 0),h=o([t.CustomElement({tagName:t.P+"-fx-pulse",shadow:t.Defaults.USE_SHADOW_ROOT,template:`<${t.P}-resize target="{{ :host.target }}" watch-position="true" on-${t.Components.ResizeEventName}=":host._resizeHandler($event)"></${t.P}-resize>\n<svg class="pulse" xmlns="http://www.w3.org/2000/svg">\n <rect rect1 /><rect rect2 />\n</svg>`})],h);var c=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};const d=t.PCSS+"-hero",p={convert:e=>e.trim().startsWith("#")?t.PropertyConverters.Element.convert(e):t.PropertyConverters.Json.convert(e)};let u=class extends i{propertyChangedCallback(e,r,i,s){super.propertyChangedCallback(e,r,i,s),"target"!==e||t.Utils.isNull(r)||this._resetTarget(r),"from"===e&&this.hero&&!t.Utils.isNull(i)&&(this._originalState=this._computeFromState()),"hero"!==e&&"target"!==e&&"goal"!==e||t.Utils.isNull(this.target)||(this.hero?this.start():this.reset())}viewActivatedCallback(){super.viewActivatedCallback(),this.hero&&!t.Utils.isNull(this.target)&&this.start()}disconnectedCallback(){t.Utils.isNull(this.target)||this.reset(),super.disconnectedCallback()}_computeFromState(){const e=this.target,r=t.Utils.offset(e);if(this.from instanceof Element){let e=t.Utils.offset(this.from);return{x:e.left,y:e.top,width:e.width,height:e.height}}return{x:r.left,y:r.top,width:r.width,height:r.height}}_resetTarget(e=this.target){const r=e.style;r.top=r.left=r.height=r.width="";for(let e=0;e<r.length;e++){let t=r.item(e);r[t]=""}for(let e in this._originalStyle)r[e]=this._originalStyle[e];t.Utils.removeClass(e,d)}reset(){if(!t.Utils.isNull(this._originalState)&&!t.Utils.isNull(this._targetState))return this.dispatchEvent(new Event("exiting")),this._animate(this._targetState,this._originalState).then(()=>{this._resetTarget(),this.dispatchEvent(new Event("exited"))})}start(){if(!this.disabled&&!t.Utils.isNull(this.target)){let e;if(this.to instanceof Element){let r=t.Utils.offset(this.to);e={x:r.left,y:r.top,width:r.width,height:r.height}}else e=this.to;const r=this.target,i=t.Utils.windowSize,s=e||{x:0,y:0,width:i.width,height:i.height},n=r.style;this._targetState=s;let a=this._originalState=this._computeFromState();this._originalStyle={};for(let e=0;e<n.length;e++){let t=n.item(e);this._originalStyle[t]=n[t]}return t.Utils.addClass(r,d),this.dispatchEvent(new Event("entering")),this._animate(a,s).then(()=>{this.dispatchEvent(new Event("entered"))})}return Promise.resolve()}_animate(e,r){const i=this.target,s=i.style,n=e.width/r.width,a=e.height/r.height,o=e.x-r.x+"px",l=e.y-r.y+"px";return s.transformOrigin="0 0",s.transition="none",s.transform=`translate(${o}, ${l}) scale(${n}, ${a})`,s.width=r.width+"px",s.height=r.height+"px",s.top=r.y+"px",s.left=r.x+"px",requestAnimationFrame(()=>{let e=this.duration||200;s.transition=`transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${e}ms, opacity ${e}ms`,s.transform="translate(0, 0) scale(1)"}),t.Utils.waitForAnimationEnd(i,210)}};c([t.Watch({converter:t.PropertyConverters.Boolean})],u.prototype,"hero",void 0),c([t.Watch({converter:p,emit:!1})],u.prototype,"to",void 0),c([t.Watch({converter:p,emit:!1})],u.prototype,"from",void 0),c([t.Watch({converter:t.PropertyConverters.Number,emit:!1})],u.prototype,"duration",void 0),u=c([t.CustomElement({tagName:t.P+"-fx-hero"})],u);var g=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};const m=t.PCSS+"-fx-list";let f=class extends i{constructor(){super(...arguments),this._observed=e=>{const t=Array.from(this.target.children);for(let r of e)r.removedNodes.forEach(e=>{e instanceof Element&&this.dispatchEvent(new CustomEvent("itemremoved",{detail:e}))}),r.addedNodes.forEach((e,r)=>{e instanceof Element&&this.dispatchEvent(new CustomEvent("itemadded",{detail:{item:e,index:t.indexOf(e)}}))})}}viewActivatedCallback(){super.viewActivatedCallback(),t.Utils.isNull(this.target)||this._setup()}disconnectedCallback(){t.Utils.isNull(this._observer)||this._observer.disconnect(),super.disconnectedCallback()}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),"target"===e&&(t?this._reset(t):this._setup())}_reset(e){t.Utils.removeClass(e,m),this._observer.disconnect()}_setup(){const e=this.target;t.Utils.addClass(e,m);(this._observer=new MutationObserver(this._observed)).observe(e,{childList:!0})}};f=g([t.CustomElement({tagName:t.P+"-fx-list"})],f);var v=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};const y="gradientchange";class C extends Event{constructor(){super(y,{cancelable:!1,bubbles:!1})}}const _={convert:(r,i)=>{try{return e.Size.parse(r)}catch{return t.PropertyConverters.Number.convert(r,i)}}};function b(e){return Math.round(1e3*e)/10+"%"}let x=class extends t.Components.PacemItemElement{findContainer(){return t.CustomElementUtils.findAncestor(this,e=>e instanceof E)}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),i||"offset"!==e&&"color"!==e&&"opacity"!==e&&"disabled"!==e&&"hide"!==e||this.dispatchEvent(new C)}};v([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],x.prototype,"offset",void 0),v([t.Watch({emit:!1,converter:t.PropertyConverters.String})],x.prototype,"color",void 0),v([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],x.prototype,"opacity",void 0),x=v([t.CustomElement({tagName:t.P+"-fx-gradient-stop"})],x);class E extends t.Components.PacemCrossItemsContainerElement{constructor(){super(...arguments),this._dispatchGradientChangeHandler=e=>{this._dispatchGradientChange()}}validate(e){return e instanceof x}register(e){const t=super.register(e);return t&&e.addEventListener(y,this._dispatchGradientChangeHandler,!1),t}unregister(e){const t=super.unregister(e);return t&&e.removeEventListener(y,this._dispatchGradientChangeHandler,!1),t}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),!i&&this.doesPropertyTriggerGradientChange(e)&&this._dispatchGradientChange()}_dispatchGradientChange(){this.dispatchEvent(new C)}buildColor(r,i){if(i>=0&&i<=1){const s=e.Colors.parse(r);return e.Colors.stringify(t.Utils.extend(s,{a:i}))}return r}}let w=class extends E{doesPropertyTriggerGradientChange(e){return["shape","size","center","items","hide","disabled"].indexOf(e)>=0}buildGradient(){const e=this.items;if(t.Utils.isNullOrEmpty(e))return"";const r="circle"===this.shape?"circle":"ellipse",i=this.center??{x:.5,y:.5},s=this.size;let n="";t.Utils.isNullOrEmpty(s)||(n="number"==typeof s?`${s}px`:`${b(s.width/2)} ${b(s.height/2)}`);let a=[];for(let{offset:t,color:r,hide:i,disabled:s,opacity:n}of e){if(i||s)continue;const e=this.buildColor(r,n);a.push(`${e} ${b(t)}`)}return`radial-gradient(${r} ${n} at ${b(i.x)} ${b(i.y)} in oklab, ${a.join(", ")})`}};v([t.Watch({emit:!1,converter:t.PropertyConverters.String})],w.prototype,"shape",void 0),v([t.Watch({emit:!1,converter:t.PropertyConverters.Point})],w.prototype,"center",void 0),v([t.Watch({emit:!1,converter:_})],w.prototype,"size",void 0),w=v([t.CustomElement({tagName:t.P+"-fx-gradient-radial"})],w);let P=class extends E{doesPropertyTriggerGradientChange(e){return["angle","items","hide","disabled"].indexOf(e)>=0}buildGradient(){const e=this.items;if(t.Utils.isNullOrEmpty(e))return"";const r=this.angle??0;let i=[];for(let{offset:t,color:r,hide:s,disabled:n,opacity:a}of e){if(s||n)continue;const e=this.buildColor(r,a);i.push(`${e} ${b(t)}`)}return`linear-gradient(${r}deg in oklab, ${i.join(", ")})`}};v([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],P.prototype,"angle",void 0),P=v([t.CustomElement({tagName:t.P+"-fx-gradient-linear"})],P);let N=class extends t.Components.PacemItemsContainerElement{constructor(){super(...arguments),this._gradientChangeHandler=e=>{this._buildGradient()}}validate(e){return e instanceof E}register(e){const t=super.register(e);return t&&e.addEventListener(y,this._gradientChangeHandler,!1),t}unregister(e){const t=super.unregister(e);return t&&e.removeEventListener(y,this._gradientChangeHandler,!1),t}viewActivatedCallback(){super.viewActivatedCallback(),this._buildGradient()}propertyChangedCallback(e,t,r,i){if(super.propertyChangedCallback(e,t,r,i),!i)switch(e){case"target":t&&this._removeGradient(t);case"mode":case"disabled":this._buildGradient()}}_removeGradient(e){t.Utils.removeClass(e,t.PCSS+"-fx-gradient-text"),t.Utils.removeClass(e,t.PCSS+"-fx-gradient-fill"),e.style.backgroundImage=""}_buildGradient(){const e=this.target;if(t.Utils.isNull(e))return;let r="";const i=this.disabled?[]:this.items??[];for(let e of i){if(e.hide||e.disabled)continue;const i=e.buildGradient();t.Utils.isNullOrEmpty(i)||(r+=i,r.trim().endsWith(",")||(r+=","))}if(t.Utils.isNullOrEmpty(r))this._removeGradient(e);else{const i=t.PCSS+"-fx-gradient-text",s=t.PCSS+"-fx-gradient-fill",n="text"===this.mode;t.Utils.removeClass(e,n?s:i),t.Utils.addClass(e,n?i:s),e.style.backgroundImage=r.substring(0,r.length-1)}}};v([t.Watch({converter:t.PropertyConverters.Element})],N.prototype,"target",void 0),v([t.Watch({converter:t.PropertyConverters.String})],N.prototype,"mode",void 0),v([t.Debounce(!0)],N.prototype,"_buildGradient",null),N=v([t.CustomElement({tagName:t.P+"-fx-gradient"})],N);var k=function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};const U=t.PCSS+"-fancy",S=t.PCSS+"-fancify";let $=class extends i{constructor(){super(...arguments),this._progress=0,this._started=!1}get progress(){return this._progress}get started(){return this._started}propertyChangedCallback(e,r,i,s){super.propertyChangedCallback(e,r,i,s),"fancify"!==e&&"target"!==e||t.Utils.isNull(this.target)||(this.fancify?this.start():this._reset())}viewActivatedCallback(){super.viewActivatedCallback(),this.fancify&&!t.Utils.isNull(this.target)&&this.start()}disconnectedCallback(){cancelAnimationFrame(this._handle),clearTimeout(this._handle1),t.Utils.isNull(this.target)||this._reset(),super.disconnectedCallback()}_reset(){t.Utils.removeClass(this.target,U),this._started&&this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"started",oldValue:this._started,currentValue:this._started=!1})),this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"progress",oldValue:this._progress,currentValue:this._progress=0})),t.Utils.isNull(this._originalContent)?this._originalContent=this.target.innerHTML:this.target.innerHTML=this._originalContent}_parse(){let e,t=[],r=document.createTreeWalker(this.target,NodeFilter.SHOW_TEXT);for(;e=r.nextNode();)e.textContent&&t.push(e);this._textNodes=t}start(){this.disabled||(this._reset(),this._parse(),this._startShow(),this._handle1=setTimeout(()=>{this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"started",oldValue:this._started,currentValue:this._started=!0}))},this.delay||0))}_startShow(e=0){t.Utils.addClass(this.target,U);const r=this._textNodes,i=r.length;this._fancify(r[e]);const s=this._progress;e++;const n=this._progress=e/i;this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"progress",oldValue:s,currentValue:n})),e<i&&(this._handle=requestAnimationFrame(()=>{this._startShow(e)}))}_fancify(e){const r=e.textContent;if(t.Utils.isNullOrEmpty(r)||!/[^\s]/.test(r))return;const i=/^\s/.test(r),s=/\s$/.test(r);e.textContent="";const n=r.trim().split(" "),a=this.gap||20,o=this.delay||0;let l=0;for(let t of n){var h=document.createElement("span");h.className=S,h.style.animationDelay=`${o+l*a}ms`,(i||l>0)&&e.parentElement.insertBefore(document.createTextNode(" "),e),h.textContent=t,e.parentElement.insertBefore(h,e),l++}s&&e.parentElement.insertBefore(document.createTextNode(" "),e)}};k([t.Watch({converter:t.PropertyConverters.Boolean})],$.prototype,"fancify",void 0),k([t.Watch({converter:t.PropertyConverters.Number})],$.prototype,"delay",void 0),k([t.Watch({converter:t.PropertyConverters.Number})],$.prototype,"gap",void 0),$=k([t.CustomElement({tagName:t.P+"-fx-fancy"})],$);var O=Object.freeze({__proto__:null,PacemFxElement:i,get PacemFxFancyElement(){return $},get PacemFxGradientElement(){return N},PacemFxGradientItemElement:E,get PacemFxGradientStopElement(){return x},get PacemFxHeroElement(){return u},get PacemFxLinearGradientElement(){return P},get PacemFxListElement(){return f},get PacemFxPulseElement(){return h},get PacemFxRadialGradientElement(){return w},get PacemFxRippleElement(){return a}}),R=Object.freeze({__proto__:null,Fx:O}),j=Object.freeze({__proto__:null,Components:R});e.DeepMerger.merge(j)}(Pacem,Pacem);
|
|
7
|
+
//# sourceMappingURL=pacem-fx.min.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pacem/pacem v1.0.0-abel (https://js.pacem.it)
|
|
3
|
+
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
|
+
* Licensed under Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
{"version":3,"file":"pacem-fx.min.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)} {\n 0%{\n opacity: .25; stroke-thickness: 0; rx: ${rx}; ry: ${ry}; x: ${x}px; y: ${y}px; width: ${args.width}px; height: ${args.height}px;\n }\n 50%{\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;\n }\n 80%{\n stroke-width: 10px;\n }\n 100%{\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${dim}px; height: ${dim}px; x: 0; y: 0\n }\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>\n<svg class=\"${PULSE_CSS}\" xmlns=\"${SVG_NS}\">\n <rect rect1 /><rect rect2 />\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","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","PacemFxElement","PacemEventTarget","Watch","converter","PropertyConverters","Element","prototype","RIPPLE_CSS","PacemFxRippleElement","constructor","super","this","_lock","_remove","_rippleHandler","e","disabled","MouseEvent","button","rect","Utils","offset","style","getComputedStyle","css","top","left","width","height","borderRadius","pointSrc","type","touches","point","x","pageX","y","pageY","topLeft","topRight","bottomLeft","bottomRight","radius","Math","max","Point","distance","wave","_wave","addAnimationEndCallback","_tryRemove","addClass","_unrippleHandler","propertyChangedCallback","name","old","val","first","isNull","_reset","_set","viewActivatedCallback","disconnectedCallback","removeClass","addEventListener","removeEventListener","ViewChild","CustomElement","tagName","P","shadow","Defaults","USE_SHADOW_ROOT","template","buildAnimationName","id","PCSS","PacemFxPulseElement","_resizeHandler","_pulse","detail","uniqueCode","_sheet","remove","size","_resize","currentSize","inert","dim","rect1","_rect1","rect2","_rect2","css1","css2","args","rx","ry","selector","existing","document","querySelector","newStyle","createElement","head","appendChild","w","h","sheet","insertRule","j","rules","deleteRule","ensureCssAnimation","borderTopLeftRadius","animationName","animation","animationDelay","Components","ResizeEventName","HERO_CSS","rectOrElementConverter","convert","attr","trim","startsWith","Json","PacemFxHeroElement","_resetTarget","hero","_originalState","_computeFromState","start","reset","tget","from","prop","item","_originalStyle","_targetState","dispatchEvent","Event","_animate","then","goal","to","wSize","windowSize","state","Promise","resolve","scaleX","scaleY","translateX","translateY","transformOrigin","transition","transform","requestAnimationFrame","duration","waitForAnimationEnd","TRANSITION","Boolean","emit","Number","CSS_CLASS","PacemFxListElement","_observed","items","children","Array","removedNodes","forEach","n","CustomEvent","addedNodes","index","indexOf","_setup","_observer","disconnect","el","MutationObserver","observe","childList","GradientChangeEventName","GradientChangeEvent","cancelable","bubbles","SizeOrNumberConverter","Size","parse","pctFormatter","v","round","PacemFxGradientStopElement","PacemItemElement","findContainer","CustomElementUtils","findAncestor","PacemFxGradientItemElement","String","PacemCrossItemsContainerElement","_dispatchGradientChangeHandler","_dispatchGradientChange","validate","register","registered","unregister","unregistered","doesPropertyTriggerGradientChange","buildColor","color","opacity","clr","Colors","stringify","extend","a","PacemFxRadialGradientElement","buildGradient","isNullOrEmpty","shape","center","stops","hide","push","join","PacemFxLinearGradientElement","angle","PacemFxGradientElement","PacemItemsContainerElement","_gradientChangeHandler","_buildGradient","_removeGradient","backgroundImage","gradients","gradient","endsWith","t","f","ist","mode","substring","Debounce","FANCY_CSS","FANCIFY_CSS","PacemFxFancyElement","_progress","_started","progress","started","fancify","cancelAnimationFrame","_handle","clearTimeout","_handle1","PropertyChangeEvent","propertyName","oldValue","currentValue","_originalContent","innerHTML","_parse","walker","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","textContent","_textNodes","_startShow","setTimeout","delay","ndx","trunks","_fancify","curr","node","content","test","leftPad","rightPad","words","split","gap","word","span","className","parentElement","insertBefore","createTextNode","DeepMerger","merge","Output"],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pacem/pacem v1.0.0-abel (https://js.pacem.it)
|
|
3
|
+
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
|
+
* Licensed under Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
(function (pacemFoundation, pacemCore) {
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
10
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
11
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
};
|
|
15
|
+
const DEFAULT_DATA = { current: 0, count: 0, average: 0, max: Number.MIN_VALUE, min: Number.MAX_VALUE };
|
|
16
|
+
class PacemTrackerElement extends pacemCore.PacemEventTarget {
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
this.data = DEFAULT_DATA;
|
|
20
|
+
}
|
|
21
|
+
propertyChangedCallback(name, old, val, first) {
|
|
22
|
+
super.propertyChangedCallback(name, old, val, first);
|
|
23
|
+
if (name === 'entry')
|
|
24
|
+
this._update(val).then(t => this.data = t);
|
|
25
|
+
}
|
|
26
|
+
_update(ne) {
|
|
27
|
+
//var deferred = DeferPromise.defer<TrackingData>();
|
|
28
|
+
let fn = () => {
|
|
29
|
+
const data = this.data, min = Math.min(ne, data.min), max = Math.max(ne, data.max), count = data.count + 1, average = (data.count * data.average + ne) / count;
|
|
30
|
+
return { count: count, min: min, max: max, average: average, current: ne };
|
|
31
|
+
};
|
|
32
|
+
return pacemCore.Utils.fromResultAsync(fn);
|
|
33
|
+
//return Utils.fromResult/*Async*/(fn());
|
|
34
|
+
}
|
|
35
|
+
reset() {
|
|
36
|
+
this.data = DEFAULT_DATA;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
__decorate$2([
|
|
40
|
+
pacemCore.Watch({ converter: pacemCore.PropertyConverters.Json })
|
|
41
|
+
], PacemTrackerElement.prototype, "data", void 0);
|
|
42
|
+
__decorate$2([
|
|
43
|
+
pacemCore.Watch({ emit: false, converter: pacemCore.PropertyConverters.Number })
|
|
44
|
+
], PacemTrackerElement.prototype, "entry", void 0);
|
|
45
|
+
__decorate$2([
|
|
46
|
+
pacemCore.Concurrent()
|
|
47
|
+
], PacemTrackerElement.prototype, "_update", null);
|
|
48
|
+
//}
|
|
49
|
+
|
|
50
|
+
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
51
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
52
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
53
|
+
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;
|
|
54
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
55
|
+
};
|
|
56
|
+
const DEFAULT_CONFIG = {
|
|
57
|
+
error: true, info: true, warn: true
|
|
58
|
+
};
|
|
59
|
+
let PacemConsoleElement = class PacemConsoleElement extends pacemCore.PacemEventTarget {
|
|
60
|
+
constructor() {
|
|
61
|
+
super(...arguments);
|
|
62
|
+
this._config = DEFAULT_CONFIG;
|
|
63
|
+
}
|
|
64
|
+
propertyChangedCallback(name, old, val, first) {
|
|
65
|
+
super.propertyChangedCallback(name, old, val, first);
|
|
66
|
+
if (name === 'configuration') {
|
|
67
|
+
this._config = pacemCore.Utils.extend({}, DEFAULT_CONFIG, val ?? {});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
log(level, message, category) {
|
|
71
|
+
try {
|
|
72
|
+
/* console enabled? better check: you might find cumbersome behaviors on IE/Edge when F12 tools aren't available! */
|
|
73
|
+
this._log(level, message, category);
|
|
74
|
+
}
|
|
75
|
+
catch (e) { }
|
|
76
|
+
}
|
|
77
|
+
_log(level, message, category) {
|
|
78
|
+
// enabled?
|
|
79
|
+
if (!this.disabled && this._config[level] === true) {
|
|
80
|
+
if (category !== this._category) {
|
|
81
|
+
if (!pacemCore.Utils.isNullOrEmpty(this._category))
|
|
82
|
+
console.groupEnd();
|
|
83
|
+
if (!pacemCore.Utils.isNullOrEmpty(category)) {
|
|
84
|
+
console.group(category);
|
|
85
|
+
}
|
|
86
|
+
this._category = category;
|
|
87
|
+
}
|
|
88
|
+
var fn = (m) => { };
|
|
89
|
+
switch (level) {
|
|
90
|
+
case pacemCore.Logging.LogLevel.Debug:
|
|
91
|
+
fn = console.debug;
|
|
92
|
+
break;
|
|
93
|
+
case pacemCore.Logging.LogLevel.Error:
|
|
94
|
+
fn = console.error;
|
|
95
|
+
break;
|
|
96
|
+
case pacemCore.Logging.LogLevel.Info:
|
|
97
|
+
fn = console.info;
|
|
98
|
+
break;
|
|
99
|
+
case pacemCore.Logging.LogLevel.Trace:
|
|
100
|
+
fn = console.trace;
|
|
101
|
+
break;
|
|
102
|
+
case pacemCore.Logging.LogLevel.Warn:
|
|
103
|
+
fn = console.warn;
|
|
104
|
+
break;
|
|
105
|
+
case pacemCore.Logging.LogLevel.Log:
|
|
106
|
+
fn = console.log;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
fn(new Date().toISOString() + ': ' + message);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
__decorate$1([
|
|
114
|
+
pacemCore.Watch({ emit: false, converter: pacemCore.PropertyConverters.Json })
|
|
115
|
+
], PacemConsoleElement.prototype, "configuration", void 0);
|
|
116
|
+
PacemConsoleElement = __decorate$1([
|
|
117
|
+
pacemCore.CustomElement({ tagName: pacemCore.P + '-console' })
|
|
118
|
+
], PacemConsoleElement);
|
|
119
|
+
|
|
120
|
+
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
121
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
122
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
123
|
+
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;
|
|
124
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
125
|
+
};
|
|
126
|
+
//namespace Pacem.Components.Logging {
|
|
127
|
+
let PacemFpsElement = class PacemFpsElement extends PacemTrackerElement {
|
|
128
|
+
constructor() {
|
|
129
|
+
super();
|
|
130
|
+
}
|
|
131
|
+
_start(t0 = Date.now()) {
|
|
132
|
+
this._handle = requestAnimationFrame(() => {
|
|
133
|
+
const t1 = Date.now(), msecs = t1 - t0;
|
|
134
|
+
// sets new entry
|
|
135
|
+
this.entry = Math.min(60, 1000.0 / msecs);
|
|
136
|
+
this._start(t1);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
viewActivatedCallback() {
|
|
140
|
+
super.viewActivatedCallback();
|
|
141
|
+
this._start();
|
|
142
|
+
}
|
|
143
|
+
disconnectedCallback() {
|
|
144
|
+
cancelAnimationFrame(this._handle);
|
|
145
|
+
super.disconnectedCallback();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
PacemFpsElement = __decorate([
|
|
149
|
+
pacemCore.CustomElement({
|
|
150
|
+
tagName: pacemCore.P + '-fps'
|
|
151
|
+
})
|
|
152
|
+
], PacemFpsElement);
|
|
153
|
+
//}
|
|
154
|
+
|
|
155
|
+
var indexComponentsLogging = /*#__PURE__*/Object.freeze({
|
|
156
|
+
__proto__: null,
|
|
157
|
+
get PacemConsoleElement () { return PacemConsoleElement; },
|
|
158
|
+
get PacemFpsElement () { return PacemFpsElement; },
|
|
159
|
+
PacemTrackerElement: PacemTrackerElement
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
var indexComponents = /*#__PURE__*/Object.freeze({
|
|
163
|
+
__proto__: null,
|
|
164
|
+
Logging: indexComponentsLogging
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
var Output = /*#__PURE__*/Object.freeze({
|
|
168
|
+
__proto__: null,
|
|
169
|
+
Components: indexComponents
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
pacemFoundation.DeepMerger.merge(Output);
|
|
173
|
+
|
|
174
|
+
})(Pacem, Pacem);
|
|
175
|
+
//# sourceMappingURL=pacem-logging.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pacem/pacem v1.0.0-abel (https://js.pacem.it)
|
|
3
|
+
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
|
+
* Licensed under Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
{"version":3,"file":"pacem-logging.js","sources":["../esm/types.js","../esm/console.js","../esm/fps.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 { PacemEventTarget, Watch, PropertyConverters, Utils, Concurrent } from '@pacem/pacem-core';\nconst DEFAULT_DATA = { current: 0, count: 0, average: 0, max: Number.MIN_VALUE, min: Number.MAX_VALUE };\nexport class PacemTrackerElement extends PacemEventTarget {\n constructor() {\n super();\n this.data = DEFAULT_DATA;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'entry')\n this._update(val).then(t => this.data = t);\n }\n _update(ne) {\n //var deferred = DeferPromise.defer<TrackingData>();\n let fn = () => {\n const data = this.data, min = Math.min(ne, data.min), max = Math.max(ne, data.max), count = data.count + 1, average = (data.count * data.average + ne) / count;\n return { count: count, min: min, max: max, average: average, current: ne };\n };\n return Utils.fromResultAsync(fn);\n //return Utils.fromResult/*Async*/(fn());\n }\n reset() {\n this.data = DEFAULT_DATA;\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemTrackerElement.prototype, \"data\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTrackerElement.prototype, \"entry\", void 0);\n__decorate([\n Concurrent()\n], PacemTrackerElement.prototype, \"_update\", null);\n//}\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 { PacemEventTarget, Watch, PropertyConverters, Utils, CustomElement, Logging, P } from '@pacem/pacem-core';\nconst DEFAULT_CONFIG = {\n error: true, info: true, warn: true\n};\nlet PacemConsoleElement = class PacemConsoleElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._config = DEFAULT_CONFIG;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'configuration') {\n this._config = Utils.extend({}, DEFAULT_CONFIG, val ?? {});\n }\n }\n log(level, message, category) {\n try {\n /* console enabled? better check: you might find cumbersome behaviors on IE/Edge when F12 tools aren't available! */\n this._log(level, message, category);\n }\n catch (e) { }\n }\n _log(level, message, category) {\n // enabled?\n if (!this.disabled && this._config[level] === true) {\n if (category !== this._category) {\n if (!Utils.isNullOrEmpty(this._category))\n console.groupEnd();\n if (!Utils.isNullOrEmpty(category)) {\n console.group(category);\n }\n this._category = category;\n }\n var fn = (m) => { };\n switch (level) {\n case Logging.LogLevel.Debug:\n fn = console.debug;\n break;\n case Logging.LogLevel.Error:\n fn = console.error;\n break;\n case Logging.LogLevel.Info:\n fn = console.info;\n break;\n case Logging.LogLevel.Trace:\n fn = console.trace;\n break;\n case Logging.LogLevel.Warn:\n fn = console.warn;\n break;\n case Logging.LogLevel.Log:\n fn = console.log;\n break;\n }\n fn(new Date().toISOString() + ': ' + message);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemConsoleElement.prototype, \"configuration\", void 0);\nPacemConsoleElement = __decorate([\n CustomElement({ tagName: P + '-console' })\n], PacemConsoleElement);\nexport { PacemConsoleElement };\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 } from '@pacem/pacem-core';\nimport { PacemTrackerElement } from './types';\n//namespace Pacem.Components.Logging {\nlet PacemFpsElement = class PacemFpsElement extends PacemTrackerElement {\n constructor() {\n super();\n }\n _start(t0 = Date.now()) {\n this._handle = requestAnimationFrame(() => {\n const t1 = Date.now(), msecs = t1 - t0;\n // sets new entry\n this.entry = Math.min(60, 1000.0 / msecs);\n this._start(t1);\n });\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._start();\n }\n disconnectedCallback() {\n cancelAnimationFrame(this._handle);\n super.disconnectedCallback();\n }\n};\nPacemFpsElement = __decorate([\n CustomElement({\n tagName: P + '-fps'\n })\n], PacemFpsElement);\nexport { PacemFpsElement };\n//}\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","PacemEventTarget","Utils","Watch","PropertyConverters","Concurrent","Logging","CustomElement","P","DeepMerger"],"mappings":"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"}
|