@pacem/pacem 1.0.4 → 1.0.5-bartels
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/README.md +16 -22
- package/dist/browser/pacem-2d.js +4 -4
- package/dist/browser/pacem-2d.js.map +1 -1
- package/dist/browser/pacem-2d.min.js +2 -2
- package/dist/browser/pacem-3d.js +508 -508
- package/dist/browser/pacem-3d.js.map +1 -1
- package/dist/browser/pacem-3d.min.js +2 -2
- package/dist/browser/pacem-charts.js +1 -1
- package/dist/browser/pacem-charts.min.js +1 -1
- package/dist/browser/pacem-cms.js +1 -1
- package/dist/browser/pacem-cms.min.js +1 -1
- package/dist/browser/pacem-core.js +4097 -4097
- package/dist/browser/pacem-core.js.map +1 -1
- package/dist/browser/pacem-core.min.js +2 -2
- package/dist/browser/pacem-foundation.js +1 -4
- package/dist/browser/pacem-foundation.js.map +1 -1
- package/dist/browser/pacem-foundation.min.js +1 -1
- package/dist/browser/pacem-fx.js +1 -1
- package/dist/browser/pacem-fx.min.js +1 -1
- package/dist/browser/pacem-logging.js +1 -1
- package/dist/browser/pacem-logging.min.js +1 -1
- package/dist/browser/pacem-maps.js +1 -1
- package/dist/browser/pacem-maps.min.js +1 -1
- package/dist/browser/pacem-media.js +1 -1
- package/dist/browser/pacem-media.min.js +1 -1
- package/dist/browser/pacem-networking.js +1 -1
- package/dist/browser/pacem-networking.min.js +1 -1
- package/dist/browser/pacem-numerical.js +1 -1
- package/dist/browser/pacem-numerical.min.js +1 -1
- package/dist/browser/pacem-plus.js +7 -2
- package/dist/browser/pacem-plus.js.map +1 -1
- package/dist/browser/pacem-plus.min.js +2 -2
- package/dist/browser/pacem-scaffolding.js +1 -1
- package/dist/browser/pacem-scaffolding.min.js +1 -1
- package/dist/browser/pacem-ui.js +7 -1
- package/dist/browser/pacem-ui.js.map +1 -1
- package/dist/browser/pacem-ui.min.js +1 -1
- package/dist/bundle/pacem.min.mjs +680 -680
- package/dist/bundle/pacem.mjs +40226 -40348
- package/dist/bundle/pacem.mjs.map +4 -4
- package/dist/docs/pacem-core.json +5 -5
- package/dist/docs/pacem-foundation.json +1 -1
- package/dist/docs/pacem-numerical.json +2 -2
- package/dist/docs/pacem-plus.json +6363 -6351
- package/dist/typings/index.d.ts +915 -590
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pacem-ui.js","sources":["../esm/adapter.js","../esm/anchor.js","../esm/types.js","../esm/balloon.js","../esm/binder.js","../esm/blade.js","../esm/lightbox-abstractions.js","../esm/bottom-sheet.js","../esm/dialog-abstractions.js","../esm/button.js","../esm/buttonset.js","../esm/calendar.js","../esm/collapse.js","../esm/dialog.js","../esm/divider.js","../esm/icon.js","../esm/image.js","../esm/infinite-scroller.js","../esm/iterative.js","../esm/lightbox.js","../esm/loader.js","../esm/markdown-svc.js","../esm/markdown.js","../esm/marquee.js","../esm/media-query.js","../esm/menu.js","../esm/pager.js","../esm/picture.js","../esm/progressbar.js","../esm/sidebar.js","../esm/slideshow.js","../esm/social-twitter.js","../esm/sticky-header.js","../esm/tabs.js","../esm/ticker.js","../esm/toast.js","../esm/toc.js","../esm/tuner.js","../esm/vibration.js","../esm/view.js","../esm/window.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 { P, PCSS, Defaults, CustomElement, ViewChild, Watch, Utils, PropertyConverters, Debounce, avoidHandler, Throttle, CustomElementUtils } from '@pacem/pacem-core';\nimport { Components, UI } from '@pacem/pacem-core';\nconst { PacemElement, RepeaterItemCreateEventName, ItemRegisterEventName, ItemUnregisterEventName } = Components;\n//namespace Pacem.Components.UI {\n/** Orientation used by a {@link PacemAdapterElement} to interpret arrow-key navigation. */\nexport var AdapterOrientation;\n(function (AdapterOrientation) {\n AdapterOrientation[\"Vertical\"] = \"vertical\";\n AdapterOrientation[\"Horizontal\"] = \"horizontal\";\n})(AdapterOrientation || (AdapterOrientation = {}));\nexport const AdapterPageButtonRefreshEventName = 'pagerefresh';\n/** Event dispatched by {@link PacemAdapterElement} whenever a page/dashboard button needs to (re)compute its visible state or content. */\nexport class AdapterPageButtonRefreshEvent extends CustomEvent {\n constructor(args) {\n super(AdapterPageButtonRefreshEventName, { detail: args, bubbles: false, cancelable: false });\n }\n}\n/** Renders a dashboard of prev/next buttons and page indicators driving a {@link Components.PacemAdapter} (e.g. a `<pacem-slideshow>` master). */\nlet PacemAdapterElement = class PacemAdapterElement extends Components.PacemAdapter {\n constructor() {\n super(...arguments);\n this._itemCreatedHandler = (evt) => {\n const index = evt.detail.index;\n this._pageMap.set(index, evt.detail.dom[0].firstElementChild);\n this._fireAdapterPageRefreshCallback(index, evt.detail.item);\n };\n this._pageMap = new Map();\n /** Gets or sets whether the dashboard responds to user interaction (keyboard, click, swipe). */\n this.interactive = true;\n /** Gets or sets whether swipe gesture is enabled for navigation (also depends on the 'interactive' flag being set to 'true') */\n this.swipeEnabled = true;\n /** Gets or sets whether navigating past the last (or before the first) item wraps around. */\n this.loop = true;\n /** Gets or sets the callback computing a page button's caption for a given item/index (defaults to the 1-based index). */\n this.labelCallback = (item, index) => (index + 1).toString();\n this._itemRegisterHandler = (evt) => {\n let item = evt.detail;\n if (!Utils.isNull(this._swiper) && item instanceof PacemElement && item.behaviors.indexOf(this._swiper) == -1)\n item.behaviors.push(this._swiper);\n };\n this._itemUnregisterHandler = (evt) => {\n let item = evt.detail, index;\n if (!Utils.isNull(this._swiper) && item instanceof PacemElement && (index = item.behaviors.indexOf(this._swiper)) >= 0)\n item.behaviors.splice(index, 1);\n };\n this._keydownHandler = (evt) => {\n if (!this.interactive) {\n return;\n }\n switch (this.orientation) {\n case AdapterOrientation.Vertical:\n switch (evt.keyCode) {\n case 40: // down\n this._next(evt);\n break;\n case 38: // up\n this._previous(evt);\n break;\n }\n break;\n default:\n // horizontal\n switch (evt.keyCode) {\n case 39: // right\n this._next(evt);\n break;\n case 37: // left\n this._previous(evt);\n break;\n }\n break;\n }\n };\n }\n masterPropertyChangedCallback(name, old, val, first) {\n super.masterPropertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'items':\n this._syncViewWithItems();\n break;\n case 'index':\n this._index = val;\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._repeater.addEventListener(RepeaterItemCreateEventName, this._itemCreatedHandler, false);\n this._syncViewWithItems();\n }\n disconnectedCallback() {\n if (this._repeater) {\n this._repeater.removeEventListener(RepeaterItemCreateEventName, this._itemCreatedHandler, false);\n }\n super.disconnectedCallback();\n }\n initializeCallback() {\n super.initializeCallback();\n this.addEventListener('keydown', this._keydownHandler, false);\n const el = this.master;\n //\n if (!Utils.isNull(el)) {\n const tab = this._previousTabIndex = el.tabIndex;\n if (!tab || tab < 0)\n el.tabIndex = 0;\n el.addEventListener('keydown', this._keydownHandler, false);\n el.addEventListener(ItemRegisterEventName, this._itemRegisterHandler, false);\n el.addEventListener(ItemUnregisterEventName, this._itemUnregisterHandler, false);\n }\n //\n this._syncViewWithItems();\n }\n destroyCallback() {\n this.removeEventListener('keydown', this._keydownHandler, false);\n const el = this.master;\n if (!Utils.isNull(el)) {\n el.removeEventListener('keydown', this._keydownHandler, false);\n el.removeEventListener(ItemRegisterEventName, this._itemRegisterHandler, false);\n el.removeEventListener(ItemUnregisterEventName, this._itemUnregisterHandler, false);\n if (!Utils.isNullOrEmpty(el.items)) {\n for (let item of el.items) {\n const behaviors = item.behaviors, ndx = behaviors.indexOf(this._swiper);\n if (ndx >= 0) {\n behaviors.splice(ndx, 1);\n }\n }\n }\n el.tabIndex = this._previousTabIndex;\n }\n super.destroyCallback();\n }\n itemPropertyChangedCallback(index, name, old, val, first) {\n super.itemPropertyChangedCallback(index, name, old, val, first);\n // tick overall version\n this._tickVersion();\n this._fireAdapterPageRefreshCallback(index);\n }\n _fireAdapterPageRefreshCallback(index, item) {\n item = item || this.master.items[index];\n var hide = item.hide || false, disable = item.disabled || false, caption = this._labelCallback(item, index);\n const evt = new AdapterPageButtonRefreshEvent({ index: index, hide: hide, disabled: disable, content: caption });\n this.dispatchEvent(evt);\n // receive/accept changes\n hide = this._isHidden(item, index, evt.detail.hide);\n disable = this._isDisabled(item, index, evt.detail.disabled);\n caption = evt.detail.content;\n // pick target button\n const pagers = this._pageMap;\n if (pagers.has(index)) {\n const pager = pagers.get(index), span = pager.firstElementChild;\n const fn = () => {\n pager.hide = hide;\n pager.disabled = disable;\n span.content = caption;\n };\n // *careful here*: TODO: TO BE STUDIED\n // if setting the property before it's connected\n // the @Watch configuration and the get+set injection gets lost!\n CustomElementUtils.whenReady(pager, fn);\n }\n }\n _tickVersion() {\n this._v = Date.now();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'interval':\n this._resetTimer(val);\n break;\n case 'swipeEnabled':\n this._swiper.disabled = !val || !this.interactive;\n break;\n case 'interactive':\n this.hidden = !val;\n this._swiper.disabled = !val || !this.swipeEnabled;\n break;\n case 'pausable':\n if (val == true)\n this._liPause.removeAttribute('hidden');\n else\n this._liPause.setAttribute('hidden', 'hidden');\n break;\n }\n }\n _syncViewWithItems() {\n if (!this.isReady\n || Utils.isNull(this.master)\n || Utils.isNull(this._prevBtn)\n || Utils.isNull(this._nextBtn)\n || Utils.isNull(this._repeater))\n return;\n var val = this.master.items;\n this._prevBtn.hide = this._nextBtn.hide = this._panel.hide = !(val && val.length > 1);\n this._panel.hide = Utils.isNullOrEmpty(val);\n this._repeater.datasource = val;\n this._index = this.master.index;\n if (!Utils.isNullOrEmpty(val)) {\n for (let item of val) {\n if (item instanceof PacemElement && item.behaviors.indexOf(this._swiper) == -1)\n item.behaviors.push(this._swiper);\n }\n }\n }\n _toggle(evt) {\n const p = this._paused = !this._paused;\n if (p) {\n avoidHandler(evt);\n this._resetTimer(0);\n }\n else {\n this._next(evt);\n }\n }\n _resetTimer(val) {\n clearInterval(this._handle);\n if (val > 0)\n this._handle = window.setInterval(() => {\n super.next();\n }, val);\n }\n _next(evt) {\n if (evt.type !== UI.SwipeEventType.SwipeLeft)\n avoidHandler(evt);\n this._resetTimer(this.interval);\n super.next(this.loop);\n }\n _previous(evt) {\n if (evt.type !== UI.SwipeEventType.SwipeRight)\n avoidHandler(evt);\n this._resetTimer(this.interval);\n super.previous(this.loop);\n }\n _select(ndx, evt) {\n avoidHandler(evt);\n this._resetTimer(this.interval);\n if (!this.deselectable || ndx !== this._index) {\n super.select(ndx);\n }\n else {\n this.master.index = this._index = -1;\n }\n }\n _isDisabled(item, index, disabled, v) {\n return this._disableOrHide(item, index, disabled);\n }\n _isHidden(item, index, hide, v) {\n return this._disableOrHide(item, index, hide);\n }\n _disableOrHide(item, index, disabledOrHidden) {\n const retval = item instanceof PacemElement && disabledOrHidden === true;\n if ((this._index === -1 && retval === false) || (retval === true && index === this._index)) {\n if (this.deselectable) {\n this.master.index = this._index = -1;\n }\n else {\n super.select(index);\n }\n }\n return retval;\n }\n _labelCallback(item, index, v) {\n return this.labelCallback(item, index);\n }\n};\n__decorate([\n ViewChild(P + '-repeater')\n], PacemAdapterElement.prototype, \"_repeater\", void 0);\n__decorate([\n ViewChild(P + '-button.' + PCSS + '-adapter-previous')\n], PacemAdapterElement.prototype, \"_prevBtn\", void 0);\n__decorate([\n ViewChild(P + '-button.' + PCSS + '-adapter-next')\n], PacemAdapterElement.prototype, \"_nextBtn\", void 0);\n__decorate([\n ViewChild(P + '-panel')\n], PacemAdapterElement.prototype, \"_panel\", void 0);\n__decorate([\n ViewChild(P + '-swipe')\n], PacemAdapterElement.prototype, \"_swiper\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-adapter-dashboard > li[pacem]')\n], PacemAdapterElement.prototype, \"_liPause\", void 0);\n__decorate([\n Debounce()\n], PacemAdapterElement.prototype, \"_tickVersion\", null);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"pausable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemAdapterElement.prototype, \"interval\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemAdapterElement.prototype, \"orientation\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"interactive\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"swipeEnabled\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"deselectable\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"loop\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemAdapterElement.prototype, \"labelCallback\", void 0);\n__decorate([\n Watch()\n], PacemAdapterElement.prototype, \"_index\", void 0);\n__decorate([\n Watch()\n], PacemAdapterElement.prototype, \"_paused\", void 0);\n__decorate([\n Watch()\n], PacemAdapterElement.prototype, \"_v\", void 0);\n__decorate([\n Throttle(333)\n], PacemAdapterElement.prototype, \"_next\", null);\n__decorate([\n Throttle(333)\n], PacemAdapterElement.prototype, \"_previous\", null);\nPacemAdapterElement = __decorate([\n CustomElement({\n tagName: P + '-adapter', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-button class=\"${PCSS}-adapter-previous\" on-click=\":host._previous($event)\"><</${P}-button>\r\n <${P}-button class=\"${PCSS}-adapter-next\" on-click=\":host._next($event)\">></${P}-button>\r\n <${P}-swipe on-swipeleft=\":host._next($event)\" on-swiperight=\":host._previous($event)\"></${P}-swipe>\r\n <${P}-panel tabindex=\"0\">\r\n <${P}-repeater>\r\n <ol class=\"${PCSS}-adapter-dashboard\">\r\n <li pacem hidden>\r\n <${P}-button class=\"${PCSS}-play-pause\"\r\n css-class=\"{{ {'paused' : :host._paused, 'playing': !:host._paused } }}\" \r\n disabled=\"{{ !:host.pausable }}\" on-click=\":host._toggle($event)\"></${P}-button>\r\n </li>\r\n <template>\r\n <li>\r\n <${P}-button on-click=\":host._select(^index, $event)\" class=\"${PCSS}-adapter-page\" css-class=\"{{ { '${PCSS}-adapter-active': ^index === :host._index } }}\">\r\n <${P}-span></${P}-span>\r\n </${P}-button>\r\n </li>\r\n </template>\r\n </ol></${P}-repeater></${P}-panel>`\n })\n], PacemAdapterElement);\nexport { PacemAdapterElement };\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, PropertyChangeEvent } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n// TODO: shadow-ize and reuse native <a> element.\n/** Anchor-like custom element, supporting routed navigation (via a {@link Components.PacemRouterElement}), OAuth-authenticated downloads and keyboard activation. */\nlet PacemAnchorElement = class PacemAnchorElement extends Components.PacemElement {\n constructor() {\n super('link');\n this._fetching = false;\n }\n /** @readonly Gets whether a `download` fetch is currently in progress. */\n get fetching() {\n return this._fetching;\n }\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('tab-order')) {\n this.tabOrder = 0;\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'target':\n (Utils.isNullOrEmpty(val) ? Utils.removeClass : Utils.addClass)(this, 'a-target');\n break;\n case 'href':\n (Utils.isNull(val) ? Utils.removeClass : Utils.addClass)(this, 'a-url');\n break;\n case 'download':\n (Utils.isNullOrEmpty(val) ? Utils.removeClass : Utils.addClass)(this, 'a-download');\n break;\n }\n }\n emit(evt) {\n super.emit(evt);\n if (this.disabled) {\n return;\n }\n switch (evt.type) {\n case 'mousedown':\n Utils.addClass(this, PCSS + '-active');\n break;\n case 'keydown':\n if (evt.key === 'Enter') {\n evt.preventDefault();\n Utils.addClass(this, PCSS + '-active');\n }\n break;\n case 'blur':\n case 'mouseup':\n Utils.removeClass(this, PCSS + '-active');\n break;\n case 'keyup':\n if (evt.key === 'Enter') {\n this.click();\n Utils.removeClass(this, PCSS + '-active');\n }\n break;\n }\n const href = this.href, target = this.target, router = this.router, filename = this.download;\n const url = () => {\n return Utils.isNull(router) ? href : Utils.URIs.format(href, router.state);\n };\n if (!Utils.isNull(href) && !evt.defaultPrevented) {\n if ((evt.type === 'click' && evt.ctrlKey) || (evt.type === 'mousedown' && evt.button === 1)) {\n // 1. middle-click or ctrl+click\n window.open(url(), '_blank');\n }\n else if (evt.type === 'click') {\n // 2. download\n if (filename === true) {\n this._download(url());\n }\n else if (typeof filename === 'string' && !Utils.isNullOrEmpty(filename)) {\n this._download(url(), filename);\n }\n // 3. targeting other window\n else if (!Utils.isNullOrEmpty(target)) {\n window.open(url(), target);\n }\n // 4. routed navigation\n else if (!Utils.isNull(router)) {\n // old implementation memento: Pacem.preventDefaultHandler(evt);\n // trigger router `navigate()`\n router.path = href;\n }\n // 5. standard behavior\n else {\n location.assign(href);\n }\n }\n }\n }\n async _download(url, filename) {\n this.dispatchEvent(new PropertyChangeEvent({\n propertyName: 'fetching', oldValue: this._fetching, currentValue: this._fetching = true\n }));\n try {\n await Utils.download(url, { credentials: this.fetchCredentials, headers: this.fetchHeaders, filename: filename });\n }\n finally {\n this.dispatchEvent(new PropertyChangeEvent({\n propertyName: 'fetching', oldValue: this._fetching, currentValue: this._fetching = false\n }));\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemAnchorElement.prototype, \"fetchCredentials\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemAnchorElement.prototype, \"fetchHeaders\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemAnchorElement.prototype, \"href\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemAnchorElement.prototype, \"target\", void 0);\n__decorate([\n Watch({\n reflectBack: false, converter: {\n convert: (attr) => {\n switch (attr) {\n case 'true':\n return true;\n case 'false':\n return false;\n default:\n return attr;\n }\n }, convertBack: (prop) => prop\n }\n })\n], PacemAnchorElement.prototype, \"download\", void 0);\n__decorate([\n Watch({ reflectBack: false, converter: PropertyConverters.Element })\n], PacemAnchorElement.prototype, \"router\", void 0);\nPacemAnchorElement = __decorate([\n CustomElement({\n tagName: P + '-a'\n })\n], PacemAnchorElement);\nexport { PacemAnchorElement };\n","/** Converts an attribute value into an `Element` (resolved via `querySelector`) or, failing that, a parsed `Point`/JSON value. */\nexport const ElementOrPointPropertyConverter = {\n convert: (attr) => {\n let el = document.querySelector(attr);\n return el ?? JSON.parse(attr);\n }\n};\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, PropertyChangeEvent, ViewChild, stopPropagationHandler, preventDefaultHandler } from '@pacem/pacem-core';\nimport { ElementOrPointPropertyConverter } from './types';\n//namespace Pacem.Components.UI {\n/** How a {@link PacemBalloonElement} behaves once popped up: a dismissible menu, a tooltip, or non-interactive. */\nexport var BalloonBehavior;\n(function (BalloonBehavior) {\n BalloonBehavior[\"Menu\"] = \"menu\";\n BalloonBehavior[\"Tooltip\"] = \"tooltip\";\n BalloonBehavior[\"Inert\"] = \"inert\";\n})(BalloonBehavior || (BalloonBehavior = {}));\n/** The user interaction on `target` that pops a {@link PacemBalloonElement} up. */\nexport var BalloonTrigger;\n(function (BalloonTrigger) {\n BalloonTrigger[\"Hover\"] = \"hover\";\n BalloonTrigger[\"Click\"] = \"click\";\n BalloonTrigger[\"ContextMenu\"] = \"contextmenu\";\n BalloonTrigger[\"Focus\"] = \"focus\";\n})(BalloonTrigger || (BalloonTrigger = {}));\n/** Cross-axis alignment of a {@link PacemBalloonElement} relative to its `target`. */\nexport var BalloonAlignment;\n(function (BalloonAlignment) {\n BalloonAlignment[\"Start\"] = \"start\";\n BalloonAlignment[\"Center\"] = \"center\";\n BalloonAlignment[\"End\"] = \"end\";\n BalloonAlignment[\"Auto\"] = \"auto\";\n})(BalloonAlignment || (BalloonAlignment = {}));\n/** Side of `target` a {@link PacemBalloonElement} is anchored to (with automatic variants that pick the side with the most room). */\nexport var BalloonPosition;\n(function (BalloonPosition) {\n BalloonPosition[\"Top\"] = \"top\";\n BalloonPosition[\"Left\"] = \"left\";\n BalloonPosition[\"Bottom\"] = \"bottom\";\n BalloonPosition[\"Right\"] = \"right\";\n BalloonPosition[\"Auto\"] = \"auto\";\n BalloonPosition[\"HorizontalAuto\"] = \"x\";\n BalloonPosition[\"VerticalAuto\"] = \"y\";\n})(BalloonPosition || (BalloonPosition = {}));\n/** Whether a {@link PacemBalloonElement} sizes itself freely or matches its `target`'s size along the anchored axis. */\nexport var BalloonSizing;\n(function (BalloonSizing) {\n BalloonSizing[\"Auto\"] = \"auto\";\n BalloonSizing[\"Match\"] = \"match\";\n})(BalloonSizing || (BalloonSizing = {}));\n/** Event name fired by {@link PacemBalloonElement} once it has finished popping up (after the show transition). */\nexport const BalloonPopupEventName = 'popup';\n/** Event name fired by {@link PacemBalloonElement} once it has finished popping out (after the hide transition). */\nexport const BalloonPopoutEventName = 'popout';\nconst BalloonConsts = {\n Defaults: {\n 'trigger': BalloonTrigger.Hover,\n 'position': BalloonPosition.Auto,\n 'size': BalloonSizing.Auto,\n 'behavior': BalloonBehavior.Menu,\n 'verticalOffset': 0,\n 'horizontalOffset': 0,\n 'hoverDelay': 250,\n 'hoverTimeout': 500,\n 'align': BalloonAlignment.Center,\n 'track': true\n }\n};\nconst positioningStyles = 'balloon-right balloon-left balloon-bottom balloon-top balloon-start balloon-center balloon-end';\nconst allStyles = PCSS + '-balloon ' + positioningStyles + ' balloon-out balloon-in balloon-on';\n/** Positions its content as a floating popup (menu or tooltip) anchored to a `target` element or point; see {@link BalloonOptions}. */\nlet PacemBalloonElement = class PacemBalloonElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._options = BalloonConsts.Defaults;\n this._originalNeighborhood = null;\n this._popoutDelegate = (_) => {\n this.popout();\n };\n this._hoverDelegate = (evt) => {\n // window.clearTimeout(this._timer);\n if (!this.disabled) {\n this.popup(this._options.hoverDelay);\n // this._timer = window.setTimeout(this._popupDelegate, this._options.hoverDelay);\n }\n };\n this._outConditionalDelegate = (evt) => {\n if ((evt.srcElement || evt.target) != this) {\n this._outDelegate(evt);\n }\n };\n this._mousedownConditionalDelegate = (evt) => {\n preventDefaultHandler(evt);\n if (this._visible) {\n stopPropagationHandler(evt);\n }\n };\n this._outDelegate = (_) => {\n this.popout(this._options.hoverTimeout);\n };\n this._toggleDelegate = (evt) => {\n evt.preventDefault();\n if (this._visible) {\n this._outDelegate(evt);\n }\n else {\n this._hoverDelegate(evt);\n }\n };\n //#endregion\n }\n /** Gets whether the balloon is open and visible. */\n get visible() {\n return this._visible;\n }\n // #region LIFECYCLE\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target') {\n if (old instanceof Element) {\n this._removeHandlers(old);\n }\n if (!(val instanceof Element)) {\n this._adjust();\n }\n }\n else if (name === 'options') {\n if (this.target instanceof Element) {\n this._removeHandlers(this.target);\n }\n this._options = Utils.extend({}, Utils.clone(BalloonConsts.Defaults), val);\n this._synchronizeOptions();\n }\n else if (name === 'disabled') {\n //this.container.style.visibility = val ? 'hidden' : 'visible';\n if (val) {\n this.popout();\n }\n }\n if (this.target instanceof Element && name !== 'disabled') {\n this._setHandlers(this.target);\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._ensurePopup();\n this.target = this.target || this.parentElement;\n this._synchronizeOptions();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this._destroyPopup();\n if (this.target instanceof Element) {\n this._removeHandlers(this.target);\n }\n }\n // #endregion\n //#region METHODS\n _synchronizeOptions() {\n const popup = this, options = popup.options || {};\n // moveToRoot\n if (!!options.moveToRoot && Utils.isNull(this._originalNeighborhood)) {\n this._originalNeighborhood = { parent: popup.parentElement, nextSibling: popup.nextElementSibling };\n document.body.appendChild(popup);\n }\n else if (!options.moveToRoot && !Utils.isNull(this._originalNeighborhood)) {\n const parent = this._originalNeighborhood.parent;\n // has something changed in the neighborhood?...\n if (!Utils.isNull(parent)) {\n parent.appendChild(popup);\n }\n this._originalNeighborhood = null;\n }\n }\n _ensurePopup() {\n const popup = this, container = popup._container;\n //\n if (popup && container && !Utils.hasClass(popup, PCSS + '-balloon')) {\n Utils.addClass(popup, PCSS + '-balloon');\n popup.style.position = 'absolute';\n container.style.position = 'relative';\n container.style.zIndex = '1';\n popup.style.visibility = 'hidden';\n }\n return popup;\n }\n _destroyPopup() {\n var popup = this, container = popup._container;\n Utils.removeClass(popup, allStyles);\n popup.style.position = '';\n if (!Utils.isNull(container)) {\n container.style.position = '';\n container.style.zIndex = '';\n }\n }\n _registerEvents() {\n const popup = this._ensurePopup(), options = this._options;\n switch (options.behavior) {\n case BalloonBehavior.Menu:\n switch (options.trigger) {\n case BalloonTrigger.Focus:\n popup.addEventListener('mousedown', stopPropagationHandler, false);\n popup.addEventListener('focus', this._hoverDelegate, false);\n // do nothing else: only the blur event will pop the balloon out\n break;\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n popup.addEventListener('mousedown', stopPropagationHandler, false);\n window.document.body.addEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n default:\n popup.addEventListener('mouseenter', this._hoverDelegate, false);\n popup.addEventListener('mouseleave', this._outDelegate, false);\n break;\n }\n break;\n case BalloonBehavior.Tooltip:\n switch (options.trigger) {\n case BalloonTrigger.Focus:\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n window.document.body.addEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n default:\n break;\n }\n break;\n }\n }\n _unregisterEvents() {\n var popup = this._ensurePopup();\n var opts = this._options;\n switch (opts.behavior) {\n case BalloonBehavior.Menu:\n switch (opts.trigger) {\n case BalloonTrigger.Focus:\n popup.removeEventListener('mousedown', stopPropagationHandler, false);\n popup.removeEventListener('focus', this._hoverDelegate, false);\n // do nothing else: only the blur event will pop the balloon out\n break;\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n popup.removeEventListener('mousedown', stopPropagationHandler, false);\n window.document.body.removeEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n default:\n popup.removeEventListener('mouseenter', this._hoverDelegate, false);\n popup.removeEventListener('mouseleave', this._outDelegate, false);\n break;\n }\n break;\n case BalloonBehavior.Tooltip:\n switch (opts.trigger) {\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n window.document.body.removeEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n }\n break;\n }\n }\n _onLayoutChange(evt) {\n if (this._visible) {\n this._adjust();\n }\n }\n _adjust() {\n const popup = this, el = popup.target;\n if (Utils.isNull(el)) {\n return;\n }\n const coords = el instanceof Element ? Utils.offset(el) : { top: el.y, left: el.x, width: 0, height: 0 };\n const vieportSize = Utils.windowSize;\n var opts = this._options;\n var chosenPosition = opts.position, chosenAlignment = opts.align;\n if (chosenPosition != BalloonPosition.Top &&\n chosenPosition != BalloonPosition.Bottom && chosenPosition != BalloonPosition.Left && chosenPosition != BalloonPosition.Right) {\n let viewportHeight = vieportSize.height;\n let viewportWidth = vieportSize.width;\n const offsetLeft = coords.left - Utils.scrollLeft;\n const offsetTop = coords.top - Utils.scrollTop;\n const offsetBottom = viewportHeight - (offsetTop + coords.height);\n const offsetRight = viewportWidth - (offsetLeft + coords.width);\n switch (chosenPosition) {\n case BalloonPosition.HorizontalAuto:\n chosenPosition = offsetLeft > offsetRight ? BalloonPosition.Left : BalloonPosition.Right;\n break;\n default:\n // (!) exclude 'left' and 'right' also when position is simply set to 'auto'\n chosenPosition = offsetTop > offsetBottom ? BalloonPosition.Top : BalloonPosition.Bottom;\n break;\n }\n }\n if (opts.size === BalloonSizing.Match) {\n switch (chosenPosition) {\n case BalloonPosition.Bottom:\n case BalloonPosition.Top:\n popup.style.minWidth = coords.width + 'px';\n popup.style.minHeight = '';\n break;\n case BalloonPosition.Left:\n case BalloonPosition.Right:\n popup.style.minHeight = coords.height + 'px';\n popup.style.minWidth = '';\n break;\n }\n }\n else {\n popup.style.minWidth = popup.style.minHeight = '';\n }\n const popupSize = { width: popup.offsetWidth, height: popup.offsetHeight };\n const fullOffsetWidth = coords.width - popupSize.width, halfOffsetWidth = fullOffsetWidth * .5, fullOffsetHeight = coords.height - popupSize.height, halfOffsetHeight = fullOffsetHeight * .5;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n case BalloonAlignment.Start:\n case BalloonAlignment.End:\n break;\n case BalloonAlignment.Auto:\n chosenAlignment = BalloonAlignment.Center;\n switch (chosenPosition) {\n case BalloonPosition.Right:\n case BalloonPosition.Left:\n const halfHeight = Utils.scrollTop + vieportSize.height / 2;\n if /* completely inside the first half of the screen */ ((coords.top + coords.height) < halfHeight) {\n chosenAlignment = BalloonAlignment.Start;\n }\n else if /* completely beyond the half line of the screen */ (coords.top > halfHeight) {\n chosenAlignment = BalloonAlignment.End;\n }\n break;\n case BalloonPosition.Top:\n case BalloonPosition.Bottom:\n const halfWidth = Utils.scrollLeft + vieportSize.width / 2;\n if /* completely inside the first half of the screen */ ((coords.left + coords.width) < halfWidth) {\n chosenAlignment = BalloonAlignment.Start;\n }\n else if /* completely beyond the half line of the screen */ (coords.left > halfWidth) {\n chosenAlignment = BalloonAlignment.End;\n }\n break;\n }\n break;\n default:\n chosenAlignment = BalloonConsts.Defaults.align;\n break;\n }\n Utils.removeClass(popup, positioningStyles);\n Utils.addClass(popup, 'balloon-' + chosenPosition);\n Utils.addClass(popup, 'balloon-' + chosenAlignment);\n const tailSize = Utils.Css.getVariableValue(`--${PCSS}-balloon-tail-size`), tailInset = Utils.Css.getVariableValue(`--${PCSS}-balloon-tail-inset`);\n const inset = parseInt(tailInset) + .5 * parseInt(tailSize);\n const threshold = { width: coords.width / 2, height: coords.height / 2 };\n const adjustX = opts.autoAdjust && inset > threshold.width;\n const adjustY = opts.autoAdjust && inset > threshold.height;\n switch (chosenPosition) {\n case BalloonPosition.Top:\n coords.top -= popupSize.height;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.left += halfOffsetWidth;\n break;\n case BalloonAlignment.End:\n coords.left += fullOffsetWidth;\n if (adjustX) {\n coords.left += (inset - threshold.width);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustX) {\n coords.left -= (inset - threshold.width);\n }\n break;\n }\n break;\n case BalloonPosition.Left:\n coords.left -= popupSize.width;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.top += halfOffsetHeight;\n break;\n case BalloonAlignment.End:\n coords.top += fullOffsetHeight;\n if (adjustY) {\n coords.top += (inset - threshold.height);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustY) {\n coords.top -= (inset - threshold.height);\n }\n break;\n }\n break;\n case BalloonPosition.Right:\n coords.left += coords.width;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.top += halfOffsetHeight;\n break;\n case BalloonAlignment.End:\n coords.top += fullOffsetHeight;\n if (adjustY) {\n coords.top += (inset - threshold.height);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustY) {\n coords.top -= (inset - threshold.height);\n }\n break;\n }\n break;\n default:\n // bottom\n coords.top += coords.height;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.left += halfOffsetWidth;\n break;\n case BalloonAlignment.End:\n coords.left += fullOffsetWidth;\n if (adjustX) {\n coords.left += (inset - threshold.width);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustX) {\n coords.left -= (inset - threshold.width);\n }\n break;\n }\n break;\n }\n coords.left = Math.min(vieportSize.width - popupSize.width, Math.max(0, coords.left));\n //coords.top = Math.max(0, coords.top);\n // coords for balloon positioning\n coords.top += opts.verticalOffset;\n coords.left += opts.horizontalOffset;\n popup.style.top = Math.round(coords.top) + 'px';\n popup.style.left = Math.round(coords.left) + 'px';\n // popup.style.transform = `translateX(${Math.round(coords.left)}px) translateY(${Math.round(coords.top)}px) translateZ(0)`;\n //popup.style.visibility = 'visible';\n }\n _adjustWatchers(visible) {\n const options = this.options || {};\n if (!Utils.isNull(this._resize)) {\n // track position and size\n this._resize.disabled = !visible;\n this._position.disabled = !visible || !(options.track || options.trackPosition);\n }\n }\n /**\n * Shows the balloon, if hidden.\n */\n popup(delay = 0) {\n clearTimeout(this._timer);\n if (delay > 0) {\n this._timer = setTimeout(() => this.popup(), delay);\n return;\n }\n const popup = this, isVisible = Utils.isVisible(popup);\n this._adjustWatchers(true);\n if (isVisible || this.disabled) {\n return;\n }\n // attach closured behavior to popup\n //if (!sameTrigger) {\n this._registerEvents(); // $popup.on('mouseenter', obj.methods.hover).on('mouseleave', obj.methods.out).data(vars.TRIGGER, obj);\n //}\n //\n popup.style.pointerEvents = 'none';\n this._visible = true;\n popup.style.visibility = 'visible';\n this._adjust();\n //requestAnimationFrame(() => {\n Utils.addClass(popup, 'balloon-in');\n Utils.addAnimationEndCallback(popup, () => {\n Utils.addClass(popup, 'balloon-on');\n popup.dispatchEvent(new PropertyChangeEvent({ propertyName: 'visible', oldValue: false, currentValue: true }));\n popup.dispatchEvent(new Event(BalloonPopupEventName));\n popup.style.pointerEvents = 'auto';\n }, 500);\n //});\n }\n /**\n * Hides the balloon, if visible.\n */\n popout(delay = 0) {\n clearTimeout(this._timer);\n if (delay > 0) {\n this._timer = setTimeout(() => this.popout(), delay);\n return;\n }\n var popup = this;\n const isVisible = Utils.isVisible(popup);\n this._adjustWatchers(false);\n if (!isVisible) {\n return;\n }\n // detach closured behavior from popup\n this._unregisterEvents();\n //\n popup.style.pointerEvents = 'none';\n Utils.removeClass(popup, 'balloon-in balloon-on');\n Utils.addClass(popup, 'balloon-out');\n Utils.addAnimationEndCallback(popup, () => {\n popup.style.visibility = 'hidden';\n this._visible = false;\n Utils.removeClass(popup, allStyles);\n popup.dispatchEvent(new Event(BalloonPopoutEventName));\n popup.dispatchEvent(new PropertyChangeEvent({ propertyName: 'visible', oldValue: true, currentValue: false }));\n }, 500);\n }\n /**\n * Shows the balloon, if hidden. Otherwise hides it.\n */\n toggle(delay = 0) {\n if (!Utils.isVisible(this) && !this.disabled) {\n this.popup(delay);\n }\n else {\n this.popout(delay);\n }\n }\n _removeHandlers(el) {\n if (Utils.isNull(el)) {\n return;\n }\n el.removeEventListener('mouseenter', this._hoverDelegate, false);\n el.removeEventListener('mouseleave', this._outDelegate, false);\n el.removeEventListener('mousedown', this._popoutDelegate, false);\n el.removeEventListener('mousedown', this._mousedownConditionalDelegate, false);\n el.removeEventListener('click', this._toggleDelegate, false);\n el.removeEventListener('focus', this._hoverDelegate, false);\n el.removeEventListener('blur', this._outDelegate, false);\n el.removeEventListener('contextmenu', this._toggleDelegate, false);\n }\n _setHandlers(el) {\n this.popout();\n // regenerate opts popup\n var opts = this._options;\n if (opts.behavior == BalloonBehavior.Inert) {\n return;\n }\n switch (opts.trigger) {\n case BalloonTrigger.Hover:\n el.addEventListener('mouseenter', this._hoverDelegate, false);\n el.addEventListener('mouseleave', this._outDelegate, false);\n el.addEventListener('mousedown', this._popoutDelegate, false);\n break;\n case BalloonTrigger.Focus:\n el.addEventListener('focus', this._hoverDelegate, false);\n el.addEventListener('blur', this._outDelegate, false);\n break;\n case BalloonTrigger.Click:\n opts.hoverDelay = opts.hoverTimeout = 0;\n el.addEventListener('mousedown', this._mousedownConditionalDelegate, false);\n el.addEventListener('click', this._toggleDelegate, false) /*.blur(obj.methods.out)*/;\n break;\n case BalloonTrigger.ContextMenu:\n opts.hoverDelay = opts.hoverTimeout = 0;\n el.addEventListener('contextmenu', this._toggleDelegate, false);\n break;\n }\n }\n};\n__decorate([\n ViewChild(`.${PCSS}-balloon`)\n], PacemBalloonElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild(P + '-resize[content]')\n], PacemBalloonElement.prototype, \"_resize\", void 0);\n__decorate([\n ViewChild(P + '-resize[watch-position=true]')\n], PacemBalloonElement.prototype, \"_position\", void 0);\n__decorate([\n Watch({ converter: ElementOrPointPropertyConverter })\n], PacemBalloonElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemBalloonElement.prototype, \"options\", void 0);\nPacemBalloonElement = __decorate([\n CustomElement({\n tagName: P + '-balloon',\n shadow: true,\n template: `<${P}-resize target=\"{{ :host.target }}\" disabled=\"true\" watch-position=\"true\" on-${Components.ResizeEventName}=\":host._onLayoutChange($event)\"></${P}-resize>\r\n<div class=\"${PCSS}-balloon\"><${P}-resize on-${Components.ResizeEventName}=\":host._onLayoutChange($event)\" disabled=\"true\" content><slot></slot></${P}-resize></div>\r\n<div class=\"corner top-left\" part=\"corner-topleft\"></div><div class=\"corner bottom-left\" part=\"corner-bottomleft\"></div><div class=\"corner top-right\" part=\"corner-topright\"></div><div class=\"corner bottom-right\" part=\"corner-bottomright\"></div>`\n })\n], PacemBalloonElement);\nexport { PacemBalloonElement };\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, CustomUIEvent, CustomElementUtils } from '@pacem/pacem-core';\nimport { Point } from '@pacem/pacem-foundation';\nimport { ElementOrPointPropertyConverter } from './types';\n// namespace Pacem.Components.UI {\n/** Edge (or center) of an element a {@link PacemBinderElement} curve attaches to. */\nexport var BinderAnchor;\n(function (BinderAnchor) {\n BinderAnchor[\"Auto\"] = \"auto\";\n BinderAnchor[\"Left\"] = \"left\";\n BinderAnchor[\"Top\"] = \"top\";\n BinderAnchor[\"Right\"] = \"right\";\n BinderAnchor[\"Bottom\"] = \"bottom\";\n BinderAnchor[\"Center\"] = \"center\";\n})(BinderAnchor || (BinderAnchor = {}));\n/** Decoration drawn at either end of a {@link PacemBinderElement} curve. */\nexport var BinderEnd;\n(function (BinderEnd) {\n BinderEnd[\"Default\"] = \"default\";\n BinderEnd[\"Arrow\"] = \"arrow\";\n BinderEnd[\"FatArrow\"] = \"fatarrow\";\n BinderEnd[\"None\"] = \"none\";\n})(BinderEnd || (BinderEnd = {}));\n/** How a {@link PacemBinderElement} computes its Bezier control points: from the elements' mass (size) or from the path direction. */\nexport var BinderTension;\n(function (BinderTension) {\n BinderTension[\"Mass\"] = \"mass\";\n BinderTension[\"Path\"] = \"path\";\n})(BinderTension || (BinderTension = {}));\n/** Event name fired by a {@link PacemBinderElement} when its connecting path is interacted with (click, hover, etc.). */\nexport const BinderInteractionEventName = 'interact';\n/** Event dispatched by a {@link PacemBinderElement} wrapping the original user-interaction event on its path. */\nexport class BinderInteractionEvent extends CustomUIEvent {\n constructor(orig) {\n super(BinderInteractionEventName, null, orig);\n }\n}\nconst UI_BINDERS = 'pacem:components:ui:binders';\n/** Tracks the {@link PacemBinderElement} instances bound to a single endpoint element, refreshing them all on that element's resize/reposition. */\nclass BindersCollector {\n constructor(element) {\n this.binders = [];\n this.fire = (evt) => {\n for (var binder of this.binders) {\n binder.refresh(this.resize.target, evt.detail);\n }\n };\n const watcher = this.resize = new Components.PacemResizeElement();\n watcher.target = element;\n watcher.watchPosition = true;\n document.body.appendChild(watcher);\n }\n dispose() {\n this.resize.remove();\n }\n}\n/** Static registry pairing endpoint elements with their {@link BindersCollector}, plus a page-wide resize listener keeping every registered {@link PacemBinderElement} in sync. */\nclass BinderUtils {\n static { this._pageBinders = []; }\n static _updateResizeListener() {\n const binders = this._pageBinders;\n if (Utils.isNull(this._bodyResizeListener)) {\n const resize = this._bodyResizeListener = new Components.PacemResizeElement();\n resize.target = document.body;\n document.body.appendChild(resize);\n document.addEventListener(Components.ResizeEventName, () => {\n for (let binder of binders) {\n binder.invalidateSize();\n }\n }, false);\n }\n this._bodyResizeListener.disabled = binders.length === 0;\n }\n static register(element, binder) {\n var collector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), binders = this._pageBinders;\n if (Utils.isNull(collector)) {\n collector = new BindersCollector(element);\n CustomElementUtils.setAttachedPropertyValue(element, UI_BINDERS, collector);\n }\n if (collector.binders.indexOf(binder) == -1) {\n if (collector.binders.length === 0) {\n collector.resize.addEventListener(Components.ResizeEventName, collector.fire, false);\n } //else {\n binder.refresh(element, collector.resize.currentSize);\n //}\n collector.binders.push(binder);\n }\n if (binders.indexOf(binder) === -1) {\n binders.push(binder);\n this._updateResizeListener();\n }\n }\n static unregister(element, binder) {\n var collector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), ndx, binders = this._pageBinders, ndx2;\n if (!Utils.isNull(collector) && (ndx = collector.binders.indexOf(binder)) > -1) {\n collector.binders.splice(ndx, 1);\n if (collector.binders.length === 0) {\n collector.resize.removeEventListener(Components.ResizeEventName, collector.fire, false);\n collector.dispose();\n CustomElementUtils.deleteAttachedPropertyValue(element, UI_BINDERS);\n }\n }\n if ((ndx2 = binders.indexOf(binder)) >= 0) {\n binders.splice(ndx2, 1);\n this._updateResizeListener();\n }\n }\n}\nconst STD_EVENTS = ['click', 'dblclick', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'mousemove', 'contextmenu'];\n/** Draws an SVG Bezier curve connecting two elements (or points), following them as they move/resize; e.g. wires or diagram connectors. */\nlet PacemBinderElement = class PacemBinderElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._broadcastHandler = (evt) => {\n var ui = new BinderInteractionEvent(evt);\n this.dispatchEvent(ui);\n };\n this._state = {};\n }\n connectedCallback() {\n super.connectedCallback();\n this._ensurePath();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.from instanceof Element)\n BinderUtils.register(this.from, this);\n if (this.to instanceof Element)\n BinderUtils.register(this.to, this);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'from':\n case 'to':\n if (old instanceof Element) {\n BinderUtils.unregister(old, this);\n }\n if (val instanceof Element) {\n // `BinderUtils.register` eventually calls `.refresh`\n BinderUtils.register(val, this);\n }\n else {\n this.refresh(val);\n }\n break;\n case 'fromLimit':\n case 'toLimit':\n case 'fromEnd':\n case 'toEnd':\n case 'tension':\n this._draw();\n break;\n case 'fromAnchor':\n this.refresh(this.from);\n break;\n case 'toAnchor':\n this.refresh(this.to);\n break;\n case 'cssClass':\n if (!Utils.isNull(this._svg)) {\n this._svg.setAttribute('class', PCSS + '-binder ' + this.className);\n }\n break;\n case 'hide':\n if (!first) {\n this._setPathVisibility();\n }\n break;\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._path)) {\n STD_EVENTS.forEach(e => {\n this._path.removeEventListener(e, this._broadcastHandler, false);\n });\n this._svg.remove();\n this._path = undefined;\n }\n if (this.from instanceof Element)\n BinderUtils.unregister(this.from, this);\n if (this.to instanceof Element)\n BinderUtils.unregister(this.to, this);\n super.disconnectedCallback();\n }\n _setPathVisibility(path = this._path, hide = this.hide, interactive = this.interactive) {\n if (!Utils.isNull(path)) {\n if (hide) {\n path.setAttribute('display', 'none');\n }\n else {\n path.removeAttribute('display');\n }\n if (interactive) {\n path.setAttribute('pointer-events', 'visibleStroke');\n path.tabIndex = 0;\n }\n else {\n path.removeAttribute('pointer-events');\n path.tabIndex = -1;\n }\n }\n }\n _ensurePath() {\n if (Utils.isNull(this._path)) {\n let svg = this._svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.style.position = 'absolute';\n Utils.addClass(svg, PCSS + '-binder ' + this.className);\n svg.style.top = '0';\n svg.style.left = '0';\n svg.style.overflow = 'hidden';\n svg.style.pointerEvents = 'none';\n const path = this._path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('fill', 'none');\n path.setAttribute('display', 'none');\n this._setPathVisibility();\n svg.appendChild(path);\n this.invalidateSize();\n document.body.appendChild(svg);\n STD_EVENTS.forEach(e => {\n path.addEventListener(e, this._broadcastHandler, false);\n });\n }\n }\n /** Resizes the shared full-page SVG overlay to match the current document size; call after layout changes that may affect `document.body`'s scroll size. */\n invalidateSize() {\n const svg = this._svg;\n if (!Utils.isNull(svg)) {\n svg.setAttribute('width', document.body.scrollWidth.toString());\n svg.setAttribute('height', document.body.scrollHeight.toString());\n }\n }\n _computeAnchorPoints(target, anchor, end, ref, refAnchor, refEnd, tension) {\n var p1, p2, c1, c2;\n const top = target.top, left = target.left, w = target.width, h = target.height, w2 = w / 2, h2 = h / 2;\n const r_top = ref.top, r_left = ref.left, r_w = ref.width, r_h = ref.height, r_w2 = r_w / 2, r_h2 = r_h / 2;\n const p1_center = { x: left + w2, y: top + h2 };\n const p2_center = { x: r_left + r_w2, y: r_top + r_h2 };\n const p1_top = { x: left + w2, y: top };\n const p1_bottom = { x: left + w2, y: top + h };\n const p1_left = { x: left, y: top + h2 };\n const p1_right = { x: left + w, y: top + h2 };\n const p2_top = { x: r_left + r_w2, y: r_top };\n const p2_bottom = { x: r_left + r_w2, y: r_top + r_h };\n const p2_left = { x: r_left, y: r_top + r_h2 };\n const p2_right = { x: r_left + r_w, y: r_top + r_h2 };\n const points = {\n 'p1_top': p1_top,\n 'p1_bottom': p1_bottom,\n 'p1_left': p1_left,\n 'p1_right': p1_right,\n 'p2_top': p2_top,\n 'p2_bottom': p2_bottom,\n 'p2_left': p2_left,\n 'p2_right': p2_right,\n };\n var distance_memoizer = {};\n function getDistance(suffix1, suffix2) {\n const key = suffix1 + '_' + suffix2;\n return distance_memoizer[key] = distance_memoizer[key] || Point.distance(points['p1_' + suffix1], points['p2_' + suffix2]);\n }\n if (anchor == BinderAnchor.Auto || refAnchor == BinderAnchor.Auto) {\n //if (anchor == BinderAnchor.Auto && refAnchor == BinderAnchor.Auto) {\n // algorithm for finding the closest edges (1 atan + 4 distances)\n // 1. compute atan of the segment joining the two centers\n const a = { x: p1_center.x, y: -p1_center.y }, b = { x: p2_center.x, y: -p2_center.y };\n const slope = Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI;\n switch (slope) {\n case 0:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case 90:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n case 180:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case -90:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n default:\n // 2. compute distances combining the 4 points (compare 4 distances)\n if (slope < 90 && slope > 0) {\n // right | top vs left | bottom\n let top_2_left = getDistance('top', 'left'), right_2_left = getDistance('right', 'left'), right_2_bottom = getDistance('right', 'bottom'), top_2_bottom = getDistance('top', 'bottom');\n var d = Math.min(top_2_left, right_2_left, right_2_bottom, top_2_bottom);\n switch (d) {\n case top_2_left:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case top_2_bottom:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n case right_2_bottom:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n }\n }\n else if (slope < 180 && slope > 90) {\n // left | top vs right | bottom\n let top_2_right = getDistance('top', 'right'), left_2_right = getDistance('left', 'right'), left_2_bottom = getDistance('left', 'bottom'), top_2_bottom = getDistance('top', 'bottom');\n var d = Math.min(top_2_right, left_2_right, left_2_bottom, top_2_bottom);\n switch (d) {\n case top_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_bottom:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n }\n }\n else if (slope < -90) {\n // left | bottom vs right | top\n let bottom_2_right = getDistance('bottom', 'right'), left_2_right = getDistance('left', 'right'), left_2_top = getDistance('left', 'top'), bottom_2_top = getDistance('bottom', 'top');\n var d = Math.min(bottom_2_right, left_2_right, left_2_top, bottom_2_top);\n switch (d) {\n case bottom_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_top:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n }\n }\n else {\n // right | bottom vs left | top\n let bottom_2_left = getDistance('bottom', 'left'), right_2_left = getDistance('right', 'left'), right_2_top = getDistance('right', 'top'), bottom_2_top = getDistance('bottom', 'top');\n var d = Math.min(bottom_2_left, right_2_left, right_2_top, bottom_2_top);\n switch (d) {\n case bottom_2_left:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case right_2_left:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case right_2_top:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n }\n }\n break;\n }\n //}\n }\n function computeF(e) {\n switch (e) {\n case BinderEnd.Arrow:\n case BinderEnd.FatArrow:\n return 2.0;\n default:\n return 1.0;\n }\n }\n const f = computeF(end), refF = computeF(refEnd);\n // anchor points calc\n switch (anchor) {\n case BinderAnchor.Bottom:\n p1 = p1_bottom;\n break;\n case BinderAnchor.Center:\n p1 = { x: left + w2, y: top + h2 };\n c1 = p1;\n break;\n case BinderAnchor.Left:\n p1 = p1_left;\n break;\n case BinderAnchor.Right:\n p1 = p1_right;\n break;\n case BinderAnchor.Top:\n p1 = p1_top;\n break;\n }\n switch (refAnchor) {\n case BinderAnchor.Bottom:\n p2 = p2_bottom;\n break;\n case BinderAnchor.Center:\n p2 = { x: r_left + r_w2, y: r_top + r_h2 };\n c2 = p2;\n break;\n case BinderAnchor.Left:\n p2 = p2_left;\n break;\n case BinderAnchor.Right:\n p2 = p2_right;\n break;\n case BinderAnchor.Top:\n p2 = p2_top;\n break;\n }\n // control points calc\n switch (tension) {\n case BinderTension.Path:\n // adjust the control points based on the path (not on the masses of the element ends)\n const t = .333; // < tension (fraction of the distance)\n switch (anchor) {\n case BinderAnchor.Bottom:\n c1 = { x: p1.x, y: p1.y + Math.abs(f * t * (p2.y - p1.y)) };\n break;\n case BinderAnchor.Left:\n c1 = { x: p1.x - Math.abs(f * t * (p2.x - p1.x)), y: p1.y };\n break;\n case BinderAnchor.Right:\n c1 = { x: p1.x + Math.abs(f * t * (p2.x - p1.x)), y: p1.y };\n break;\n case BinderAnchor.Top:\n c1 = { x: p1.x, y: p1.y - Math.abs(f * t * (p1.y - p2.y)) };\n break;\n }\n switch (refAnchor) {\n case BinderAnchor.Bottom:\n c2 = { x: p2.x, y: p2.y + Math.abs(refF * t * (p2.y - p1.y)) };\n break;\n case BinderAnchor.Left:\n c2 = { x: p2.x - Math.abs(refF * t * (p2.x - p1.x)), y: p2.y };\n break;\n case BinderAnchor.Right:\n c2 = { x: p2.x + Math.abs(refF * t * (p2.x - p1.x)), y: p2.y };\n break;\n case BinderAnchor.Top:\n c2 = { x: p2.x, y: p2.y - Math.abs(refF * t * (p2.y - p1.y)) };\n break;\n }\n break;\n default:\n // control points computed based on the mass (size) of the element ends\n switch (anchor) {\n case BinderAnchor.Bottom:\n c1 = { x: p1.x, y: p1.y + Math.abs(f * (p1_bottom.y - p1_center.y)) };\n break;\n case BinderAnchor.Left:\n c1 = { x: p1.x - Math.abs(f * (p1_center.x - p1_left.x)), y: p1.y };\n break;\n case BinderAnchor.Right:\n c1 = { x: p1.x + Math.abs(f * (p1_right.x - p1_center.x)), y: p1.y };\n break;\n case BinderAnchor.Top:\n c1 = { x: p1.x, y: p1.y - Math.abs(f * (p1_top.y - p1_center.y)) };\n break;\n }\n switch (refAnchor) {\n case BinderAnchor.Bottom:\n c2 = { x: p2.x, y: p2.y + Math.abs(refF * (p2_bottom.y - p2_center.y)) };\n break;\n case BinderAnchor.Left:\n c2 = { x: p2.x - Math.abs(refF * (p2_center.x - p2_left.x)), y: p2.y };\n break;\n case BinderAnchor.Right:\n c2 = { x: p2.x + Math.abs(refF * (p2_right.x - p2_center.x)), y: p2.y };\n break;\n case BinderAnchor.Top:\n c2 = { x: p2.x, y: p2.y - Math.abs(refF * (p2_top.y - p2_center.y)) };\n break;\n }\n }\n return { points: [p1, c1, p2, c2], anchors: [anchor, refAnchor] };\n }\n /** Updates the cached position/size for the given endpoint (`from` or `to`) and redraws the curve if both ends are known. @param args Pre-computed layout, or omitted to reuse the last known/cached value. */\n refresh(element, args) {\n var path;\n if (Utils.isNull(element) || Utils.isNull(path = this._path)) {\n return;\n }\n const draw = !Utils.isNull(this.from) && !Utils.isNull(this.to);\n const leave = Utils.isNull(this.from) && Utils.isNull(this.to);\n if (this.disabled || !draw) {\n path.removeAttribute('d');\n if (leave) {\n return;\n }\n }\n // compute anchor points\n const key = element === this.from ? 'from' : 'to';\n var anchor = (key === 'from' ? this.fromAnchor : this.toAnchor) || BinderAnchor.Auto;\n if (Utils.isNull(args)) {\n if (!(element instanceof Element)) {\n args = { height: 0, width: 0, left: element.x, top: element.y };\n anchor = BinderAnchor.Center;\n }\n else if (key in this._state) {\n args = this._state[key].size;\n }\n }\n if (Utils.isNull(args)) {\n return;\n }\n this._state[key] = { size: args, anchor };\n if (draw) {\n this._draw();\n }\n }\n //@Debounce()\n _draw() {\n var state1 = this._state['from'], state2 = this._state['to'], path = this._path;\n if (Utils.isNull(path)) {\n return;\n }\n if (Utils.isNullOrEmpty(state1)\n || Utils.isNullOrEmpty(state2)\n || (this.from instanceof HTMLElement && !Utils.isVisible(this.from))\n || (this.to instanceof HTMLElement && !Utils.isVisible(this.to))) {\n path.setAttribute('d', '');\n return;\n }\n const { points, anchors } = this._computeAnchorPoints(state1.size, state1.anchor, this.fromEnd, state2.size, state2.anchor, this.toEnd, this.tension), p0 = points[0], c0 = points[1], p1 = points[2], c1 = points[3], anchor0 = anchors[0], anchor1 = anchors[1];\n const x0 = p0.x;\n const y0 = p0.y;\n const cx0 = c0.x;\n const cy0 = c0.y;\n const x1 = p1.x;\n const y1 = p1.y;\n const cx1 = c1.x;\n const cy1 = c1.y;\n let dStart = this._getDefaultEndingPath(x0, y0);\n switch (this.fromEnd) {\n case BinderEnd.Arrow:\n dStart = this._getArrowEndingPath(x0, y0, anchor0);\n break;\n case BinderEnd.FatArrow:\n dStart = this._getFatArrowEndingPath(x0, y0, anchor0);\n break;\n case BinderEnd.None:\n dStart = '';\n break;\n }\n let dEnd = this._getDefaultEndingPath(x1, y1);\n switch (this.toEnd) {\n case BinderEnd.Arrow:\n dEnd = this._getArrowEndingPath(x1, y1, anchor1);\n break;\n case BinderEnd.FatArrow:\n dEnd = this._getFatArrowEndingPath(x1, y1, anchor1);\n break;\n case BinderEnd.None:\n dEnd = '';\n break;\n }\n const d = dStart + `M${x0},${y0} C${cx0},${cy0} ${cx1},${cy1} ${x1},${y1}` + dEnd;\n if (d.indexOf('NaN') === -1) {\n path.setAttribute('d', d);\n }\n if (!Utils.isNullOrEmpty(this.color))\n path.style.stroke = this.color;\n }\n _getDefaultEndingPath(x, y) {\n return `M${x - 2},${y - 2} h4 v4 h-4 z`;\n }\n _getArrowEndingPath(x, y, anchor) {\n switch (anchor) {\n case BinderAnchor.Bottom:\n return `M${x - 4},${y + 4} l4,-4 l4,4`;\n case BinderAnchor.Top:\n return `M${x - 4},${y - 4} l4,4 l4,-4`;\n case BinderAnchor.Left:\n return `M${x - 4},${y - 4} l4,4 l-4,4`;\n case BinderAnchor.Right:\n return `M${x + 4},${y - 4} l-4,4 l4,4`;\n default:\n return '';\n }\n }\n _getFatArrowEndingPath(x, y, anchor) {\n switch (anchor) {\n case BinderAnchor.Bottom:\n case BinderAnchor.Top:\n case BinderAnchor.Left:\n case BinderAnchor.Right:\n return this._getArrowEndingPath(x, y, anchor) + ' z';\n default:\n return '';\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: ElementOrPointPropertyConverter })\n], PacemBinderElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: ElementOrPointPropertyConverter })\n], PacemBinderElement.prototype, \"to\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"fromAnchor\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"toAnchor\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"fromEnd\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"toEnd\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"tension\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"color\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBinderElement.prototype, \"interactive\", void 0);\nPacemBinderElement = __decorate([\n CustomElement({ tagName: P + '-binder' })\n], PacemBinderElement);\nexport { PacemBinderElement };\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 { P, CustomElement, Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n// namespace Pacem.Components.UI {\nconst OPEN_CSSCLASS = 'blade-open';\n/** Slide-in panel toggled via its `open` property, dispatching `open`/`close` events as it transitions. */\nlet PacemBladeElement = class PacemBladeElement extends Components.PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'open') {\n this._toggle(val);\n }\n }\n _toggle(open = this.open) {\n const fn = open ? Utils.addClass : Utils.removeClass;\n fn(this, OPEN_CSSCLASS);\n const eventName = open ? 'open' : 'close';\n this.dispatchEvent(new Event(eventName));\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBladeElement.prototype, \"open\", void 0);\nPacemBladeElement = __decorate([\n CustomElement({ tagName: P + '-blade', shadow: true })\n], PacemBladeElement);\nexport { PacemBladeElement };\n//}\n","//namespace Pacem.Components.UI {\n/** How a {@link Lightbox} reacts to a click outside its content. */\nexport var LightboxBehavior;\n(function (LightboxBehavior) {\n LightboxBehavior[\"ClickOutsideClose\"] = \"clickOutsideClose\";\n LightboxBehavior[\"ExplicitClose\"] = \"explicitClose\";\n})(LightboxBehavior || (LightboxBehavior = {}));\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, preventDefaultHandler, ViewChild, CustomElementUtils, UI, stopPropagationHandler, avoidHandler } from '@pacem/pacem-core';\nimport { LightboxBehavior } from './lightbox-abstractions';\n// namespace Pacem.Components.UI {\nconst OPEN_CSSCLASS = 'bottom-sheet-open';\n/** Drag handle for an ancestor {@link PacemBottomSheetElement}: renders a small grip icon, toggles the sheet on click and drives its swipe-to-drag behavior. */\nlet PacemBottomSheetHandleElement = class PacemBottomSheetHandleElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._clickHandler = (evt) => {\n const bs = this.#bottomSheet;\n bs.open = !bs.open;\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setIcon();\n this._toggleHandle();\n this.#bottomSheet = CustomElementUtils.findAncestorOfType(this, PacemBottomSheetElement);\n this._bindToBottomSheet();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'iconGlyph':\n this._setIcon(val);\n break;\n case 'disabled':\n this._toggleHandle(val);\n break;\n }\n }\n disconnectedCallback() {\n this.removeEventListener('click', this._clickHandler);\n const bs = this.#bottomSheet;\n if (!Utils.isNull(bs) && bs.isReady) {\n bs._setHandle(null);\n }\n this.#bottomSheet = null;\n super.disconnectedCallback();\n }\n #bottomSheet;\n _bindToBottomSheet() {\n const bs = this.#bottomSheet;\n if (Utils.isNull(bs)) {\n return;\n }\n if (Utils.isNullOrEmpty(this.id)) {\n this.id = ('handle_' + Utils.uniqueCode());\n }\n CustomElementUtils.whenReady(bs, () => {\n bs._setHandle(this);\n this.addEventListener('click', this._clickHandler, false);\n });\n }\n _toggleHandle(disabled = this.disabled) {\n this.style.pointerEvents = disabled ? 'none' : '';\n }\n _setIcon(icon = this.iconGlyph) {\n const ic = this._icon;\n if (!Utils.isNull(ic)) {\n ic.icon = icon ?? 'horizontal_rule';\n }\n }\n};\n__decorate([\n ViewChild(P + '-icon')\n], PacemBottomSheetHandleElement.prototype, \"_icon\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBottomSheetHandleElement.prototype, \"iconGlyph\", void 0);\nPacemBottomSheetHandleElement = __decorate([\n CustomElement({\n tagName: P + '-bottom-sheet-handle', shadow: false, template: `<div class=\"bottom-sheet-handle\">\r\n <${P}-icon class=\"icon-size icon-size-6\"></${P}-icon>\r\n </div>`\n })\n], PacemBottomSheetHandleElement);\nexport { PacemBottomSheetHandleElement };\n/** Mobile-style panel anchored to the bottom of the viewport, draggable (via its {@link PacemBottomSheetHandleElement}) and swipeable open/closed. */\nlet PacemBottomSheetElement = class PacemBottomSheetElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._resizeHandler = (evt) => {\n this._rebuildSwiperSnaps();\n this._setPosition();\n };\n this._panHandler = (e) => {\n const snap = this._swiper.snaps.find(s => s != 0);\n const { delta } = e.detail;\n let pct = (snap < 0 ? delta.clamp(snap, 0) : delta.clamp(0, snap)) / snap;\n if (snap > 0) {\n pct = 1 - pct;\n }\n // console.log(`snap ${snap} - delta ${delta} - pct: ${pct * 100}%`);\n const sqr = 6 * (pct ** 2);\n this.style.backdropFilter = `blur(${sqr.toFixed(2)}px)`;\n };\n this._swipeHandler = (e) => {\n preventDefaultHandler(e);\n switch (e.type) {\n case UI.SwipeEventType.SwipeAnimationEnd:\n this.style.backdropFilter = '';\n return;\n case UI.SwipeEventType.SwipeUpAnimationEnd:\n this.open = true;\n break;\n case UI.SwipeEventType.SwipeDownAnimationEnd:\n this.open = false;\n break;\n }\n this._setPosition();\n };\n this._softReleaseHandler = (e) => {\n avoidHandler(e);\n if (this.behavior !== LightboxBehavior.ExplicitClose) {\n this.open = false;\n }\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'open':\n this._toggle(val);\n this._rebuildSwiperSnaps(val);\n break;\n case 'logger':\n this._assignLogger(val);\n break;\n case 'disabled':\n this._toggleSwiper(val);\n break;\n }\n }\n _toggleSwiper(disabled = this.disabled) {\n const swiper = this._swiper;\n if (!Utils.isNull(swiper)) {\n swiper.disabled = disabled;\n }\n }\n /** @internal Wires (or clears) the swiper's drag handle selector to the given {@link PacemBottomSheetHandleElement}. */\n _setHandle(handle) {\n if (Utils.isNull(handle)) {\n this._swiper.handleSelector = null;\n }\n else {\n this._swiper.handleSelector = `#${handle.id}`;\n }\n this._handleResizer.target = handle;\n }\n _assignLogger(v = this.logger) {\n this._swiper.logger = v;\n }\n _rebuildSwiperSnaps(open = this.open) {\n const swiper = this._swiper;\n const snap = this._getSnap(open);\n swiper.snaps = [0, snap].sort();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._assignLogger();\n this._resizer.addEventListener(Components.ResizeEventName, this._resizeHandler);\n this._handleResizer.addEventListener(Components.ResizeEventName, this._resizeHandler);\n const swiper = this._swiper;\n swiper.addEventListener(UI.SwipeEventType.Pan, this._panHandler, false);\n swiper.addEventListener(UI.SwipeEventType.SwipeAnimationEnd, this._swipeHandler, false);\n swiper.addEventListener(UI.SwipeEventType.SwipeUpAnimationEnd, this._swipeHandler, false);\n swiper.addEventListener(UI.SwipeEventType.SwipeDownAnimationEnd, this._swipeHandler, false);\n this._toggle();\n this._rebuildSwiperSnaps();\n this._toggleSwiper();\n this._sheet.addEventListener('pointerdown', stopPropagationHandler, false);\n this.addEventListener('pointerdown', this._softReleaseHandler, false);\n }\n disconnectedCallback() {\n const resizer = this._resizer;\n if (!Utils.isNull(resizer)) {\n resizer.removeEventListener(Components.ResizeEventName, this._resizeHandler);\n }\n const handleResizer = this._handleResizer;\n if (!Utils.isNull(resizer)) {\n handleResizer.removeEventListener(Components.ResizeEventName, this._resizeHandler);\n }\n const swiper = this._swiper;\n if (!Utils.isNull(swiper)) {\n swiper.removeEventListener(UI.SwipeEventType.Pan, this._panHandler);\n swiper.removeEventListener(UI.SwipeEventType.SwipeAnimationEnd, this._swipeHandler);\n swiper.removeEventListener(UI.SwipeEventType.SwipeUpAnimationEnd, this._swipeHandler);\n swiper.removeEventListener(UI.SwipeEventType.SwipeDownAnimationEnd, this._swipeHandler);\n }\n const sheet = this._sheet;\n if (!Utils.isNull(sheet)) {\n sheet.removeEventListener('pointerdown', stopPropagationHandler);\n }\n this.removeEventListener('pointerdown', this._softReleaseHandler);\n super.disconnectedCallback();\n }\n /**\n * Snap (other than 0 := current position) given the current state.\n * Anchor point for sheet is the top of the page, so snap is computed accordingly.\n * @param ope\n * @returns\n */\n _getSnap(open = this.open) {\n const resizer = this._resizer;\n const handleResizer = this._handleResizer;\n if (Utils.isNull(resizer) || Utils.isNull(handleResizer)) {\n return 0;\n }\n const { top: y } = Utils.naturalOffset(resizer.target), { top: hY } = Utils.naturalOffset(handleResizer.target);\n const { height } = resizer.currentSize;\n const { height: hHeight } = handleResizer.currentSize;\n const { height: wHeight } = Utils.windowSize;\n const openSnap /* target to open state */ = Math.max(parseInt(Utils.Css.getVariableValue(`--${PCSS}-layout-header-height`)), wHeight - (height ?? 0)), closedSnap /* target to closed state */ = (wHeight - ((y ?? 0) - (hY ?? 0) + (hHeight ?? 0)));\n const sign = open ? 1 : -1;\n return sign * Math.abs(openSnap - closedSnap);\n }\n /**\n * Css transform to be applied to the sheet in order to have UI consistent with open state.\n * Anchor point for sheet is the bottom of the page, so CSS transform is applied accordingly.\n * @param open\n * @returns\n */\n _getCssTransform(open = this.open) {\n const resizer = this._resizer;\n const handleResizer = this._handleResizer;\n if (Utils.isNull(resizer) || Utils.isNull(handleResizer)) {\n return '';\n }\n if (open) {\n const retval = `translate3d(0, max(var(--${PCSS}-layout-header-height), calc(100vh - 100%)), 0)`;\n return retval;\n }\n else {\n const { top: y } = Utils.naturalOffset(resizer.target), { top: hY, height: hHeight } = Utils.naturalOffset(handleResizer.target);\n const gap = (-(y ?? 0) + (hY ?? 0)) + (hHeight ?? 0);\n const retval = `translate3d(0, calc(100vh - ${gap}px), 0)`;\n // console.log(retval);\n return retval;\n }\n }\n _setPosition(open = this.open) {\n const sheet = this._sheet;\n const transform = this._getCssTransform(open);\n sheet.style.transform = transform;\n //this.style.setProperty(`--${PCSS}-bottom-sheet-transform`, transform);\n }\n _toggle(open = this.open) {\n const fn = open ? Utils.addClass : Utils.removeClass;\n fn(this, OPEN_CSSCLASS);\n //this._sheet.style.animation = '';\n this._sheet.style.transform = '';\n //this.style.setProperty(`--${PCSS}-bottom-sheet-transform`, '');\n const eventName = open ? 'open' : 'close';\n this.dispatchEvent(new Event(eventName));\n }\n};\n__decorate([\n ViewChild(P + '-swipe')\n], PacemBottomSheetElement.prototype, \"_swiper\", void 0);\n__decorate([\n ViewChild(P + '-resize')\n], PacemBottomSheetElement.prototype, \"_resizer\", void 0);\n__decorate([\n ViewChild(P + '-resize[handle]')\n], PacemBottomSheetElement.prototype, \"_handleResizer\", void 0);\n__decorate([\n ViewChild(P + '-panel.bottom-sheet')\n], PacemBottomSheetElement.prototype, \"_sheet\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBottomSheetElement.prototype, \"open\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBottomSheetElement.prototype, \"behavior\", void 0);\nPacemBottomSheetElement = __decorate([\n CustomElement({\n tagName: P + '-bottom-sheet', shadow: false /* css priority would be a mess otherwise */, template: `\r\n <${P}-swipe direction=\"vertical\" options='{ \"bouncy\": false }'></${P}-swipe>\r\n <${P}-resize target=\"{{ ::_sheet }}\"></${P}-resize>\r\n <${P}-resize handle></${P}-resize>\r\n <${P}-panel class=\"bottom-sheet\" behaviors=\"{{ [::_swiper] }}\">\r\n <${P}-content></${P}-content>\r\n </${P}-panel>`\n })\n], PacemBottomSheetElement);\nexport { PacemBottomSheetElement };\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 { Watch, Utils, Components, CustomTypedEvent, Logging, avoidHandler } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Set of buttons shown by a dialog (e.g. {@link PacemDialogBase}), controlling which {@link DialogButton}s are visible. */\nexport var DialogButtons;\n(function (DialogButtons) {\n DialogButtons[\"YesNo\"] = \"yesno\";\n DialogButtons[\"YesNoCancel\"] = \"yesnocancel\";\n DialogButtons[\"Ok\"] = \"ok\";\n DialogButtons[\"OkCancel\"] = \"okcancel\";\n})(DialogButtons || (DialogButtons = {}));\n/** Single button a dialog can be committed/closed with. */\nexport var DialogButton;\n(function (DialogButton) {\n DialogButton[\"Yes\"] = \"yes\";\n DialogButton[\"No\"] = \"no\";\n DialogButton[\"Cancel\"] = \"cancel\";\n DialogButton[\"Ok\"] = \"ok\";\n})(DialogButton || (DialogButton = {}));\n/** Event name dispatched by a {@link PacemDialogBase} when it is committed/closed via one of its buttons. */\nexport const DialogResultEventName = 'commit';\n/** Event dispatched by a {@link PacemDialogBase} when it is committed/closed via one of its buttons; also the resolution value of `open()`'s promise. */\nexport class DialogResultEvent extends CustomTypedEvent {\n constructor(args) {\n super(DialogResultEventName, args);\n }\n}\n/** Base class for modal dialog elements (see {@link PacemDialogElement}): wraps a {@link Lightbox} with an open/commit lifecycle resolved through a promise. */\nexport class PacemDialogBase extends Components.PacemElement {\n #deferred;\n /** Opens the dialog, optionally seeding its `state`. @returns A promise resolved with the {@link DialogResultEventArgs} once the dialog is committed. */\n open(state) {\n const lb = this.lightbox;\n if (!Utils.isNull(this.#deferred)) {\n throw `Dialog already open.`;\n }\n const deferred = this.#deferred = Promise.withResolvers();\n if (this.hide || this.disabled) {\n this.log(Logging.LogLevel.Warn, 'Dialog hidden or disabled, opening forbidden.');\n deferred.reject();\n }\n else {\n this.dispatchEvent(new Event('open'));\n lb.show = true;\n this.state = state;\n }\n return deferred.promise;\n }\n /** Closes the dialog with the given button outcome, resolving the pending `open()` promise and dispatching a {@link DialogResultEvent}. */\n commit(btn, evt) {\n avoidHandler(evt);\n this.log(Logging.LogLevel.Debug, `Committing dialog by clicking '${btn}'.`);\n const state = this.state;\n var drevt = new DialogResultEvent({ button: btn, state: state });\n this.lightbox.show = false;\n this.#deferred.resolve(drevt.detail);\n this.#deferred = null;\n this.dispatchEvent(drevt);\n }\n}\n__decorate([\n Watch()\n], PacemDialogBase.prototype, \"state\", 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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, CommandEvent } from '@pacem/pacem-core';\nimport { DialogButton } from './dialog-abstractions';\n//namespace Pacem.Components.UI {\n/** Clickable button element with optional icon, command dispatching (via {@link CommandEvent}) and an optional confirmation dialog gate. */\nlet PacemButtonElement = class PacemButtonElement extends Components.PacemIterableElement {\n constructor() {\n super('button');\n }\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('tab-order')) {\n this.tabOrder = 0;\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'iconGlyph':\n // suppose ligatures enabled\n case 'iconUrl':\n // handle this via css attr(), considering that it's the proper way to access and modify pseudo::before content\n this.dataset[name] = val;\n break;\n }\n }\n emit(evt) {\n let fn = (ev) => {\n super.emit(ev);\n if (!ev.defaultPrevented) {\n if (ev.type === 'click' && !Utils.isNullOrEmpty(this.commandName)) {\n this.dispatchEvent(new CommandEvent({ commandName: this.commandName, commandArgument: this.commandArgument }));\n }\n switch (ev.type) {\n case 'mousedown':\n if (evt.button === 0) {\n Utils.addClass(this, PCSS + '-active');\n }\n break;\n case 'pointerdown':\n Utils.addClass(this, PCSS + '-active');\n break;\n case 'keydown':\n if (ev.keyCode === 32 || ev.keyCode === 13) {\n evt.preventDefault();\n Utils.addClass(this, PCSS + '-active');\n }\n break;\n case 'blur':\n case 'mouseup':\n case 'pointerup':\n case 'click':\n Utils.removeClass(this, PCSS + '-active');\n break;\n case 'keyup':\n if (ev.keyCode === 32 || ev.keyCode === 13) {\n this.click();\n Utils.removeClass(this, PCSS + '-active');\n }\n break;\n }\n }\n };\n if (!this.disabled && evt.type === 'click' && !Utils.isNull(this.confirmationDialog)) {\n this.confirmationDialog.open(this.confirmationMessage).then(r => {\n if (r.button === DialogButton.Yes || r.button === DialogButton.Ok)\n fn(evt);\n });\n }\n else if (!(evt instanceof MouseEvent) || evt.button === 0) {\n fn(evt);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"iconGlyph\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"iconUrl\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"commandName\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemButtonElement.prototype, \"commandArgument\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"confirmationMessage\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemButtonElement.prototype, \"confirmationDialog\", void 0);\nPacemButtonElement = __decorate([\n CustomElement({\n tagName: P + '-button'\n })\n], PacemButtonElement);\nexport { PacemButtonElement };\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 { P, CustomElement, Components } from '@pacem/pacem-core';\nimport { PacemButtonElement } from './button';\n//namespace Pacem.Components.UI {\n/** Groups {@link PacemButtonElement} children into a single iterable/selectable set, focusing the item matching `index`. */\nlet PacemButtonsetElement = class PacemButtonsetElement extends Components.PacemIterativeElement {\n connectedCallback() {\n super.connectedCallback();\n if (!('tabindex' in this.attributes))\n this.tabIndex = 0;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'index':\n let ndx = 0;\n for (var btn of this.items) {\n if (ndx == val) {\n btn.focus();\n break;\n }\n ndx++;\n }\n break;\n }\n }\n validate(item) {\n return item instanceof PacemButtonElement;\n }\n};\nPacemButtonsetElement = __decorate([\n CustomElement({\n tagName: P + '-buttonset'\n })\n], PacemButtonsetElement);\nexport { PacemButtonsetElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Utils, PropertyConverters, Components, CustomTypedEvent, PropertyChangeEvent, Defaults, CustomElementUtils, Debounce, PropertyChangeEventName } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Granularity of a calendar/schedule/agenda view. */\nexport var CalendarZoom;\n(function (CalendarZoom) {\n CalendarZoom[\"Month\"] = \"month\";\n CalendarZoom[\"Week\"] = \"week\";\n CalendarZoom[\"Day\"] = \"day\";\n})(CalendarZoom || (CalendarZoom = {}));\n/** Event dispatched by a {@link PacemCalendarBaseElement} whenever its `viewDate` changes, carrying the new date. */\nexport class ViewDateChangeEvent extends CustomTypedEvent {\n constructor(date) {\n super('viewdatechange', date);\n }\n}\n/** Event dispatched (and bubbling) when a day is selected on a {@link PacemCalendarElement}, carrying the selected date. */\nexport class DateSelectEvent extends CustomTypedEvent {\n constructor(date) {\n super('dateselect', date, { bubbles: true });\n }\n}\n/** Event dispatched (and bubbling) when a time slot is selected on a {@link PacemAgendaElement}, carrying the selected date/time. */\nexport class TimeSelectEvent extends CustomTypedEvent {\n constructor(date) {\n super('timeselect', date, { bubbles: true });\n }\n}\nconst MSECS_PER_HOUR = 1000 * 60 * 60;\nconst MSECS_PER_DAY = MSECS_PER_HOUR * 24;\nconst DAY_HOURS = [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5,\n 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18, 18.5, 19, 19.5, 20, 20.5, 21, 21.5, 22, 22.5, 23, 23.5];\nlet now = new Date();\nconst DUMMY_DATE = Utils.Dates.dateOnly(now).valueOf();\nconst DAYS_OF_WEEK = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n/** A single event/appointment item, meant as a child of a {@link PacemCalendarWithEventsBaseElement} (e.g. {@link PacemCalendarElement} or {@link PacemAgendaElement}). */\nlet PacemCalendarEventElement = class PacemCalendarEventElement extends Components.PacemItemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n cancelAnimationFrame(this._handle);\n this._handle = requestAnimationFrame(() => {\n let container = this.container;\n if (!Utils.isNull(container)) {\n // trigger propertychange for `items`\n container.dispatchEvent(new PropertyChangeEvent({ propertyName: 'items', oldValue: container.items, currentValue: container.items }));\n }\n });\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarEventElement.prototype, \"start\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarEventElement.prototype, \"end\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemCalendarEventElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemCalendarEventElement.prototype, \"place\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemCalendarEventElement.prototype, \"allDay\", void 0);\nPacemCalendarEventElement = __decorate([\n CustomElement({\n tagName: P + '-calendar-event'\n })\n], PacemCalendarEventElement);\nexport { PacemCalendarEventElement };\n/** Event dispatched when a {@link PacemCalendarEventElement} rendering gains focus/selection within its host calendar. */\nexport class CalendarEventSelectEvent extends CustomTypedEvent {\n constructor(args) {\n super(\"eventselect\", args, { bubbles: false, cancelable: true });\n }\n}\n/** Event dispatched when a {@link PacemCalendarEventElement} rendering loses focus/selection within its host calendar. */\nexport class CalendarEventUnselectEvent extends CustomTypedEvent {\n constructor(args) {\n super(\"eventunselect\", args, { bubbles: false, cancelable: true });\n }\n}\n/** Base class shared by the calendar-family elements ({@link PacemCalendarElement}, {@link PacemAgendaElement}, {@link PacemScheduleElement}): holds the current view date/zoom/week/month grids and the {@link PacemCalendarEventElement} items collection. */\nexport class PacemCalendarBaseElement extends Components.PacemItemsContainerElement {\n validate(item) {\n return item instanceof PacemCalendarEventElement;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'viewDate' || name === 'weekStart') {\n this._synchronizeWeek();\n }\n switch (name) {\n case 'viewDate':\n this.dispatchEvent(new ViewDateChangeEvent(val));\n Utils.removeClass(this, \"viewdate-next viewdate-previous\");\n requestAnimationFrame(() => {\n Utils.addClass(this, old > val ? \"viewdate-previous\" : \"viewdate-next\");\n });\n break;\n case 'zoom':\n Utils.removeClass(this, \"viewdate-next viewdate-previous\");\n break;\n }\n }\n // #region PROTECTED\n oneventselect(el, evt) {\n this.dispatchEvent(new CalendarEventSelectEvent({ element: el, event: evt }));\n }\n oneventunselect(el, evt) {\n this.dispatchEvent(new CalendarEventUnselectEvent({ element: el, event: evt }));\n }\n getHeaderLabel(d, f) {\n const options = f === CalendarZoom.Week ? { weekday: 'short', day: 'numeric', month: 'numeric' }\n : (f === CalendarZoom.Day ? { weekday: 'long' } : /* fallback: month */ { weekday: 'short' });\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n getDayLabel(d) {\n const options = d.getDate() == 1 ? { month: 'short', day: 'numeric' } : { day: 'numeric' };\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n getHourLabel(d) {\n const options = { hour: 'numeric' /*, minute: 'numeric'*/ };\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n getTimeLabel(d) {\n const options = { hour: 'numeric', minute: 'numeric' };\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n isNow(d, now) {\n const d0 = Utils.parseDate(d), v = Utils.parseDate(now || new Date());\n return d0.getHours() === v.getHours() && this.isToday(d, now);\n }\n isToday(d, now) {\n return this.isDate(d, now || new Date());\n }\n isViewDay(d, vd = this.viewDate) {\n return this.isDate(d, vd || this.viewDate || new Date());\n }\n isDate(expected, d) {\n if (!Utils.Dates.isDate(d) || !Utils.Dates.isDate(expected)) {\n return false;\n }\n const d0 = Utils.parseDate(expected), v = Utils.parseDate(d);\n return d0.getDate() === v.getDate() && d0.getMonth() == v.getMonth() && d0.getFullYear() === v.getFullYear();\n }\n isViewWeek(d) {\n const d0 = Utils.parseDate(d);\n return this.week && this.week.find(d1 => d1.getDate() == d0.getDate() && d1.getMonth() == d0.getMonth() && d1.getDate() == d0.getDate());\n }\n isViewMonth(d) {\n const d0 = Utils.parseDate(d), v = Utils.parseDate(this.viewDate || new Date());\n return d0.getMonth() == v.getMonth() && d0.getFullYear() === v.getFullYear();\n }\n isTimeSlotDisabled(ranges, d, h) {\n if (!Utils.isNullOrEmpty(ranges)) {\n h = h || 0;\n const slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), Math.floor(h), 60 * (h % 1)), tz = slotDate.getTimezoneOffset(), slot = slotDate.valueOf() - (tz * 60 * 1000);\n for (let range of ranges) {\n let from = Utils.Dates.parse(range.from), to = Utils.Dates.parse(range.to);\n if ((!from || (from && from.valueOf() <= slot))\n && (!to || (to && to.valueOf() > slot))\n && (to || from)) {\n return true;\n }\n }\n }\n return false;\n }\n // #endregion\n // #region PRIVATE\n _getWeekStart(day, weekstart) {\n let dow = day.getDay(), v = day.valueOf();\n const tget = (weekstart || 'm').toLowerCase().startsWith('m') ? 1 : 0;\n if (dow === tget) {\n return v;\n }\n if (dow === 0) {\n // damn 0-indexed sunday, skip to the previous one\n dow = 7;\n }\n return v + (tget - dow) * MSECS_PER_DAY;\n }\n _getDatasource(d, w = this.weekStart) {\n let day = Utils.Dates.dateOnly(Utils.parseDate(d));\n const ds = this.month;\n let _d0 = ds && ds.length && ds[0] && ds[0].length && ds[0][0];\n if (_d0 && _d0.getMonth() == day.getMonth() && _d0.getFullYear() == day.getFullYear()\n && ds.find(wk => !Utils.isNull(wk.find(dy => dy.valueOf() == day.valueOf())))) {\n // return the \"convenient\" datasource\n return ds;\n }\n //\n // month\n let d1 = new Date(day.getFullYear(), day.getMonth(), 1);\n let date1 = this._getWeekStart(d1, w);\n let month = [];\n let week = [];\n do {\n let date = Utils.Dates.dateOnly(new Date(date1));\n week.push(date);\n if (week.length == 7) {\n month.push(week.splice(0));\n }\n date1 = date.valueOf() + MSECS_PER_DAY + /* beware of day-light-saving occurrences */ MSECS_PER_HOUR;\n } while (month.length < 6);\n //\n return this.month = month;\n }\n _synchronizeWeek() {\n const viewDate = Utils.parseDate(this.viewDate);\n const vd = new Date(viewDate.getFullYear(), viewDate.getMonth(), 1);\n const ds = this._getDatasource(vd, this.weekStart);\n const week = ds.filter((w, j) => w.some(d => d.getDate() == viewDate.getDate() && d.getMonth() == viewDate.getMonth() && d.getFullYear() == viewDate.getFullYear()))[0];\n if (!(this.week && this.week.length) || this.week[0] !== week[0]) {\n this.week = week;\n }\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarBaseElement.prototype, \"viewDate\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarBaseElement.prototype, \"now\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemCalendarBaseElement.prototype, \"zoom\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemCalendarBaseElement.prototype, \"weekStart\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemCalendarBaseElement.prototype, \"week\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemCalendarBaseElement.prototype, \"month\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemCalendarBaseElement.prototype, \"disabledRanges\", void 0);\n/** Base class for calendar-family elements that render their {@link PacemCalendarEventElement} items into a positioned grid (see {@link PacemCalendarElement}, {@link PacemAgendaElement}); subclasses supply the grid-building logic via `buildDataSource`. */\nexport class PacemCalendarWithEventsBaseElement extends PacemCalendarBaseElement {\n constructor() {\n super(...arguments);\n this._datasource = [];\n }\n /** @readonly Gets the computed, per-row (week or day) grid of positioned event items ready for rendering. */\n get datasource() {\n return this._datasource;\n }\n _getSortedItems(items) {\n return items.slice().sort((a, b) => {\n const a_start = a.start.valueOf(), b_start = b.start.valueOf();\n if (a_start != b_start) {\n return a_start < b_start ? -1 : 1;\n }\n const a_end = a.end.valueOf(), b_end = b.end.valueOf(), a_span = a_end - a_start, b_span = b_end - b_start;\n if (a_span != b_span) {\n return a_span > b_span ? -1 : 1;\n }\n return 0;\n });\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'month':\n case 'week':\n case 'items':\n case 'zoom':\n case 'viewDate':\n cancelAnimationFrame(this._handle);\n this._handle = requestAnimationFrame(() => {\n let oldval = this._datasource;\n let newval = this._datasource = this.buildDataSource(this._getSortedItems(this.items || []));\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'datasource', oldValue: oldval, currentValue: newval }));\n });\n break;\n }\n }\n}\nfunction getWeeklyEventDataItems(items, week) {\n let lbound = week.length - 1, wstart = week[0].valueOf(), wend = week[lbound].valueOf();\n return items.filter(evt => {\n let startDate = Utils.Dates.dateOnly(evt.start);\n let endDate = Utils.Dates.dateOnly(evt.end);\n return startDate.valueOf() <= wend && endDate.valueOf() >= wstart;\n }).map(evt => {\n let startDate = Utils.Dates.dateOnly(evt.start), start = week.find(d => d.valueOf() == startDate.valueOf()), startIndex = week.indexOf(start);\n let endDate = Utils.Dates.dateOnly(evt.end), end = week.find(d => d.valueOf() == endDate.valueOf()), endIndex = week.indexOf(end);\n let ndx0 = startIndex == -1 ? 0 : startIndex, ndx1 = endIndex == -1 ? lbound : endIndex;\n return {\n start: evt.start, end: evt.end,\n allDay: true,\n // indexes\n day: ndx0,\n continuing: { start: startIndex == -1, end: endIndex == -1 },\n // span (may be column- or row-)\n span: ndx1 + 1 - ndx0,\n caption: evt.caption,\n event: evt\n };\n });\n}\n// #region AGENDA\nfunction buildAgendaGrid() {\n let grid = '';\n for (let day = 0; day < 7; day++) {\n if (day == 0) {\n grid += `<div class=\"agenda-left all-day\"></div>`;\n }\n grid += `<${P}-panel class=\"agenda-slot all-day day-${(day + 1)}\" css-class=\"{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate), 'today': :host.isToday(:host.week[${day}], :host.now)} }}\"></${P}-panel>`;\n }\n for (let day = 0; day < 7; day++) {\n for (let hour of DAY_HOURS) {\n let whole = hour % 1 == 0;\n let css = `hour-${whole ? 'whole' : 'half'}`;\n if (day == 0 && whole) {\n grid += `<${P}-text class=\"agenda-left ${css} hour-${hour * 2 + 1}\"\" text=\"{{ :host.getHourLabel(${DUMMY_DATE + hour * MSECS_PER_HOUR}) }}\"></${P}-text>`;\n }\n grid += `<${P}-panel on-click=\":host.time = Pacem.Utils.Dates.parse(:host.week[${day}].valueOf() + ${(hour * MSECS_PER_HOUR)})\" disabled=\"{{ :host.isTimeSlotDisabled(:host.disabledRanges, :host.week[${day}], ${hour}) }}\" class=\"agenda-slot ${css} day-${(day + 1)} hour-${hour * 2 + 1}\" css-class=\"{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate), 'today': :host.isToday(:host.week[${day}], :host.now)} }}\"></${P}-panel>`;\n }\n }\n return grid;\n}\n/** Renders a day/week hourly grid (\"agenda\" view) with an all-day row, placing {@link PacemCalendarEventElement} items on the timeline and dispatching {@link TimeSelectEvent} on slot click. */\nlet PacemAgendaElement = class PacemAgendaElement extends PacemCalendarWithEventsBaseElement {\n constructor() {\n super(...arguments);\n this._allDayDatasource = [];\n }\n buildDataSource(items) {\n var week = this.week;\n if (this.zoom === CalendarZoom.Day) {\n week = [Utils.Dates.dateOnly(this.viewDate)];\n }\n let ds = [];\n if (!Utils.isNull(week)) {\n // alldays\n this.dispatchEvent(new PropertyChangeEvent({\n propertyName: 'allDayDatasource',\n oldValue: this._allDayDatasource,\n currentValue: this._allDayDatasource = getWeeklyEventDataItems(items.filter(evt => {\n return (evt.end.valueOf() - evt.start.valueOf()) >= MSECS_PER_DAY;\n }), week)\n }));\n // hourlies\n for (let j = 0; j < week.length; j++) {\n let day = week[j], dayValue = day.valueOf(), \n // search for events in this week\n dayItems = items.filter(evt => {\n let startDate = Utils.Dates.dateOnly(evt.start);\n let endDate = Utils.Dates.dateOnly(evt.end);\n return startDate.valueOf() <= dayValue && endDate.valueOf() >= dayValue;\n }).map(evt => {\n let evtStart = evt.start.valueOf(), evtEnd = evt.end.valueOf();\n let retval = {\n allDay: evt.allDay || (evtEnd - evtStart) >= MSECS_PER_DAY,\n continuing: { start: evtStart < dayValue, end: evtEnd > (dayValue + MSECS_PER_DAY) },\n caption: evt.caption,\n hour: 0,\n span: DAY_HOURS.length - 1,\n offset: { start: \"0\", end: \"0\" },\n event: evt\n };\n let startHour = evt.start.getHours() + evt.start.getMinutes() / 60, startIndex = retval.continuing.start ? 0 : Math.floor(startHour * 2), endHour = evt.end.getHours() + evt.end.getMinutes() / 60, endIndex = -1 + (retval.continuing.end ? DAY_HOURS.length : Math.ceil(endHour * 2));\n let endNdx = endIndex + 1, end = endNdx >= DAY_HOURS.length ? 24 : DAY_HOURS[endNdx];\n let fullSpan = end - DAY_HOURS[startIndex];\n retval.hour = startIndex;\n retval.span = 1 + endIndex - startIndex;\n // offsets\n if (!retval.continuing.start) {\n // compute correct start offset\n retval.offset.start = (((startHour - DAY_HOURS[startIndex]) / fullSpan) * 100) + \"%\";\n }\n if (!retval.continuing.end) {\n // compute correct end offset\n retval.offset.end = (((end - endHour) / fullSpan) * 100) + \"%\";\n }\n return retval;\n });\n //\n ds.push(dayItems);\n }\n }\n return ds;\n }\n /** @readonly Gets the computed all-day row of positioned event items ready for rendering. */\n get allDayDatasource() {\n return this._allDayDatasource;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const clock = this._clock;\n if (name === 'time') {\n this.dispatchEvent(new TimeSelectEvent(val));\n }\n else if (!Utils.isNull(clock)) {\n if (name === 'now') {\n clock.now = val;\n clock.className = `hour-${val.getHours()} minute-${val.getMinutes()}`;\n }\n if (name === 'now' || name === 'zoom' || name === 'viewDate') {\n const d = this.now, z = this.zoom;\n const showClock = d && z && ((this.isViewDay(d) && z === CalendarZoom.Day)\n || (this.isViewWeek(d) && z === CalendarZoom.Week));\n clock.hidden = !showClock;\n }\n }\n }\n};\n__decorate([\n ViewChild(P + '-clock')\n], PacemAgendaElement.prototype, \"_clock\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemAgendaElement.prototype, \"time\", void 0);\nPacemAgendaElement = __decorate([\n CustomElement({\n tagName: P + '-agenda', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater class=\"${PCSS}-agenda agenda-grid\" datasource=\"{{ :host.datasource }}\">${buildAgendaGrid()}<${P}-clock hidden></${P}-clock>\r\n <template>\r\n <${P}-repeater class=\"agenda-day\" datasource=\"{{ ^item }}\">\r\n <template>\r\n <${P}-panel class=\"agenda-event-wrapper\" \r\ncss-class=\"{{ ['hour-start-'+ (^item.hour + 1), 'hour-end-'+ (^item.hour + ^item.span +1), 'day-start-'+ (!^item.continuing.start), 'day-end-'+ (!^item.continuing.end)] }}\">\r\n <${P}-panel class=\"agenda-event\" css=\"{{ {'top': ^item.offset.start, 'bottom': ^item.offset.end} }}\" tab-order=\"{{ (^^index + 1) * 1000 + (^item.hour + 1) * 100 + ^index }}\"\r\n on-focus=\":host.oneventselect($this, ^item.event)\" on-blur=\":host.oneventunselect($this, ^item.event)\">\r\n <${P}-span class=\"event-caption\" text=\"{{ ^item.caption }}\"></${P}-span>\r\n </${P}-panel>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n </template>\r\n <${P}-repeater class=\"agenda-allday\" datasource=\"{{ :host.allDayDatasource }}\">\r\n <template>\r\n <${P}-panel class=\"agenda-event\" tab-order=\"{{ (^index + 1) * 500 + (^item.day + 1) * 50 + ^index }}\" css-class=\"{{ ['day-start-'+ (^item.day + 1), 'day-end-'+ (^item.day + ^item.span + 1)] }}\"\r\n on-focus=\":host.oneventselect($this, ^item.event)\" on-blur=\":host.oneventunselect($this, ^item.event)\">\r\n <${P}-text class=\"event-caption\" text=\"{{ ^item.caption }}\"></${P}-text>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n</${P}-repeater><${P}-content></${P}-content>`\n })\n], PacemAgendaElement);\nexport { PacemAgendaElement };\n// #endregion\n// #region CALENDAR\nfunction buildCalendarGrid() {\n let grid = '';\n for (let week = 0; week < 6; week++) {\n for (let day = 0; day < 7; day++) {\n let css = `class=\"calendar-day week-${week + 1} day-${day + 1}\"`;\n grid += `<${P}-panel disabled=\"{{ :host.isTimeSlotDisabled(:host.disabledRanges, :host.month[${week}][${day}]) }}\" on-click=\":host._setDate(:host.month[${week}][${day}])\" ${css} css-class=\"{{ {'viewmonth': :host.isViewMonth(:host.month[${week}][${day}]), 'viewday': :host.isViewDay(:host.month[${week}][${day}], :host.viewDate), 'today': :host.isToday(:host.month[${week}][${day}], :host.now), 'selected-date': :host.isDate(:host.month[${week}][${day}], :host.date)} }}\"><${P}-span culture=\"{{ :host.culture }}\" class=\"text-ellipsed\" text=\"{{ :host.getDayLabel(:host.month[${week}][${day}], :host._formatVersion) }}\"></${P}-span></${P}-panel>`;\n }\n }\n return grid;\n}\n/** Renders a classic month grid, placing {@link PacemCalendarEventElement} items on their spanning day cells and dispatching {@link DateSelectEvent} on day click. */\nlet PacemCalendarElement = class PacemCalendarElement extends PacemCalendarWithEventsBaseElement {\n buildDataSource(items) {\n const month = this.month;\n let ds = [];\n if (!Utils.isNull(month)) {\n for (let j = 0; j < month.length; j++) {\n let week = month[j], \n // search for events in this week\n weekItems = getWeeklyEventDataItems(items, week);\n //\n ds.push(weekItems);\n }\n }\n return ds;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n //case 'date':\n // this.dispatchEvent(new DateSelectEvent(val));\n // break;\n case 'dayLabelFormatter':\n this._formatVersion = Date.now();\n break;\n }\n }\n _setDate(d) {\n if (d?.valueOf() !== this.date?.valueOf()) {\n this.date = d;\n this.dispatchEvent(new DateSelectEvent(d));\n }\n }\n getDayLabel(d, _ = this._formatVersion) {\n const labeler = this.dayLabelFormatter;\n if (typeof labeler === 'function') {\n return labeler(d);\n }\n return super.getDayLabel(d);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarElement.prototype, \"date\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemCalendarElement.prototype, \"dayLabelFormatter\", void 0);\n__decorate([\n Watch()\n], PacemCalendarElement.prototype, \"_formatVersion\", void 0);\nPacemCalendarElement = __decorate([\n CustomElement({\n tagName: P + '-calendar', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater class=\"${PCSS}-calendar calendar-grid\" datasource=\"{{ :host.datasource }}\">${buildCalendarGrid()}\r\n <template>\r\n <${P}-repeater class=\"calendar-week\" datasource=\"{{ ^item }}\">\r\n <template>\r\n <${P}-panel class=\"calendar-event\" tab-order=\"{{ (^^index + 1) * 1000 + (^item.day + 1) * 100 + ^index }}\" \r\n on-focus=\":host.oneventselect($this, ^item.event)\" on-blur=\":host.oneventunselect($this, ^item.event)\"\r\n css-class=\"{{ ['day-start-'+ (^item.day + 1), 'day-end-'+ (^item.day + ^item.span + 1)] }}\">\r\n <${P}-span class=\"event-startdate\" culture=\"{{ :host.culture }}\" hide=\"{{ ^item.continuing.start }}\" text=\"{{ :host.getTimeLabel(^item.event.start) }}\"></${P}-span>\r\n <${P}-span class=\"event-caption\" text=\"{{ ^item.caption }}\"></${P}-span>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n </template>\r\n</${P}-repeater><${P}-content></${P}-content>`\n })\n], PacemCalendarElement);\nexport { PacemCalendarElement };\n// #endregion\n// #region CLOCK (to be worked on: many possibilities ahead)\n/** Displays (and CSS-classes itself by) the current hour/minute; typically overlaid on a {@link PacemAgendaElement} to mark the current-time line. */\nlet PacemClockElement = class PacemClockElement extends Components.PacemElement {\n};\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemClockElement.prototype, \"now\", void 0);\nPacemClockElement = __decorate([\n CustomElement({ tagName: P + '-clock' })\n], PacemClockElement);\nexport { PacemClockElement };\n// #endregion\n// #region SCHEDULE\nfunction buildCalendarHeader() {\n let header = '';\n for (let day = 0; day < 7; day++) {\n header += `<${P}-span culture=\"{{ :host.culture }}\" css-class=\"{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate)} }}\" class=\"schedule-heading day-${day + 1} text-ellipsed\" text=\"{{ :host.getHeaderLabel(:host.week[${day}], :host.zoom) }}\"></${P}-span>`;\n }\n const id = \"dock_\" + Utils.uniqueCode();\n return `<div class=\"schedule-header schedule-grid\"><div class=\"heading-left\"></div>${header}</div>`;\n}\n/** Combines a {@link PacemCalendarElement} (month view) and a {@link PacemAgendaElement} (day/week view) into a single scheduler, switching between them based on `zoom`. */\nlet PacemScheduleElement = class PacemScheduleElement extends PacemCalendarBaseElement {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._calendar.addEventListener('dateselect', this.emitHandler, false);\n this._agenda.addEventListener('timeselect', this.emitHandler, false);\n // bootstrap\n this.now = new Date();\n }\n disconnectedCallback() {\n if (this._calendar) {\n this._calendar.removeEventListener('dateselect', this.emitHandler, false);\n this._agenda.removeEventListener('timeselect', this.emitHandler, false);\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n ViewChild(P + '-calendar')\n], PacemScheduleElement.prototype, \"_calendar\", void 0);\n__decorate([\n ViewChild(P + '-agenda')\n], PacemScheduleElement.prototype, \"_agenda\", void 0);\nPacemScheduleElement = __decorate([\n CustomElement({\n tagName: P + '-schedule', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-panel class=\"${PCSS}-schedule\" css-class=\"{{ ['schedule-'+ (:host.zoom || '${CalendarZoom.Month}')] }}\">\r\n <${P}-timer interval=\"10000\" on-tick=\":host.now = Pacem.Utils.parseDate(Date.now())\"></${P}-timer>\r\n ${buildCalendarHeader()}\r\n <${P}-agenda disabled-ranges=\"{{ :host.disabledRanges }}\" on-eventselect=\":host.handle($event)\" on-eventunselect=\":host.handle($event)\" now=\"{{ :host.now }}\" culture=\"{{ :host.culture }}\" view-date=\"{{ :host.viewDate }}\" zoom=\"{{ :host.zoom }}\" week-start=\"{{ :host.weekStart }}\" items=\"{{ :host.items }}\"></${P}-agenda>\r\n <${P}-calendar disabled-ranges=\"{{ :host.disabledRanges }}\" on-eventselect=\":host.handle($event)\" on-eventunselect=\":host.handle($event)\" now=\"{{ :host.now }}\" culture=\"{{ :host.culture }}\" view-date=\"{{ :host.viewDate }}\" zoom=\"{{ :host.zoom }}\" week-start=\"{{ :host.weekStart }}\" items=\"{{ :host.items }}\"></${P}-calendar>\r\n <${P}-content></${P}-content>\r\n</${P}-panel>`\n })\n], PacemScheduleElement);\nexport { PacemScheduleElement };\n// #endregion\n// #region RULES\n/** Base class for declarative rule elements that compute and inject {@link DateRange}s into an ancestor {@link PacemCalendarBaseElement}'s `disabledRanges` (e.g. {@link PacemCalendarDayOfWeekRuleElement}). */\nexport class PacemCalendarRuleBaseElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this._disabledRanges = [];\n }\n viewActivatedCallback() {\n if (!Utils.isNull(this._target = CustomElementUtils.findAncestor(this, node => node instanceof PacemCalendarBaseElement))) {\n this.refreshDisabledRanges();\n }\n else {\n throw `Missing ancestor calendar element for ${this.constructor.name}.`;\n }\n }\n disconnectedCallback() {\n this._target = undefined;\n }\n /** @readonly Gets the ancestor calendar element this rule applies its disabled ranges to. */\n get target() {\n return this._target;\n }\n refreshDisabledRanges() {\n if (Utils.isNullOrEmpty(this._target)) {\n // TODO: throw\n return;\n }\n let actualRanges = this._target.disabledRanges || [];\n // cleanup old ones\n for (let range of this._disabledRanges) {\n let ndx = actualRanges.indexOf(range);\n if (ndx >= 0) {\n actualRanges.splice(ndx, 1);\n }\n }\n // add new ones\n this._disabledRanges = this.computeDisabledRanges() || [];\n for (let range of this._disabledRanges) {\n actualRanges.push(range);\n }\n this._target.disabledRanges = actualRanges;\n }\n}\n__decorate([\n Debounce(true)\n], PacemCalendarRuleBaseElement.prototype, \"refreshDisabledRanges\", null);\n/** Declarative {@link PacemCalendarRuleBaseElement} that disables every day of the ancestor calendar not listed in `days` (e.g. weekends). */\nlet PacemCalendarDayOfWeekRuleElement = class PacemCalendarDayOfWeekRuleElement extends PacemCalendarRuleBaseElement {\n constructor() {\n super(...arguments);\n this._daysOfWeek = [];\n this._calendarChangeHandler = (evt) => {\n if (evt.detail.propertyName == 'month') {\n this.refreshDisabledRanges();\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.target.addEventListener(PropertyChangeEventName, this._calendarChangeHandler, false);\n }\n propertyChangedCallback(name, old, val, first) {\n if (name === 'days') {\n this._daysOfWeek = (val || []).map(i => DAYS_OF_WEEK.indexOf(i)).filter(i => i >= 0);\n this.refreshDisabledRanges();\n }\n }\n computeDisabledRanges() {\n let retval = [];\n for (let week of this.target.month) {\n for (let day of week) {\n if (this._daysOfWeek.indexOf(day.getDay()) == -1) {\n let from = Utils.Dates.dateOnly(day), to = Utils.Dates.dateOnly(new Date(from.valueOf() + MSECS_PER_DAY + /* get rid of daylight saving switches */ MSECS_PER_HOUR));\n retval.push({ from: from, to: to });\n }\n }\n }\n return retval;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.StringArray })\n], PacemCalendarDayOfWeekRuleElement.prototype, \"days\", void 0);\nPacemCalendarDayOfWeekRuleElement = __decorate([\n CustomElement({ tagName: P + '-calendar-daysofweek-rule' })\n], PacemCalendarDayOfWeekRuleElement);\nexport { PacemCalendarDayOfWeekRuleElement };\n// #endregion\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 { P, PCSS, CustomElement, Watch, ViewChild, Utils, PropertyConverters, PacemEventTarget, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Animates its content's height (or width, if `horizontal`) between 0 and its natural size, toggled via the `collapse` property. */\nlet PacemCollapseElement = class PacemCollapseElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._resizeHandler = (evt) => {\n this.#state = evt.detail;\n this._toggle();\n };\n }\n #state;\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'collapse':\n this._toggle();\n case 'disabled':\n if (!Utils.isNull(this._resizer)) {\n this._resizer.disabled = this.disabled || this.collapse;\n }\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const r = this._resizer;\n this.#state = r.currentSize;\n this._toggle();\n }\n _toggle() {\n const div = this, collapse = this.collapse, state = this.#state;\n if (this.disabled || Utils.isNull(div))\n return;\n //\n if (this.horizontal) {\n Utils.addClass(div, PCSS + '-horizontal');\n div.style.height = state && (state.height + 'px') || '';\n div.style.width = collapse ? '0' : (state && state.width + 'px') || '';\n }\n else {\n Utils.removeClass(div, PCSS + '-horizontal');\n div.style.height = collapse ? '0' : (state && state.height + 'px') || '';\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemCollapseElement.prototype, \"collapse\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemCollapseElement.prototype, \"horizontal\", void 0);\n__decorate([\n ViewChild(P + '-resize')\n], PacemCollapseElement.prototype, \"_resizer\", void 0);\n__decorate([\n ViewChild(`[part=content]`)\n], PacemCollapseElement.prototype, \"_container\", void 0);\nPacemCollapseElement = __decorate([\n CustomElement({\n tagName: P + '-collapse', shadow: true,\n template: `<${P}-resize on-${Components.ResizeEventName}=\":host._resizeHandler($event)\" target=\"{{ ::_container }}\"></${P}-resize><div part=\"container\"><div part=\"content\"><slot></slot></div></div>`\n })\n], PacemCollapseElement);\nexport { PacemCollapseElement };\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 { P, PCSS, Defaults, CustomElement, ViewChild, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { PacemDialogBase, DialogButtons } from './dialog-abstractions';\n//namespace Pacem.Components.UI {\n/** Modal dialog built on top of a {@link PacemLightboxElement}, with a configurable Ok/Yes/No/Cancel button set (see {@link DialogButtons}). */\nlet PacemDialogElement = class PacemDialogElement extends PacemDialogBase {\n constructor() {\n super(...arguments);\n /** Gets or sets which button set is shown (Ok, OkCancel, YesNo, YesNoCancel). */\n this.buttons = DialogButtons.Ok;\n /** Gets or sets the caption of the Ok button. */\n this.okCaption = 'OK';\n /** Gets or sets the caption of the Yes button. */\n this.yesCaption = 'Yes';\n /** Gets or sets the caption of the No button. */\n this.noCaption = 'No';\n /** Gets or sets the caption of the Cancel button. */\n this.cancelCaption = 'Cancel';\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'buttons':\n //\n break;\n }\n }\n open(state) {\n const retval = super.open(state);\n switch (this.buttons) {\n case DialogButtons.Ok:\n case DialogButtons.OkCancel:\n this.dialogButtons.ok.focus();\n break;\n default:\n this.dialogButtons.yes.focus();\n break;\n }\n return retval;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n // HACK: move the buttons outside the .pacem-scrollable element in the lightbox\n //requestAnimationFrame(() => {\n // const elFrom = this.lightbox && this.lightbox.container;\n // if (!Utils.isNull(elFrom)) {\n // elFrom.appendChild(this._buttons);\n // this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'dialogButtons', currentValue: this.dialogButtons }));\n // } else {\n // this.log(Logging.LogLevel.Warn, `Could not find the lightbox container as expected.`);\n // }\n //});\n }\n /** @readonly Gets the 'ok', 'yes', 'no' and 'cancel' dialog buttons. */\n get dialogButtons() {\n const btns = this._buttons;\n return {\n ok: btns && btns.firstElementChild.firstElementChild,\n yes: btns && btns.firstElementChild.children.item(1),\n no: btns && btns.firstElementChild.children.item(2),\n cancel: btns && btns.firstElementChild.lastElementChild\n };\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"buttons\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"okCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"yesCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"noCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"cancelCaption\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-dialog-buttons`)\n], PacemDialogElement.prototype, \"_buttons\", void 0);\n__decorate([\n ViewChild(P + '-lightbox')\n], PacemDialogElement.prototype, \"lightbox\", void 0);\nPacemDialogElement = __decorate([\n CustomElement({\n tagName: P + '-dialog', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-lightbox modal=\"true\" logger=\"{{ :host.logger }}\">\r\n <${P}-content></${P}-content>\r\n <div class=\"${PCSS}-dialog-buttons ${PCSS}-buttonset buttons\" part=\"dialog-buttons\" slot=\"bottom\">\r\n <div class=\"buttonset-left\">\r\n <${P}-button class=\"button button-size size-small primary dialog-ok\" css-class=\"{{ {'buttonset-last': :host.buttons === 'ok'} }}\" on-click=\":host.commit('ok', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons !== 'ok' && :host.buttons !== 'okcancel' }}\"><${P}-text text=\"{{ :host.okCaption }}\"></${P}-text></${P}-button>\r\n <${P}-button class=\"button button-size size-small primary dialog-yes\" css-class=\"{{ {'buttonset-first': :host.buttons !== 'ok' || :host.buttons !== 'okcancel'} }}\" on-click=\":host.commit('yes', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons === 'ok' || :host.buttons === 'okcancel' }}\"><${P}-text text=\"{{ :host.yesCaption }}\"></${P}-text></${P}-button>\r\n <${P}-button class=\"button button-size size-small dialog-no\" css-class=\"{{ {'buttonset-last': :host.buttons === 'yesno'} }}\" on-click=\":host.commit('no', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons !== 'yesno' && :host.buttons !== 'yesnocancel' }}\"><${P}-text text=\"{{ :host.noCaption }}\"></${P}-text></${P}-button>\r\n <${P}-button class=\"button button-size size-small dialog-cancel\" on-click=\":host.commit('cancel', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons !== 'yesnocancel' && :host.buttons !== 'okcancel' }}\"><${P}-text text=\"{{ :host.cancelCaption }}\"></${P}-text></${P}-button>\r\n </div>\r\n </div>\r\n</${P}-lightbox>`\n })\n], PacemDialogElement);\nexport { PacemDialogElement };\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 { P, CustomElement, Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** ARIA-`separator` element drawing a horizontal or vertical divider line, with optional `prepend`/`append` slotted content. */\nlet PacemDividerElement = class PacemDividerElement extends Components.PacemElement {\n constructor() {\n super('separator');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && name === 'orientation') {\n this._syncOrientation(val);\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._syncOrientation();\n }\n _syncOrientation(orientation = this.orientation) {\n if (orientation !== 'vertical') {\n // exclude invalid runtime values\n orientation = 'horizontal';\n }\n super.aria.attributes.set('orientation', orientation);\n switch (orientation) {\n case 'vertical':\n Utils.addClass(this, 'divider-vertical');\n break;\n default:\n Utils.removeClass(this, 'divider-vertical');\n break;\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemDividerElement.prototype, \"orientation\", void 0);\nPacemDividerElement = __decorate([\n CustomElement({\n tagName: P + '-divider', shadow: true,\n template: `<div part=\"divider\"><div part=\"prepend\"></div><slot part=\"content\"></slot><div part=\"append\"></div></div>`\n })\n], PacemDividerElement);\nexport { PacemDividerElement };\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, CustomElementUtils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst SVG = /^\\s*<svg\\s/;\nconst FA = /^fa(b|r|s|l|d|t|-brands|-solid|-regular|-light|-thin|-duotone)?\\s+fa-/;\nconst FA_CDN = { url: \"https://kit.fontawesome.com/4922589c3c.js\", crossOrigin: true };\nconst LNI = /^lni\\s+lni-/;\nconst LNI_CDN = \"https://cdn.lineicons.com/2.0/LineIcons.css\";\nconst COREUI = /^ci[dlsbf]-/;\nconst COREUI_CDN = \"https://unpkg.com/@coreui/icons/css/all.min.css\";\nconst MATERIAL = /^material-icons?\\s+([\\w]+)/;\n//const MATERIAL_CDN = \"https://fonts.googleapis.com/icon?family=Material+Icons\";\nconst MATERIAL_SYMBOLS = /^material(-symbols?)?\\s+([\\w]+)/;\n// TODO: put this url in a css variable and use it across the site (eventually)\nconst MATERIAL_SYMBOLS_CDN = \"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\";\nconst URL = /^(https?:\\/\\/|\\/\\/)?.+\\.(webp|svg|gif|png|jpe?g)$/;\nconst iconImportMemoizer = [];\nfunction importConditionally(cssClassName, url, sha, crossOrigin, js) {\n if (iconImportMemoizer.indexOf(cssClassName) >= 0) {\n return Promise.resolve();\n }\n iconImportMemoizer.push(cssClassName);\n // this is the heavy part, be sure to call it just once (thus the memoizer)\n if (Utils.Css.isClassDefined(cssClassName)) {\n return Promise.resolve();\n }\n return js ? CustomElementUtils.importjs(url, sha, crossOrigin) : CustomElementUtils.importcss(url, sha, crossOrigin);\n}\nfunction getIconMarkup(icon) {\n return new Promise((resolve, reject) => {\n // null or empty\n if (Utils.isNullOrEmpty(icon)) {\n reject('No icon provided');\n }\n // svg?\n else if (SVG.test(icon)) {\n resolve(icon);\n }\n // font-awesome?\n else if (FA.test(icon)) {\n importConditionally(\"fa\", FA_CDN.url, undefined, FA_CDN.crossOrigin, true).then(_ => {\n resolve(`<i class=\"${icon}\"></i>`);\n }, e => reject(e));\n }\n // explicit material symbols?\n else if (MATERIAL_SYMBOLS.test(icon)) {\n importConditionally(\"material-symbols\", MATERIAL_SYMBOLS_CDN).then(_ => {\n const regExcArray = MATERIAL_SYMBOLS.exec(icon), ligature = regExcArray[2], rest = icon.substring(regExcArray[0].length);\n resolve(`<i class=\"material-symbols-outlined${rest}\">${ligature}</i>`);\n }, e => reject(e));\n }\n // explicit material icons? (switch to the new material-symbols anyway)\n else if (MATERIAL.test(icon)) {\n importConditionally(\"material-icons\", MATERIAL_SYMBOLS_CDN).then(_ => {\n const regExcArray = MATERIAL.exec(icon), ligature = regExcArray[1], rest = icon.substring(regExcArray[0].length);\n resolve(`<i class=\"material-icons${rest}\">${ligature}</i>`);\n }, e => reject(e));\n }\n // line-icons?\n else if (LNI.test(icon)) {\n importConditionally('lni', LNI_CDN).then(_ => {\n resolve(`<i class=\"${icon}\"></i>`);\n }, e => reject(e));\n }\n // coreui icons?\n else if (COREUI.test(icon)) {\n importConditionally('clb', COREUI_CDN).then(_ => {\n resolve(`<i class=\"${icon}\"></i>`);\n }, e => reject(e));\n }\n // image url?\n else if (URL.test(icon)) {\n resolve(`<img src=\"${icon}\" />`);\n }\n else {\n // assume material icon as default\n const parts = icon.trim().split(' ');\n const ligature = parts[0];\n const css = parts.length > 1 ? ' ' + parts.slice(1).join(' ') : '';\n resolve(`<i class=\"${PCSS}-icon${css}\">${ligature}</i>`);\n }\n });\n}\n/** Renders an icon from a wide range of notations (inline SVG, Font Awesome, Material Symbols/Icons, LineIcons, CoreUI, or a plain image URL), lazily importing the matching stylesheet/script on demand. */\nlet PacemIconElement = class PacemIconElement extends Components.PacemElement {\n constructor() {\n super('', { hidden: 'true' });\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'icon':\n this._setIcon();\n break;\n case 'hide':\n if (!val) {\n // overrides the default `PacemElement` behavior:\n // keep aria-hidden=true (to prevent screen readers from reading the ligatures)\n this.aria.attributes.set('hidden', 'true');\n }\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setIcon();\n }\n _setIcon(icon = this.icon) {\n getIconMarkup(icon).then(markup => {\n this.innerHTML = markup;\n }, _ => {\n this.innerHTML = '';\n });\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemIconElement.prototype, \"icon\", void 0);\nPacemIconElement = __decorate([\n CustomElement({\n tagName: P + '-icon'\n })\n], PacemIconElement);\nexport { PacemIconElement };\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 { P, CustomElement, Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Renders an image as a CSS background (rather than an `<img>` src), enabling `cover`/`contain`/`auto` fitting and reporting its natural/decoded size. */\nlet PacemImageElement = class PacemImageElement extends Components.PacemElement {\n constructor() {\n super('img');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'src':\n case 'disabled':\n this._setSource();\n break;\n case 'size':\n case 'adapt':\n this._setLayout();\n break;\n case 'loading':\n (!val ? Utils.addClass : Utils.removeClass)(this, 'img-ready');\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setLayout();\n this._setSource();\n }\n _setLayout() {\n const sizeDeclared = !Utils.isNullOrEmpty(this.size);\n const bgsize = this.adapt || 'auto';\n const size = this.size || this.#naturalSize || { width: '0', height: '0' };\n this.style.backgroundSize = bgsize;\n const adapt = bgsize === 'auto', w = size.width, h = size.height;\n if (adapt || sizeDeclared) {\n this.style.width = w || '';\n this.style.height = h || '';\n }\n }\n #naturalSize;\n async _setSource() {\n if (this.disabled || !this.isReady) {\n return;\n }\n //\n const src = this.src;\n this.style.backgroundImage = '';\n if (!Utils.isNullOrEmpty(src)) {\n this.loading = true;\n try {\n const img = await Utils.loadImage(src);\n let weight, entries, entry;\n if (window.performance\n && (entries = performance.getEntriesByName(img.src))\n && (entry = entries[0])) {\n weight = entry.decodedBodySize;\n }\n this.#naturalSize = {\n width: img.naturalWidth + 'px',\n height: img.naturalHeight + 'px',\n weight: weight\n };\n this._setLayout();\n this.style.backgroundImage = `url(\"${img.src}\")`;\n }\n catch (e) {\n // 404, whatever...\n }\n finally {\n this.loading = false;\n }\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemImageElement.prototype, \"adapt\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemImageElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false,\n converter: {\n convert: (attr, el) => {\n // parse strings like \"20,20\" \".5 , 1vh\" \"15\" and returns respectively [\"20px\", \"20px\"], [\".5px\", \"1vh\"] and [\"15px\", \"15px\"]\n const regex = /^\\s*([\\d.]+)(px|em|rem|vw|vh)?\\s*(?:,\\s*([\\d.]+)(px|em|rem|vw|vh)?)?\\s*$/i;\n const match = regex.exec(attr);\n const width = match ? match[1] + (match[2] || 'px') : '0', height = match ? (match[3] ? match[3] + (match[4] || 'px') : width) : '0';\n return { width, height };\n },\n convertBack: (prop, el) => `${prop?.width},${prop?.height}`\n }, reflectBack: true })\n], PacemImageElement.prototype, \"size\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemImageElement.prototype, \"loading\", void 0);\nPacemImageElement = __decorate([\n CustomElement({\n tagName: P + '-img'\n })\n], PacemImageElement);\nexport { PacemImageElement };\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 { P, Debounce, CustomElement, Watch, Utils, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Watches a scrollable `container` and dispatches a `fetchmore` event whenever the user scrolls within `threshold` pixels of the bottom. */\nlet PacemInfiniteScrollerElement = class PacemInfiniteScrollerElement extends PacemEventTarget {\n constructor() {\n super();\n this._scrollDelegate = () => this._doScroll();\n this._enabled = true;\n this._viewportHeight = 0;\n this._innerHeight = 0;\n this._isDocument = false;\n this._container = null;\n this._viewport = null;\n this._scroller = null;\n this._bottomGap = 10;\n this._container = this;\n this._viewport = this;\n this._scroller = this;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.setInfiniteScrollContainer(this._container);\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._scroller))\n this._scroller.removeEventListener('scroll', this._scrollDelegate, false);\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'container':\n this.setInfiniteScrollContainer(val);\n break;\n case 'disabled':\n if (this._enabled = !val)\n this._doScroll();\n break;\n case 'threshold':\n this._bottomGap = val || 0;\n break;\n }\n }\n /** Re-targets the watched scroll container/viewport/scroll-event-source. @param v An element, a CSS selector, or `'$document'` for the whole page. */\n setInfiniteScrollContainer(v = '$document') {\n var cont = v;\n var isDoc = this._isDocument = cont === '$document' || cont === document.body || cont === document.documentElement;\n this._container = isDoc ? (document.body || document.documentElement) : ((typeof v === 'string') ?\n document.querySelector(cont)\n :\n cont);\n this._viewport = isDoc ? window : this._container;\n if (this._scroller)\n this._scroller.removeEventListener('scroll', this._scrollDelegate, false);\n this._scroller = isDoc ? window.document : this._container;\n this._scroller.addEventListener('scroll', this._scrollDelegate, false);\n if (this._enabled)\n this._doScroll();\n }\n //ngOnChanges(changes: SimpleChanges) {\n //}\n _emitFetchMore() {\n /**\n * on-fetchmore => must toggle `enabled` while fetching...\n */\n var evt = new CustomEvent('fetchmore');\n this.dispatchEvent(evt);\n }\n _doScroll() {\n if (!this._enabled)\n return;\n if (!this._computeHeight()) {\n var scrollTop = this._scroller instanceof Document ? window.pageYOffset : this._scroller.scrollTop;\n var viewportHeight = this._viewportHeight, innerHeight = this._innerHeight;\n var threshold = innerHeight - (scrollTop + viewportHeight);\n if (threshold < this._bottomGap /* pixels */\n || innerHeight <= viewportHeight) {\n // fire fetchMore() \n this._emitFetchMore();\n window.requestAnimationFrame(() => {\n if (this._enabled)\n this._doScroll();\n });\n } //else computeHeight();\n }\n else\n this._doScroll();\n }\n _computeHeight() {\n if (!this._container)\n return;\n var cont = this._container;\n var topOffset = Number.MAX_VALUE, bottomOffset = 0, totalHeight = 0, _innerHeight;\n if (this._isDocument) {\n var d = cont;\n _innerHeight = Math.max(d.scrollHeight, d.offsetHeight, d.clientHeight);\n }\n else {\n for (var i = 0; i < cont.children.length; i++) {\n var e = cont.children.item(i);\n var eTopOffset = e.offsetTop, eHeight = e.offsetHeight, eBottomOffset = eTopOffset + eHeight;\n totalHeight += eHeight;\n if (eTopOffset < topOffset) {\n topOffset = eTopOffset;\n }\n if (eBottomOffset > bottomOffset) {\n bottomOffset = eBottomOffset;\n }\n }\n _innerHeight = Math.round(bottomOffset - topOffset);\n }\n var _viewportHeight = this._viewport instanceof Window ? Utils.windowSize.height : this._viewport.offsetHeight;\n if (_innerHeight != this._innerHeight || _viewportHeight != this._viewportHeight) {\n this._innerHeight = _innerHeight;\n this._viewportHeight = _viewportHeight;\n return true;\n }\n return false;\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemInfiniteScrollerElement.prototype, \"container\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Number })\n], PacemInfiniteScrollerElement.prototype, \"threshold\", void 0);\n__decorate([\n Debounce(100)\n], PacemInfiniteScrollerElement.prototype, \"_doScroll\", null);\nPacemInfiniteScrollerElement = __decorate([\n CustomElement({ tagName: P + '-infinite-scroller' })\n], PacemInfiniteScrollerElement);\nexport { PacemInfiniteScrollerElement };\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 { Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Base class for elements iterating a `datasource` under the control of a {@link PacemAdapterElement} (e.g. a slideshow), exposing `index`-relative helpers (`isPrevious`, `isNext`, `isCloseTo`). */\nexport class PacemAdaptedIterativeElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets the currently focused item's index within `datasource`. */\n this.index = 0;\n }\n /** Gets whether `ndx` is the focused item itself, or immediately adjacent (previous/next, wrapping around) to `focusndx`. */\n isCloseTo(ndx, focusndx) {\n if (Utils.isNull(this.datasource) || this.datasource.length == 0)\n return false;\n return /*this.adapter.isClose(ndx) ||*/ this._isCloseToCore(ndx, focusndx, this.datasource.length);\n }\n /** Gets whether `ndx` is the item immediately preceding `focusndx` (wrapping around the datasource). */\n isPrevious(ndx, focusndx) {\n if (Utils.isNull(this.datasource) || this.datasource.length == 0)\n return false;\n return /*this.adapter.isPrevious(ndx) ||*/ this._isPreviousCore(ndx, focusndx, this.datasource.length);\n }\n /** Gets whether `ndx` is the item immediately following `focusndx` (wrapping around the datasource). */\n isNext(ndx, focusndx) {\n if (Utils.isNull(this.datasource) || this.datasource.length == 0)\n return false;\n return /*this.adapter.isNext(ndx) ||*/ this._isNextCore(ndx, focusndx, this.datasource.length);\n }\n _isNextCore(ndx, focusndx, count) {\n return ((focusndx + 1) % count) === ndx;\n }\n _isPreviousCore(ndx, focusndx, count) {\n return ((focusndx - 1 + count) % count) === ndx;\n }\n _isCloseToCore(ndx, focusndx, count) {\n return (((focusndx + count) % count) == ((ndx + count) % count))\n || this._isNextCore(ndx, focusndx, count) || this._isPreviousCore(ndx, focusndx, count);\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemAdaptedIterativeElement.prototype, \"index\", void 0);\n__decorate([\n Watch()\n], PacemAdaptedIterativeElement.prototype, \"datasource\", 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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, stopPropagationHandler, ViewChild, avoidHandler } from '@pacem/pacem-core';\nimport { LightboxBehavior } from './lightbox-abstractions';\nimport { PacemButtonElement } from './button';\n//namespace Pacem.Components.UI {\n// TODO: shadow-ize lightbox (slots, parts, ...) in the next version 0.5x.x.\n/** Full-viewport overlay (\"lightbox\") element showing its slotted content above a backdrop, with an auto-injected close button and optional modal (non-dismissible) behavior. */\nlet PacemLightboxElement = class PacemLightboxElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._keyupHandler = (evt) => {\n if (evt.keyCode === 27 /* ESC */ && this.show && !this.modal) {\n this.show = false;\n }\n };\n this._wrapperMousedownHandler = (evt) => {\n if (this.modal || this.behavior === LightboxBehavior.ExplicitClose) {\n stopPropagationHandler(evt);\n }\n else {\n this.show = false;\n }\n };\n this._slotchangeHandler = (evt) => {\n this._resetLayout();\n };\n this._closeHandler = (evt) => {\n this._close(evt);\n };\n }\n _resetLayout() {\n this._disposeButton();\n const btn = this._ensureButton();\n if (!Utils.isNull(btn)) {\n btn.addEventListener('click', this._closeHandler, false);\n }\n }\n _toggleCloseVisibility() {\n const closer = this._closeWrapper;\n if (!Utils.isNull(closer)) {\n closer.hidden = this.modal;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._toggleCloseVisibility();\n var wrapper = this._wrapperElement;\n var container = this._container;\n wrapper.addEventListener('mousedown', this._wrapperMousedownHandler, false);\n container.addEventListener('mousedown', stopPropagationHandler, false);\n document.body.removeEventListener('scroll', avoidHandler, true);\n window.addEventListener('keyup', this._keyupHandler, false);\n this._resetLayout();\n this._slot.addEventListener('slotchange', this._slotchangeHandler, false);\n if (this.show) {\n this._toggle(true);\n }\n }\n _toggle(val) {\n const wrap = this._wrapperElement;\n const container = this._container;\n if (!!val) {\n this.inert = false;\n this.dispatchEvent(new Event('open', { bubbles: true, cancelable: false }));\n wrap.style.display = '';\n wrap.hidden = false;\n window.requestAnimationFrame(() => {\n Utils.addPart(wrap, 'lightbox-wrapper-shown');\n Utils.addPart(container, 'lightbox-shown');\n });\n var scroller = this.querySelector('.' + PCSS + '-scrollable');\n if (scroller) {\n window.requestAnimationFrame(() => scroller.scrollTop = 0);\n }\n }\n else {\n this.inert = true;\n this.dispatchEvent(new Event('close', { bubbles: true, cancelable: false }));\n //\n Utils.removePart(wrap, 'lightbox-wrapper-shown');\n Utils.removePart(container, 'lightbox-shown');\n Utils.addAnimationEndCallback(wrap, (e) => {\n e.hidden = true;\n e.style.display = 'none';\n }, 500);\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'show':\n if (!!val) {\n this._toggle(true);\n }\n else if (!!old) {\n this._toggle(false);\n }\n break;\n case 'modal':\n this._toggleCloseVisibility();\n break;\n }\n }\n disconnectedCallback() {\n if (this.show) {\n this._close();\n }\n var wrapper = this._wrapperElement;\n var container = this._container;\n document.body.removeEventListener('scroll', avoidHandler, true);\n if (!Utils.isNull(wrapper)) {\n wrapper.removeEventListener('mousedown', this._wrapperMousedownHandler, false);\n }\n if (!Utils.isNull(container)) {\n container.removeEventListener('mousedown', stopPropagationHandler, false);\n }\n window.removeEventListener('keyup', this._keyupHandler, false);\n this._disposeButton();\n this._disposeSlot();\n super.disconnectedCallback();\n }\n _disposeButton() {\n this.#btn?.removeEventListener('click', this._closeHandler);\n this.#btn = null;\n }\n _disposeSlot() {\n this._slot?.removeEventListener('slotchange', this._slotchangeHandler, false);\n }\n _close(evt) {\n if (!Utils.isNull(evt)) {\n avoidHandler(evt);\n }\n this.show = false;\n }\n #btn;\n _ensureButton() {\n if (!Utils.isNull(this.#btn)) {\n return this.#btn;\n }\n const btnSlot = this._slot;\n if (Utils.isNull(btnSlot)) {\n return null;\n }\n const found = this._lookForAButton();\n if (!Utils.isNull(found)) {\n return this.#btn = found;\n }\n const retval = new PacemButtonElement();\n retval.setAttribute('slot', 'close');\n retval.className = `${PCSS}-margin margin-0 ${PCSS}-rise rise--2 button-circle circle-smaller`;\n retval.iconGlyph = 'close';\n this.appendChild(retval);\n return this.#btn = retval;\n }\n _lookForAButton() {\n const btnSlot = this._slot;\n if (Utils.isNull(btnSlot)) {\n return null;\n }\n const buttons = btnSlot.assignedElements({ flatten: true });\n if (Utils.isNullOrEmpty(buttons)) {\n return null;\n }\n return buttons[0];\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemLightboxElement.prototype, \"show\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemLightboxElement.prototype, \"modal\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemLightboxElement.prototype, \"behavior\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-lightbox-wrapper')\n], PacemLightboxElement.prototype, \"_wrapperElement\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-lightbox')\n], PacemLightboxElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild('slot[name=close]')\n], PacemLightboxElement.prototype, \"_slot\", void 0);\n__decorate([\n ViewChild('div[part=close]')\n], PacemLightboxElement.prototype, \"_closeWrapper\", void 0);\nPacemLightboxElement = __decorate([\n CustomElement({\n tagName: P + '-lightbox',\n shadow: true,\n template: `<div class=\"${PCSS}-lightbox-wrapper\" part=\"lightbox-wrapper\" hidden>\r\n <div class=\"${PCSS}-lightbox\" part=\"lightbox\">\r\n <div part=\"top\"><slot name=\"top\"></slot></div>\r\n <div class=\"${PCSS}-scrollable\" part=\"scrollable\">\r\n <slot></slot>\r\n </div>\r\n <div part=\"bottom\"><slot name=\"bottom\"></slot></div>\r\n <div part=\"close\">\r\n <slot name=\"close\"></slot>\r\n </div>\r\n </div>\r\n</div>`\n })\n], PacemLightboxElement);\nexport { PacemLightboxElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Utils, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Visual style of a {@link PacemLoaderElement}'s spinner. */\nexport var LoaderType;\n(function (LoaderType) {\n LoaderType[\"Spinner\"] = \"spin\";\n LoaderType[\"Pacem\"] = \"pacem\";\n LoaderType[\"Custom\"] = \"custom\";\n})(LoaderType || (LoaderType = {}));\n;\n/** Shows a spinner (plain CSS or the branded Pacem gear/SVG animation) while `active`, typically overlaid on content being loaded. */\nlet PacemLoaderElement = class PacemLoaderElement extends Components.PacemElement {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n var id = '_' + Utils.uniqueCode();\n this._svgSpinner.innerHTML = `<defs>\r\n <mask id=\"hole${id}\">\r\n <rect width=\"100%\" height=\"100%\" fill=\"white\" />\r\n <circle cx=\"36\" cy=\"36\" r=\"12\"></circle>\r\n <path d=\"M18,0 L32,16 H40 L54,0 Z\" fill=\"#000\"></path>\r\n <g transform=\"rotate(120,36,36)\">\r\n <path d=\"M18,0 L32,16 H40 L54,0 Z\" fill=\"#000\"></path>\r\n </g>\r\n </mask>\r\n </defs>\r\n\r\n <circle class=\"circle1\" cx=\"36\" cy=\"36\" r=\"34\" stroke-width=\"4\" fill=\"none\"></circle>\r\n <g class=\"gear\">\r\n <circle cx=\"36\" cy=\"36\" r=\"25\" mask=\"url(#hole${id})\"></circle>\r\n </g>\r\n <circle class=\"circle2\" cx=\"36\" cy=\"36\" r=\"8\" stroke-width=\"2\" fill=\"none\"></circle>\r\n\r\n <g class=\"bounds\">\r\n <path d=\"M8,0 H0 V8 M64,0 H71 V8 M71,63 V71 H64 M8,71 H0 V63\" stroke-width=\"2\"></path>\r\n </g>`;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!Utils.isNull(this._container)) {\n switch (name) {\n case 'active':\n case 'disabled':\n if (this.active === true && !this.disabled) {\n Utils.addClass(this._container, 'active');\n }\n else {\n Utils.removeClass(this._container, 'active');\n }\n break;\n case 'type':\n this._svgSpinner.setAttribute('hidden', 'hidden');\n this._spinner.setAttribute('hidden', 'hidden');\n switch (val) {\n case LoaderType.Pacem:\n this._svgSpinner.removeAttribute('hidden');\n break;\n default:\n this._spinner.removeAttribute('hidden');\n break;\n }\n break;\n }\n }\n }\n};\n__decorate([\n ViewChild('div.' + PCSS + '-spinner')\n], PacemLoaderElement.prototype, \"_spinner\", void 0);\n__decorate([\n ViewChild('div.' + PCSS + '-loader')\n], PacemLoaderElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild('svg')\n], PacemLoaderElement.prototype, \"_svgSpinner\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemLoaderElement.prototype, \"active\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemLoaderElement.prototype, \"type\", void 0);\nPacemLoaderElement = __decorate([\n CustomElement({\n tagName: P + '-loader', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${PCSS}-loader\" pacem>\r\n <div class=\"${PCSS}-spinner\" pacem>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n <svg class=\"${PCSS}-spinner\" pacem hidden xmlns=\"http://www.w3.org/2000/svg\" \r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"-18,-18,108,108\" preserveAspectRatio=\"xMidYMid\">\r\n </svg>\r\n </div>`\n })\n], PacemLoaderElement);\nexport { PacemLoaderElement };\n","import { Compile } from '@pacem/pacem-foundation';\nimport { P } from '@pacem/pacem-core';\n//namespace Pacem {\nconst match = (input, pattern, fn) => {\n const arr = pattern.exec(input);\n if (arr && arr.length) {\n return fn(arr);\n }\n return null;\n};\nconst MARKUP_RULES = [\n {\n // comment\n exec: (input) => match(input, /^((<|<)!--(?:(?!(--(>|>)))[\\s\\S])*(--(?:>|>)|$))/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-comment', raw, text, index: arr.index\n }];\n })\n },\n {\n // opening/self-closing tag\n exec: (input, lexer) => match(input, /^(<|<)([\\w-]+)(?:\\s+[\\w-]+(?:=(?:'[^']*'|\"[^\"]*\"))*)*(\\s*\\/?(?:>|>))/, arr => {\n const openingTag = arr[1], tagName = arr[2], closingTag = arr[3];\n const closingTagIndex = arr[0].length - closingTag.length, attributesIndex = openingTag.length + tagName.length, attributesString = input.substring(attributesIndex, closingTagIndex);\n const attributes = lexer.tokenize(attributesString, [{\n exec: (input) => match(input, /^(\\s+[\\w-]+)(=('[^']*'|\"[^\"]*\"))?/, arr => {\n const raw = arr[1];\n const output = [{\n type: 'code-attribute', raw, text: raw, index: arr[0].indexOf(raw)\n }];\n if (arr.length > 2) {\n output.push({\n type: 'code-string', raw: arr[2], text: arr[2], index: arr.index + arr[0].length - arr[2].length\n });\n }\n return output;\n })\n }]);\n const retval = [{\n type: 'code-tag', raw: openingTag, text: openingTag, index: 0\n }, {\n type: 'code-tagname', raw: tagName, text: tagName, index: openingTag.length\n }];\n // attributes\n Array.prototype.push.apply(retval, attributes);\n retval.push({\n type: 'code-tag', raw: closingTag, text: closingTag, index: closingTagIndex\n });\n return retval;\n })\n },\n {\n // closing tag\n exec: (input) => match(input, /^((?:<|<)\\/)([\\w-]+)(\\s*(?:>|>))/, arr => {\n const openingTag = arr[1], tagName = arr[2], closingTag = arr[3];\n return [{\n type: 'code-tag', raw: openingTag, text: openingTag, index: 0\n }, {\n type: 'code-tagname', raw: tagName, text: tagName, index: openingTag.length\n }, {\n type: 'code-tag', raw: closingTag, text: closingTag, index: arr.index + arr[0].length - closingTag.length\n }];\n })\n },\n {\n // text\n exec: (input) => match(input, /^(<|<)?((?!<|<).)+/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'text', raw, text\n }];\n })\n }\n];\nconst C_LIKE_RULES = [{\n // comments\n exec: (input, _) => match(input, /^\\/\\/.*/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-comment', raw, text\n }];\n })\n }, {\n exec: (input, _) => match(input, /^\\/\\*(?:(?!(\\*\\/))[\\s\\S])*(?:\\*\\/|$)/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-comment', raw, text\n }];\n })\n }, {\n // string literal\n exec: (input, _) => match(input, /^('(\\\\'|[^'])*[^\\\\]?'|@?\\$?\"(\\\\\"|[^\"])*[^\\\\]?\")/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-string', raw, text\n }];\n })\n }, {\n // keywords\n exec: (input, _) => match(input, /^\\b(abstract|as|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|static|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|nameof|orderby|partial|remove|select|set|value|var|when|where|yield)\\b/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-keyword', raw, text\n }];\n })\n }, {\n // number \n exec: (input, _) => match(input, /^\\b((0x[0-9a-fA-F]|[\\d])*\\.?[\\d]+)\\b/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-number', raw, text\n }];\n })\n }, {\n // variables, operators, parentheses\n exec: (input, _) => match(input, /^(@?\\w+|:|\\?\\??|\\?=?|\\|\\|?|&&?|&=?|;|,|=|\\*=?|--|-=?|\\+\\+|\\+=?|\\/=?|\\^|\\(|\\[|\\)|\\]|\\{|\\})/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'text', raw, text\n }];\n }),\n }, {\n // spaces\n exec: (input, _) => match(input, /^\\s+/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'space', raw, text\n }];\n }),\n }];\nconst SCRIPT_RULES = [\n C_LIKE_RULES[0], C_LIKE_RULES[1], {\n // string literal\n exec: (input, _) => match(input, /^('(\\\\'|[^'])*[^\\\\]?'|\"(\\\\\"|[^\"])*[^\\\\]?\"|`(\\\\`|[^`])*[^\\\\]?`)/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-string', raw, text\n }];\n })\n }, {\n // keywords\n exec: (input, _) => match(input, /^\\b(abstract|any|arguments|async|await|boolean|break|byte|case|catch|char|class|const|continue|debugger|declare|default|delete|do|double|else|enum|eval|export|extends|false|final|finally|float|for|function|get|goto|if|implements|import|in|instanceof|int|interface|let|long|native|new|null|number|package|private|protected|public|return|short|static|string|super|switch|synchronized|this|throw|throws|transient|true|try|type|typeof|var|void|volatile|while|with|yield)\\b/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-keyword', raw, text\n }];\n })\n },\n C_LIKE_RULES[4],\n C_LIKE_RULES[5],\n C_LIKE_RULES[6]\n];\nconst TWITTER_RULE = {\n rule: {\n exec: (input) => {\n const arr = /\\{tweet\\}\\(([^\\)]+)\\)/.exec(input);\n if (arr && arr.length > 1) {\n return [{\n type: 'tweet', raw: arr[0], text: arr[1], index: arr.index\n }];\n }\n return null;\n }\n },\n type: 'inline'\n};\nconst YOUTUBE_RULE = {\n rule: {\n exec: (input) => {\n const arr = /\\{yt([\\d]+x[\\d]+)?\\}\\(([^\\)]+)\\)/.exec(input);\n if (arr && arr.length > 2) {\n const m0 = arr[1] || '560x315';\n const size = m0.split('x'), w = size[0], h = size[1];\n return [{\n type: 'youtube', raw: arr[0], text: arr[2], index: arr.index, width: w, height: h\n }];\n }\n return null;\n }\n },\n type: 'inline'\n};\nconst RULES_TO_HTML = (token) => {\n switch (token.type) {\n case 'youtube':\n return `<!-- youtube embed -->\r\n<iframe width=\"${token['width']}\" height=\"${token['height']}\" src=\"https://www.youtube-nocookie.com/embed/${token.text}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe>`;\n case 'tweet':\n return `<!-- twitter embed -->\r\n<${P}-tweetembed tweetid=\"${token.text}\"></${P}-tweetembed>`;\n // code\n case 'code-string':\n case 'code-keyword':\n case 'code-number':\n case 'code-comment':\n case 'code-tag':\n case 'code-tagname':\n case 'code-attribute':\n return `<span class=\"${token.type}\">${token.text}</span>`;\n }\n};\n/** Parses Markdown into HTML, extended with C-like/script/markup code-fence highlighting and Pacem-specific inline embeds (`{tweet}(id)`, `{yt}(id)`). */\nexport class MarkdownService {\n constructor() {\n const grammar = [\n TWITTER_RULE,\n YOUTUBE_RULE\n ];\n for (let lang of ['c-sharp', 'c', 'c#', 'csharp', 'c++', 'cpp']) {\n const c_like_rules = C_LIKE_RULES.map(rule => { return { rule, lang, type: 'code' }; });\n Array.prototype.push.apply(grammar, c_like_rules);\n }\n for (let lang of ['ts', 'js', 'typescript', 'javascript']) {\n const script_rules = SCRIPT_RULES.map(rule => { return { rule, lang, type: 'code' }; });\n Array.prototype.push.apply(grammar, script_rules);\n }\n for (let lang of ['xml', 'html']) {\n const markup_rules = MARKUP_RULES.map(rule => { return { rule, lang, type: 'code' }; });\n Array.prototype.push.apply(grammar, markup_rules);\n }\n this.#grammar = grammar;\n }\n #grammar;\n #md = new Compile.Markdown.Parser();\n _escape(md) {\n // no html allowed\n return (md ?? '').replace(/</g, '<');\n }\n /** Converts the given Markdown source into an HTML string. */\n toHtml(md) {\n return this.#md.toHtml(this._escape(md), this.#grammar, RULES_TO_HTML);\n }\n /** Tokenizes the given Markdown source, without rendering it to HTML. */\n tokenize(md) {\n return this.#md.tokenize(this._escape(md), this.#grammar);\n }\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 { P, CustomElement, Watch, PropertyConverters, Components } from '@pacem/pacem-core';\nimport { MarkdownService } from './markdown-svc';\n//namespace Pacem.Components.UI {\n/** Renders its `value` property, interpreted as Markdown, as this element's inner HTML. */\nlet PacemMarkdownElement = class PacemMarkdownElement extends Components.PacemElement {\n constructor(_md = new MarkdownService()) {\n super();\n this._md = _md;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'value') {\n this.innerHTML = this.html();\n }\n }\n // IDEA: allow extensible parsing (grammar components?...)\n /** Tokenizes the given (or current `value`) Markdown source. */\n tokens(md = this.value) {\n return this._md.tokenize(md);\n }\n /** Converts the given (or current `value`) Markdown source to an HTML string. */\n html(md = this.value) {\n return this._md.toHtml(md);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMarkdownElement.prototype, \"value\", void 0);\nPacemMarkdownElement = __decorate([\n CustomElement({ tagName: P + '-markdown' })\n], PacemMarkdownElement);\nexport { PacemMarkdownElement };\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 { P, PCSS, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Continuously scrolls its content horizontally in a loop, like a classic marquee. */\nlet PacemMarqueeElement = class PacemMarqueeElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._state = { overlap: 0, content: 0 };\n }\n // TODO: reuse css animation injection\n connectedCallback() {\n super.connectedCallback();\n const css = this._css = document.createElement('style');\n document.head.appendChild(css);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'speed') {\n this._adjust();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._adjust();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._css))\n this._css.remove();\n super.disconnectedCallback();\n }\n _overlapResize(evt) {\n this._state.overlap = evt.detail.width;\n this._adjust();\n }\n _contentResize(evt) {\n this._state.content = evt.detail.width;\n this._adjust();\n }\n _adjust() {\n const state = this._state;\n if (state.content > 0 && state.overlap > 0) {\n const m = this._marquee;\n const id = 'marquee-' + Utils.uniqueCode(), // rename the animation every time (Edge bug)\n from = Math.round(state.overlap), to = -Math.round(state.content);\n this._css.innerHTML = `@keyframes ${id} {\r\n 0% {\r\n transform: translateX(${from}px);\r\n }\r\n\r\n 100% {\r\n transform: translateX(${to}px);\r\n }\r\n}`;\n const speed = this.speed || 20;\n const time = Math.max(speed, Math.round(speed * Math.abs(from - to) / 1920));\n m.style.animationName = id;\n m.style.animationDuration = time + 's';\n m.style.animationIterationCount = 'infinite';\n m.style.animationTimingFunction = 'linear';\n }\n }\n};\n__decorate([\n ViewChild(`.${PCSS}-marquee`)\n], PacemMarqueeElement.prototype, \"_marquee\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-marquee-overlap`)\n], PacemMarqueeElement.prototype, \"_overlap\", void 0);\n__decorate([\n ViewChild(P + \"-resize\")\n], PacemMarqueeElement.prototype, \"_resizer\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemMarqueeElement.prototype, \"speed\", void 0);\nPacemMarqueeElement = __decorate([\n CustomElement({\n tagName: P + '-marquee', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${PCSS}-marquee\"><${P}-content></${P}-content></div><div class=\"${PCSS}-marquee-overlap\"></div>\r\n<${P}-resize target=\"{{ :host._overlap }}\" on-${Components.ResizeEventName}=\":host._overlapResize($event)\"></${P}-resize>\r\n<${P}-resize target=\"{{ :host._marquee }}\" on-${Components.ResizeEventName}=\":host._contentResize($event)\"></${P}-resize>`\n })\n], PacemMarqueeElement);\nexport { PacemMarqueeElement };\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 { P, Utils, CustomElement, Watch, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst THRESHOLD_SM = 768;\nconst THRESHOLD_MD = 992;\nconst THRESHOLD_LG = 1200;\nconst THRESHOLD_XL = 1824;\nconst THRESHOLD_HD = 1920;\nconst THRESHOLD_2K = 2048;\nconst THRESHOLD_4K = 3840;\nexport const MEDIAQUERY_XS = `(max-width: ${(THRESHOLD_SM - 1)}px)`;\nexport const MEDIAQUERY_SM = `(min-width: ${THRESHOLD_SM}px)`;\nexport const MEDIAQUERY_MD = `(min-width: ${THRESHOLD_MD}px)`;\nexport const MEDIAQUERY_LG = `(min-width: ${THRESHOLD_LG}px)`;\nexport const MEDIAQUERY_XL = `(min-width: ${THRESHOLD_XL}px)`;\nexport const MEDIAQUERY_HD = `(min-width: ${THRESHOLD_HD}px)`;\nexport const MEDIAQUERY_2K = `(min-width: ${THRESHOLD_2K}px)`;\nexport const MEDIAQUERY_4K = `(min-width: ${THRESHOLD_4K}px)`;\nexport const MEDIAQUERY_PORTRAIT = `(orientation: portrait)`;\nexport const MEDIAQUERY_LANDSCAPE = `(orientation: landscape)`;\nexport const MEDIAQUERY_PREFERS_LIGHT = `(prefers-color-scheme: light)`;\nexport const MEDIAQUERY_PREFERS_DARK = `(prefers-color-scheme: dark)`;\n/** Evaluates a CSS media query and reflects its match state, dispatching `change`/`match`/`unmatch` events as it changes. */\nlet PacemMediaQueryElement = class PacemMediaQueryElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._changeHandler = (evt) => {\n this.isMatch = evt.matches;\n };\n }\n #mql;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._init();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'query':\n if (!first) {\n this._init();\n }\n break;\n case 'isMatch':\n // dedicated change events\n this._broadcastChange(val);\n break;\n }\n }\n disconnectedCallback() {\n this._init('');\n super.disconnectedCallback();\n }\n _broadcastChange(val = this.isMatch) {\n this.dispatchEvent(new Event('change'));\n this.dispatchEvent(new Event(val ? 'match' : 'unmatch'));\n }\n _init(q = this.query) {\n const old = this.#mql;\n if (!Utils.isNull(old)) {\n old.removeEventListener('change', this._changeHandler);\n }\n if (!Utils.isNullOrEmpty(q)) {\n const val = this.#mql = window.matchMedia(q);\n val.addEventListener('change', this._changeHandler);\n this.isMatch = val.matches;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMediaQueryElement.prototype, \"query\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemMediaQueryElement.prototype, \"isMatch\", void 0);\nPacemMediaQueryElement = __decorate([\n CustomElement({\n tagName: P + '-media-query'\n })\n], PacemMediaQueryElement);\nexport { PacemMediaQueryElement };\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};\nvar PacemMenuCursorElement_1;\nimport { P, PCSS, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults, avoidHandler, stopPropagationHandler, CustomElementUtils, Logging } from '@pacem/pacem-core';\n//namespace Components.UI {\n/** Collapsible off-canvas/hamburger navigation menu, optionally synchronized with the enclosing shell's CSS classes. */\nlet PacemMenuElement = class PacemMenuElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets whether the open/close and outset state toggle CSS classes on the ancestor shell. */\n this.synchronizeShell = true;\n this._stopPropagationHandlerConditional = (_) => {\n if (!Utils.isNull(this._container) && !Utils.isNull(this._base)) {\n const offsetNav = Utils.offset(this._container);\n const offsetBase = Utils.offset(this._base);\n // TODO: consider height as well for different skins, but DO manage edge cases...\n if (offsetNav.width < offsetBase.width) {\n this.open = false;\n }\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._container.addEventListener('click', stopPropagationHandler, false);\n this._container.addEventListener(\"scroll\", stopPropagationHandler, false);\n this._sync();\n }\n disconnectedCallback() {\n window.removeEventListener('navigate', this._stopPropagationHandlerConditional, false);\n if (!Utils.isNull(this._container)) {\n this._container.removeEventListener('click', stopPropagationHandler, false);\n this._container.removeEventListener(\"scroll\", stopPropagationHandler, false);\n }\n this._sync(false);\n super.disconnectedCallback();\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('navigate', this._stopPropagationHandlerConditional, false);\n this._shell = CustomElementUtils.findAncestorShell(this);\n }\n _toggle(evt) {\n avoidHandler(evt);\n this.open = !this.open;\n this.dispatchEvent(new Event('toggle'));\n }\n _sync(val = this.open) {\n if (this.synchronizeShell) {\n Utils.addClass(this, 'menu-sync');\n Utils.addClass(this._shell, PCSS + (val === true ? '-menu-open' : '-menu-close'));\n Utils.removeClass(this._shell, PCSS + (val === true ? '-menu-close' : '-menu-open'));\n }\n else {\n Utils.removeClass(this, 'menu-sync');\n Utils.removeClass(this._shell, PCSS + '-menu-close ' + PCSS + '-menu-open');\n }\n if (this.outset) {\n Utils.addClass(this, 'menu-outset');\n }\n else {\n Utils.removeClass(this, 'menu-outset');\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'open' || name === 'synchronizeShell' || name === 'outset') {\n this._sync();\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"open\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"hideHamburgerButton\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"hideBackButton\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"outset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"synchronizeShell\", void 0);\n__decorate([\n ViewChild('nav')\n], PacemMenuElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-menu`)\n], PacemMenuElement.prototype, \"_base\", void 0);\nPacemMenuElement = __decorate([\n CustomElement({\n tagName: P + '-menu', template: `<${P}-panel class=\"${PCSS}-menu\" css-class=\"{{ {'menu-close': !:host.open, 'menu-open': :host.open} }}\" on-click=\":host._toggle($event)\"> \r\n <nav><${P}-content></${P}-content></nav>\r\n</${P}-panel>\r\n<${P}-shell-proxy>\r\n<${P}-button hide=\"{{ :host.hideBackButton }}\" class=\"${PCSS}-back ${PCSS}-menu button-flat\" css-class=\"{{ {'menu-close': !:host.open, 'menu-open': :host.open} }}\" on-click=\":host._toggle($event)\">BACK</${P}-button>\r\n<${P}-button hide=\"{{ :host.hideHamburgerButton }}\" class=\"${PCSS}-hamburger ${PCSS}-menu button-flat\" css-class=\"{{ {'menu-close': :host.open, 'menu-open': !:host.open} }}\" on-click=\":host._toggle($event)\">MENU</${P}-button></${P}-shell-proxy>`,\n shadow: Defaults.USE_SHADOW_ROOT\n })\n], PacemMenuElement);\nexport { PacemMenuElement };\n/** Animated cursor/indicator that tracks the anchor matching the current path within an ancestor `PacemMenuElement`. */\nlet PacemMenuCursorElement = PacemMenuCursorElement_1 = class PacemMenuCursorElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._onPathChange = (evt) => {\n const path = evt?.detail.path;\n this._findAnchorAndScrollItIntoView(path);\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._menu = CustomElementUtils.findAncestorOfType(this, PacemMenuElement);\n this._findAnchorAndScrollItIntoView();\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('navigate', this._onPathChange, false);\n }\n disconnectedCallback() {\n this._menu = null;\n window.removeEventListener('navigate', this._onPathChange, false);\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'disabled':\n this._findAnchorAndScrollItIntoView();\n break;\n }\n }\n _findAnchorAndScrollItIntoView(path = window.location.pathname) {\n if (this.disabled) {\n return;\n }\n const menu = this._menu;\n if (Utils.isNull(menu)) {\n this.log(Logging.LogLevel.Warn, `Couldn't find a ${PacemMenuElement} ancestor for this ${PacemMenuCursorElement_1}.`);\n return;\n }\n // 1. try to find a matching PacemAnchorElement\n const anchors = menu.querySelectorAll(P + '-a');\n let tget = null;\n for (let j = 0; j < anchors.length; j++) {\n const a = anchors.item(j);\n const router = a.router;\n let href = Utils.isNull(router)\n ? a.href\n : /* build fully formatted href, it might contain placeholders */ Utils.URIs.format(a.href, router.state);\n if (href === path) {\n tget = a;\n break;\n }\n }\n if (Utils.isNull(tget)) {\n // 2. try with real HTMLAnchorElement\n tget = menu.querySelector(`a[href='${path}']`);\n }\n // finally, scroll if any matching anchor was found\n if (!Utils.isNull(tget)) {\n tget.scrollIntoView({ behavior: 'smooth' });\n }\n }\n};\nPacemMenuCursorElement = PacemMenuCursorElement_1 = __decorate([\n CustomElement({\n tagName: P + '-menu-cursor'\n })\n], PacemMenuCursorElement);\nexport { PacemMenuCursorElement };\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 { P, PCSS, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults, Debounce } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Renders pagination buttons (first/previous/numbers/next/last, or a numeric-only strip) for a paged collection. */\nlet PacemPagerElement = class PacemPagerElement extends Components.PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'index':\n case 'total':\n case 'pages':\n case 'size':\n case 'mode':\n this._databind();\n break;\n }\n }\n _databind() {\n const repeater = this._repeater;\n if (Utils.isNull(repeater))\n return;\n //\n var datasource = [];\n const size = this.size ?? 10, pages = this.pages ?? 5, total = this.total ?? 0, index = this.index ?? 0, mode = this.mode ?? 'standard';\n if (total > 0) {\n let totpages = Math.ceil(total / size);\n let pageindex = Math.floor(index / size);\n let startpageindex = Math.max(0, Math.ceil(pageindex - pages / 2));\n let endpageindex = Math.min(totpages - 1, startpageindex + pages - 1);\n while (startpageindex > 0 && (1 + endpageindex - startpageindex) < pages) {\n startpageindex--;\n }\n if (mode === 'numeric-only') {\n if (startpageindex > 0) {\n datasource.push({ caption: (1).toLocaleString(Utils.lang(this)), index: 0, /*first: true,*/ disabled: !( /*start*/pageindex > 0) });\n }\n }\n else {\n // |<\n datasource.push({ caption: '«', index: 0, first: true, disabled: !( /*start*/pageindex > 0) });\n // <\n datasource.push({ caption: '<', index: size * (pageindex - 1), previous: true, disabled: !(pageindex > 0) });\n }\n // ...\n if (startpageindex > 0 && mode !== 'numeric-only' || startpageindex > 1 && mode === 'numeric-only') {\n datasource.push({ caption: '…', index: size * (startpageindex - 1) });\n }\n // #\n for (let j = startpageindex; j <= endpageindex; j++) {\n datasource.push({ caption: (j + 1).toLocaleString(Utils.lang(this)), index: j * size });\n }\n // ...\n if (endpageindex < (totpages - 1) && mode !== 'numeric-only' || endpageindex < (totpages - 2) && mode === 'numeric-only') {\n datasource.push({ caption: '…', index: size * (endpageindex + 1) });\n }\n if (mode === 'numeric-only') {\n if (endpageindex < (totpages - 1)) {\n datasource.push({ caption: totpages.toLocaleString(Utils.lang(this)), index: size * (totpages - 1), /*last: true,*/ disabled: !( /*end*/pageindex < (totpages - 1)) });\n }\n }\n else {\n // >\n datasource.push({ caption: '>', index: size * (pageindex + 1), next: true, disabled: !(pageindex < (totpages - 1)) });\n // >|\n datasource.push({ caption: '»', index: size * (totpages - 1), last: true, disabled: !( /*end*/pageindex < (totpages - 1)) });\n }\n // \n this.index = pageindex * size;\n }\n repeater.datasource = datasource;\n }\n};\n__decorate([\n ViewChild(P + '-repeater')\n], PacemPagerElement.prototype, \"_repeater\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemPagerElement.prototype, \"index\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemPagerElement.prototype, \"total\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemPagerElement.prototype, \"pages\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemPagerElement.prototype, \"size\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemPagerElement.prototype, \"mode\", void 0);\n__decorate([\n Debounce(true)\n], PacemPagerElement.prototype, \"_databind\", null);\nPacemPagerElement = __decorate([\n CustomElement({\n tagName: P + '-pager', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater class=\"${PCSS}-pager\"><div class=\"${PCSS}-buttonset\">\r\n<div class=\"pager-buttons\">\r\n <template>\r\n <${P}-button class=\"${PCSS}-page button\" on-click=\":host.index = ^item.index\" disabled=\"{{ ^item.disabled }}\"\r\n css-class=\"{{ { 'currentpage': ^item.index === :host.index, 'firstpage buttonset-first': ^item.first, 'previouspage': ^item.previous, 'nextpage': ^item.next, 'lastpage buttonset-last': ^item.last } }}\"><${P}-span content=\"{{ ^item.caption }}\"></${P}-span></${P}-button>\r\n </template>\r\n</div>\r\n</div></${P}-repeater>`\n })\n], PacemPagerElement);\nexport { PacemPagerElement };\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 { P, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Declares a single `<source>` candidate (srcset/media/type) for an ancestor `PacemPictureElement`. */\nlet PacemPictureSourceElement = class PacemPictureSourceElement extends Components.PacemItemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const picture = this.container;\n if (picture instanceof PacemPictureElement && ['srcset', 'media', 'type', 'disabled'].indexOf(name) >= 0) {\n picture.refreshSources();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureSourceElement.prototype, \"srcset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureSourceElement.prototype, \"media\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureSourceElement.prototype, \"type\", void 0);\nPacemPictureSourceElement = __decorate([\n CustomElement({\n tagName: P + '-picture-source'\n })\n], PacemPictureSourceElement);\nexport { PacemPictureSourceElement };\n/** Responsive `<picture>` wrapper that builds its `<source>` elements from child `PacemPictureSourceElement` items. */\nlet PacemPictureElement = class PacemPictureElement extends Components.PacemItemsContainerElement {\n constructor() {\n super('img', { 'label': 'picture' });\n this._updateCurrentSrcHandler = (evt) => {\n this.currentSrc = this._img.currentSrc;\n };\n }\n validate(item) {\n return item instanceof PacemPictureSourceElement;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'src':\n this._setSource();\n break;\n case 'items':\n this._setSources();\n break;\n case 'tooltip':\n this._setAltText();\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._img.addEventListener('load', this._updateCurrentSrcHandler, false);\n this._setSource();\n this._setAltText();\n this._setSources();\n }\n disconnectedCallback() {\n const img = this._img;\n if (!Utils.isNull(img)) {\n img.removeEventListener('load', this._updateCurrentSrcHandler, false);\n }\n super.disconnectedCallback();\n }\n /** Rebuilds the `<source>` elements from the current child `PacemPictureSourceElement` items. */\n refreshSources() {\n this._setSources();\n }\n _setSources(items = this.items) {\n const picture = this._picture, img = this._img;\n if (!Utils.isNull(picture) && !Utils.isNull(img)) {\n const sources = picture.querySelectorAll('source'), itemCount = items?.length ?? 0;\n // populate\n for (let i = 0; i < itemCount; i++) {\n const item = this.items[i];\n let source;\n if (sources.length <= i) {\n source = document.createElement('source');\n source.setAttribute('part', 'source');\n picture.insertBefore(source, img);\n }\n else {\n source = sources.item(i);\n }\n if (item.disabled || Utils.isNullOrEmpty(item.srcset)) {\n source.removeAttribute('srcset');\n }\n else {\n source.srcset = item.srcset;\n }\n if (Utils.isNullOrEmpty(item.media)) {\n source.removeAttribute('media');\n }\n else {\n source.media = item.media;\n }\n if (Utils.isNullOrEmpty(item.type)) {\n source.removeAttribute('type');\n }\n else {\n source.type = item.type;\n }\n }\n // cleanup\n for (let i = sources.length - 1; i >= itemCount; i--) {\n let source = sources.item(i);\n source.remove();\n }\n }\n }\n _setSource(src = this.src) {\n const img = this._img;\n if (!Utils.isNull(img)) {\n if (Utils.isNullOrEmpty(src)) {\n img.removeAttribute('src');\n }\n else {\n img.src = src;\n }\n }\n }\n _setAltText(tip = this.tooltip) {\n const img = this._img;\n if (!Utils.isNull(img)) {\n if (Utils.isNullOrEmpty(tip)) {\n img.alt = this.aria.attributes.toObject()['label'];\n }\n else {\n img.alt = tip;\n }\n }\n }\n};\n__decorate([\n ViewChild('picture')\n], PacemPictureElement.prototype, \"_picture\", void 0);\n__decorate([\n ViewChild('img')\n], PacemPictureElement.prototype, \"_img\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemPictureElement.prototype, \"currentSrc\", void 0);\nPacemPictureElement = __decorate([\n CustomElement({\n tagName: P + '-picture', shadow: true,\n template: `<picture part=\"picture\"><img loading=\"lazy\" part=\"img\" /></picture><slot></slot>`\n })\n], PacemPictureElement);\nexport { PacemPictureElement };\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 { P, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Horizontal progress bar with an optional textual caption. */\nlet PacemProgressbarElement = class PacemProgressbarElement extends Components.PacemElement {\n constructor() {\n super('progressbar', { 'valuemin': '0%', 'valuemax': '100%', 'valuenow': '0%' });\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'percentage':\n this._bar.style.transform = `translateX(${(-100 + (val || 0))}%)`;\n this._glow.style.transform = `scaleX(${((val || 0) * .01)})`;\n let perc = Utils.leftPad(Math.floor(val), 2, '0') + '%';\n this.aria.attributes.set('valuenow', perc);\n if (Utils.isNullOrEmpty(this.caption)) {\n this.aria.attributes.set('valuetext', this._caption.textContent = perc);\n }\n break;\n case 'caption':\n this.aria.attributes.set('valuetext', this._caption.textContent = val);\n break;\n }\n }\n};\n__decorate([\n ViewChild('.progressbar-bar')\n], PacemProgressbarElement.prototype, \"_bar\", void 0);\n__decorate([\n ViewChild('.progressbar-glow')\n], PacemProgressbarElement.prototype, \"_glow\", void 0);\n__decorate([\n ViewChild('.progressbar-caption')\n], PacemProgressbarElement.prototype, \"_caption\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemProgressbarElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemProgressbarElement.prototype, \"percentage\", void 0);\nPacemProgressbarElement = __decorate([\n CustomElement({\n tagName: P + '-progressbar', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"progressbar-glow\"></div>\r\n <div class=\"progressbar-track\"><div class=\"progressbar-bar\"></div></div>\r\n <label class=\"progressbar-caption\"></label>`\n })\n], PacemProgressbarElement);\nexport { PacemProgressbarElement };\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 { P, PCSS, Utils, CustomElement, Watch, PropertyConverters, Components, CustomElementUtils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Collapsible off-canvas drawer/sidebar, optionally synchronized with the enclosing shell's CSS classes. */\nlet PacemSidebarElement = class PacemSidebarElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets whether the sidebar is open. */\n this.open = false;\n /** Gets or sets whether the open/close state toggles CSS classes on the ancestor shell. */\n this.synchronizeShell = true;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'open':\n case 'synchronizeShell':\n this._sync();\n break;\n }\n }\n disconnectedCallback() {\n this._sync(false);\n super.disconnectedCallback();\n }\n _sync(val = this.open) {\n const shell = this.#shell;\n if (this.synchronizeShell) {\n Utils.addClass(this, 'sidebar-sync');\n Utils.addClass(shell, PCSS + (val === true ? '-sidebar-open' : '-sidebar-close'));\n Utils.removeClass(shell, PCSS + (val === true ? '-sidebar-close' : '-sidebar-open'));\n }\n else {\n Utils.removeClass(this, 'sidebar-sync');\n Utils.removeClass(shell, PCSS + '-sidebar-close ' + PCSS + '-sidebar-open');\n }\n }\n #shell;\n connectedCallback() {\n super.connectedCallback();\n this.#shell = CustomElementUtils.findAncestorShell(this);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemSidebarElement.prototype, \"open\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemSidebarElement.prototype, \"synchronizeShell\", void 0);\nPacemSidebarElement = __decorate([\n CustomElement({\n tagName: P + '-sidebar', template: `<${P}-panel class=\"sidebar-drawer\" part=\"drawer\" css-part=\"{{ { 'open': :host.open } }}\" css-class=\"{{ {'open': :host.open } }}\">\r\n <slot></slot>\r\n</${P}-panel>`,\n shadow: true\n })\n], PacemSidebarElement);\nexport { PacemSidebarElement };\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 { P, CustomElement, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Single slide item hosted within a `PacemSlideshowElement`. */\nlet PacemSlideElement = class PacemSlideElement extends Components.PacemIterableElement {\n};\nPacemSlideElement = __decorate([\n CustomElement({\n tagName: P + '-slide'\n })\n], PacemSlideElement);\nexport { PacemSlideElement };\n/** Iterates over `PacemSlideElement` children, exposing them as a navigable slideshow. */\nlet PacemSlideshowElement = class PacemSlideshowElement extends Components.PacemIterativeElement {\n validate(item) {\n return item instanceof PacemSlideElement;\n }\n};\nPacemSlideshowElement = __decorate([\n CustomElement({\n tagName: P + '-slideshow'\n })\n], PacemSlideshowElement);\nexport { PacemSlideshowElement };\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 { P, CustomElementUtils, CustomElement, Watch, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI.Social {\n/** Embeds a tweet, given its id, via Twitter's `widgets.js`. */\nlet PacemTweetEmbedElement = class PacemTweetEmbedElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._scriptsLoaded = false;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'tweetid' && this._scriptsLoaded)\n this._render();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n CustomElementUtils.importjs('https://platform.twitter.com/widgets.js').then(() => {\n this._scriptsLoaded = true;\n this._render();\n });\n }\n _render() {\n if (this.tweetid && this._scriptsLoaded) {\n twttr.ready(tw => tw.widgets.createTweet(this.tweetid, this));\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemTweetEmbedElement.prototype, \"tweetid\", void 0);\nPacemTweetEmbedElement = __decorate([\n CustomElement({ tagName: P + '-tweetembed' })\n], PacemTweetEmbedElement);\nexport { PacemTweetEmbedElement };\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 { P, CustomElementUtils, CustomElement, Watch, PropertyConverters, PacemEventTarget, Components, Utils, Logging } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Determines how a `PacemStickyHeaderElement` behaves once the scroll offset passes its `threshold`. */\nexport var StickyHeaderVisibility;\n(function (StickyHeaderVisibility) {\n /** Stays pinned/visible once past the threshold. */\n StickyHeaderVisibility[\"Persistent\"] = \"persistent\";\n /** Hides while scrolling down and reappears while scrolling up. */\n StickyHeaderVisibility[\"QuickReturn\"] = \"quickreturn\";\n})(StickyHeaderVisibility || (StickyHeaderVisibility = {}));\n/** Header that reacts to page scroll, either staying pinned to the top of the shell or hiding/showing on scroll direction. */\nlet PacemStickyHeaderElement = class PacemStickyHeaderElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.#previousOffset = { left: 0, top: 0 };\n this._scrollHandler = (evt) => {\n this.offset = evt.detail;\n };\n }\n #scroller;\n #previousOffset;\n #id;\n #shell;\n _ensureScrollAwareElement() {\n if (Utils.isNull(this.#scroller)) {\n const scroller = this.#scroller = new Components.PacemScrollAwareElement();\n this.log(Logging.LogLevel.Debug, 'creating scroll aware ' + this.#id);\n const shell = this.#shell = CustomElementUtils.findAncestorShell(this);\n shell.appendChild(scroller);\n scroller.dataset[\"target\"] = this.#id;\n scroller.addEventListener(Components.ScrollEventName, this._scrollHandler, false);\n }\n this.#scroller.disabled = this.disabled;\n }\n _manageOffsetChange(offset = this.offset) {\n if (this.disabled) {\n return;\n }\n const visibility = this.visibility || StickyHeaderVisibility.Persistent, lastTop = this.#previousOffset.top, top = offset.top, threshold = this.threshold || 0, shell = this.#shell;\n if (lastTop <= threshold && top > threshold) {\n Utils.removeClass(shell, 'sticky-header-top');\n Utils.addClass(shell, 'sticky-header-scroll');\n // get into wavy behavior and aspect\n if (visibility === StickyHeaderVisibility.QuickReturn) {\n Utils.addClass(shell, 'sticky-header-fade');\n this.visible = false;\n }\n }\n else if (lastTop > threshold && top <= threshold) {\n // back to steady form\n Utils.removeClass(shell, 'sticky-header-fade');\n Utils.removeClass(shell, 'sticky-header-scroll');\n Utils.addClass(shell, 'sticky-header-top');\n }\n else if (lastTop > threshold && top > threshold && lastTop > top) {\n // scrolling up, show\n this.visible = true;\n Utils.removeClass(shell, 'sticky-header-fade');\n }\n else if (lastTop > threshold && top > threshold && lastTop < top && visibility == StickyHeaderVisibility.QuickReturn) {\n // keep scrolling down with quick return, hide\n Utils.addClass(shell, 'sticky-header-fade');\n }\n this.#previousOffset = offset;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'offset':\n this._manageOffsetChange(val);\n break;\n case 'disabled':\n this._ensureScrollAwareElement();\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.#id = this.id || 'sticky-' + Utils.uniqueCode();\n this._ensureScrollAwareElement();\n }\n disconnectedCallback() {\n const scroller = this.#scroller, shell = this.#shell;\n if (!Utils.isNull(scroller)) {\n this.log(Logging.LogLevel.Debug, 'disposing scroll aware ' + this.#id);\n scroller.removeEventListener(Components.ScrollEventName, this._scrollHandler, false);\n scroller.remove();\n this.#scroller = undefined;\n Utils.removeClass(shell, 'sticky-header-fade');\n Utils.removeClass(shell, 'sticky-header-top');\n Utils.removeClass(shell, 'sticky-header-scroll');\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemStickyHeaderElement.prototype, \"threshold\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Point })\n], PacemStickyHeaderElement.prototype, \"offset\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemStickyHeaderElement.prototype, \"visible\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemStickyHeaderElement.prototype, \"visibility\", void 0);\nPacemStickyHeaderElement = __decorate([\n CustomElement({ tagName: P + '-sticky-header' })\n], PacemStickyHeaderElement);\nexport { PacemStickyHeaderElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, PropertyConverters, Components, Utils, PropertyChangeEvent, Animations } from '@pacem/pacem-core';\nimport { AdapterOrientation } from './adapter';\n//namespace Pacem.Components.UI {\nconst PACEM_TAB_FOCUS_CSS = 'tab-focus';\nconst StringOrNodePropertyConverter = {\n convert: (attr, e) => {\n return attr.startsWith('#') ? PropertyConverters.Element.convert(attr, e) : PropertyConverters.String.convert(attr, e);\n },\n convertBack: (prop, e) => {\n return (prop instanceof Node) ? PropertyConverters.Element.convertBack(prop, e) : PropertyConverters.String.convertBack(prop, e);\n },\n retryConversionWhenReady: true\n};\n/** Single tab item, pairing a `label` with its content, hosted within a `PacemTabsElement`. */\nlet PacemTabElement = class PacemTabElement extends Components.PacemIterableElement {\n constructor() {\n super('tab');\n this._slotChangeHandler = (_) => {\n const old = this.#content;\n const val = this.#content = this.content;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'content', currentValue: val, oldValue: old }));\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._slotLabel.addEventListener('slotchange', this._slotChangeHandler, false);\n }\n disconnectedCallback() {\n const lbl = this._slotLabel;\n if (!Utils.isNull(lbl)) {\n lbl.removeEventListener('slotchange', this._slotChangeHandler, false);\n }\n super.disconnectedCallback();\n }\n #content;\n /** @readonly Gets the nodes assigned to the `label` slot. */\n get content() {\n return this.querySelectorAll('*[slot=label]');\n }\n};\n__decorate([\n ViewChild('slot[name=label]')\n], PacemTabElement.prototype, \"_slotLabel\", void 0);\n__decorate([\n Watch({ converter: StringOrNodePropertyConverter })\n], PacemTabElement.prototype, \"label\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemTabElement.prototype, \"key\", void 0);\nPacemTabElement = __decorate([\n CustomElement({\n tagName: P + '-tab', shadow: true, template: `<slot name=\"label\" part=\"label\"></slot><slot></slot>`\n })\n], PacemTabElement);\nexport { PacemTabElement };\n/** Iterates over `PacemTabElement` children, rendering a tab strip (via an adapter) and animating the transition between the active tab's content. */\nlet PacemTabsElement = class PacemTabsElement extends Components.PacemIterativeElement {\n constructor(_tweener = new Animations.TweenService()) {\n super(\"tablist\");\n this._tweener = _tweener;\n }\n _labelCallback(item, index) {\n const content = item.content;\n if (content.length > 0) {\n let assembled = '';\n content.forEach((node) => {\n assembled += node.outerHTML;\n });\n return assembled;\n }\n if (item.label instanceof Node) {\n return item.label;\n }\n return `<span class=\"${(item.key || 'tab')}\">${item.label}</span>`;\n }\n _syncOrientation(val = this.orientation) {\n if (!Utils.isNull(this._defaultTabAdapter)) {\n this._defaultTabAdapter.orientation = val;\n }\n if (!Utils.isNull(this._tabs)) {\n const fn = val === AdapterOrientation.Vertical ? Utils.addClass : Utils.removeClass;\n fn(this._tabs, 'tabs-vertical');\n }\n }\n _syncVisibility(val = this.index, old = -1) {\n const timeout = 500;\n // lock height\n const container = this._container, height = container.clientHeight;\n const style = getComputedStyle(container), padding = style.boxSizing === 'border-box' ? 0 : parseInt(style.paddingTop) + parseInt(style.paddingBottom);\n container.style.height = (height - padding) + 'px';\n let ndx = 0;\n for (let tab of this.items || []) {\n if (ndx === val) {\n Utils.addClass(tab, 'tab-in');\n requestAnimationFrame(() => {\n // wait for visibility digestion\n Utils.addClass(tab, PACEM_TAB_FOCUS_CSS);\n Utils.removeClass(tab, 'tab-in');\n Utils.addAnimationEndCallback(tab, (t) => {\n Utils.removeClass(t, 'tab-previous tab-next');\n const tgetH = Utils.offset(t).height /* + padding*/;\n this._tweener.run(parseInt(container.style.height), tgetH, 100, 0, Animations.Easings.sineOut, (_, v) => {\n container.style.height = Math.round(v) + 'px';\n })\n .then(_ => {\n // unlock height\n container.style.height = '';\n });\n }, timeout);\n });\n tab.aria.attributes.set('selected', 'true');\n }\n else {\n Utils.removeClass(tab, 'tab-previous tab-next');\n Utils.addClass(tab, ndx < val ? 'tab-previous' : 'tab-next');\n if (ndx === old) {\n Utils.addClass(tab, 'tab-out');\n Utils.removeClass(tab, PACEM_TAB_FOCUS_CSS);\n Utils.addAnimationEndCallback(tab, (t) => {\n Utils.removeClass(t, 'tab-out');\n }, timeout);\n tab.aria.attributes.set('selected', 'false');\n }\n }\n ndx++;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n //this._defaultTabAdapter.labelCallback = this._labelCallback;\n if (Utils.isNull(this.adapter)) {\n this._syncOrientation();\n this._syncVisibility();\n this.adapter = this._defaultTabAdapter;\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'adapter':\n if (Utils.isNull(val)) {\n this.adapter = this._defaultTabAdapter;\n }\n this._isUsingDefaultTabAdapter = this.adapter === this._defaultTabAdapter;\n break;\n case 'index':\n this._syncVisibility(val, old);\n break;\n case 'orientation':\n this._syncOrientation(val);\n break;\n }\n }\n validate(item) {\n return item instanceof PacemTabElement;\n }\n};\n__decorate([\n ViewChild(P + '-adapter')\n], PacemTabsElement.prototype, \"_defaultTabAdapter\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-tabs')\n], PacemTabsElement.prototype, \"_tabs\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-tabs-content')\n], PacemTabsElement.prototype, \"_container\", void 0);\n__decorate([\n Watch()\n], PacemTabsElement.prototype, \"_isUsingDefaultTabAdapter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemTabsElement.prototype, \"orientation\", void 0);\nPacemTabsElement = __decorate([\n CustomElement({\n tagName: P + '-tabs', shadow: false,\n template: `<div class=\"${PCSS}-tabs\">\r\n <${P}-adapter class=\"${PCSS}-tabs-adapter\" swipe-enabled=\"false\" hide=\"{{ !:host._isUsingDefaultTabAdapter }}\" label-callback=\"{{ :host._labelCallback }}\"></${P}-adapter>\r\n <div class=\"${PCSS}-tabs-content\">\r\n <${P}-content></${P}-content>\r\n </div>\r\n</div>`\n })\n], PacemTabsElement);\nexport { PacemTabsElement };\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 { P, CustomElement, ViewChild, Components, Utils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Displays scrolling/ticking content, animating the swap whenever its `content` changes. */\nlet PacemTickerElement = class PacemTickerElement extends Components.PacemSafeContentElement {\n constructor() {\n super(...arguments);\n this._contentChangeHandler = (evt) => {\n this._incoming.replaceChildren(...this.#newContent);\n Utils.addClass(this, 'ticking');\n Utils.addAnimationEndCallback(this._incoming, element => {\n Utils.removeClass(this, 'ticking');\n // swap content\n this._outgoing.replaceChildren(...this.#newContent);\n //this.#newContent = null;\n });\n };\n }\n #newContent;\n _tickContent(content = this.content) {\n if (typeof content === 'number') {\n content = content.toLocaleString();\n }\n if (typeof content === 'string') {\n const safeContent = this.sanitize(content);\n this.#newContent = this._buildMarkupNode(safeContent);\n }\n else if (content instanceof Node) {\n const safeContent = this.sanitize(content);\n this.replaceChildren(...(this.#newContent = [safeContent]));\n }\n else {\n const safeContent = content.map(a => this.sanitize(a));\n this.replaceChildren(...(this.#newContent = safeContent));\n }\n }\n _buildMarkupNode(html) {\n const tmpl = document.createElement('template');\n tmpl.innerHTML = html;\n return Array.from(tmpl.content.childNodes);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'content' && !first) {\n this._tickContent(val);\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._slot.addEventListener('slotchange', this._contentChangeHandler, false);\n const content = this.content ?? this._slot.assignedNodes();\n this._tickContent(content);\n }\n disconnectedCallback() {\n const slot = this._slot;\n if (!Utils.isNull(slot)) {\n slot.removeEventListener('slotchange', this._contentChangeHandler);\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n ViewChild('slot')\n], PacemTickerElement.prototype, \"_slot\", void 0);\n__decorate([\n ViewChild('div[part=ticker-outgoing]')\n], PacemTickerElement.prototype, \"_outgoing\", void 0);\n__decorate([\n ViewChild('div[part=ticker-incoming]')\n], PacemTickerElement.prototype, \"_incoming\", void 0);\nPacemTickerElement = __decorate([\n CustomElement({ tagName: P + '-ticker', shadow: true, template: `<div part=\"ticker-outgoing\"></div><div part=\"ticker-incoming\"></div><slot hidden></slot>` })\n], PacemTickerElement);\nexport { PacemTickerElement };\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};\nvar PacemToastElement_1;\nimport { P, PCSS, CustomElement, Watch, Components, Utils, PropertyConverters, CustomElementUtils, Transformer } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst PACEM_TOAST_POPS = \"pacem:toast:pops\";\n/** Dismissible toast/snackbar notification, with optional autohide. */\nlet PacemToastElement = PacemToastElement_1 = class PacemToastElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets whether the toast automatically hides itself after `timeout` milliseconds. */\n this.autohide = true;\n /** Gets or sets the autohide delay, in milliseconds. */\n this.timeout = 3000;\n this._doHide = (evt) => {\n window.clearTimeout(this._handle);\n this.show = false;\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this._doHide, false);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'show') {\n if (val !== true) {\n Utils.removeClass(this, 'toast-show');\n Utils.addClass(this, 'toast-hide');\n this.dispatchEvent(new CustomEvent('close'));\n Utils.waitForAnimationEnd(this, 1000).then(() => {\n Utils.removeClass(this, 'toast-hide');\n });\n }\n else {\n let order = CustomElementUtils.getAttachedPropertyValue(PacemToastElement_1, PACEM_TOAST_POPS, 0) - 1;\n CustomElementUtils.setAttachedPropertyValue(PacemToastElement_1, PACEM_TOAST_POPS, order);\n this.style.order = '' + order;\n Utils.addClass(this, 'toast-show');\n this._show();\n }\n }\n }\n disconnectedCallback() {\n this.removeEventListener('click', this._doHide, false);\n super.disconnectedCallback();\n }\n _show() {\n window.clearTimeout(this._handle);\n if (this.disabled) {\n return;\n }\n if (this.autohide) {\n this._handle = window.setTimeout(() => { this.show = false; }, this.timeout);\n }\n }\n /** Shows the toast, (re)starting the autohide timer if applicable. */\n popup() {\n if (this.show) {\n this._show();\n }\n else {\n this.show = true;\n }\n }\n /**\n * Opinionated shortcut/utility for toast spinning.\n * @param toaster Toast container\n * @param level Message criticity level\n * @param message The message\n * @param options Further options object\n */\n static toast(toaster, level, message, options) {\n var toast = new PacemToastElement_1();\n if (!Utils.isNullOrEmpty(options?.cssClass)) {\n const cssClass = Utils.isArray(options.cssClass) ? options.cssClass.join(' ') : options.cssClass;\n Utils.addClass(toast, cssClass);\n }\n else {\n toast.className = 'toast-' + level;\n }\n if (!Utils.isNull(options?.autohide)) {\n toast.autohide = options.autohide;\n }\n if (options?.timeout > 0) {\n toast.timeout = options.timeout;\n }\n // icon\n const icon = document.createElement('i');\n icon.className = PCSS + '-icon text-bigger-steady ' + PCSS + '-margin margin-right-1 flex-auto';\n var ligature = 'info';\n switch (level) {\n case 'danger':\n case 'error':\n ligature = 'error';\n break;\n case 'warning':\n ligature = 'warning';\n break;\n case 'success':\n ligature = 'check_circle';\n break;\n }\n icon.textContent = ligature;\n const container = document.createElement('div');\n Utils.addClass(container, 'display-flex flex-stretch flex-start flex-nowrap');\n container.appendChild(icon);\n // caption\n const caption = document.createElement('span');\n Utils.addClass(caption, 'text-small text-pre');\n if (typeof message === 'string') {\n caption.innerHTML = message;\n }\n else {\n caption.appendChild(message);\n }\n container.appendChild(caption);\n toast.appendChild(container);\n toaster.appendChild(toast);\n // promise\n return new Promise((resolve, _) => {\n window.setTimeout(() => {\n toast.popup();\n }, // needs some time to digest\n // state and transition\n 100);\n const callback = () => {\n toast.removeEventListener('close', callback, false);\n resolve();\n Utils.waitForAnimationEnd(toast, 1000).then(_ => {\n toast.remove();\n });\n };\n toast.addEventListener('close', callback, false);\n });\n }\n /**\n * Like `toast`, but renders the message inside a filled/bordered container for extra emphasis.\n * @param toaster Toast container\n * @param level Message criticity level\n * @param message The message\n * @param options Further options object\n */\n static toast2(toaster, level, message, options) {\n let cssClass = options?.cssClass;\n let cssArray = ['fill-' + level + '-container', 'fill-glass', 'border-solid', 'border-size--2', 'border-round', 'border-radius--6'];\n if (!Utils.isNullOrEmpty(cssClass)) {\n if (Utils.isArray(cssClass)) {\n Array.prototype.push.apply(cssArray, cssClass);\n }\n else {\n Array.prototype.push.apply(cssArray, cssClass.split(' '));\n }\n }\n return PacemToastElement_1.toast(toaster, level, message, Utils.extend({}, options ?? {}, { cssClass: cssArray }));\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemToastElement.prototype, \"autohide\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemToastElement.prototype, \"timeout\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemToastElement.prototype, \"show\", void 0);\n__decorate([\n Transformer(\"poptoast\")\n], PacemToastElement, \"toast\", null);\n__decorate([\n Transformer(\"poptoastcontainer\")\n], PacemToastElement, \"toast2\", null);\nPacemToastElement = PacemToastElement_1 = __decorate([\n CustomElement({\n tagName: P + '-toast'\n })\n], PacemToastElement);\nexport { PacemToastElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Components, Utils, PropertyConverters, Defaults, Animations, Debounce, avoidHandler } from '@pacem/pacem-core';\n//namespace Components.UI {\n/** Table-of-contents that lists the headings/elements matched by `selector`, highlighting and scrolling to the currently focused one. */\nlet PacemTocElement = class PacemTocElement extends Components.PacemElement {\n constructor(_tweener = new Animations.TweenService()) {\n super();\n this._tweener = _tweener;\n this._items = [];\n this._scrollToSelf = (evt) => {\n this._scrollTo('#' + evt.target.id);\n };\n this._hashChange = (evt) => {\n evt.preventDefault();\n this._scrollTo(window.location.hash, false);\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // url\n switch (name) {\n case 'target':\n if (!Utils.isNull(this._observer))\n this._observe();\n break;\n case 'selector':\n this.refresh();\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('hashchange', this._hashChange, false);\n }\n disconnectedCallback() {\n window.removeEventListener('hashchange', this._hashChange, false);\n if (!Utils.isNull(this._observer))\n this._observer.disconnect();\n super.disconnectedCallback();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._observer = new MutationObserver((e) => { this.refresh(); });\n this._observe();\n }\n _onScroll(evt) {\n this._update(Utils.scrollTop);\n }\n _observe() {\n this._observer.observe(this.target || document.body, { subtree: true, childList: true });\n }\n _getTop(dom) {\n return Utils.offset(dom).top;\n }\n _scrollTo(selector, tween = true) {\n if (/^#[^&=]+$/.test(selector)) {\n const dom = !Utils.isNullOrEmpty(selector) && document.querySelector(selector), item = !Utils.isNull(dom) && this._items.find(i => i.dom === dom);\n if (item && !Utils.isNull(item.dom)) {\n const tget = this._getTop(item.dom) - (this.offset || 0);\n if (tween) {\n let from = Utils.scrollTop;\n window.location.hash = item.dom.id;\n this._tweener.run(from, tget, 500, 0, Animations.Easings.sineInOut, (t, v) => {\n window.scrollTo(0, v);\n });\n }\n else {\n window.scrollTo(0, tget);\n }\n }\n }\n }\n _startScrollTo(item, evt) {\n avoidHandler(evt);\n this._scrollTo(item.url);\n }\n _update(top) {\n // pick focused item (fallback: first item)\n const zero = top + (this.offset || 0);\n var current = this._items && this._items.length > 0 && this._items[0];\n for (var item of this._items) {\n if (Utils.offset(item.dom).top <= zero)\n current = item;\n else\n break;\n }\n // update css\n const datasource = [];\n for (var item of this._items) {\n if (Utils.isNullOrEmpty(item.dom.id)) {\n item.dom.id = item.dom.innerText.trim().replace(/[^a-zA-Z0-9]/g, '-').replace(/-*$/, '').replace(/^-*/, '').toLowerCase();\n }\n datasource.push({ focus: item === current, label: item.dom.innerText, url: '#' + item.dom.id });\n }\n if (!Utils.isNull(this._repeater))\n this._repeater.datasource = datasource;\n }\n /** DOM might change while interacting with the page, this method allows extemporary resets. */\n refresh() {\n // reset items\n for (let item of this._items) {\n item.dom.removeEventListener('click', this._scrollToSelf, false);\n Utils.removeClass(item.dom, PCSS + '-toc-item');\n }\n //\n const selector = this.selector;\n if (Utils.isNullOrEmpty(selector)) {\n this._repeater && (this._repeater.datasource = []);\n this.hasContent = false;\n return;\n }\n const items = (this.target || document).querySelectorAll(selector), elements = [];\n for (let j = 0; j < items.length; j++) {\n const dom = items.item(j);\n dom.addEventListener('click', this._scrollToSelf, false);\n Utils.addClass(dom, PCSS + '-toc-item');\n elements.push({ dom: dom, top: this._getTop(dom) });\n }\n // bootstrap TOC\n this._items = elements;\n this._update(Utils.scrollTop);\n this.hasContent = !Utils.isNullOrEmpty(elements);\n // initial state\n let initialTarget = window.location.hash;\n if (!Utils.isNullOrEmpty(initialTarget)) {\n // in case of hash\n setTimeout(() => {\n this._scrollTo(initialTarget, true);\n }, 1000);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemTocElement.prototype, \"selector\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTocElement.prototype, \"offset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemTocElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemTocElement.prototype, \"router\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemTocElement.prototype, \"hasContent\", void 0);\n__decorate([\n ViewChild(P + '-repeater')\n], PacemTocElement.prototype, \"_repeater\", void 0);\n__decorate([\n Debounce(100)\n], PacemTocElement.prototype, \"_onScroll\", null);\n__decorate([\n Debounce(250)\n /** DOM might change while interacting with the page, this method allows extemporary resets. */\n], PacemTocElement.prototype, \"refresh\", null);\nPacemTocElement = __decorate([\n CustomElement({\n tagName: P + '-toc', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-scroll-aware on-${Components.ScrollEventName}=\":host._onScroll($event)\" url=\"{{ :host.url }}\"></${P}-scroll-aware>\r\n<${P}-repeater><nav class=\"${PCSS}-toc\"><template>\r\n <${P}-a on-click=\":host._startScrollTo(^item, $event)\" router=\"{{ :host.router }}\" css-class=\"{{ {'toc-focus': ^item.focus} }}\" href=\"{{ ^item.url }}\"><${P}-text text=\"{{ ^item.label }}\"></${P}-text></${P}-a>\r\n</template></nav></${P}-repeater>`\n })\n], PacemTocElement);\nexport { PacemTocElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Components, Utils, PropertyConverters, UI, Animations } from '@pacem/pacem-core';\nimport { Angle } from '@pacem/pacem-foundation';\n//namespace Pacem.Components.UI {\nconst TWO_PI = Math.PI * 2;\nfunction cartesian(cx, cy, r, theta) {\n return {\n x: cx + (r * Math.cos(theta)),\n y: cy + (r * Math.sin(theta))\n };\n}\n/** Circular dial/knob control for picking a numeric value between `min` and `max` by rotating a handle. */\nlet PacemTunerElement = class PacemTunerElement extends Components.PacemElement {\n constructor() {\n super();\n //#region INTERACTIVE\n /** Gets or sets the minimum selectable value. */\n this.min = 0.0;\n /** Gets or sets the maximum selectable value. */\n this.max = 100.0;\n this._rotateStartHandler = (evt) => {\n const angle = this.#angle = this._getAngle(evt);\n const r = this._rotate;\n r.minRotation = 0 - angle;\n r.maxRotation = TWO_PI - angle;\n this._setValue(angle);\n };\n this._rotateEndHandler = (evt) => {\n //this.#angle += evt.detail.rotation;\n };\n this._rotateHandler = (evt) => {\n evt.preventDefault();\n const angle = evt.detail.rotation + this.#angle;\n this._setValue(angle);\n };\n }\n #angle;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const rotate = this._rotate, tween = this._tween;\n rotate.addEventListener(UI.RotateEventType.Start, this._rotateStartHandler, false);\n rotate.addEventListener(UI.RotateEventType.Rotate, this._rotateHandler, false);\n rotate.addEventListener(UI.RotateEventType.End, this._rotateEndHandler, false);\n rotate.register(this._canvas);\n this._toggleRotate();\n //\n requestAnimationFrame(() => this._draw(this.min));\n //\n tween.easing = Animations.Easings.sineInOut;\n tween.delay = 500 + (Math.random() * 100 - 100);\n tween.start = this.value > this.min;\n }\n disconnectedCallback() {\n const rotate = this._rotate, canvas = this._canvas;\n if (!Utils.isNull(rotate)) {\n rotate.removeEventListener(UI.RotateEventType.Rotate, this._rotateHandler, false);\n if (!Utils.isNull(canvas)) {\n rotate.unregister(canvas);\n }\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'interactive':\n this._toggleRotate(val);\n if (!val)\n Utils.removeClass(this, 'tuner-interactive');\n else\n Utils.addClass(this, 'tuner-interactive');\n break;\n case 'round':\n if (Math.round(val) != val || val < 0)\n throw `${this.constructor.name}: round value must be an integer greater or equal to zero.`;\n break;\n default:\n // in any other case:\n this._draw();\n break;\n }\n }\n _toggleRotate(interactive = this.interactive) {\n const r = this._rotate;\n if (!Utils.isNull(r)) {\n r.disabled = !interactive;\n }\n }\n _angleToValue(angle) {\n const round = Math.pow(10, this.round || 0);\n const angleValue = this.min + angle * (this.max - this.min) / TWO_PI;\n return Math.round(round * angleValue) / round;\n }\n _valueToAngle(v = this.value ?? this.min) {\n return TWO_PI * (v - this.min) / (this.max - this.min);\n }\n _setValue(angle) {\n const value = this._angleToValue(angle).clamp(this.min, this.max);\n if (value != this.value) {\n this.value = value;\n this.dispatchEvent(new Event(\"change\"));\n }\n }\n /**\n * Returns the angle between the vertical line through 'center' and the line through 'center' and 'currentPosition'.\n * @param evt\n * @returns\n */\n _getAngle(evt) {\n const angle = {\n vertex: evt.detail.center,\n end: evt.detail.currentPosition,\n start: { x: evt.detail.center.x, y: evt.detail.center.y - 1 }\n };\n const alpha = Angle.value(angle);\n if (alpha > 0) {\n return TWO_PI - alpha;\n }\n else {\n return -alpha;\n }\n }\n //#endregion\n _draw(value = this.value) {\n if (this.disabled || Utils.isNull(this._rail)) {\n return;\n }\n value = (isNaN(value) ? this.min : value).clamp(this.min, this.max);\n const rail = this._rail;\n const counterRail = this._counterRail;\n const isMin = value === this.min, isMax = value === this.max;\n if (isMin || isMax) {\n const d = `M 50 50 m -50,0 a 50,50 0 1,1 100,0 a 50,50 0 1,1 -100,0`;\n rail.setAttribute('d', isMin ? '' : d);\n counterRail.setAttribute('d', isMax ? '' : d);\n }\n else {\n const mathPI2 = Math.PI * .5;\n // rail\n const from = cartesian(50, 50, 50, -mathPI2);\n const angle /* fraction of the round angle */ = this._valueToAngle(value);\n const to = cartesian(50, 50, 50, -mathPI2 + angle);\n const large = angle > Math.PI ? 1 : 0;\n const d = `M ${to.x} ${to.y} A 50 50 0 ${large} 0 ${from.x} ${from.y}`;\n rail.setAttribute('d', d);\n // counter rail\n const counterFrom = to;\n const counterTo = cartesian(50, 50, 50, 3 * mathPI2);\n const counterAngle /* fraction of the round angle */ = this._valueToAngle(this.max - value);\n const counterLarge = counterAngle > Math.PI ? 1 : 0;\n const counterD = `M ${counterTo.x} ${counterTo.y} A 50 50 0 ${counterLarge} 0 ${counterFrom.x} ${counterFrom.y}`;\n counterRail.setAttribute('d', counterD);\n }\n }\n};\n__decorate([\n ViewChild('svg')\n], PacemTunerElement.prototype, \"_canvas\", void 0);\n__decorate([\n ViewChild('path[part=rail]')\n], PacemTunerElement.prototype, \"_rail\", void 0);\n__decorate([\n ViewChild('path[part=complementary-rail]')\n], PacemTunerElement.prototype, \"_counterRail\", void 0);\n__decorate([\n ViewChild(P + '-tween')\n], PacemTunerElement.prototype, \"_tween\", void 0);\n__decorate([\n ViewChild(P + '-rotate')\n], PacemTunerElement.prototype, \"_rotate\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"value\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"min\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"max\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemTunerElement.prototype, \"interactive\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"round\", void 0);\nPacemTunerElement = __decorate([\n CustomElement({\n tagName: P + '-tuner', shadow: true,\n template: `<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"${PCSS}-tuner\" part=\"tuner\" viewBox=\"0 0 100 100\">\r\n <circle part=\"track\" cx=\"50\" cy=\"50\" r=\"50\" />\r\n <path part=\"rail\" />\r\n <path part=\"complementary-rail\" />\r\n </svg><div class=\"${PCSS}-content\" part=\"content\"><slot></slot></div>\r\n <${P}-rotate></${P}-rotate>\r\n<${P}-tween on-step=\":host._draw($event.detail.value)\" on-end=\"this.disabled = true\" duration=\"500\" to=\"{{ :host.value }}\" from=\"{{ :host.min }}\"></${P}-tween>`\n })\n], PacemTunerElement);\nexport { PacemTunerElement };\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 { P, CustomElement, Watch, PacemEventTarget, Utils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Triggers the device's vibration hardware (via the Vibration API) with a configurable pattern. */\nlet PacemVibrateElement = class PacemVibrateElement extends PacemEventTarget {\n /** Triggers a vibration using the current `pattern`, if supported by the browser and not disabled. */\n vibrate() {\n if (this.disabled) {\n return;\n }\n const pattern = this.pattern;\n if (!Utils.isNullOrEmpty(pattern)) {\n if (typeof navigator.vibrate === 'function') {\n navigator.vibrate(pattern);\n }\n }\n }\n};\n__decorate([\n Watch({\n emit: false, converter: {\n convert: (attr) => attr?.split(/[ ,]+/).map(i => parseInt(i)),\n convertBack: (prop) => prop?.join(' ')\n }\n })\n], PacemVibrateElement.prototype, \"pattern\", void 0);\nPacemVibrateElement = __decorate([\n CustomElement({ tagName: P + '-vibrate' })\n], PacemVibrateElement);\nexport { PacemVibrateElement };\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 { P, CustomElement, Watch, PacemEventTarget, Components, Utils, PropertyConverters, Logging, CustomElementUtils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst ANIM_TIMEOUT = 500;\nconst ElementOrStringPropertyConverter = {\n convert: (attr, element) => {\n try {\n return document.querySelector(attr) ?? (element.isConnected ? attr : null);\n }\n catch {\n return attr;\n }\n },\n convertBack: (prop) => (prop instanceof Element && prop.id) ? ('#' + prop.id) : prop,\n retryConversionWhenReady: true\n};\n/** Fetches and renders remote HTML (or a local `<template>`'s content) as its own inner content, dispatching `prerender`/`render` lifecycle events. */\nlet PacemViewElement = class PacemViewElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._templateChangeHandler = (evt) => {\n const tmplProxy = evt.target;\n this._setTmpl(tmplProxy.target);\n };\n this._debounceDispatchHandler = (e) => {\n clearTimeout(this.#resizeHandle);\n this.#resizeHandle = setTimeout(() => {\n if (e) {\n const resizer = e.srcElement;\n resizer.removeEventListener(Components.ResizeEventName, this._debounceDispatchHandler);\n resizer.remove();\n }\n //\n this.dispatchEvent(new CustomEvent(\"render\"));\n }, 100 /* tenth of a second limit */);\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // url\n if (name === 'url' || name === 'disabled') {\n this._dispose(old);\n this._manage();\n }\n else if (name === 'fetching') {\n (val ? Utils.addClass : Utils.removeClass)(this, 'view-fetching');\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const url = this.url;\n if (this._isReference(url) && !this.disabled) {\n this._manageRef();\n }\n }\n _isReference(url) {\n return url instanceof HTMLElement || (typeof url === 'string' && url.trim().startsWith('#'));\n }\n _dispose(url) {\n if (url instanceof Components.PacemTemplateProxyElement) {\n url.removeEventListener('templatechange', this._templateChangeHandler);\n }\n }\n _manage() {\n if (this.disabled) {\n return;\n }\n const debounce = this.debounce || 0, url = this.url;\n ;\n if (this._isReference(url)) {\n // <template>-based\n clearTimeout(this._fetchHandle);\n this._fetchHandle = setTimeout((() => this._manageRef()), debounce);\n }\n else if (typeof url === 'string' && !Utils.isNullOrEmpty(url)) {\n // url-based\n this.fetching = true;\n clearTimeout(this._fetchHandle);\n this._fetchHandle = setTimeout((() => this._manageUrl(url)), debounce);\n }\n else /* might be a reset */ {\n this.innerHTML = '';\n }\n }\n _manageRef() {\n const url = this.url, tmpl = url instanceof HTMLElement ? url : document.querySelector('template' + url);\n if (tmpl instanceof Components.PacemTemplateProxyElement) {\n tmpl.addEventListener('templatechange', this._templateChangeHandler, false);\n this._setTmpl(tmpl.target);\n }\n else if (tmpl instanceof HTMLTemplateElement) {\n this._setTmpl(tmpl);\n }\n else if (!Utils.isNull(tmpl)) {\n this.log(Logging.LogLevel.Error, `Invalid '${tmpl.constructor.name}' element, HTMLTemplate expected.`);\n }\n else {\n this.log(Logging.LogLevel.Error, `Template element not found.`);\n }\n }\n _setTmpl(tmpl) {\n cancelAnimationFrame(this._renderHandle);\n // this way, `this._container.innerHTML = ''` instruction will eventually let the page \"scroll up\"...\n this.innerHTML = '';\n this._dispatchPrerender();\n this._renderHandle = requestAnimationFrame(() => {\n if (Utils.isNull(tmpl)) {\n this.log(Logging.LogLevel.Error, `Template element not found.`);\n return;\n }\n this.appendChild(tmpl.cloneNode(true).content);\n this._dispatchRender();\n });\n }\n #aborter;\n _manageUrl(url) {\n if (this.#aborter) {\n this.#aborter.abort();\n }\n const { signal } = this.#aborter = new AbortController();\n fetch(url, { credentials: 'same-origin', signal }).then(async (r) => {\n // inline function\n const manageYield = (r, htmlPromise) => {\n if ((r.status === 301 || r.status === 302) && this.followRedirects) {\n this._manageUrl(r.headers.get(\"Location\"));\n }\n else if (r.ok || this.renderErrors) {\n htmlPromise.then((html) => Utils.addAnimationEndCallback(this, () => this._manageResult(html), ANIM_TIMEOUT));\n }\n // fallback to empty content.\n else\n this._manageResult('');\n };\n const contentLength = +r.headers.get('Content-Length');\n if (contentLength > 0) {\n this.progress = 0;\n let received = 0;\n const chunks = [];\n // progress available\n const reader = r.body.getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n this.progress = (received += value.length) / contentLength;\n chunks.push(value);\n }\n manageYield(r, new Promise((resolve, reject) => {\n try {\n let allChunks = new Uint8Array(received);\n let position = 0;\n for (let chunk of chunks) {\n allChunks.set(chunk, position);\n position += chunk.length;\n }\n const html = new TextDecoder(\"utf-8\").decode(allChunks);\n resolve(html);\n }\n catch (e) {\n reject(e);\n }\n }));\n }\n else {\n manageYield(r, r.text());\n }\n }, _ => {\n // do nothing on fail\n });\n }\n _manageResult(result) {\n // this way, `this._container.innerHTML = ''` instruction will eventually let the page \"scroll up\"...\n cancelAnimationFrame(this._renderHandle);\n this.scrollTo({ top: 0, left: 0, behavior: 'instant' });\n this.innerHTML = '';\n this._dispatchPrerender();\n this._renderHandle = requestAnimationFrame(() => {\n this.innerHTML = result;\n this.fetching = false;\n this.progress = Number.NaN;\n // setting fetching to `false` triggers a css class change that could/should cause a css transition to happen\n // TODO: manage to switch to native in a near future (https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API or https://youtu.be/oDcb3fvtETs)\n Utils.addAnimationEndCallback(this, () => {\n this._dispatchRender();\n }, ANIM_TIMEOUT);\n });\n }\n #resizeHandle;\n _dispatchRender() {\n const resizer = new Components.PacemResizeElement();\n resizer.target = this;\n resizer.addEventListener(Components.ResizeEventName, this._debounceDispatchHandler);\n CustomElementUtils.findAncestorShell(this).appendChild(resizer);\n this._debounceDispatchHandler();\n }\n _dispatchPrerender() {\n this.dispatchEvent(new CustomEvent(\"prerender\"));\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: ElementOrStringPropertyConverter })\n], PacemViewElement.prototype, \"url\", void 0);\n__decorate([\n Watch()\n], PacemViewElement.prototype, \"fetching\", void 0);\n__decorate([\n Watch()\n], PacemViewElement.prototype, \"progress\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemViewElement.prototype, \"renderErrors\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemViewElement.prototype, \"followRedirects\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemViewElement.prototype, \"debounce\", void 0);\nPacemViewElement = __decorate([\n CustomElement({\n tagName: P + '-view'\n })\n], PacemViewElement);\nexport { PacemViewElement };\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 { P, PCSS, CustomElement, Watch, Components, UI, Utils, PropertyConverters, Defaults, CustomElementUtils, PropertyChangeEventName } from '@pacem/pacem-core';\nimport { AdapterPageButtonRefreshEventName } from './adapter';\n//namespace Pacem.Components.UI {\nconst HANDLE_CSS = 'window-title';\n/** Container that arranges `PacemWindowElement` children as draggable/resizable floating windows, or docks them one at a time via an adapter. */\nlet PacemWindowAreaElement = class PacemWindowAreaElement extends Components.PacemIterativeElement {\n constructor() {\n super(...arguments);\n this._zIndex = 1;\n this._startHandler = (evt) => {\n this._incrementZIndex(evt.detail.element);\n Utils.addClass(evt.detail.element, 'window-rescaling');\n };\n this._blurHandler = (evt) => {\n Utils.removeClass(evt.detail.element, 'window-rescaling');\n };\n this._focusHandler = (evt) => {\n this._incrementZIndex(evt.currentTarget);\n };\n this._itemPropertyChangeHandler = (evt) => {\n if (evt.detail.propertyName === 'floating' && evt.detail.currentValue === false) {\n const item = evt.currentTarget, ndx = this.items.indexOf(item);\n Utils.addClass(item, 'docking-in');\n this.adapter.select(ndx);\n Utils.addAnimationEndCallback(item, (e) => {\n Utils.removeClass(e, 'docking-in');\n }, 150);\n }\n };\n this._adapterPagerCallback = (evt) => {\n const index = evt.detail.index, item = this.items[index];\n evt.detail.hide = item.hide || item.floating;\n };\n }\n validate(item) {\n return item instanceof PacemWindowElement;\n }\n _incrementZIndex(target) {\n if (this._zIndex != parseInt(target.style.zIndex)) {\n target.style.zIndex = '' + (++this._zIndex);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n let shell = CustomElementUtils.findAncestorShell(this);\n this._behaviors = [\n shell.appendChild(this._dragDrop = document.createElement(P + '-drag-drop')),\n shell.appendChild(this._rescale = document.createElement(P + '-rescale'))\n ];\n this._dragDrop.handleSelector = '.' + HANDLE_CSS;\n //this._dragDrop.addEventListener(DragDropEventType.Init, this._focusHandler, false);\n this._rescale.addEventListener(UI.RescaleEventType.Start, this._startHandler, false);\n this._rescale.addEventListener(UI.RescaleEventType.End, this._blurHandler, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n // adapter (reuse)\n if (Utils.isNull(this.adapter)) {\n const adapter = this.adapter = this.appendChild(document.createElement(P + '-adapter'));\n Utils.addClass(adapter, 'windows-adapter');\n adapter.labelCallback = (item, _) => {\n return item.caption;\n };\n adapter.swipeEnabled = false;\n adapter.deselectable = true;\n adapter.initialize(this);\n }\n this.adapter.addEventListener(AdapterPageButtonRefreshEventName, this._adapterPagerCallback, false);\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.adapter)) {\n this.adapter.removeEventListener(AdapterPageButtonRefreshEventName, this._adapterPagerCallback, false);\n this.adapter.remove();\n this.adapter = null;\n }\n //this._dragDrop.removeEventListener(DragDropEventType.Init, this._focusHandler, false);\n this._rescale.removeEventListener(UI.RescaleEventType.End, this._blurHandler, false);\n this._rescale.removeEventListener(UI.RescaleEventType.Start, this._startHandler, false);\n for (let b of this._behaviors) {\n b.remove();\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'index') {\n this._syncVisibility();\n }\n }\n /** Registers a window item, wiring drag/resize behaviors and focus tracking; returns whether it was newly added. */\n register(item) {\n const retval = super.register(item);\n if (retval) {\n item.addEventListener(PropertyChangeEventName, this._itemPropertyChangeHandler, false);\n item.addEventListener('mousedown', this._focusHandler, false);\n for (let b of this._behaviors) {\n const ndx = item.behaviors.indexOf(b);\n if (ndx === -1) {\n item.behaviors.push(b);\n }\n }\n }\n return retval;\n }\n /** Unregisters a window item, tearing down its drag/resize behaviors; returns whether it was found and removed. */\n unregister(item) {\n const retval = super.unregister(item);\n if (retval) {\n item.removeEventListener(PropertyChangeEventName, this._itemPropertyChangeHandler, false);\n item.removeEventListener('mousedown', this._focusHandler, false);\n for (let b of this._behaviors) {\n const ndx = item.behaviors.indexOf(b);\n if (ndx >= 0) {\n item.behaviors.splice(ndx, 1);\n }\n }\n }\n return retval;\n }\n _syncVisibility() {\n let ndx = 0;\n const items = this.items ?? [];\n for (let item of items) {\n if (ndx === this.index) {\n Utils.addClass(item, 'dock-open');\n }\n else {\n Utils.removeClass(item, 'dock-open');\n }\n ndx++;\n }\n }\n};\nPacemWindowAreaElement = __decorate([\n CustomElement({\n tagName: P + '-window-area'\n })\n], PacemWindowAreaElement);\nexport { PacemWindowAreaElement };\n/** Single draggable, resizable, and dockable window pane hosted within a `PacemWindowAreaElement`. */\nlet PacemWindowElement = class PacemWindowElement extends Components.PacemIterableElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'minimized' || name === 'floating') {\n this._syncLayout();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._syncLayout();\n }\n _syncLayout() {\n (this.minimized ? Utils.addClass : Utils.removeClass).apply(this, [this, 'window-min']);\n (this.floating ? Utils.removeClass : Utils.addClass).apply(this, [this, 'window-dock']);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemWindowElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWindowElement.prototype, \"minimized\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWindowElement.prototype, \"floating\", void 0);\nPacemWindowElement = __decorate([\n CustomElement({\n tagName: P + '-window', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${HANDLE_CSS}\">\r\n <${P}-text text=\"{{ :host.caption || 'Window' }}\"></${P}-text>\r\n</div>\r\n<div class=\"window-buttons ${PCSS}-buttonset\"><div class=\"buttonset-right\">\r\n <${P}-button class=\"button\" on-click=\":host.minimized = !:host.minimized\" icon-glyph=\"{{ :host.minimized ? 'maximize' : 'minimize' }}\" hide=\"{{ !:host.floating }}\"></${P}-button>\r\n <${P}-button class=\"button\" on-click=\":host.floating = !:host.floating\" css-class=\"{{ {'buttonset-first': !:host.floating} }}\" icon-glyph=\"{{ :host.floating? 'lock_open' : 'lock' }}\"></${P}-button>\r\n</div></div>\r\n<div class=\"window-content\"><${P}-content></${P}-content></div>`\n })\n], PacemWindowElement);\nexport { PacemWindowElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","Components","Utils","CustomElementUtils","avoidHandler","UI","ViewChild","P","PCSS","Debounce","Watch","PropertyConverters","Throttle","CustomElement","Defaults","PropertyChangeEvent","preventDefaultHandler","stopPropagationHandler","CustomUIEvent","Point","OPEN_CSSCLASS","CustomTypedEvent","Logging","CommandEvent","PropertyChangeEventName","PacemEventTarget","Compile","Animations","Transformer","Angle","DeepMerger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pacem-ui.js","sources":["../esm/adapter.js","../esm/anchor.js","../esm/types.js","../esm/balloon.js","../esm/binder.js","../esm/blade.js","../esm/lightbox-abstractions.js","../esm/bottom-sheet.js","../esm/dialog-abstractions.js","../esm/button.js","../esm/buttonset.js","../esm/calendar.js","../esm/collapse.js","../esm/dialog.js","../esm/divider.js","../esm/icon.js","../esm/image.js","../esm/infinite-scroller.js","../esm/iterative.js","../esm/lightbox.js","../esm/loader.js","../esm/markdown-svc.js","../esm/markdown.js","../esm/marquee.js","../esm/media-query.js","../esm/menu.js","../esm/pager.js","../esm/picture.js","../esm/progressbar.js","../esm/sidebar.js","../esm/slideshow.js","../esm/social-twitter.js","../esm/sticky-header.js","../esm/tabs.js","../esm/ticker.js","../esm/toast.js","../esm/toc.js","../esm/tuner.js","../esm/vibration.js","../esm/view.js","../esm/window.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 { P, PCSS, Defaults, CustomElement, ViewChild, Watch, Utils, PropertyConverters, Debounce, avoidHandler, Throttle, CustomElementUtils } from '@pacem/pacem-core';\nimport { Components, UI } from '@pacem/pacem-core';\nconst { PacemElement, RepeaterItemCreateEventName, ItemRegisterEventName, ItemUnregisterEventName } = Components;\n//namespace Pacem.Components.UI {\n/** Orientation used by a {@link PacemAdapterElement} to interpret arrow-key navigation. */\nexport var AdapterOrientation;\n(function (AdapterOrientation) {\n AdapterOrientation[\"Vertical\"] = \"vertical\";\n AdapterOrientation[\"Horizontal\"] = \"horizontal\";\n})(AdapterOrientation || (AdapterOrientation = {}));\nexport const AdapterPageButtonRefreshEventName = 'pagerefresh';\n/** Event dispatched by {@link PacemAdapterElement} whenever a page/dashboard button needs to (re)compute its visible state or content. */\nexport class AdapterPageButtonRefreshEvent extends CustomEvent {\n constructor(args) {\n super(AdapterPageButtonRefreshEventName, { detail: args, bubbles: false, cancelable: false });\n }\n}\n/** Renders a dashboard of prev/next buttons and page indicators driving a {@link Components.PacemAdapter} (e.g. a `<pacem-slideshow>` master). */\nlet PacemAdapterElement = class PacemAdapterElement extends Components.PacemAdapter {\n constructor() {\n super(...arguments);\n this._itemCreatedHandler = (evt) => {\n const index = evt.detail.index;\n this._pageMap.set(index, evt.detail.dom[0].firstElementChild);\n this._fireAdapterPageRefreshCallback(index, evt.detail.item);\n };\n this._pageMap = new Map();\n /** Gets or sets whether the dashboard responds to user interaction (keyboard, click, swipe). */\n this.interactive = true;\n /** Gets or sets whether swipe gesture is enabled for navigation (also depends on the 'interactive' flag being set to 'true') */\n this.swipeEnabled = true;\n /** Gets or sets whether navigating past the last (or before the first) item wraps around. */\n this.loop = true;\n /** Gets or sets the callback computing a page button's caption for a given item/index (defaults to the 1-based index). */\n this.labelCallback = (item, index) => (index + 1).toString();\n this._itemRegisterHandler = (evt) => {\n let item = evt.detail;\n if (!Utils.isNull(this._swiper) && item instanceof PacemElement && item.behaviors.indexOf(this._swiper) == -1)\n item.behaviors.push(this._swiper);\n };\n this._itemUnregisterHandler = (evt) => {\n let item = evt.detail, index;\n if (!Utils.isNull(this._swiper) && item instanceof PacemElement && (index = item.behaviors.indexOf(this._swiper)) >= 0)\n item.behaviors.splice(index, 1);\n };\n this._keydownHandler = (evt) => {\n if (!this.interactive) {\n return;\n }\n switch (this.orientation) {\n case AdapterOrientation.Vertical:\n switch (evt.keyCode) {\n case 40: // down\n this._next(evt);\n break;\n case 38: // up\n this._previous(evt);\n break;\n }\n break;\n default:\n // horizontal\n switch (evt.keyCode) {\n case 39: // right\n this._next(evt);\n break;\n case 37: // left\n this._previous(evt);\n break;\n }\n break;\n }\n };\n }\n masterPropertyChangedCallback(name, old, val, first) {\n super.masterPropertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'items':\n this._syncViewWithItems();\n break;\n case 'index':\n this._index = val;\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._repeater.addEventListener(RepeaterItemCreateEventName, this._itemCreatedHandler, false);\n this._syncViewWithItems();\n }\n disconnectedCallback() {\n if (this._repeater) {\n this._repeater.removeEventListener(RepeaterItemCreateEventName, this._itemCreatedHandler, false);\n }\n super.disconnectedCallback();\n }\n initializeCallback() {\n super.initializeCallback();\n this.addEventListener('keydown', this._keydownHandler, false);\n const el = this.master;\n //\n if (!Utils.isNull(el)) {\n const tab = this._previousTabIndex = el.tabIndex;\n if (!tab || tab < 0)\n el.tabIndex = 0;\n el.addEventListener('keydown', this._keydownHandler, false);\n el.addEventListener(ItemRegisterEventName, this._itemRegisterHandler, false);\n el.addEventListener(ItemUnregisterEventName, this._itemUnregisterHandler, false);\n }\n //\n this._syncViewWithItems();\n }\n destroyCallback() {\n this.removeEventListener('keydown', this._keydownHandler, false);\n const el = this.master;\n if (!Utils.isNull(el)) {\n el.removeEventListener('keydown', this._keydownHandler, false);\n el.removeEventListener(ItemRegisterEventName, this._itemRegisterHandler, false);\n el.removeEventListener(ItemUnregisterEventName, this._itemUnregisterHandler, false);\n if (!Utils.isNullOrEmpty(el.items)) {\n for (let item of el.items) {\n const behaviors = item.behaviors, ndx = behaviors.indexOf(this._swiper);\n if (ndx >= 0) {\n behaviors.splice(ndx, 1);\n }\n }\n }\n el.tabIndex = this._previousTabIndex;\n }\n super.destroyCallback();\n }\n itemPropertyChangedCallback(index, name, old, val, first) {\n super.itemPropertyChangedCallback(index, name, old, val, first);\n // tick overall version\n this._tickVersion();\n this._fireAdapterPageRefreshCallback(index);\n }\n _fireAdapterPageRefreshCallback(index, item) {\n item = item || this.master.items[index];\n var hide = item.hide || false, disable = item.disabled || false, caption = this._labelCallback(item, index);\n const evt = new AdapterPageButtonRefreshEvent({ index: index, hide: hide, disabled: disable, content: caption });\n this.dispatchEvent(evt);\n // receive/accept changes\n hide = this._isHidden(item, index, evt.detail.hide);\n disable = this._isDisabled(item, index, evt.detail.disabled);\n caption = evt.detail.content;\n // pick target button\n const pagers = this._pageMap;\n if (pagers.has(index)) {\n const pager = pagers.get(index), span = pager.firstElementChild;\n const fn = () => {\n pager.hide = hide;\n pager.disabled = disable;\n span.content = caption;\n };\n // *careful here*: TODO: TO BE STUDIED\n // if setting the property before it's connected\n // the @Watch configuration and the get+set injection gets lost!\n CustomElementUtils.whenReady(pager, fn);\n }\n }\n _tickVersion() {\n this._v = Date.now();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'interval':\n this._resetTimer(val);\n break;\n case 'swipeEnabled':\n this._swiper.disabled = !val || !this.interactive;\n break;\n case 'interactive':\n this.hidden = !val;\n this._swiper.disabled = !val || !this.swipeEnabled;\n break;\n case 'pausable':\n if (val == true)\n this._liPause.removeAttribute('hidden');\n else\n this._liPause.setAttribute('hidden', 'hidden');\n break;\n }\n }\n _syncViewWithItems() {\n if (!this.isReady\n || Utils.isNull(this.master)\n || Utils.isNull(this._prevBtn)\n || Utils.isNull(this._nextBtn)\n || Utils.isNull(this._repeater))\n return;\n var val = this.master.items;\n this._prevBtn.hide = this._nextBtn.hide = this._panel.hide = !(val && val.length > 1);\n this._panel.hide = Utils.isNullOrEmpty(val);\n this._repeater.datasource = val;\n this._index = this.master.index;\n if (!Utils.isNullOrEmpty(val)) {\n for (let item of val) {\n if (item instanceof PacemElement && item.behaviors.indexOf(this._swiper) == -1)\n item.behaviors.push(this._swiper);\n }\n }\n }\n _toggle(evt) {\n const p = this._paused = !this._paused;\n if (p) {\n avoidHandler(evt);\n this._resetTimer(0);\n }\n else {\n this._next(evt);\n }\n }\n _resetTimer(val) {\n clearInterval(this._handle);\n if (val > 0)\n this._handle = window.setInterval(() => {\n super.next();\n }, val);\n }\n _next(evt) {\n if (evt.type !== UI.SwipeEventType.SwipeLeft)\n avoidHandler(evt);\n this._resetTimer(this.interval);\n super.next(this.loop);\n }\n _previous(evt) {\n if (evt.type !== UI.SwipeEventType.SwipeRight)\n avoidHandler(evt);\n this._resetTimer(this.interval);\n super.previous(this.loop);\n }\n _select(ndx, evt) {\n avoidHandler(evt);\n this._resetTimer(this.interval);\n if (!this.deselectable || ndx !== this._index) {\n super.select(ndx);\n }\n else {\n this.master.index = this._index = -1;\n }\n }\n _isDisabled(item, index, disabled, v) {\n return this._disableOrHide(item, index, disabled);\n }\n _isHidden(item, index, hide, v) {\n return this._disableOrHide(item, index, hide);\n }\n _disableOrHide(item, index, disabledOrHidden) {\n const retval = item instanceof PacemElement && disabledOrHidden === true;\n if ((this._index === -1 && retval === false) || (retval === true && index === this._index)) {\n if (this.deselectable) {\n this.master.index = this._index = -1;\n }\n else {\n super.select(index);\n }\n }\n return retval;\n }\n _labelCallback(item, index, v) {\n return this.labelCallback(item, index);\n }\n};\n__decorate([\n ViewChild(P + '-repeater')\n], PacemAdapterElement.prototype, \"_repeater\", void 0);\n__decorate([\n ViewChild(P + '-button.' + PCSS + '-adapter-previous')\n], PacemAdapterElement.prototype, \"_prevBtn\", void 0);\n__decorate([\n ViewChild(P + '-button.' + PCSS + '-adapter-next')\n], PacemAdapterElement.prototype, \"_nextBtn\", void 0);\n__decorate([\n ViewChild(P + '-panel')\n], PacemAdapterElement.prototype, \"_panel\", void 0);\n__decorate([\n ViewChild(P + '-swipe')\n], PacemAdapterElement.prototype, \"_swiper\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-adapter-dashboard > li[pacem]')\n], PacemAdapterElement.prototype, \"_liPause\", void 0);\n__decorate([\n Debounce()\n], PacemAdapterElement.prototype, \"_tickVersion\", null);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"pausable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemAdapterElement.prototype, \"interval\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemAdapterElement.prototype, \"orientation\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"interactive\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"swipeEnabled\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"deselectable\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemAdapterElement.prototype, \"loop\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemAdapterElement.prototype, \"labelCallback\", void 0);\n__decorate([\n Watch()\n], PacemAdapterElement.prototype, \"_index\", void 0);\n__decorate([\n Watch()\n], PacemAdapterElement.prototype, \"_paused\", void 0);\n__decorate([\n Watch()\n], PacemAdapterElement.prototype, \"_v\", void 0);\n__decorate([\n Throttle(333)\n], PacemAdapterElement.prototype, \"_next\", null);\n__decorate([\n Throttle(333)\n], PacemAdapterElement.prototype, \"_previous\", null);\nPacemAdapterElement = __decorate([\n CustomElement({\n tagName: P + '-adapter', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-button class=\"${PCSS}-adapter-previous\" on-click=\":host._previous($event)\"><</${P}-button>\r\n <${P}-button class=\"${PCSS}-adapter-next\" on-click=\":host._next($event)\">></${P}-button>\r\n <${P}-swipe on-swipeleft=\":host._next($event)\" on-swiperight=\":host._previous($event)\"></${P}-swipe>\r\n <${P}-panel tabindex=\"0\">\r\n <${P}-repeater>\r\n <ol class=\"${PCSS}-adapter-dashboard\">\r\n <li pacem hidden>\r\n <${P}-button class=\"${PCSS}-play-pause\"\r\n css-class=\"{{ {'paused' : :host._paused, 'playing': !:host._paused } }}\" \r\n disabled=\"{{ !:host.pausable }}\" on-click=\":host._toggle($event)\"></${P}-button>\r\n </li>\r\n <template>\r\n <li>\r\n <${P}-button on-click=\":host._select(^index, $event)\" class=\"${PCSS}-adapter-page\" css-class=\"{{ { '${PCSS}-adapter-active': ^index === :host._index } }}\">\r\n <${P}-span></${P}-span>\r\n </${P}-button>\r\n </li>\r\n </template>\r\n </ol></${P}-repeater></${P}-panel>`\n })\n], PacemAdapterElement);\nexport { PacemAdapterElement };\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, PropertyChangeEvent } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n// TODO: shadow-ize and reuse native <a> element.\n/** Anchor-like custom element, supporting routed navigation (via a {@link Components.PacemRouterElement}), OAuth-authenticated downloads and keyboard activation. */\nlet PacemAnchorElement = class PacemAnchorElement extends Components.PacemElement {\n constructor() {\n super('link');\n this._fetching = false;\n }\n /** @readonly Gets whether a `download` fetch is currently in progress. */\n get fetching() {\n return this._fetching;\n }\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('tab-order')) {\n this.tabOrder = 0;\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'target':\n (Utils.isNullOrEmpty(val) ? Utils.removeClass : Utils.addClass)(this, 'a-target');\n break;\n case 'href':\n (Utils.isNull(val) ? Utils.removeClass : Utils.addClass)(this, 'a-url');\n break;\n case 'download':\n (Utils.isNullOrEmpty(val) ? Utils.removeClass : Utils.addClass)(this, 'a-download');\n break;\n }\n }\n emit(evt) {\n super.emit(evt);\n if (this.disabled) {\n return;\n }\n switch (evt.type) {\n case 'mousedown':\n Utils.addClass(this, PCSS + '-active');\n break;\n case 'keydown':\n if (evt.key === 'Enter') {\n evt.preventDefault();\n Utils.addClass(this, PCSS + '-active');\n }\n break;\n case 'blur':\n case 'mouseup':\n Utils.removeClass(this, PCSS + '-active');\n break;\n case 'keyup':\n if (evt.key === 'Enter') {\n this.click();\n Utils.removeClass(this, PCSS + '-active');\n }\n break;\n }\n const href = this.href, target = this.target, router = this.router, filename = this.download;\n const url = () => {\n return Utils.isNull(router) ? href : Utils.URIs.format(href, router.state);\n };\n if (!Utils.isNull(href) && !evt.defaultPrevented) {\n if ((evt.type === 'click' && evt.ctrlKey) || (evt.type === 'mousedown' && evt.button === 1)) {\n // 1. middle-click or ctrl+click\n window.open(url(), '_blank');\n }\n else if (evt.type === 'click') {\n // 2. download\n if (filename === true) {\n this._download(url());\n }\n else if (typeof filename === 'string' && !Utils.isNullOrEmpty(filename)) {\n this._download(url(), filename);\n }\n // 3. targeting other window\n else if (!Utils.isNullOrEmpty(target)) {\n window.open(url(), target);\n }\n // 4. routed navigation\n else if (!Utils.isNull(router)) {\n // old implementation memento: Pacem.preventDefaultHandler(evt);\n // trigger router `navigate()`\n router.path = href;\n }\n // 5. standard behavior\n else {\n location.assign(href);\n }\n }\n }\n }\n async _download(url, filename) {\n this.dispatchEvent(new PropertyChangeEvent({\n propertyName: 'fetching', oldValue: this._fetching, currentValue: this._fetching = true\n }));\n try {\n await Utils.download(url, { credentials: this.fetchCredentials, headers: this.fetchHeaders, filename: filename });\n }\n finally {\n this.dispatchEvent(new PropertyChangeEvent({\n propertyName: 'fetching', oldValue: this._fetching, currentValue: this._fetching = false\n }));\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemAnchorElement.prototype, \"fetchCredentials\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemAnchorElement.prototype, \"fetchHeaders\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemAnchorElement.prototype, \"href\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemAnchorElement.prototype, \"target\", void 0);\n__decorate([\n Watch({\n reflectBack: false, converter: {\n convert: (attr) => {\n switch (attr) {\n case 'true':\n return true;\n case 'false':\n return false;\n default:\n return attr;\n }\n }, convertBack: (prop) => prop\n }\n })\n], PacemAnchorElement.prototype, \"download\", void 0);\n__decorate([\n Watch({ reflectBack: false, converter: PropertyConverters.Element })\n], PacemAnchorElement.prototype, \"router\", void 0);\nPacemAnchorElement = __decorate([\n CustomElement({\n tagName: P + '-a'\n })\n], PacemAnchorElement);\nexport { PacemAnchorElement };\n","/** Converts an attribute value into an `Element` (resolved via `querySelector`) or, failing that, a parsed `Point`/JSON value. */\nexport const ElementOrPointPropertyConverter = {\n convert: (attr) => {\n let el = document.querySelector(attr);\n return el ?? JSON.parse(attr);\n }\n};\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, PropertyChangeEvent, ViewChild, stopPropagationHandler, preventDefaultHandler } from '@pacem/pacem-core';\nimport { ElementOrPointPropertyConverter } from './types';\n//namespace Pacem.Components.UI {\n/** How a {@link PacemBalloonElement} behaves once popped up: a dismissible menu, a tooltip, or non-interactive. */\nexport var BalloonBehavior;\n(function (BalloonBehavior) {\n BalloonBehavior[\"Menu\"] = \"menu\";\n BalloonBehavior[\"Tooltip\"] = \"tooltip\";\n BalloonBehavior[\"Inert\"] = \"inert\";\n})(BalloonBehavior || (BalloonBehavior = {}));\n/** The user interaction on `target` that pops a {@link PacemBalloonElement} up. */\nexport var BalloonTrigger;\n(function (BalloonTrigger) {\n BalloonTrigger[\"Hover\"] = \"hover\";\n BalloonTrigger[\"Click\"] = \"click\";\n BalloonTrigger[\"ContextMenu\"] = \"contextmenu\";\n BalloonTrigger[\"Focus\"] = \"focus\";\n})(BalloonTrigger || (BalloonTrigger = {}));\n/** Cross-axis alignment of a {@link PacemBalloonElement} relative to its `target`. */\nexport var BalloonAlignment;\n(function (BalloonAlignment) {\n BalloonAlignment[\"Start\"] = \"start\";\n BalloonAlignment[\"Center\"] = \"center\";\n BalloonAlignment[\"End\"] = \"end\";\n BalloonAlignment[\"Auto\"] = \"auto\";\n})(BalloonAlignment || (BalloonAlignment = {}));\n/** Side of `target` a {@link PacemBalloonElement} is anchored to (with automatic variants that pick the side with the most room). */\nexport var BalloonPosition;\n(function (BalloonPosition) {\n BalloonPosition[\"Top\"] = \"top\";\n BalloonPosition[\"Left\"] = \"left\";\n BalloonPosition[\"Bottom\"] = \"bottom\";\n BalloonPosition[\"Right\"] = \"right\";\n BalloonPosition[\"Auto\"] = \"auto\";\n BalloonPosition[\"HorizontalAuto\"] = \"x\";\n BalloonPosition[\"VerticalAuto\"] = \"y\";\n})(BalloonPosition || (BalloonPosition = {}));\n/** Whether a {@link PacemBalloonElement} sizes itself freely or matches its `target`'s size along the anchored axis. */\nexport var BalloonSizing;\n(function (BalloonSizing) {\n BalloonSizing[\"Auto\"] = \"auto\";\n BalloonSizing[\"Match\"] = \"match\";\n})(BalloonSizing || (BalloonSizing = {}));\n/** Event name fired by {@link PacemBalloonElement} once it has finished popping up (after the show transition). */\nexport const BalloonPopupEventName = 'popup';\n/** Event name fired by {@link PacemBalloonElement} once it has finished popping out (after the hide transition). */\nexport const BalloonPopoutEventName = 'popout';\nconst BalloonConsts = {\n Defaults: {\n 'trigger': BalloonTrigger.Hover,\n 'position': BalloonPosition.Auto,\n 'size': BalloonSizing.Auto,\n 'behavior': BalloonBehavior.Menu,\n 'verticalOffset': 0,\n 'horizontalOffset': 0,\n 'hoverDelay': 250,\n 'hoverTimeout': 500,\n 'align': BalloonAlignment.Center,\n 'track': true\n }\n};\nconst positioningStyles = 'balloon-right balloon-left balloon-bottom balloon-top balloon-start balloon-center balloon-end';\nconst allStyles = PCSS + '-balloon ' + positioningStyles + ' balloon-out balloon-in balloon-on';\n/** Positions its content as a floating popup (menu or tooltip) anchored to a `target` element or point; see {@link BalloonOptions}. */\nlet PacemBalloonElement = class PacemBalloonElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._options = BalloonConsts.Defaults;\n this._originalNeighborhood = null;\n this._popoutDelegate = (_) => {\n this.popout();\n };\n this._hoverDelegate = (evt) => {\n // window.clearTimeout(this._timer);\n if (!this.disabled) {\n this.popup(this._options.hoverDelay);\n // this._timer = window.setTimeout(this._popupDelegate, this._options.hoverDelay);\n }\n };\n this._outConditionalDelegate = (evt) => {\n if ((evt.srcElement || evt.target) != this) {\n this._outDelegate(evt);\n }\n };\n this._mousedownConditionalDelegate = (evt) => {\n preventDefaultHandler(evt);\n if (this._visible) {\n stopPropagationHandler(evt);\n }\n };\n this._outDelegate = (_) => {\n this.popout(this._options.hoverTimeout);\n };\n this._toggleDelegate = (evt) => {\n evt.preventDefault();\n if (this._visible) {\n this._outDelegate(evt);\n }\n else {\n this._hoverDelegate(evt);\n }\n };\n //#endregion\n }\n /** Gets whether the balloon is open and visible. */\n get visible() {\n return this._visible;\n }\n // #region LIFECYCLE\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target') {\n if (old instanceof Element) {\n this._removeHandlers(old);\n }\n if (!(val instanceof Element)) {\n this._adjust();\n }\n }\n else if (name === 'options') {\n if (this.target instanceof Element) {\n this._removeHandlers(this.target);\n }\n this._options = Utils.extend({}, Utils.clone(BalloonConsts.Defaults), val);\n this._synchronizeOptions();\n }\n else if (name === 'disabled') {\n //this.container.style.visibility = val ? 'hidden' : 'visible';\n if (val) {\n this.popout();\n }\n }\n if (this.target instanceof Element && name !== 'disabled') {\n this._setHandlers(this.target);\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._ensurePopup();\n this.target = this.target || this.parentElement;\n this._synchronizeOptions();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this._destroyPopup();\n if (this.target instanceof Element) {\n this._removeHandlers(this.target);\n }\n }\n // #endregion\n //#region METHODS\n _synchronizeOptions() {\n const popup = this, options = popup.options || {};\n // moveToRoot\n if (!!options.moveToRoot && Utils.isNull(this._originalNeighborhood)) {\n this._originalNeighborhood = { parent: popup.parentElement, nextSibling: popup.nextElementSibling };\n document.body.appendChild(popup);\n }\n else if (!options.moveToRoot && !Utils.isNull(this._originalNeighborhood)) {\n const parent = this._originalNeighborhood.parent;\n // has something changed in the neighborhood?...\n if (!Utils.isNull(parent)) {\n parent.appendChild(popup);\n }\n this._originalNeighborhood = null;\n }\n }\n _ensurePopup() {\n const popup = this, container = popup._container;\n //\n if (popup && container && !Utils.hasClass(popup, PCSS + '-balloon')) {\n Utils.addClass(popup, PCSS + '-balloon');\n popup.style.position = 'absolute';\n container.style.position = 'relative';\n container.style.zIndex = '1';\n popup.style.visibility = 'hidden';\n }\n return popup;\n }\n _destroyPopup() {\n var popup = this, container = popup._container;\n Utils.removeClass(popup, allStyles);\n popup.style.position = '';\n if (!Utils.isNull(container)) {\n container.style.position = '';\n container.style.zIndex = '';\n }\n }\n _registerEvents() {\n const popup = this._ensurePopup(), options = this._options;\n switch (options.behavior) {\n case BalloonBehavior.Menu:\n switch (options.trigger) {\n case BalloonTrigger.Focus:\n popup.addEventListener('mousedown', stopPropagationHandler, false);\n popup.addEventListener('focus', this._hoverDelegate, false);\n // do nothing else: only the blur event will pop the balloon out\n break;\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n popup.addEventListener('mousedown', stopPropagationHandler, false);\n window.document.body.addEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n default:\n popup.addEventListener('mouseenter', this._hoverDelegate, false);\n popup.addEventListener('mouseleave', this._outDelegate, false);\n break;\n }\n break;\n case BalloonBehavior.Tooltip:\n switch (options.trigger) {\n case BalloonTrigger.Focus:\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n window.document.body.addEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n default:\n break;\n }\n break;\n }\n }\n _unregisterEvents() {\n var popup = this._ensurePopup();\n var opts = this._options;\n switch (opts.behavior) {\n case BalloonBehavior.Menu:\n switch (opts.trigger) {\n case BalloonTrigger.Focus:\n popup.removeEventListener('mousedown', stopPropagationHandler, false);\n popup.removeEventListener('focus', this._hoverDelegate, false);\n // do nothing else: only the blur event will pop the balloon out\n break;\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n popup.removeEventListener('mousedown', stopPropagationHandler, false);\n window.document.body.removeEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n default:\n popup.removeEventListener('mouseenter', this._hoverDelegate, false);\n popup.removeEventListener('mouseleave', this._outDelegate, false);\n break;\n }\n break;\n case BalloonBehavior.Tooltip:\n switch (opts.trigger) {\n case BalloonTrigger.Click:\n case BalloonTrigger.ContextMenu:\n window.document.body.removeEventListener('mousedown', this._outConditionalDelegate, false);\n break;\n }\n break;\n }\n }\n _onLayoutChange(evt) {\n if (this._visible) {\n this._adjust();\n }\n }\n _adjust() {\n const popup = this, el = popup.target;\n if (Utils.isNull(el)) {\n return;\n }\n const coords = el instanceof Element ? Utils.offset(el) : { top: el.y, left: el.x, width: 0, height: 0 };\n const vieportSize = Utils.windowSize;\n var opts = this._options;\n var chosenPosition = opts.position, chosenAlignment = opts.align;\n if (chosenPosition != BalloonPosition.Top &&\n chosenPosition != BalloonPosition.Bottom && chosenPosition != BalloonPosition.Left && chosenPosition != BalloonPosition.Right) {\n let viewportHeight = vieportSize.height;\n let viewportWidth = vieportSize.width;\n const offsetLeft = coords.left - Utils.scrollLeft;\n const offsetTop = coords.top - Utils.scrollTop;\n const offsetBottom = viewportHeight - (offsetTop + coords.height);\n const offsetRight = viewportWidth - (offsetLeft + coords.width);\n switch (chosenPosition) {\n case BalloonPosition.HorizontalAuto:\n chosenPosition = offsetLeft > offsetRight ? BalloonPosition.Left : BalloonPosition.Right;\n break;\n default:\n // (!) exclude 'left' and 'right' also when position is simply set to 'auto'\n chosenPosition = offsetTop > offsetBottom ? BalloonPosition.Top : BalloonPosition.Bottom;\n break;\n }\n }\n if (opts.size === BalloonSizing.Match) {\n switch (chosenPosition) {\n case BalloonPosition.Bottom:\n case BalloonPosition.Top:\n popup.style.minWidth = coords.width + 'px';\n popup.style.minHeight = '';\n break;\n case BalloonPosition.Left:\n case BalloonPosition.Right:\n popup.style.minHeight = coords.height + 'px';\n popup.style.minWidth = '';\n break;\n }\n }\n else {\n popup.style.minWidth = popup.style.minHeight = '';\n }\n const popupSize = { width: popup.offsetWidth, height: popup.offsetHeight };\n const fullOffsetWidth = coords.width - popupSize.width, halfOffsetWidth = fullOffsetWidth * .5, fullOffsetHeight = coords.height - popupSize.height, halfOffsetHeight = fullOffsetHeight * .5;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n case BalloonAlignment.Start:\n case BalloonAlignment.End:\n break;\n case BalloonAlignment.Auto:\n chosenAlignment = BalloonAlignment.Center;\n switch (chosenPosition) {\n case BalloonPosition.Right:\n case BalloonPosition.Left:\n const halfHeight = Utils.scrollTop + vieportSize.height / 2;\n if /* completely inside the first half of the screen */ ((coords.top + coords.height) < halfHeight) {\n chosenAlignment = BalloonAlignment.Start;\n }\n else if /* completely beyond the half line of the screen */ (coords.top > halfHeight) {\n chosenAlignment = BalloonAlignment.End;\n }\n break;\n case BalloonPosition.Top:\n case BalloonPosition.Bottom:\n const halfWidth = Utils.scrollLeft + vieportSize.width / 2;\n if /* completely inside the first half of the screen */ ((coords.left + coords.width) < halfWidth) {\n chosenAlignment = BalloonAlignment.Start;\n }\n else if /* completely beyond the half line of the screen */ (coords.left > halfWidth) {\n chosenAlignment = BalloonAlignment.End;\n }\n break;\n }\n break;\n default:\n chosenAlignment = BalloonConsts.Defaults.align;\n break;\n }\n Utils.removeClass(popup, positioningStyles);\n Utils.addClass(popup, 'balloon-' + chosenPosition);\n Utils.addClass(popup, 'balloon-' + chosenAlignment);\n const tailSize = Utils.Css.getVariableValue(`--${PCSS}-balloon-tail-size`), tailInset = Utils.Css.getVariableValue(`--${PCSS}-balloon-tail-inset`);\n const inset = parseInt(tailInset) + .5 * parseInt(tailSize);\n const threshold = { width: coords.width / 2, height: coords.height / 2 };\n const adjustX = opts.autoAdjust && inset > threshold.width;\n const adjustY = opts.autoAdjust && inset > threshold.height;\n switch (chosenPosition) {\n case BalloonPosition.Top:\n coords.top -= popupSize.height;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.left += halfOffsetWidth;\n break;\n case BalloonAlignment.End:\n coords.left += fullOffsetWidth;\n if (adjustX) {\n coords.left += (inset - threshold.width);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustX) {\n coords.left -= (inset - threshold.width);\n }\n break;\n }\n break;\n case BalloonPosition.Left:\n coords.left -= popupSize.width;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.top += halfOffsetHeight;\n break;\n case BalloonAlignment.End:\n coords.top += fullOffsetHeight;\n if (adjustY) {\n coords.top += (inset - threshold.height);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustY) {\n coords.top -= (inset - threshold.height);\n }\n break;\n }\n break;\n case BalloonPosition.Right:\n coords.left += coords.width;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.top += halfOffsetHeight;\n break;\n case BalloonAlignment.End:\n coords.top += fullOffsetHeight;\n if (adjustY) {\n coords.top += (inset - threshold.height);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustY) {\n coords.top -= (inset - threshold.height);\n }\n break;\n }\n break;\n default:\n // bottom\n coords.top += coords.height;\n switch (chosenAlignment) {\n case BalloonAlignment.Center:\n coords.left += halfOffsetWidth;\n break;\n case BalloonAlignment.End:\n coords.left += fullOffsetWidth;\n if (adjustX) {\n coords.left += (inset - threshold.width);\n }\n break;\n case BalloonAlignment.Start:\n if (adjustX) {\n coords.left -= (inset - threshold.width);\n }\n break;\n }\n break;\n }\n coords.left = Math.min(vieportSize.width - popupSize.width, Math.max(0, coords.left));\n //coords.top = Math.max(0, coords.top);\n // coords for balloon positioning\n coords.top += opts.verticalOffset;\n coords.left += opts.horizontalOffset;\n popup.style.top = Math.round(coords.top) + 'px';\n popup.style.left = Math.round(coords.left) + 'px';\n // popup.style.transform = `translateX(${Math.round(coords.left)}px) translateY(${Math.round(coords.top)}px) translateZ(0)`;\n //popup.style.visibility = 'visible';\n }\n _adjustWatchers(visible) {\n const options = this.options || {};\n if (!Utils.isNull(this._resize)) {\n // track position and size\n this._resize.disabled = !visible;\n this._position.disabled = !visible || !(options.track || options.trackPosition);\n }\n }\n /**\n * Shows the balloon, if hidden.\n */\n popup(delay = 0) {\n clearTimeout(this._timer);\n if (delay > 0) {\n this._timer = setTimeout(() => this.popup(), delay);\n return;\n }\n const popup = this, isVisible = Utils.isVisible(popup);\n this._adjustWatchers(true);\n if (isVisible || this.disabled) {\n return;\n }\n // attach closured behavior to popup\n //if (!sameTrigger) {\n this._registerEvents(); // $popup.on('mouseenter', obj.methods.hover).on('mouseleave', obj.methods.out).data(vars.TRIGGER, obj);\n //}\n //\n popup.style.pointerEvents = 'none';\n this._visible = true;\n popup.style.visibility = 'visible';\n this._adjust();\n //requestAnimationFrame(() => {\n Utils.addClass(popup, 'balloon-in');\n Utils.addAnimationEndCallback(popup, () => {\n Utils.addClass(popup, 'balloon-on');\n popup.dispatchEvent(new PropertyChangeEvent({ propertyName: 'visible', oldValue: false, currentValue: true }));\n popup.dispatchEvent(new Event(BalloonPopupEventName));\n popup.style.pointerEvents = 'auto';\n }, 500);\n //});\n }\n /**\n * Hides the balloon, if visible.\n */\n popout(delay = 0) {\n clearTimeout(this._timer);\n if (delay > 0) {\n this._timer = setTimeout(() => this.popout(), delay);\n return;\n }\n var popup = this;\n const isVisible = Utils.isVisible(popup);\n this._adjustWatchers(false);\n if (!isVisible) {\n return;\n }\n // detach closured behavior from popup\n this._unregisterEvents();\n //\n popup.style.pointerEvents = 'none';\n Utils.removeClass(popup, 'balloon-in balloon-on');\n Utils.addClass(popup, 'balloon-out');\n Utils.addAnimationEndCallback(popup, () => {\n popup.style.visibility = 'hidden';\n this._visible = false;\n Utils.removeClass(popup, allStyles);\n popup.dispatchEvent(new Event(BalloonPopoutEventName));\n popup.dispatchEvent(new PropertyChangeEvent({ propertyName: 'visible', oldValue: true, currentValue: false }));\n }, 500);\n }\n /**\n * Shows the balloon, if hidden. Otherwise hides it.\n */\n toggle(delay = 0) {\n if (!Utils.isVisible(this) && !this.disabled) {\n this.popup(delay);\n }\n else {\n this.popout(delay);\n }\n }\n _removeHandlers(el) {\n if (Utils.isNull(el)) {\n return;\n }\n el.removeEventListener('mouseenter', this._hoverDelegate, false);\n el.removeEventListener('mouseleave', this._outDelegate, false);\n el.removeEventListener('mousedown', this._popoutDelegate, false);\n el.removeEventListener('mousedown', this._mousedownConditionalDelegate, false);\n el.removeEventListener('click', this._toggleDelegate, false);\n el.removeEventListener('focus', this._hoverDelegate, false);\n el.removeEventListener('blur', this._outDelegate, false);\n el.removeEventListener('contextmenu', this._toggleDelegate, false);\n }\n _setHandlers(el) {\n this.popout();\n // regenerate opts popup\n var opts = this._options;\n if (opts.behavior == BalloonBehavior.Inert) {\n return;\n }\n switch (opts.trigger) {\n case BalloonTrigger.Hover:\n el.addEventListener('mouseenter', this._hoverDelegate, false);\n el.addEventListener('mouseleave', this._outDelegate, false);\n el.addEventListener('mousedown', this._popoutDelegate, false);\n break;\n case BalloonTrigger.Focus:\n el.addEventListener('focus', this._hoverDelegate, false);\n el.addEventListener('blur', this._outDelegate, false);\n break;\n case BalloonTrigger.Click:\n opts.hoverDelay = opts.hoverTimeout = 0;\n el.addEventListener('mousedown', this._mousedownConditionalDelegate, false);\n el.addEventListener('click', this._toggleDelegate, false) /*.blur(obj.methods.out)*/;\n break;\n case BalloonTrigger.ContextMenu:\n opts.hoverDelay = opts.hoverTimeout = 0;\n el.addEventListener('contextmenu', this._toggleDelegate, false);\n break;\n }\n }\n};\n__decorate([\n ViewChild(`.${PCSS}-balloon`)\n], PacemBalloonElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild(P + '-resize[content]')\n], PacemBalloonElement.prototype, \"_resize\", void 0);\n__decorate([\n ViewChild(P + '-resize[watch-position=true]')\n], PacemBalloonElement.prototype, \"_position\", void 0);\n__decorate([\n Watch({ converter: ElementOrPointPropertyConverter })\n], PacemBalloonElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemBalloonElement.prototype, \"options\", void 0);\nPacemBalloonElement = __decorate([\n CustomElement({\n tagName: P + '-balloon',\n shadow: true,\n template: `<${P}-resize target=\"{{ :host.target }}\" disabled=\"true\" watch-position=\"true\" on-${Components.ResizeEventName}=\":host._onLayoutChange($event)\"></${P}-resize>\r\n<div class=\"${PCSS}-balloon\"><${P}-resize on-${Components.ResizeEventName}=\":host._onLayoutChange($event)\" disabled=\"true\" content><slot></slot></${P}-resize></div>\r\n<div class=\"corner top-left\" part=\"corner-topleft\"></div><div class=\"corner bottom-left\" part=\"corner-bottomleft\"></div><div class=\"corner top-right\" part=\"corner-topright\"></div><div class=\"corner bottom-right\" part=\"corner-bottomright\"></div>`\n })\n], PacemBalloonElement);\nexport { PacemBalloonElement };\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, CustomUIEvent, CustomElementUtils } from '@pacem/pacem-core';\nimport { Point } from '@pacem/pacem-foundation';\nimport { ElementOrPointPropertyConverter } from './types';\n// namespace Pacem.Components.UI {\n/** Edge (or center) of an element a {@link PacemBinderElement} curve attaches to. */\nexport var BinderAnchor;\n(function (BinderAnchor) {\n BinderAnchor[\"Auto\"] = \"auto\";\n BinderAnchor[\"Left\"] = \"left\";\n BinderAnchor[\"Top\"] = \"top\";\n BinderAnchor[\"Right\"] = \"right\";\n BinderAnchor[\"Bottom\"] = \"bottom\";\n BinderAnchor[\"Center\"] = \"center\";\n})(BinderAnchor || (BinderAnchor = {}));\n/** Decoration drawn at either end of a {@link PacemBinderElement} curve. */\nexport var BinderEnd;\n(function (BinderEnd) {\n BinderEnd[\"Default\"] = \"default\";\n BinderEnd[\"Arrow\"] = \"arrow\";\n BinderEnd[\"FatArrow\"] = \"fatarrow\";\n BinderEnd[\"None\"] = \"none\";\n})(BinderEnd || (BinderEnd = {}));\n/** How a {@link PacemBinderElement} computes its Bezier control points: from the elements' mass (size) or from the path direction. */\nexport var BinderTension;\n(function (BinderTension) {\n BinderTension[\"Mass\"] = \"mass\";\n BinderTension[\"Path\"] = \"path\";\n})(BinderTension || (BinderTension = {}));\n/** Event name fired by a {@link PacemBinderElement} when its connecting path is interacted with (click, hover, etc.). */\nexport const BinderInteractionEventName = 'interact';\n/** Event dispatched by a {@link PacemBinderElement} wrapping the original user-interaction event on its path. */\nexport class BinderInteractionEvent extends CustomUIEvent {\n constructor(orig) {\n super(BinderInteractionEventName, null, orig);\n }\n}\nconst UI_BINDERS = 'pacem:components:ui:binders';\n/** Tracks the {@link PacemBinderElement} instances bound to a single endpoint element, refreshing them all on that element's resize/reposition. */\nclass BindersCollector {\n constructor(element) {\n this.binders = [];\n this.fire = (evt) => {\n for (var binder of this.binders) {\n binder.refresh(this.resize.target, evt.detail);\n }\n };\n const watcher = this.resize = new Components.PacemResizeElement();\n watcher.target = element;\n watcher.watchPosition = true;\n document.body.appendChild(watcher);\n }\n dispose() {\n this.resize.remove();\n }\n}\n/** Static registry pairing endpoint elements with their {@link BindersCollector}, plus a page-wide resize listener keeping every registered {@link PacemBinderElement} in sync. */\nclass BinderUtils {\n static { this._pageBinders = []; }\n static _updateResizeListener() {\n const binders = this._pageBinders;\n if (Utils.isNull(this._bodyResizeListener)) {\n const resize = this._bodyResizeListener = new Components.PacemResizeElement();\n resize.target = document.body;\n document.body.appendChild(resize);\n document.addEventListener(Components.ResizeEventName, () => {\n for (let binder of binders) {\n binder.invalidateSize();\n }\n }, false);\n }\n this._bodyResizeListener.disabled = binders.length === 0;\n }\n static register(element, binder) {\n var collector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), binders = this._pageBinders;\n if (Utils.isNull(collector)) {\n collector = new BindersCollector(element);\n CustomElementUtils.setAttachedPropertyValue(element, UI_BINDERS, collector);\n }\n if (collector.binders.indexOf(binder) == -1) {\n if (collector.binders.length === 0) {\n collector.resize.addEventListener(Components.ResizeEventName, collector.fire, false);\n } //else {\n binder.refresh(element, collector.resize.currentSize);\n //}\n collector.binders.push(binder);\n }\n if (binders.indexOf(binder) === -1) {\n binders.push(binder);\n this._updateResizeListener();\n }\n }\n static unregister(element, binder) {\n var collector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), ndx, binders = this._pageBinders, ndx2;\n if (!Utils.isNull(collector) && (ndx = collector.binders.indexOf(binder)) > -1) {\n collector.binders.splice(ndx, 1);\n if (collector.binders.length === 0) {\n collector.resize.removeEventListener(Components.ResizeEventName, collector.fire, false);\n collector.dispose();\n CustomElementUtils.deleteAttachedPropertyValue(element, UI_BINDERS);\n }\n }\n if ((ndx2 = binders.indexOf(binder)) >= 0) {\n binders.splice(ndx2, 1);\n this._updateResizeListener();\n }\n }\n}\nconst STD_EVENTS = ['click', 'dblclick', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'mousemove', 'contextmenu'];\n/** Draws an SVG Bezier curve connecting two elements (or points), following them as they move/resize; e.g. wires or diagram connectors. */\nlet PacemBinderElement = class PacemBinderElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._broadcastHandler = (evt) => {\n var ui = new BinderInteractionEvent(evt);\n this.dispatchEvent(ui);\n };\n this._state = {};\n }\n connectedCallback() {\n super.connectedCallback();\n this._ensurePath();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.from instanceof Element)\n BinderUtils.register(this.from, this);\n if (this.to instanceof Element)\n BinderUtils.register(this.to, this);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'from':\n case 'to':\n if (old instanceof Element) {\n BinderUtils.unregister(old, this);\n }\n if (val instanceof Element) {\n // `BinderUtils.register` eventually calls `.refresh`\n BinderUtils.register(val, this);\n }\n else {\n this.refresh(val);\n }\n break;\n case 'fromLimit':\n case 'toLimit':\n case 'fromEnd':\n case 'toEnd':\n case 'tension':\n this._draw();\n break;\n case 'fromAnchor':\n this.refresh(this.from);\n break;\n case 'toAnchor':\n this.refresh(this.to);\n break;\n case 'cssClass':\n if (!Utils.isNull(this._svg)) {\n this._svg.setAttribute('class', PCSS + '-binder ' + this.className);\n }\n break;\n case 'hide':\n if (!first) {\n this._setPathVisibility();\n }\n break;\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._path)) {\n STD_EVENTS.forEach(e => {\n this._path.removeEventListener(e, this._broadcastHandler, false);\n });\n this._svg.remove();\n this._path = undefined;\n }\n if (this.from instanceof Element)\n BinderUtils.unregister(this.from, this);\n if (this.to instanceof Element)\n BinderUtils.unregister(this.to, this);\n super.disconnectedCallback();\n }\n _setPathVisibility(path = this._path, hide = this.hide, interactive = this.interactive) {\n if (!Utils.isNull(path)) {\n if (hide) {\n path.setAttribute('display', 'none');\n }\n else {\n path.removeAttribute('display');\n }\n if (interactive) {\n path.setAttribute('pointer-events', 'visibleStroke');\n path.tabIndex = 0;\n }\n else {\n path.removeAttribute('pointer-events');\n path.tabIndex = -1;\n }\n }\n }\n _ensurePath() {\n if (Utils.isNull(this._path)) {\n let svg = this._svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.style.position = 'absolute';\n Utils.addClass(svg, PCSS + '-binder ' + this.className);\n svg.style.top = '0';\n svg.style.left = '0';\n svg.style.overflow = 'hidden';\n svg.style.pointerEvents = 'none';\n const path = this._path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('fill', 'none');\n path.setAttribute('display', 'none');\n this._setPathVisibility();\n svg.appendChild(path);\n this.invalidateSize();\n document.body.appendChild(svg);\n STD_EVENTS.forEach(e => {\n path.addEventListener(e, this._broadcastHandler, false);\n });\n }\n }\n /** Resizes the shared full-page SVG overlay to match the current document size; call after layout changes that may affect `document.body`'s scroll size. */\n invalidateSize() {\n const svg = this._svg;\n if (!Utils.isNull(svg)) {\n svg.setAttribute('width', document.body.scrollWidth.toString());\n svg.setAttribute('height', document.body.scrollHeight.toString());\n }\n }\n _computeAnchorPoints(target, anchor, end, ref, refAnchor, refEnd, tension) {\n var p1, p2, c1, c2;\n const top = target.top, left = target.left, w = target.width, h = target.height, w2 = w / 2, h2 = h / 2;\n const r_top = ref.top, r_left = ref.left, r_w = ref.width, r_h = ref.height, r_w2 = r_w / 2, r_h2 = r_h / 2;\n const p1_center = { x: left + w2, y: top + h2 };\n const p2_center = { x: r_left + r_w2, y: r_top + r_h2 };\n const p1_top = { x: left + w2, y: top };\n const p1_bottom = { x: left + w2, y: top + h };\n const p1_left = { x: left, y: top + h2 };\n const p1_right = { x: left + w, y: top + h2 };\n const p2_top = { x: r_left + r_w2, y: r_top };\n const p2_bottom = { x: r_left + r_w2, y: r_top + r_h };\n const p2_left = { x: r_left, y: r_top + r_h2 };\n const p2_right = { x: r_left + r_w, y: r_top + r_h2 };\n const points = {\n 'p1_top': p1_top,\n 'p1_bottom': p1_bottom,\n 'p1_left': p1_left,\n 'p1_right': p1_right,\n 'p2_top': p2_top,\n 'p2_bottom': p2_bottom,\n 'p2_left': p2_left,\n 'p2_right': p2_right,\n };\n var distance_memoizer = {};\n function getDistance(suffix1, suffix2) {\n const key = suffix1 + '_' + suffix2;\n return distance_memoizer[key] = distance_memoizer[key] || Point.distance(points['p1_' + suffix1], points['p2_' + suffix2]);\n }\n if (anchor == BinderAnchor.Auto || refAnchor == BinderAnchor.Auto) {\n //if (anchor == BinderAnchor.Auto && refAnchor == BinderAnchor.Auto) {\n // algorithm for finding the closest edges (1 atan + 4 distances)\n // 1. compute atan of the segment joining the two centers\n const a = { x: p1_center.x, y: -p1_center.y }, b = { x: p2_center.x, y: -p2_center.y };\n const slope = Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI;\n switch (slope) {\n case 0:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case 90:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n case 180:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case -90:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n default:\n // 2. compute distances combining the 4 points (compare 4 distances)\n if (slope < 90 && slope > 0) {\n // right | top vs left | bottom\n let top_2_left = getDistance('top', 'left'), right_2_left = getDistance('right', 'left'), right_2_bottom = getDistance('right', 'bottom'), top_2_bottom = getDistance('top', 'bottom');\n var d = Math.min(top_2_left, right_2_left, right_2_bottom, top_2_bottom);\n switch (d) {\n case top_2_left:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case top_2_bottom:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n case right_2_bottom:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n }\n }\n else if (slope < 180 && slope > 90) {\n // left | top vs right | bottom\n let top_2_right = getDistance('top', 'right'), left_2_right = getDistance('left', 'right'), left_2_bottom = getDistance('left', 'bottom'), top_2_bottom = getDistance('top', 'bottom');\n var d = Math.min(top_2_right, left_2_right, left_2_bottom, top_2_bottom);\n switch (d) {\n case top_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_bottom:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Top;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Bottom;\n break;\n }\n }\n else if (slope < -90) {\n // left | bottom vs right | top\n let bottom_2_right = getDistance('bottom', 'right'), left_2_right = getDistance('left', 'right'), left_2_top = getDistance('left', 'top'), bottom_2_top = getDistance('bottom', 'top');\n var d = Math.min(bottom_2_right, left_2_right, left_2_top, bottom_2_top);\n switch (d) {\n case bottom_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_right:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Right;\n break;\n case left_2_top:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Left;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n }\n }\n else {\n // right | bottom vs left | top\n let bottom_2_left = getDistance('bottom', 'left'), right_2_left = getDistance('right', 'left'), right_2_top = getDistance('right', 'top'), bottom_2_top = getDistance('bottom', 'top');\n var d = Math.min(bottom_2_left, right_2_left, right_2_top, bottom_2_top);\n switch (d) {\n case bottom_2_left:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case right_2_left:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Left;\n break;\n case right_2_top:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Right;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n default:\n if (anchor == BinderAnchor.Auto)\n anchor = BinderAnchor.Bottom;\n if (refAnchor == BinderAnchor.Auto)\n refAnchor = BinderAnchor.Top;\n break;\n }\n }\n break;\n }\n //}\n }\n function computeF(e) {\n switch (e) {\n case BinderEnd.Arrow:\n case BinderEnd.FatArrow:\n return 2.0;\n default:\n return 1.0;\n }\n }\n const f = computeF(end), refF = computeF(refEnd);\n // anchor points calc\n switch (anchor) {\n case BinderAnchor.Bottom:\n p1 = p1_bottom;\n break;\n case BinderAnchor.Center:\n p1 = { x: left + w2, y: top + h2 };\n c1 = p1;\n break;\n case BinderAnchor.Left:\n p1 = p1_left;\n break;\n case BinderAnchor.Right:\n p1 = p1_right;\n break;\n case BinderAnchor.Top:\n p1 = p1_top;\n break;\n }\n switch (refAnchor) {\n case BinderAnchor.Bottom:\n p2 = p2_bottom;\n break;\n case BinderAnchor.Center:\n p2 = { x: r_left + r_w2, y: r_top + r_h2 };\n c2 = p2;\n break;\n case BinderAnchor.Left:\n p2 = p2_left;\n break;\n case BinderAnchor.Right:\n p2 = p2_right;\n break;\n case BinderAnchor.Top:\n p2 = p2_top;\n break;\n }\n // control points calc\n switch (tension) {\n case BinderTension.Path:\n // adjust the control points based on the path (not on the masses of the element ends)\n const t = .333; // < tension (fraction of the distance)\n switch (anchor) {\n case BinderAnchor.Bottom:\n c1 = { x: p1.x, y: p1.y + Math.abs(f * t * (p2.y - p1.y)) };\n break;\n case BinderAnchor.Left:\n c1 = { x: p1.x - Math.abs(f * t * (p2.x - p1.x)), y: p1.y };\n break;\n case BinderAnchor.Right:\n c1 = { x: p1.x + Math.abs(f * t * (p2.x - p1.x)), y: p1.y };\n break;\n case BinderAnchor.Top:\n c1 = { x: p1.x, y: p1.y - Math.abs(f * t * (p1.y - p2.y)) };\n break;\n }\n switch (refAnchor) {\n case BinderAnchor.Bottom:\n c2 = { x: p2.x, y: p2.y + Math.abs(refF * t * (p2.y - p1.y)) };\n break;\n case BinderAnchor.Left:\n c2 = { x: p2.x - Math.abs(refF * t * (p2.x - p1.x)), y: p2.y };\n break;\n case BinderAnchor.Right:\n c2 = { x: p2.x + Math.abs(refF * t * (p2.x - p1.x)), y: p2.y };\n break;\n case BinderAnchor.Top:\n c2 = { x: p2.x, y: p2.y - Math.abs(refF * t * (p2.y - p1.y)) };\n break;\n }\n break;\n default:\n // control points computed based on the mass (size) of the element ends\n switch (anchor) {\n case BinderAnchor.Bottom:\n c1 = { x: p1.x, y: p1.y + Math.abs(f * (p1_bottom.y - p1_center.y)) };\n break;\n case BinderAnchor.Left:\n c1 = { x: p1.x - Math.abs(f * (p1_center.x - p1_left.x)), y: p1.y };\n break;\n case BinderAnchor.Right:\n c1 = { x: p1.x + Math.abs(f * (p1_right.x - p1_center.x)), y: p1.y };\n break;\n case BinderAnchor.Top:\n c1 = { x: p1.x, y: p1.y - Math.abs(f * (p1_top.y - p1_center.y)) };\n break;\n }\n switch (refAnchor) {\n case BinderAnchor.Bottom:\n c2 = { x: p2.x, y: p2.y + Math.abs(refF * (p2_bottom.y - p2_center.y)) };\n break;\n case BinderAnchor.Left:\n c2 = { x: p2.x - Math.abs(refF * (p2_center.x - p2_left.x)), y: p2.y };\n break;\n case BinderAnchor.Right:\n c2 = { x: p2.x + Math.abs(refF * (p2_right.x - p2_center.x)), y: p2.y };\n break;\n case BinderAnchor.Top:\n c2 = { x: p2.x, y: p2.y - Math.abs(refF * (p2_top.y - p2_center.y)) };\n break;\n }\n }\n return { points: [p1, c1, p2, c2], anchors: [anchor, refAnchor] };\n }\n /** Updates the cached position/size for the given endpoint (`from` or `to`) and redraws the curve if both ends are known. @param args Pre-computed layout, or omitted to reuse the last known/cached value. */\n refresh(element, args) {\n var path;\n if (Utils.isNull(element) || Utils.isNull(path = this._path)) {\n return;\n }\n const draw = !Utils.isNull(this.from) && !Utils.isNull(this.to);\n const leave = Utils.isNull(this.from) && Utils.isNull(this.to);\n if (this.disabled || !draw) {\n path.removeAttribute('d');\n if (leave) {\n return;\n }\n }\n // compute anchor points\n const key = element === this.from ? 'from' : 'to';\n var anchor = (key === 'from' ? this.fromAnchor : this.toAnchor) || BinderAnchor.Auto;\n if (Utils.isNull(args)) {\n if (!(element instanceof Element)) {\n args = { height: 0, width: 0, left: element.x, top: element.y };\n anchor = BinderAnchor.Center;\n }\n else if (key in this._state) {\n args = this._state[key].size;\n }\n }\n if (Utils.isNull(args)) {\n return;\n }\n this._state[key] = { size: args, anchor };\n if (draw) {\n this._draw();\n }\n }\n //@Debounce()\n _draw() {\n var state1 = this._state['from'], state2 = this._state['to'], path = this._path;\n if (Utils.isNull(path)) {\n return;\n }\n if (Utils.isNullOrEmpty(state1)\n || Utils.isNullOrEmpty(state2)\n || (this.from instanceof HTMLElement && !Utils.isVisible(this.from))\n || (this.to instanceof HTMLElement && !Utils.isVisible(this.to))) {\n path.setAttribute('d', '');\n return;\n }\n const { points, anchors } = this._computeAnchorPoints(state1.size, state1.anchor, this.fromEnd, state2.size, state2.anchor, this.toEnd, this.tension), p0 = points[0], c0 = points[1], p1 = points[2], c1 = points[3], anchor0 = anchors[0], anchor1 = anchors[1];\n const x0 = p0.x;\n const y0 = p0.y;\n const cx0 = c0.x;\n const cy0 = c0.y;\n const x1 = p1.x;\n const y1 = p1.y;\n const cx1 = c1.x;\n const cy1 = c1.y;\n let dStart = this._getDefaultEndingPath(x0, y0);\n switch (this.fromEnd) {\n case BinderEnd.Arrow:\n dStart = this._getArrowEndingPath(x0, y0, anchor0);\n break;\n case BinderEnd.FatArrow:\n dStart = this._getFatArrowEndingPath(x0, y0, anchor0);\n break;\n case BinderEnd.None:\n dStart = '';\n break;\n }\n let dEnd = this._getDefaultEndingPath(x1, y1);\n switch (this.toEnd) {\n case BinderEnd.Arrow:\n dEnd = this._getArrowEndingPath(x1, y1, anchor1);\n break;\n case BinderEnd.FatArrow:\n dEnd = this._getFatArrowEndingPath(x1, y1, anchor1);\n break;\n case BinderEnd.None:\n dEnd = '';\n break;\n }\n const d = dStart + `M${x0},${y0} C${cx0},${cy0} ${cx1},${cy1} ${x1},${y1}` + dEnd;\n if (d.indexOf('NaN') === -1) {\n path.setAttribute('d', d);\n }\n if (!Utils.isNullOrEmpty(this.color))\n path.style.stroke = this.color;\n }\n _getDefaultEndingPath(x, y) {\n return `M${x - 2},${y - 2} h4 v4 h-4 z`;\n }\n _getArrowEndingPath(x, y, anchor) {\n switch (anchor) {\n case BinderAnchor.Bottom:\n return `M${x - 4},${y + 4} l4,-4 l4,4`;\n case BinderAnchor.Top:\n return `M${x - 4},${y - 4} l4,4 l4,-4`;\n case BinderAnchor.Left:\n return `M${x - 4},${y - 4} l4,4 l-4,4`;\n case BinderAnchor.Right:\n return `M${x + 4},${y - 4} l-4,4 l4,4`;\n default:\n return '';\n }\n }\n _getFatArrowEndingPath(x, y, anchor) {\n switch (anchor) {\n case BinderAnchor.Bottom:\n case BinderAnchor.Top:\n case BinderAnchor.Left:\n case BinderAnchor.Right:\n return this._getArrowEndingPath(x, y, anchor) + ' z';\n default:\n return '';\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: ElementOrPointPropertyConverter })\n], PacemBinderElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: ElementOrPointPropertyConverter })\n], PacemBinderElement.prototype, \"to\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"fromAnchor\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"toAnchor\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"fromEnd\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"toEnd\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"tension\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBinderElement.prototype, \"color\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBinderElement.prototype, \"interactive\", void 0);\nPacemBinderElement = __decorate([\n CustomElement({ tagName: P + '-binder' })\n], PacemBinderElement);\nexport { PacemBinderElement };\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 { P, CustomElement, Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n// namespace Pacem.Components.UI {\nconst OPEN_CSSCLASS = 'blade-open';\n/** Slide-in panel toggled via its `open` property, dispatching `open`/`close` events as it transitions. */\nlet PacemBladeElement = class PacemBladeElement extends Components.PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'open') {\n this._toggle(val);\n }\n }\n _toggle(open = this.open) {\n const fn = open ? Utils.addClass : Utils.removeClass;\n fn(this, OPEN_CSSCLASS);\n const eventName = open ? 'open' : 'close';\n this.dispatchEvent(new Event(eventName));\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBladeElement.prototype, \"open\", void 0);\nPacemBladeElement = __decorate([\n CustomElement({ tagName: P + '-blade', shadow: true })\n], PacemBladeElement);\nexport { PacemBladeElement };\n//}\n","//namespace Pacem.Components.UI {\n/** How a {@link Lightbox} reacts to a click outside its content. */\nexport var LightboxBehavior;\n(function (LightboxBehavior) {\n LightboxBehavior[\"ClickOutsideClose\"] = \"clickOutsideClose\";\n LightboxBehavior[\"ExplicitClose\"] = \"explicitClose\";\n})(LightboxBehavior || (LightboxBehavior = {}));\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, preventDefaultHandler, ViewChild, CustomElementUtils, UI, stopPropagationHandler, avoidHandler } from '@pacem/pacem-core';\nimport { LightboxBehavior } from './lightbox-abstractions';\n// namespace Pacem.Components.UI {\nconst OPEN_CSSCLASS = 'bottom-sheet-open';\n/** Drag handle for an ancestor {@link PacemBottomSheetElement}: renders a small grip icon, toggles the sheet on click and drives its swipe-to-drag behavior. */\nlet PacemBottomSheetHandleElement = class PacemBottomSheetHandleElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._clickHandler = (evt) => {\n const bs = this.#bottomSheet;\n bs.open = !bs.open;\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setIcon();\n this._toggleHandle();\n this.#bottomSheet = CustomElementUtils.findAncestorOfType(this, PacemBottomSheetElement);\n this._bindToBottomSheet();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'iconGlyph':\n this._setIcon(val);\n break;\n case 'disabled':\n this._toggleHandle(val);\n break;\n }\n }\n disconnectedCallback() {\n this.removeEventListener('click', this._clickHandler);\n const bs = this.#bottomSheet;\n if (!Utils.isNull(bs) && bs.isReady) {\n bs._setHandle(null);\n }\n this.#bottomSheet = null;\n super.disconnectedCallback();\n }\n #bottomSheet;\n _bindToBottomSheet() {\n const bs = this.#bottomSheet;\n if (Utils.isNull(bs)) {\n return;\n }\n if (Utils.isNullOrEmpty(this.id)) {\n this.id = ('handle_' + Utils.uniqueCode());\n }\n CustomElementUtils.whenReady(bs, () => {\n bs._setHandle(this);\n this.addEventListener('click', this._clickHandler, false);\n });\n }\n _toggleHandle(disabled = this.disabled) {\n this.style.pointerEvents = disabled ? 'none' : '';\n }\n _setIcon(icon = this.iconGlyph) {\n const ic = this._icon;\n if (!Utils.isNull(ic)) {\n ic.icon = icon ?? 'horizontal_rule';\n }\n }\n};\n__decorate([\n ViewChild(P + '-icon')\n], PacemBottomSheetHandleElement.prototype, \"_icon\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBottomSheetHandleElement.prototype, \"iconGlyph\", void 0);\nPacemBottomSheetHandleElement = __decorate([\n CustomElement({\n tagName: P + '-bottom-sheet-handle', shadow: false, template: `<div class=\"bottom-sheet-handle\">\r\n <${P}-icon class=\"icon-size icon-size-6\"></${P}-icon>\r\n </div>`\n })\n], PacemBottomSheetHandleElement);\nexport { PacemBottomSheetHandleElement };\n/** Mobile-style panel anchored to the bottom of the viewport, draggable (via its {@link PacemBottomSheetHandleElement}) and swipeable open/closed. */\nlet PacemBottomSheetElement = class PacemBottomSheetElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._resizeHandler = (evt) => {\n this._rebuildSwiperSnaps();\n this._setPosition();\n };\n this._panHandler = (e) => {\n const snap = this._swiper.snaps.find(s => s != 0);\n const { delta } = e.detail;\n let pct = (snap < 0 ? delta.clamp(snap, 0) : delta.clamp(0, snap)) / snap;\n if (snap > 0) {\n pct = 1 - pct;\n }\n // console.log(`snap ${snap} - delta ${delta} - pct: ${pct * 100}%`);\n const sqr = 6 * (pct ** 2);\n this.style.backdropFilter = `blur(${sqr.toFixed(2)}px)`;\n };\n this._swipeHandler = (e) => {\n preventDefaultHandler(e);\n switch (e.type) {\n case UI.SwipeEventType.SwipeAnimationEnd:\n this.style.backdropFilter = '';\n return;\n case UI.SwipeEventType.SwipeUpAnimationEnd:\n this.open = true;\n break;\n case UI.SwipeEventType.SwipeDownAnimationEnd:\n this.open = false;\n break;\n }\n this._setPosition();\n };\n this._softReleaseHandler = (e) => {\n avoidHandler(e);\n if (this.behavior !== LightboxBehavior.ExplicitClose) {\n this.open = false;\n }\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'open':\n this._toggle(val);\n this._rebuildSwiperSnaps(val);\n break;\n case 'logger':\n this._assignLogger(val);\n break;\n case 'disabled':\n this._toggleSwiper(val);\n break;\n }\n }\n _toggleSwiper(disabled = this.disabled) {\n const swiper = this._swiper;\n if (!Utils.isNull(swiper)) {\n swiper.disabled = disabled;\n }\n }\n /** @internal Wires (or clears) the swiper's drag handle selector to the given {@link PacemBottomSheetHandleElement}. */\n _setHandle(handle) {\n if (Utils.isNull(handle)) {\n this._swiper.handleSelector = null;\n }\n else {\n this._swiper.handleSelector = `#${handle.id}`;\n }\n this._handleResizer.target = handle;\n }\n _assignLogger(v = this.logger) {\n this._swiper.logger = v;\n }\n _rebuildSwiperSnaps(open = this.open) {\n const swiper = this._swiper;\n const snap = this._getSnap(open);\n swiper.snaps = [0, snap].sort();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._assignLogger();\n this._resizer.addEventListener(Components.ResizeEventName, this._resizeHandler);\n this._handleResizer.addEventListener(Components.ResizeEventName, this._resizeHandler);\n const swiper = this._swiper;\n swiper.addEventListener(UI.SwipeEventType.Pan, this._panHandler, false);\n swiper.addEventListener(UI.SwipeEventType.SwipeAnimationEnd, this._swipeHandler, false);\n swiper.addEventListener(UI.SwipeEventType.SwipeUpAnimationEnd, this._swipeHandler, false);\n swiper.addEventListener(UI.SwipeEventType.SwipeDownAnimationEnd, this._swipeHandler, false);\n this._toggle();\n this._rebuildSwiperSnaps();\n this._toggleSwiper();\n this._sheet.addEventListener('pointerdown', stopPropagationHandler, false);\n this.addEventListener('pointerdown', this._softReleaseHandler, false);\n }\n disconnectedCallback() {\n const resizer = this._resizer;\n if (!Utils.isNull(resizer)) {\n resizer.removeEventListener(Components.ResizeEventName, this._resizeHandler);\n }\n const handleResizer = this._handleResizer;\n if (!Utils.isNull(resizer)) {\n handleResizer.removeEventListener(Components.ResizeEventName, this._resizeHandler);\n }\n const swiper = this._swiper;\n if (!Utils.isNull(swiper)) {\n swiper.removeEventListener(UI.SwipeEventType.Pan, this._panHandler);\n swiper.removeEventListener(UI.SwipeEventType.SwipeAnimationEnd, this._swipeHandler);\n swiper.removeEventListener(UI.SwipeEventType.SwipeUpAnimationEnd, this._swipeHandler);\n swiper.removeEventListener(UI.SwipeEventType.SwipeDownAnimationEnd, this._swipeHandler);\n }\n const sheet = this._sheet;\n if (!Utils.isNull(sheet)) {\n sheet.removeEventListener('pointerdown', stopPropagationHandler);\n }\n this.removeEventListener('pointerdown', this._softReleaseHandler);\n super.disconnectedCallback();\n }\n /**\n * Snap (other than 0 := current position) given the current state.\n * Anchor point for sheet is the top of the page, so snap is computed accordingly.\n * @param ope\n * @returns\n */\n _getSnap(open = this.open) {\n const resizer = this._resizer;\n const handleResizer = this._handleResizer;\n if (Utils.isNull(resizer) || Utils.isNull(handleResizer)) {\n return 0;\n }\n const { top: y } = Utils.naturalOffset(resizer.target), { top: hY } = Utils.naturalOffset(handleResizer.target);\n const { height } = resizer.currentSize;\n const { height: hHeight } = handleResizer.currentSize;\n const { height: wHeight } = Utils.windowSize;\n const openSnap /* target to open state */ = Math.max(parseInt(Utils.Css.getVariableValue(`--${PCSS}-layout-header-height`)), wHeight - (height ?? 0)), closedSnap /* target to closed state */ = (wHeight - ((y ?? 0) - (hY ?? 0) + (hHeight ?? 0)));\n const sign = open ? 1 : -1;\n return sign * Math.abs(openSnap - closedSnap);\n }\n /**\n * Css transform to be applied to the sheet in order to have UI consistent with open state.\n * Anchor point for sheet is the bottom of the page, so CSS transform is applied accordingly.\n * @param open\n * @returns\n */\n _getCssTransform(open = this.open) {\n const resizer = this._resizer;\n const handleResizer = this._handleResizer;\n if (Utils.isNull(resizer) || Utils.isNull(handleResizer)) {\n return '';\n }\n if (open) {\n const retval = `translate3d(0, max(var(--${PCSS}-layout-header-height), calc(100vh - 100%)), 0)`;\n return retval;\n }\n else {\n const { top: y } = Utils.naturalOffset(resizer.target), { top: hY, height: hHeight } = Utils.naturalOffset(handleResizer.target);\n const gap = (-(y ?? 0) + (hY ?? 0)) + (hHeight ?? 0);\n const retval = `translate3d(0, calc(100vh - ${gap}px), 0)`;\n // console.log(retval);\n return retval;\n }\n }\n _setPosition(open = this.open) {\n const sheet = this._sheet;\n const transform = this._getCssTransform(open);\n sheet.style.transform = transform;\n //this.style.setProperty(`--${PCSS}-bottom-sheet-transform`, transform);\n }\n _toggle(open = this.open) {\n const fn = open ? Utils.addClass : Utils.removeClass;\n fn(this, OPEN_CSSCLASS);\n //this._sheet.style.animation = '';\n this._sheet.style.transform = '';\n //this.style.setProperty(`--${PCSS}-bottom-sheet-transform`, '');\n const eventName = open ? 'open' : 'close';\n this.dispatchEvent(new Event(eventName));\n }\n};\n__decorate([\n ViewChild(P + '-swipe')\n], PacemBottomSheetElement.prototype, \"_swiper\", void 0);\n__decorate([\n ViewChild(P + '-resize')\n], PacemBottomSheetElement.prototype, \"_resizer\", void 0);\n__decorate([\n ViewChild(P + '-resize[handle]')\n], PacemBottomSheetElement.prototype, \"_handleResizer\", void 0);\n__decorate([\n ViewChild(P + '-panel.bottom-sheet')\n], PacemBottomSheetElement.prototype, \"_sheet\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBottomSheetElement.prototype, \"open\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBottomSheetElement.prototype, \"behavior\", void 0);\nPacemBottomSheetElement = __decorate([\n CustomElement({\n tagName: P + '-bottom-sheet', shadow: false /* css priority would be a mess otherwise */, template: `\r\n <${P}-swipe direction=\"vertical\" options='{ \"bouncy\": false }'></${P}-swipe>\r\n <${P}-resize target=\"{{ ::_sheet }}\"></${P}-resize>\r\n <${P}-resize handle></${P}-resize>\r\n <${P}-panel class=\"bottom-sheet\" behaviors=\"{{ [::_swiper] }}\">\r\n <${P}-content></${P}-content>\r\n </${P}-panel>`\n })\n], PacemBottomSheetElement);\nexport { PacemBottomSheetElement };\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 { Watch, Utils, Components, CustomTypedEvent, Logging, avoidHandler } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Set of buttons shown by a dialog (e.g. {@link PacemDialogBase}), controlling which {@link DialogButton}s are visible. */\nexport var DialogButtons;\n(function (DialogButtons) {\n DialogButtons[\"YesNo\"] = \"yesno\";\n DialogButtons[\"YesNoCancel\"] = \"yesnocancel\";\n DialogButtons[\"Ok\"] = \"ok\";\n DialogButtons[\"OkCancel\"] = \"okcancel\";\n})(DialogButtons || (DialogButtons = {}));\n/** Single button a dialog can be committed/closed with. */\nexport var DialogButton;\n(function (DialogButton) {\n DialogButton[\"Yes\"] = \"yes\";\n DialogButton[\"No\"] = \"no\";\n DialogButton[\"Cancel\"] = \"cancel\";\n DialogButton[\"Ok\"] = \"ok\";\n})(DialogButton || (DialogButton = {}));\n/** Event name dispatched by a {@link PacemDialogBase} when it is committed/closed via one of its buttons. */\nexport const DialogResultEventName = 'commit';\n/** Event dispatched by a {@link PacemDialogBase} when it is committed/closed via one of its buttons; also the resolution value of `open()`'s promise. */\nexport class DialogResultEvent extends CustomTypedEvent {\n constructor(args) {\n super(DialogResultEventName, args);\n }\n}\n/** Base class for modal dialog elements (see {@link PacemDialogElement}): wraps a {@link Lightbox} with an open/commit lifecycle resolved through a promise. */\nexport class PacemDialogBase extends Components.PacemElement {\n #deferred;\n /** Opens the dialog, optionally seeding its `state`. @returns A promise resolved with the {@link DialogResultEventArgs} once the dialog is committed. */\n open(state) {\n const lb = this.lightbox;\n if (!Utils.isNull(this.#deferred)) {\n throw `Dialog already open.`;\n }\n const deferred = this.#deferred = Promise.withResolvers();\n if (this.hide || this.disabled) {\n this.log(Logging.LogLevel.Warn, 'Dialog hidden or disabled, opening forbidden.');\n deferred.reject();\n }\n else {\n this.dispatchEvent(new Event('open'));\n lb.show = true;\n this.state = state;\n }\n return deferred.promise;\n }\n /** Closes the dialog with the given button outcome, resolving the pending `open()` promise and dispatching a {@link DialogResultEvent}. */\n commit(btn, evt) {\n avoidHandler(evt);\n this.log(Logging.LogLevel.Debug, `Committing dialog by clicking '${btn}'.`);\n const state = this.state;\n var drevt = new DialogResultEvent({ button: btn, state: state });\n this.lightbox.show = false;\n this.#deferred.resolve(drevt.detail);\n this.#deferred = null;\n this.dispatchEvent(drevt);\n }\n}\n__decorate([\n Watch()\n], PacemDialogBase.prototype, \"state\", 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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, CommandEvent } from '@pacem/pacem-core';\nimport { DialogButton } from './dialog-abstractions';\n//namespace Pacem.Components.UI {\n/** Clickable button element with optional icon, command dispatching (via {@link CommandEvent}) and an optional confirmation dialog gate. */\nlet PacemButtonElement = class PacemButtonElement extends Components.PacemIterableElement {\n constructor() {\n super('button');\n }\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('tab-order')) {\n this.tabOrder = 0;\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'iconGlyph':\n // suppose ligatures enabled\n case 'iconUrl':\n // handle this via css attr(), considering that it's the proper way to access and modify pseudo::before content\n this.dataset[name] = val;\n break;\n }\n }\n emit(evt) {\n let fn = (ev) => {\n super.emit(ev);\n if (!ev.defaultPrevented) {\n if (ev.type === 'click' && !Utils.isNullOrEmpty(this.commandName)) {\n this.dispatchEvent(new CommandEvent({ commandName: this.commandName, commandArgument: this.commandArgument }));\n }\n /*\n TODO: make this component shadowed and include a real <button> as the part holding the actual content (<slot>).\n When events like 'mousedown', 'mouseup', get fired => check for the <button> element.matchs(':active') and apply relevant css\n\n Share the behavior with PacemAnchorElement.\n */\n switch (ev.type) {\n case 'mousedown':\n if (evt.button === 0) {\n Utils.addClass(this, PCSS + '-active');\n }\n break;\n case 'pointerdown':\n Utils.addClass(this, PCSS + '-active');\n break;\n case 'keydown':\n if (ev.keyCode === 32 || ev.keyCode === 13) {\n evt.preventDefault();\n Utils.addClass(this, PCSS + '-active');\n }\n break;\n case 'blur':\n case 'mouseup':\n case 'pointerup':\n case 'click':\n Utils.removeClass(this, PCSS + '-active');\n break;\n case 'keyup':\n if (ev.keyCode === 32 || ev.keyCode === 13) {\n this.click();\n Utils.removeClass(this, PCSS + '-active');\n }\n break;\n }\n }\n };\n if (!this.disabled && evt.type === 'click' && !Utils.isNull(this.confirmationDialog)) {\n this.confirmationDialog.open(this.confirmationMessage).then(r => {\n if (r.button === DialogButton.Yes || r.button === DialogButton.Ok)\n fn(evt);\n });\n }\n else if (!(evt instanceof MouseEvent) || evt.button === 0) {\n fn(evt);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"iconGlyph\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"iconUrl\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"commandName\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemButtonElement.prototype, \"commandArgument\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemButtonElement.prototype, \"confirmationMessage\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemButtonElement.prototype, \"confirmationDialog\", void 0);\nPacemButtonElement = __decorate([\n CustomElement({\n tagName: P + '-button'\n })\n], PacemButtonElement);\nexport { PacemButtonElement };\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 { P, CustomElement, Components } from '@pacem/pacem-core';\nimport { PacemButtonElement } from './button';\n//namespace Pacem.Components.UI {\n/** Groups {@link PacemButtonElement} children into a single iterable/selectable set, focusing the item matching `index`. */\nlet PacemButtonsetElement = class PacemButtonsetElement extends Components.PacemIterativeElement {\n connectedCallback() {\n super.connectedCallback();\n if (!('tabindex' in this.attributes))\n this.tabIndex = 0;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'index':\n let ndx = 0;\n for (var btn of this.items) {\n if (ndx == val) {\n btn.focus();\n break;\n }\n ndx++;\n }\n break;\n }\n }\n validate(item) {\n return item instanceof PacemButtonElement;\n }\n};\nPacemButtonsetElement = __decorate([\n CustomElement({\n tagName: P + '-buttonset'\n })\n], PacemButtonsetElement);\nexport { PacemButtonsetElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Utils, PropertyConverters, Components, CustomTypedEvent, PropertyChangeEvent, Defaults, CustomElementUtils, Debounce, PropertyChangeEventName } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Granularity of a calendar/schedule/agenda view. */\nexport var CalendarZoom;\n(function (CalendarZoom) {\n CalendarZoom[\"Month\"] = \"month\";\n CalendarZoom[\"Week\"] = \"week\";\n CalendarZoom[\"Day\"] = \"day\";\n})(CalendarZoom || (CalendarZoom = {}));\n/** Event dispatched by a {@link PacemCalendarBaseElement} whenever its `viewDate` changes, carrying the new date. */\nexport class ViewDateChangeEvent extends CustomTypedEvent {\n constructor(date) {\n super('viewdatechange', date);\n }\n}\n/** Event dispatched (and bubbling) when a day is selected on a {@link PacemCalendarElement}, carrying the selected date. */\nexport class DateSelectEvent extends CustomTypedEvent {\n constructor(date) {\n super('dateselect', date, { bubbles: true });\n }\n}\n/** Event dispatched (and bubbling) when a time slot is selected on a {@link PacemAgendaElement}, carrying the selected date/time. */\nexport class TimeSelectEvent extends CustomTypedEvent {\n constructor(date) {\n super('timeselect', date, { bubbles: true });\n }\n}\nconst MSECS_PER_HOUR = 1000 * 60 * 60;\nconst MSECS_PER_DAY = MSECS_PER_HOUR * 24;\nconst DAY_HOURS = [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5,\n 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18, 18.5, 19, 19.5, 20, 20.5, 21, 21.5, 22, 22.5, 23, 23.5];\nlet now = new Date();\nconst DUMMY_DATE = Utils.Dates.dateOnly(now).valueOf();\nconst DAYS_OF_WEEK = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n/** A single event/appointment item, meant as a child of a {@link PacemCalendarWithEventsBaseElement} (e.g. {@link PacemCalendarElement} or {@link PacemAgendaElement}). */\nlet PacemCalendarEventElement = class PacemCalendarEventElement extends Components.PacemItemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n cancelAnimationFrame(this._handle);\n this._handle = requestAnimationFrame(() => {\n let container = this.container;\n if (!Utils.isNull(container)) {\n // trigger propertychange for `items`\n container.dispatchEvent(new PropertyChangeEvent({ propertyName: 'items', oldValue: container.items, currentValue: container.items }));\n }\n });\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarEventElement.prototype, \"start\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarEventElement.prototype, \"end\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemCalendarEventElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemCalendarEventElement.prototype, \"place\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemCalendarEventElement.prototype, \"allDay\", void 0);\nPacemCalendarEventElement = __decorate([\n CustomElement({\n tagName: P + '-calendar-event'\n })\n], PacemCalendarEventElement);\nexport { PacemCalendarEventElement };\n/** Event dispatched when a {@link PacemCalendarEventElement} rendering gains focus/selection within its host calendar. */\nexport class CalendarEventSelectEvent extends CustomTypedEvent {\n constructor(args) {\n super(\"eventselect\", args, { bubbles: false, cancelable: true });\n }\n}\n/** Event dispatched when a {@link PacemCalendarEventElement} rendering loses focus/selection within its host calendar. */\nexport class CalendarEventUnselectEvent extends CustomTypedEvent {\n constructor(args) {\n super(\"eventunselect\", args, { bubbles: false, cancelable: true });\n }\n}\n/** Base class shared by the calendar-family elements ({@link PacemCalendarElement}, {@link PacemAgendaElement}, {@link PacemScheduleElement}): holds the current view date/zoom/week/month grids and the {@link PacemCalendarEventElement} items collection. */\nexport class PacemCalendarBaseElement extends Components.PacemItemsContainerElement {\n validate(item) {\n return item instanceof PacemCalendarEventElement;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'viewDate' || name === 'weekStart') {\n this._synchronizeWeek();\n }\n switch (name) {\n case 'viewDate':\n this.dispatchEvent(new ViewDateChangeEvent(val));\n Utils.removeClass(this, \"viewdate-next viewdate-previous\");\n requestAnimationFrame(() => {\n Utils.addClass(this, old > val ? \"viewdate-previous\" : \"viewdate-next\");\n });\n break;\n case 'zoom':\n Utils.removeClass(this, \"viewdate-next viewdate-previous\");\n break;\n }\n }\n // #region PROTECTED\n oneventselect(el, evt) {\n this.dispatchEvent(new CalendarEventSelectEvent({ element: el, event: evt }));\n }\n oneventunselect(el, evt) {\n this.dispatchEvent(new CalendarEventUnselectEvent({ element: el, event: evt }));\n }\n getHeaderLabel(d, f) {\n const options = f === CalendarZoom.Week ? { weekday: 'short', day: 'numeric', month: 'numeric' }\n : (f === CalendarZoom.Day ? { weekday: 'long' } : /* fallback: month */ { weekday: 'short' });\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n getDayLabel(d) {\n const options = d.getDate() == 1 ? { month: 'short', day: 'numeric' } : { day: 'numeric' };\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n getHourLabel(d) {\n const options = { hour: 'numeric' /*, minute: 'numeric'*/ };\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n getTimeLabel(d) {\n const options = { hour: 'numeric', minute: 'numeric' };\n return Utils.parseDate(d).toLocaleString(Utils.lang(this), options);\n }\n isNow(d, now) {\n const d0 = Utils.parseDate(d), v = Utils.parseDate(now || new Date());\n return d0.getHours() === v.getHours() && this.isToday(d, now);\n }\n isToday(d, now) {\n return this.isDate(d, now || new Date());\n }\n isViewDay(d, vd = this.viewDate) {\n return this.isDate(d, vd || this.viewDate || new Date());\n }\n isDate(expected, d) {\n if (!Utils.Dates.isDate(d) || !Utils.Dates.isDate(expected)) {\n return false;\n }\n const d0 = Utils.parseDate(expected), v = Utils.parseDate(d);\n return d0.getDate() === v.getDate() && d0.getMonth() == v.getMonth() && d0.getFullYear() === v.getFullYear();\n }\n isViewWeek(d) {\n const d0 = Utils.parseDate(d);\n return this.week && this.week.find(d1 => d1.getDate() == d0.getDate() && d1.getMonth() == d0.getMonth() && d1.getDate() == d0.getDate());\n }\n isViewMonth(d) {\n const d0 = Utils.parseDate(d), v = Utils.parseDate(this.viewDate || new Date());\n return d0.getMonth() == v.getMonth() && d0.getFullYear() === v.getFullYear();\n }\n isTimeSlotDisabled(ranges, d, h) {\n if (!Utils.isNullOrEmpty(ranges)) {\n h = h || 0;\n const slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), Math.floor(h), 60 * (h % 1)), tz = slotDate.getTimezoneOffset(), slot = slotDate.valueOf() - (tz * 60 * 1000);\n for (let range of ranges) {\n let from = Utils.Dates.parse(range.from), to = Utils.Dates.parse(range.to);\n if ((!from || (from && from.valueOf() <= slot))\n && (!to || (to && to.valueOf() > slot))\n && (to || from)) {\n return true;\n }\n }\n }\n return false;\n }\n // #endregion\n // #region PRIVATE\n _getWeekStart(day, weekstart) {\n let dow = day.getDay(), v = day.valueOf();\n const tget = (weekstart || 'm').toLowerCase().startsWith('m') ? 1 : 0;\n if (dow === tget) {\n return v;\n }\n if (dow === 0) {\n // damn 0-indexed sunday, skip to the previous one\n dow = 7;\n }\n return v + (tget - dow) * MSECS_PER_DAY;\n }\n _getDatasource(d, w = this.weekStart) {\n let day = Utils.Dates.dateOnly(Utils.parseDate(d));\n const ds = this.month;\n let _d0 = ds && ds.length && ds[0] && ds[0].length && ds[0][0];\n if (_d0 && _d0.getMonth() == day.getMonth() && _d0.getFullYear() == day.getFullYear()\n && ds.find(wk => !Utils.isNull(wk.find(dy => dy.valueOf() == day.valueOf())))) {\n // return the \"convenient\" datasource\n return ds;\n }\n //\n // month\n let d1 = new Date(day.getFullYear(), day.getMonth(), 1);\n let date1 = this._getWeekStart(d1, w);\n let month = [];\n let week = [];\n do {\n let date = Utils.Dates.dateOnly(new Date(date1));\n week.push(date);\n if (week.length == 7) {\n month.push(week.splice(0));\n }\n date1 = date.valueOf() + MSECS_PER_DAY + /* beware of day-light-saving occurrences */ MSECS_PER_HOUR;\n } while (month.length < 6);\n //\n return this.month = month;\n }\n _synchronizeWeek() {\n const viewDate = Utils.parseDate(this.viewDate);\n const vd = new Date(viewDate.getFullYear(), viewDate.getMonth(), 1);\n const ds = this._getDatasource(vd, this.weekStart);\n const week = ds.filter((w, j) => w.some(d => d.getDate() == viewDate.getDate() && d.getMonth() == viewDate.getMonth() && d.getFullYear() == viewDate.getFullYear()))[0];\n if (!(this.week && this.week.length) || this.week[0] !== week[0]) {\n this.week = week;\n }\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarBaseElement.prototype, \"viewDate\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarBaseElement.prototype, \"now\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemCalendarBaseElement.prototype, \"zoom\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemCalendarBaseElement.prototype, \"weekStart\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemCalendarBaseElement.prototype, \"week\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemCalendarBaseElement.prototype, \"month\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemCalendarBaseElement.prototype, \"disabledRanges\", void 0);\n/** Base class for calendar-family elements that render their {@link PacemCalendarEventElement} items into a positioned grid (see {@link PacemCalendarElement}, {@link PacemAgendaElement}); subclasses supply the grid-building logic via `buildDataSource`. */\nexport class PacemCalendarWithEventsBaseElement extends PacemCalendarBaseElement {\n constructor() {\n super(...arguments);\n this._datasource = [];\n }\n /** @readonly Gets the computed, per-row (week or day) grid of positioned event items ready for rendering. */\n get datasource() {\n return this._datasource;\n }\n _getSortedItems(items) {\n return items.slice().sort((a, b) => {\n const a_start = a.start.valueOf(), b_start = b.start.valueOf();\n if (a_start != b_start) {\n return a_start < b_start ? -1 : 1;\n }\n const a_end = a.end.valueOf(), b_end = b.end.valueOf(), a_span = a_end - a_start, b_span = b_end - b_start;\n if (a_span != b_span) {\n return a_span > b_span ? -1 : 1;\n }\n return 0;\n });\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'month':\n case 'week':\n case 'items':\n case 'zoom':\n case 'viewDate':\n cancelAnimationFrame(this._handle);\n this._handle = requestAnimationFrame(() => {\n let oldval = this._datasource;\n let newval = this._datasource = this.buildDataSource(this._getSortedItems(this.items || []));\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'datasource', oldValue: oldval, currentValue: newval }));\n });\n break;\n }\n }\n}\nfunction getWeeklyEventDataItems(items, week) {\n let lbound = week.length - 1, wstart = week[0].valueOf(), wend = week[lbound].valueOf();\n return items.filter(evt => {\n let startDate = Utils.Dates.dateOnly(evt.start);\n let endDate = Utils.Dates.dateOnly(evt.end);\n return startDate.valueOf() <= wend && endDate.valueOf() >= wstart;\n }).map(evt => {\n let startDate = Utils.Dates.dateOnly(evt.start), start = week.find(d => d.valueOf() == startDate.valueOf()), startIndex = week.indexOf(start);\n let endDate = Utils.Dates.dateOnly(evt.end), end = week.find(d => d.valueOf() == endDate.valueOf()), endIndex = week.indexOf(end);\n let ndx0 = startIndex == -1 ? 0 : startIndex, ndx1 = endIndex == -1 ? lbound : endIndex;\n return {\n start: evt.start, end: evt.end,\n allDay: true,\n // indexes\n day: ndx0,\n continuing: { start: startIndex == -1, end: endIndex == -1 },\n // span (may be column- or row-)\n span: ndx1 + 1 - ndx0,\n caption: evt.caption,\n event: evt\n };\n });\n}\n// #region AGENDA\nfunction buildAgendaGrid() {\n let grid = '';\n for (let day = 0; day < 7; day++) {\n if (day == 0) {\n grid += `<div class=\"agenda-left all-day\"></div>`;\n }\n grid += `<${P}-panel class=\"agenda-slot all-day day-${(day + 1)}\" css-class=\"{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate), 'today': :host.isToday(:host.week[${day}], :host.now)} }}\"></${P}-panel>`;\n }\n for (let day = 0; day < 7; day++) {\n for (let hour of DAY_HOURS) {\n let whole = hour % 1 == 0;\n let css = `hour-${whole ? 'whole' : 'half'}`;\n if (day == 0 && whole) {\n grid += `<${P}-text class=\"agenda-left ${css} hour-${hour * 2 + 1}\"\" text=\"{{ :host.getHourLabel(${DUMMY_DATE + hour * MSECS_PER_HOUR}) }}\"></${P}-text>`;\n }\n grid += `<${P}-panel on-click=\":host.time = Pacem.Utils.Dates.parse(:host.week[${day}].valueOf() + ${(hour * MSECS_PER_HOUR)})\" disabled=\"{{ :host.isTimeSlotDisabled(:host.disabledRanges, :host.week[${day}], ${hour}) }}\" class=\"agenda-slot ${css} day-${(day + 1)} hour-${hour * 2 + 1}\" css-class=\"{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate), 'today': :host.isToday(:host.week[${day}], :host.now)} }}\"></${P}-panel>`;\n }\n }\n return grid;\n}\n/** Renders a day/week hourly grid (\"agenda\" view) with an all-day row, placing {@link PacemCalendarEventElement} items on the timeline and dispatching {@link TimeSelectEvent} on slot click. */\nlet PacemAgendaElement = class PacemAgendaElement extends PacemCalendarWithEventsBaseElement {\n constructor() {\n super(...arguments);\n this._allDayDatasource = [];\n }\n buildDataSource(items) {\n var week = this.week;\n if (this.zoom === CalendarZoom.Day) {\n week = [Utils.Dates.dateOnly(this.viewDate)];\n }\n let ds = [];\n if (!Utils.isNull(week)) {\n // alldays\n this.dispatchEvent(new PropertyChangeEvent({\n propertyName: 'allDayDatasource',\n oldValue: this._allDayDatasource,\n currentValue: this._allDayDatasource = getWeeklyEventDataItems(items.filter(evt => {\n return (evt.end.valueOf() - evt.start.valueOf()) >= MSECS_PER_DAY;\n }), week)\n }));\n // hourlies\n for (let j = 0; j < week.length; j++) {\n let day = week[j], dayValue = day.valueOf(), \n // search for events in this week\n dayItems = items.filter(evt => {\n let startDate = Utils.Dates.dateOnly(evt.start);\n let endDate = Utils.Dates.dateOnly(evt.end);\n return startDate.valueOf() <= dayValue && endDate.valueOf() >= dayValue;\n }).map(evt => {\n let evtStart = evt.start.valueOf(), evtEnd = evt.end.valueOf();\n let retval = {\n allDay: evt.allDay || (evtEnd - evtStart) >= MSECS_PER_DAY,\n continuing: { start: evtStart < dayValue, end: evtEnd > (dayValue + MSECS_PER_DAY) },\n caption: evt.caption,\n hour: 0,\n span: DAY_HOURS.length - 1,\n offset: { start: \"0\", end: \"0\" },\n event: evt\n };\n let startHour = evt.start.getHours() + evt.start.getMinutes() / 60, startIndex = retval.continuing.start ? 0 : Math.floor(startHour * 2), endHour = evt.end.getHours() + evt.end.getMinutes() / 60, endIndex = -1 + (retval.continuing.end ? DAY_HOURS.length : Math.ceil(endHour * 2));\n let endNdx = endIndex + 1, end = endNdx >= DAY_HOURS.length ? 24 : DAY_HOURS[endNdx];\n let fullSpan = end - DAY_HOURS[startIndex];\n retval.hour = startIndex;\n retval.span = 1 + endIndex - startIndex;\n // offsets\n if (!retval.continuing.start) {\n // compute correct start offset\n retval.offset.start = (((startHour - DAY_HOURS[startIndex]) / fullSpan) * 100) + \"%\";\n }\n if (!retval.continuing.end) {\n // compute correct end offset\n retval.offset.end = (((end - endHour) / fullSpan) * 100) + \"%\";\n }\n return retval;\n });\n //\n ds.push(dayItems);\n }\n }\n return ds;\n }\n /** @readonly Gets the computed all-day row of positioned event items ready for rendering. */\n get allDayDatasource() {\n return this._allDayDatasource;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const clock = this._clock;\n if (name === 'time') {\n this.dispatchEvent(new TimeSelectEvent(val));\n }\n else if (!Utils.isNull(clock)) {\n if (name === 'now') {\n clock.now = val;\n clock.className = `hour-${val.getHours()} minute-${val.getMinutes()}`;\n }\n if (name === 'now' || name === 'zoom' || name === 'viewDate') {\n const d = this.now, z = this.zoom;\n const showClock = d && z && ((this.isViewDay(d) && z === CalendarZoom.Day)\n || (this.isViewWeek(d) && z === CalendarZoom.Week));\n clock.hidden = !showClock;\n }\n }\n }\n};\n__decorate([\n ViewChild(P + '-clock')\n], PacemAgendaElement.prototype, \"_clock\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemAgendaElement.prototype, \"time\", void 0);\nPacemAgendaElement = __decorate([\n CustomElement({\n tagName: P + '-agenda', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater class=\"${PCSS}-agenda agenda-grid\" datasource=\"{{ :host.datasource }}\">${buildAgendaGrid()}<${P}-clock hidden></${P}-clock>\r\n <template>\r\n <${P}-repeater class=\"agenda-day\" datasource=\"{{ ^item }}\">\r\n <template>\r\n <${P}-panel class=\"agenda-event-wrapper\" \r\ncss-class=\"{{ ['hour-start-'+ (^item.hour + 1), 'hour-end-'+ (^item.hour + ^item.span +1), 'day-start-'+ (!^item.continuing.start), 'day-end-'+ (!^item.continuing.end)] }}\">\r\n <${P}-panel class=\"agenda-event\" css=\"{{ {'top': ^item.offset.start, 'bottom': ^item.offset.end} }}\" tab-order=\"{{ (^^index + 1) * 1000 + (^item.hour + 1) * 100 + ^index }}\"\r\n on-focus=\":host.oneventselect($this, ^item.event)\" on-blur=\":host.oneventunselect($this, ^item.event)\">\r\n <${P}-span class=\"event-caption\" text=\"{{ ^item.caption }}\"></${P}-span>\r\n </${P}-panel>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n </template>\r\n <${P}-repeater class=\"agenda-allday\" datasource=\"{{ :host.allDayDatasource }}\">\r\n <template>\r\n <${P}-panel class=\"agenda-event\" tab-order=\"{{ (^index + 1) * 500 + (^item.day + 1) * 50 + ^index }}\" css-class=\"{{ ['day-start-'+ (^item.day + 1), 'day-end-'+ (^item.day + ^item.span + 1)] }}\"\r\n on-focus=\":host.oneventselect($this, ^item.event)\" on-blur=\":host.oneventunselect($this, ^item.event)\">\r\n <${P}-text class=\"event-caption\" text=\"{{ ^item.caption }}\"></${P}-text>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n</${P}-repeater><${P}-content></${P}-content>`\n })\n], PacemAgendaElement);\nexport { PacemAgendaElement };\n// #endregion\n// #region CALENDAR\nfunction buildCalendarGrid() {\n let grid = '';\n for (let week = 0; week < 6; week++) {\n for (let day = 0; day < 7; day++) {\n let css = `class=\"calendar-day week-${week + 1} day-${day + 1}\"`;\n grid += `<${P}-panel disabled=\"{{ :host.isTimeSlotDisabled(:host.disabledRanges, :host.month[${week}][${day}]) }}\" on-click=\":host._setDate(:host.month[${week}][${day}])\" ${css} css-class=\"{{ {'viewmonth': :host.isViewMonth(:host.month[${week}][${day}]), 'viewday': :host.isViewDay(:host.month[${week}][${day}], :host.viewDate), 'today': :host.isToday(:host.month[${week}][${day}], :host.now), 'selected-date': :host.isDate(:host.month[${week}][${day}], :host.date)} }}\"><${P}-span culture=\"{{ :host.culture }}\" class=\"text-ellipsed\" text=\"{{ :host.getDayLabel(:host.month[${week}][${day}], :host._formatVersion) }}\"></${P}-span></${P}-panel>`;\n }\n }\n return grid;\n}\n/** Renders a classic month grid, placing {@link PacemCalendarEventElement} items on their spanning day cells and dispatching {@link DateSelectEvent} on day click. */\nlet PacemCalendarElement = class PacemCalendarElement extends PacemCalendarWithEventsBaseElement {\n buildDataSource(items) {\n const month = this.month;\n let ds = [];\n if (!Utils.isNull(month)) {\n for (let j = 0; j < month.length; j++) {\n let week = month[j], \n // search for events in this week\n weekItems = getWeeklyEventDataItems(items, week);\n //\n ds.push(weekItems);\n }\n }\n return ds;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n //case 'date':\n // this.dispatchEvent(new DateSelectEvent(val));\n // break;\n case 'dayLabelFormatter':\n this._formatVersion = Date.now();\n break;\n }\n }\n _setDate(d) {\n if (d?.valueOf() !== this.date?.valueOf()) {\n this.date = d;\n this.dispatchEvent(new DateSelectEvent(d));\n }\n }\n getDayLabel(d, _ = this._formatVersion) {\n const labeler = this.dayLabelFormatter;\n if (typeof labeler === 'function') {\n return labeler(d);\n }\n return super.getDayLabel(d);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemCalendarElement.prototype, \"date\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemCalendarElement.prototype, \"dayLabelFormatter\", void 0);\n__decorate([\n Watch()\n], PacemCalendarElement.prototype, \"_formatVersion\", void 0);\nPacemCalendarElement = __decorate([\n CustomElement({\n tagName: P + '-calendar', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater class=\"${PCSS}-calendar calendar-grid\" datasource=\"{{ :host.datasource }}\">${buildCalendarGrid()}\r\n <template>\r\n <${P}-repeater class=\"calendar-week\" datasource=\"{{ ^item }}\">\r\n <template>\r\n <${P}-panel class=\"calendar-event\" tab-order=\"{{ (^^index + 1) * 1000 + (^item.day + 1) * 100 + ^index }}\" \r\n on-focus=\":host.oneventselect($this, ^item.event)\" on-blur=\":host.oneventunselect($this, ^item.event)\"\r\n css-class=\"{{ ['day-start-'+ (^item.day + 1), 'day-end-'+ (^item.day + ^item.span + 1)] }}\">\r\n <${P}-span class=\"event-startdate\" culture=\"{{ :host.culture }}\" hide=\"{{ ^item.continuing.start }}\" text=\"{{ :host.getTimeLabel(^item.event.start) }}\"></${P}-span>\r\n <${P}-span class=\"event-caption\" text=\"{{ ^item.caption }}\"></${P}-span>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n </template>\r\n</${P}-repeater><${P}-content></${P}-content>`\n })\n], PacemCalendarElement);\nexport { PacemCalendarElement };\n// #endregion\n// #region CLOCK (to be worked on: many possibilities ahead)\n/** Displays (and CSS-classes itself by) the current hour/minute; typically overlaid on a {@link PacemAgendaElement} to mark the current-time line. */\nlet PacemClockElement = class PacemClockElement extends Components.PacemElement {\n};\n__decorate([\n Watch({ converter: PropertyConverters.Datetime })\n], PacemClockElement.prototype, \"now\", void 0);\nPacemClockElement = __decorate([\n CustomElement({ tagName: P + '-clock' })\n], PacemClockElement);\nexport { PacemClockElement };\n// #endregion\n// #region SCHEDULE\nfunction buildCalendarHeader() {\n let header = '';\n for (let day = 0; day < 7; day++) {\n header += `<${P}-span culture=\"{{ :host.culture }}\" css-class=\"{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate)} }}\" class=\"schedule-heading day-${day + 1} text-ellipsed\" text=\"{{ :host.getHeaderLabel(:host.week[${day}], :host.zoom) }}\"></${P}-span>`;\n }\n const id = \"dock_\" + Utils.uniqueCode();\n return `<div class=\"schedule-header schedule-grid\"><div class=\"heading-left\"></div>${header}</div>`;\n}\n/** Combines a {@link PacemCalendarElement} (month view) and a {@link PacemAgendaElement} (day/week view) into a single scheduler, switching between them based on `zoom`. */\nlet PacemScheduleElement = class PacemScheduleElement extends PacemCalendarBaseElement {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._calendar.addEventListener('dateselect', this.emitHandler, false);\n this._agenda.addEventListener('timeselect', this.emitHandler, false);\n // bootstrap\n this.now = new Date();\n }\n disconnectedCallback() {\n if (this._calendar) {\n this._calendar.removeEventListener('dateselect', this.emitHandler, false);\n this._agenda.removeEventListener('timeselect', this.emitHandler, false);\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n ViewChild(P + '-calendar')\n], PacemScheduleElement.prototype, \"_calendar\", void 0);\n__decorate([\n ViewChild(P + '-agenda')\n], PacemScheduleElement.prototype, \"_agenda\", void 0);\nPacemScheduleElement = __decorate([\n CustomElement({\n tagName: P + '-schedule', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-panel class=\"${PCSS}-schedule\" css-class=\"{{ ['schedule-'+ (:host.zoom || '${CalendarZoom.Month}')] }}\">\r\n <${P}-timer interval=\"10000\" on-tick=\":host.now = Pacem.Utils.parseDate(Date.now())\"></${P}-timer>\r\n ${buildCalendarHeader()}\r\n <${P}-agenda disabled-ranges=\"{{ :host.disabledRanges }}\" on-eventselect=\":host.handle($event)\" on-eventunselect=\":host.handle($event)\" now=\"{{ :host.now }}\" culture=\"{{ :host.culture }}\" view-date=\"{{ :host.viewDate }}\" zoom=\"{{ :host.zoom }}\" week-start=\"{{ :host.weekStart }}\" items=\"{{ :host.items }}\"></${P}-agenda>\r\n <${P}-calendar disabled-ranges=\"{{ :host.disabledRanges }}\" on-eventselect=\":host.handle($event)\" on-eventunselect=\":host.handle($event)\" now=\"{{ :host.now }}\" culture=\"{{ :host.culture }}\" view-date=\"{{ :host.viewDate }}\" zoom=\"{{ :host.zoom }}\" week-start=\"{{ :host.weekStart }}\" items=\"{{ :host.items }}\"></${P}-calendar>\r\n <${P}-content></${P}-content>\r\n</${P}-panel>`\n })\n], PacemScheduleElement);\nexport { PacemScheduleElement };\n// #endregion\n// #region RULES\n/** Base class for declarative rule elements that compute and inject {@link DateRange}s into an ancestor {@link PacemCalendarBaseElement}'s `disabledRanges` (e.g. {@link PacemCalendarDayOfWeekRuleElement}). */\nexport class PacemCalendarRuleBaseElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this._disabledRanges = [];\n }\n viewActivatedCallback() {\n if (!Utils.isNull(this._target = CustomElementUtils.findAncestor(this, node => node instanceof PacemCalendarBaseElement))) {\n this.refreshDisabledRanges();\n }\n else {\n throw `Missing ancestor calendar element for ${this.constructor.name}.`;\n }\n }\n disconnectedCallback() {\n this._target = undefined;\n }\n /** @readonly Gets the ancestor calendar element this rule applies its disabled ranges to. */\n get target() {\n return this._target;\n }\n refreshDisabledRanges() {\n if (Utils.isNullOrEmpty(this._target)) {\n // TODO: throw\n return;\n }\n let actualRanges = this._target.disabledRanges || [];\n // cleanup old ones\n for (let range of this._disabledRanges) {\n let ndx = actualRanges.indexOf(range);\n if (ndx >= 0) {\n actualRanges.splice(ndx, 1);\n }\n }\n // add new ones\n this._disabledRanges = this.computeDisabledRanges() || [];\n for (let range of this._disabledRanges) {\n actualRanges.push(range);\n }\n this._target.disabledRanges = actualRanges;\n }\n}\n__decorate([\n Debounce(true)\n], PacemCalendarRuleBaseElement.prototype, \"refreshDisabledRanges\", null);\n/** Declarative {@link PacemCalendarRuleBaseElement} that disables every day of the ancestor calendar not listed in `days` (e.g. weekends). */\nlet PacemCalendarDayOfWeekRuleElement = class PacemCalendarDayOfWeekRuleElement extends PacemCalendarRuleBaseElement {\n constructor() {\n super(...arguments);\n this._daysOfWeek = [];\n this._calendarChangeHandler = (evt) => {\n if (evt.detail.propertyName == 'month') {\n this.refreshDisabledRanges();\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.target.addEventListener(PropertyChangeEventName, this._calendarChangeHandler, false);\n }\n propertyChangedCallback(name, old, val, first) {\n if (name === 'days') {\n this._daysOfWeek = (val || []).map(i => DAYS_OF_WEEK.indexOf(i)).filter(i => i >= 0);\n this.refreshDisabledRanges();\n }\n }\n computeDisabledRanges() {\n let retval = [];\n for (let week of this.target.month) {\n for (let day of week) {\n if (this._daysOfWeek.indexOf(day.getDay()) == -1) {\n let from = Utils.Dates.dateOnly(day), to = Utils.Dates.dateOnly(new Date(from.valueOf() + MSECS_PER_DAY + /* get rid of daylight saving switches */ MSECS_PER_HOUR));\n retval.push({ from: from, to: to });\n }\n }\n }\n return retval;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.StringArray })\n], PacemCalendarDayOfWeekRuleElement.prototype, \"days\", void 0);\nPacemCalendarDayOfWeekRuleElement = __decorate([\n CustomElement({ tagName: P + '-calendar-daysofweek-rule' })\n], PacemCalendarDayOfWeekRuleElement);\nexport { PacemCalendarDayOfWeekRuleElement };\n// #endregion\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 { P, PCSS, CustomElement, Watch, ViewChild, Utils, PropertyConverters, PacemEventTarget, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Animates its content's height (or width, if `horizontal`) between 0 and its natural size, toggled via the `collapse` property. */\nlet PacemCollapseElement = class PacemCollapseElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._resizeHandler = (evt) => {\n this.#state = evt.detail;\n this._toggle();\n };\n }\n #state;\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'collapse':\n this._toggle();\n case 'disabled':\n if (!Utils.isNull(this._resizer)) {\n this._resizer.disabled = this.disabled || this.collapse;\n }\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const r = this._resizer;\n this.#state = r.currentSize;\n this._toggle();\n }\n _toggle() {\n const div = this, collapse = this.collapse, state = this.#state;\n if (this.disabled || Utils.isNull(div))\n return;\n //\n if (this.horizontal) {\n Utils.addClass(div, PCSS + '-horizontal');\n div.style.height = state && (state.height + 'px') || '';\n div.style.width = collapse ? '0' : (state && state.width + 'px') || '';\n }\n else {\n Utils.removeClass(div, PCSS + '-horizontal');\n div.style.height = collapse ? '0' : (state && state.height + 'px') || '';\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemCollapseElement.prototype, \"collapse\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemCollapseElement.prototype, \"horizontal\", void 0);\n__decorate([\n ViewChild(P + '-resize')\n], PacemCollapseElement.prototype, \"_resizer\", void 0);\n__decorate([\n ViewChild(`[part=content]`)\n], PacemCollapseElement.prototype, \"_container\", void 0);\nPacemCollapseElement = __decorate([\n CustomElement({\n tagName: P + '-collapse', shadow: true,\n template: `<${P}-resize on-${Components.ResizeEventName}=\":host._resizeHandler($event)\" target=\"{{ ::_container }}\"></${P}-resize><div part=\"container\"><div part=\"content\"><slot></slot></div></div>`\n })\n], PacemCollapseElement);\nexport { PacemCollapseElement };\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 { P, PCSS, Defaults, CustomElement, ViewChild, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { PacemDialogBase, DialogButtons } from './dialog-abstractions';\n//namespace Pacem.Components.UI {\n/** Modal dialog built on top of a {@link PacemLightboxElement}, with a configurable Ok/Yes/No/Cancel button set (see {@link DialogButtons}). */\nlet PacemDialogElement = class PacemDialogElement extends PacemDialogBase {\n constructor() {\n super(...arguments);\n /** Gets or sets which button set is shown (Ok, OkCancel, YesNo, YesNoCancel). */\n this.buttons = DialogButtons.Ok;\n /** Gets or sets the caption of the Ok button. */\n this.okCaption = 'OK';\n /** Gets or sets the caption of the Yes button. */\n this.yesCaption = 'Yes';\n /** Gets or sets the caption of the No button. */\n this.noCaption = 'No';\n /** Gets or sets the caption of the Cancel button. */\n this.cancelCaption = 'Cancel';\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'buttons':\n //\n break;\n }\n }\n open(state) {\n const retval = super.open(state);\n switch (this.buttons) {\n case DialogButtons.Ok:\n case DialogButtons.OkCancel:\n this.dialogButtons.ok.focus();\n break;\n default:\n this.dialogButtons.yes.focus();\n break;\n }\n return retval;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n // HACK: move the buttons outside the .pacem-scrollable element in the lightbox\n //requestAnimationFrame(() => {\n // const elFrom = this.lightbox && this.lightbox.container;\n // if (!Utils.isNull(elFrom)) {\n // elFrom.appendChild(this._buttons);\n // this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'dialogButtons', currentValue: this.dialogButtons }));\n // } else {\n // this.log(Logging.LogLevel.Warn, `Could not find the lightbox container as expected.`);\n // }\n //});\n }\n /** @readonly Gets the 'ok', 'yes', 'no' and 'cancel' dialog buttons. */\n get dialogButtons() {\n const btns = this._buttons;\n return {\n ok: btns && btns.firstElementChild.firstElementChild,\n yes: btns && btns.firstElementChild.children.item(1),\n no: btns && btns.firstElementChild.children.item(2),\n cancel: btns && btns.firstElementChild.lastElementChild\n };\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"buttons\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"okCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"yesCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"noCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemDialogElement.prototype, \"cancelCaption\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-dialog-buttons`)\n], PacemDialogElement.prototype, \"_buttons\", void 0);\n__decorate([\n ViewChild(P + '-lightbox')\n], PacemDialogElement.prototype, \"lightbox\", void 0);\nPacemDialogElement = __decorate([\n CustomElement({\n tagName: P + '-dialog', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-lightbox modal=\"true\" logger=\"{{ :host.logger }}\">\r\n <${P}-content></${P}-content>\r\n <div class=\"${PCSS}-dialog-buttons ${PCSS}-buttonset buttons\" part=\"dialog-buttons\" slot=\"bottom\">\r\n <div class=\"buttonset-left\">\r\n <${P}-button class=\"button button-size size-small primary dialog-ok\" css-class=\"{{ {'buttonset-last': :host.buttons === 'ok'} }}\" on-click=\":host.commit('ok', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons !== 'ok' && :host.buttons !== 'okcancel' }}\"><${P}-text text=\"{{ :host.okCaption }}\"></${P}-text></${P}-button>\r\n <${P}-button class=\"button button-size size-small primary dialog-yes\" css-class=\"{{ {'buttonset-first': :host.buttons !== 'ok' || :host.buttons !== 'okcancel'} }}\" on-click=\":host.commit('yes', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons === 'ok' || :host.buttons === 'okcancel' }}\"><${P}-text text=\"{{ :host.yesCaption }}\"></${P}-text></${P}-button>\r\n <${P}-button class=\"button button-size size-small dialog-no\" css-class=\"{{ {'buttonset-last': :host.buttons === 'yesno'} }}\" on-click=\":host.commit('no', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons !== 'yesno' && :host.buttons !== 'yesnocancel' }}\"><${P}-text text=\"{{ :host.noCaption }}\"></${P}-text></${P}-button>\r\n <${P}-button class=\"button button-size size-small dialog-cancel\" on-click=\":host.commit('cancel', $event)\" disabled=\"{{ :host.disabled || this.hide }}\" hide=\"{{ :host.buttons !== 'yesnocancel' && :host.buttons !== 'okcancel' }}\"><${P}-text text=\"{{ :host.cancelCaption }}\"></${P}-text></${P}-button>\r\n </div>\r\n </div>\r\n</${P}-lightbox>`\n })\n], PacemDialogElement);\nexport { PacemDialogElement };\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 { P, CustomElement, Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** ARIA-`separator` element drawing a horizontal or vertical divider line, with optional `prepend`/`append` slotted content. */\nlet PacemDividerElement = class PacemDividerElement extends Components.PacemElement {\n constructor() {\n super('separator');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && name === 'orientation') {\n this._syncOrientation(val);\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._syncOrientation();\n }\n _syncOrientation(orientation = this.orientation) {\n if (orientation !== 'vertical') {\n // exclude invalid runtime values\n orientation = 'horizontal';\n }\n super.aria.attributes.set('orientation', orientation);\n switch (orientation) {\n case 'vertical':\n Utils.addClass(this, 'divider-vertical');\n break;\n default:\n Utils.removeClass(this, 'divider-vertical');\n break;\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemDividerElement.prototype, \"orientation\", void 0);\nPacemDividerElement = __decorate([\n CustomElement({\n tagName: P + '-divider', shadow: true,\n template: `<div part=\"divider\"><div part=\"prepend\"></div><slot part=\"content\"></slot><div part=\"append\"></div></div>`\n })\n], PacemDividerElement);\nexport { PacemDividerElement };\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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, CustomElementUtils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst SVG = /^\\s*<svg\\s/;\nconst FA = /^fa(b|r|s|l|d|t|-brands|-solid|-regular|-light|-thin|-duotone)?\\s+fa-/;\nconst FA_CDN = { url: \"https://kit.fontawesome.com/4922589c3c.js\", crossOrigin: true };\nconst LNI = /^lni\\s+lni-/;\nconst LNI_CDN = \"https://cdn.lineicons.com/2.0/LineIcons.css\";\nconst COREUI = /^ci[dlsbf]-/;\nconst COREUI_CDN = \"https://unpkg.com/@coreui/icons/css/all.min.css\";\nconst MATERIAL = /^material-icons?\\s+([\\w]+)/;\n//const MATERIAL_CDN = \"https://fonts.googleapis.com/icon?family=Material+Icons\";\nconst MATERIAL_SYMBOLS = /^material(-symbols?)?\\s+([\\w]+)/;\n// TODO: put this url in a css variable and use it across the site (eventually)\nconst MATERIAL_SYMBOLS_CDN = \"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\";\nconst URL = /^(https?:\\/\\/|\\/\\/)?.+\\.(webp|svg|gif|png|jpe?g)$/;\nconst iconImportMemoizer = [];\nfunction importConditionally(cssClassName, url, sha, crossOrigin, js) {\n if (iconImportMemoizer.indexOf(cssClassName) >= 0) {\n return Promise.resolve();\n }\n iconImportMemoizer.push(cssClassName);\n // this is the heavy part, be sure to call it just once (thus the memoizer)\n if (Utils.Css.isClassDefined(cssClassName)) {\n return Promise.resolve();\n }\n return js ? CustomElementUtils.importjs(url, sha, crossOrigin) : CustomElementUtils.importcss(url, sha, crossOrigin);\n}\nfunction getIconMarkup(icon) {\n return new Promise((resolve, reject) => {\n // null or empty\n if (Utils.isNullOrEmpty(icon)) {\n reject('No icon provided');\n }\n // svg?\n else if (SVG.test(icon)) {\n resolve(icon);\n }\n // font-awesome?\n else if (FA.test(icon)) {\n importConditionally(\"fa\", FA_CDN.url, undefined, FA_CDN.crossOrigin, true).then(_ => {\n resolve(`<i class=\"${icon}\"></i>`);\n }, e => reject(e));\n }\n // explicit material symbols?\n else if (MATERIAL_SYMBOLS.test(icon)) {\n importConditionally(\"material-symbols\", MATERIAL_SYMBOLS_CDN).then(_ => {\n const regExcArray = MATERIAL_SYMBOLS.exec(icon), ligature = regExcArray[2], rest = icon.substring(regExcArray[0].length);\n resolve(`<i class=\"material-symbols-outlined${rest}\">${ligature}</i>`);\n }, e => reject(e));\n }\n // explicit material icons? (switch to the new material-symbols anyway)\n else if (MATERIAL.test(icon)) {\n importConditionally(\"material-icons\", MATERIAL_SYMBOLS_CDN).then(_ => {\n const regExcArray = MATERIAL.exec(icon), ligature = regExcArray[1], rest = icon.substring(regExcArray[0].length);\n resolve(`<i class=\"material-icons${rest}\">${ligature}</i>`);\n }, e => reject(e));\n }\n // line-icons?\n else if (LNI.test(icon)) {\n importConditionally('lni', LNI_CDN).then(_ => {\n resolve(`<i class=\"${icon}\"></i>`);\n }, e => reject(e));\n }\n // coreui icons?\n else if (COREUI.test(icon)) {\n importConditionally('clb', COREUI_CDN).then(_ => {\n resolve(`<i class=\"${icon}\"></i>`);\n }, e => reject(e));\n }\n // image url?\n else if (URL.test(icon)) {\n resolve(`<img src=\"${icon}\" />`);\n }\n else {\n // assume material icon as default\n const parts = icon.trim().split(' ');\n const ligature = parts[0];\n const css = parts.length > 1 ? ' ' + parts.slice(1).join(' ') : '';\n resolve(`<i class=\"${PCSS}-icon${css}\">${ligature}</i>`);\n }\n });\n}\n/** Renders an icon from a wide range of notations (inline SVG, Font Awesome, Material Symbols/Icons, LineIcons, CoreUI, or a plain image URL), lazily importing the matching stylesheet/script on demand. */\nlet PacemIconElement = class PacemIconElement extends Components.PacemElement {\n constructor() {\n super('', { hidden: 'true' });\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'icon':\n this._setIcon();\n break;\n case 'hide':\n if (!val) {\n // overrides the default `PacemElement` behavior:\n // keep aria-hidden=true (to prevent screen readers from reading the ligatures)\n this.aria.attributes.set('hidden', 'true');\n }\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setIcon();\n }\n _setIcon(icon = this.icon) {\n getIconMarkup(icon).then(markup => {\n this.innerHTML = markup;\n }, _ => {\n this.innerHTML = '';\n });\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemIconElement.prototype, \"icon\", void 0);\nPacemIconElement = __decorate([\n CustomElement({\n tagName: P + '-icon'\n })\n], PacemIconElement);\nexport { PacemIconElement };\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 { P, CustomElement, Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Renders an image as a CSS background (rather than an `<img>` src), enabling `cover`/`contain`/`auto` fitting and reporting its natural/decoded size. */\nlet PacemImageElement = class PacemImageElement extends Components.PacemElement {\n constructor() {\n super('img');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'src':\n case 'disabled':\n this._setSource();\n break;\n case 'size':\n case 'adapt':\n this._setLayout();\n break;\n case 'loading':\n (!val ? Utils.addClass : Utils.removeClass)(this, 'img-ready');\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setLayout();\n this._setSource();\n }\n _setLayout() {\n const sizeDeclared = !Utils.isNullOrEmpty(this.size);\n const bgsize = this.adapt || 'auto';\n const size = this.size || this.#naturalSize || { width: '0', height: '0' };\n this.style.backgroundSize = bgsize;\n const adapt = bgsize === 'auto', w = size.width, h = size.height;\n if (adapt || sizeDeclared) {\n this.style.width = w || '';\n this.style.height = h || '';\n }\n }\n #naturalSize;\n async _setSource() {\n if (this.disabled || !this.isReady) {\n return;\n }\n //\n const src = this.src;\n this.style.backgroundImage = '';\n if (!Utils.isNullOrEmpty(src)) {\n this.loading = true;\n try {\n const img = await Utils.loadImage(src);\n let weight, entries, entry;\n if (window.performance\n && (entries = performance.getEntriesByName(img.src))\n && (entry = entries[0])) {\n weight = entry.decodedBodySize;\n }\n this.#naturalSize = {\n width: img.naturalWidth + 'px',\n height: img.naturalHeight + 'px',\n weight: weight\n };\n this._setLayout();\n this.style.backgroundImage = `url(\"${img.src}\")`;\n }\n catch (e) {\n // 404, whatever...\n }\n finally {\n this.loading = false;\n }\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemImageElement.prototype, \"adapt\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemImageElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false,\n converter: {\n convert: (attr, el) => {\n // parse strings like \"20,20\" \".5 , 1vh\" \"15\" and returns respectively [\"20px\", \"20px\"], [\".5px\", \"1vh\"] and [\"15px\", \"15px\"]\n const regex = /^\\s*([\\d.]+)(px|em|rem|vw|vh)?\\s*(?:,\\s*([\\d.]+)(px|em|rem|vw|vh)?)?\\s*$/i;\n const match = regex.exec(attr);\n const width = match ? match[1] + (match[2] || 'px') : '0', height = match ? (match[3] ? match[3] + (match[4] || 'px') : width) : '0';\n return { width, height };\n },\n convertBack: (prop, el) => `${prop?.width},${prop?.height}`\n }, reflectBack: true })\n], PacemImageElement.prototype, \"size\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemImageElement.prototype, \"loading\", void 0);\nPacemImageElement = __decorate([\n CustomElement({\n tagName: P + '-img'\n })\n], PacemImageElement);\nexport { PacemImageElement };\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 { P, Debounce, CustomElement, Watch, Utils, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Watches a scrollable `container` and dispatches a `fetchmore` event whenever the user scrolls within `threshold` pixels of the bottom. */\nlet PacemInfiniteScrollerElement = class PacemInfiniteScrollerElement extends PacemEventTarget {\n constructor() {\n super();\n this._scrollDelegate = () => this._doScroll();\n this._enabled = true;\n this._viewportHeight = 0;\n this._innerHeight = 0;\n this._isDocument = false;\n this._container = null;\n this._viewport = null;\n this._scroller = null;\n this._bottomGap = 10;\n this._container = this;\n this._viewport = this;\n this._scroller = this;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.setInfiniteScrollContainer(this._container);\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._scroller))\n this._scroller.removeEventListener('scroll', this._scrollDelegate, false);\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'container':\n this.setInfiniteScrollContainer(val);\n break;\n case 'disabled':\n if (this._enabled = !val)\n this._doScroll();\n break;\n case 'threshold':\n this._bottomGap = val || 0;\n break;\n }\n }\n /** Re-targets the watched scroll container/viewport/scroll-event-source. @param v An element, a CSS selector, or `'$document'` for the whole page. */\n setInfiniteScrollContainer(v = '$document') {\n var cont = v;\n var isDoc = this._isDocument = cont === '$document' || cont === document.body || cont === document.documentElement;\n this._container = isDoc ? (document.body || document.documentElement) : ((typeof v === 'string') ?\n document.querySelector(cont)\n :\n cont);\n this._viewport = isDoc ? window : this._container;\n if (this._scroller)\n this._scroller.removeEventListener('scroll', this._scrollDelegate, false);\n this._scroller = isDoc ? window.document : this._container;\n this._scroller.addEventListener('scroll', this._scrollDelegate, false);\n if (this._enabled)\n this._doScroll();\n }\n //ngOnChanges(changes: SimpleChanges) {\n //}\n _emitFetchMore() {\n /**\n * on-fetchmore => must toggle `enabled` while fetching...\n */\n var evt = new CustomEvent('fetchmore');\n this.dispatchEvent(evt);\n }\n _doScroll() {\n if (!this._enabled)\n return;\n if (!this._computeHeight()) {\n var scrollTop = this._scroller instanceof Document ? window.pageYOffset : this._scroller.scrollTop;\n var viewportHeight = this._viewportHeight, innerHeight = this._innerHeight;\n var threshold = innerHeight - (scrollTop + viewportHeight);\n if (threshold < this._bottomGap /* pixels */\n || innerHeight <= viewportHeight) {\n // fire fetchMore() \n this._emitFetchMore();\n window.requestAnimationFrame(() => {\n if (this._enabled)\n this._doScroll();\n });\n } //else computeHeight();\n }\n else\n this._doScroll();\n }\n _computeHeight() {\n if (!this._container)\n return;\n var cont = this._container;\n var topOffset = Number.MAX_VALUE, bottomOffset = 0, totalHeight = 0, _innerHeight;\n if (this._isDocument) {\n var d = cont;\n _innerHeight = Math.max(d.scrollHeight, d.offsetHeight, d.clientHeight);\n }\n else {\n for (var i = 0; i < cont.children.length; i++) {\n var e = cont.children.item(i);\n var eTopOffset = e.offsetTop, eHeight = e.offsetHeight, eBottomOffset = eTopOffset + eHeight;\n totalHeight += eHeight;\n if (eTopOffset < topOffset) {\n topOffset = eTopOffset;\n }\n if (eBottomOffset > bottomOffset) {\n bottomOffset = eBottomOffset;\n }\n }\n _innerHeight = Math.round(bottomOffset - topOffset);\n }\n var _viewportHeight = this._viewport instanceof Window ? Utils.windowSize.height : this._viewport.offsetHeight;\n if (_innerHeight != this._innerHeight || _viewportHeight != this._viewportHeight) {\n this._innerHeight = _innerHeight;\n this._viewportHeight = _viewportHeight;\n return true;\n }\n return false;\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemInfiniteScrollerElement.prototype, \"container\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Number })\n], PacemInfiniteScrollerElement.prototype, \"threshold\", void 0);\n__decorate([\n Debounce(100)\n], PacemInfiniteScrollerElement.prototype, \"_doScroll\", null);\nPacemInfiniteScrollerElement = __decorate([\n CustomElement({ tagName: P + '-infinite-scroller' })\n], PacemInfiniteScrollerElement);\nexport { PacemInfiniteScrollerElement };\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 { Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Base class for elements iterating a `datasource` under the control of a {@link PacemAdapterElement} (e.g. a slideshow), exposing `index`-relative helpers (`isPrevious`, `isNext`, `isCloseTo`). */\nexport class PacemAdaptedIterativeElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets the currently focused item's index within `datasource`. */\n this.index = 0;\n }\n /** Gets whether `ndx` is the focused item itself, or immediately adjacent (previous/next, wrapping around) to `focusndx`. */\n isCloseTo(ndx, focusndx) {\n if (Utils.isNull(this.datasource) || this.datasource.length == 0)\n return false;\n return /*this.adapter.isClose(ndx) ||*/ this._isCloseToCore(ndx, focusndx, this.datasource.length);\n }\n /** Gets whether `ndx` is the item immediately preceding `focusndx` (wrapping around the datasource). */\n isPrevious(ndx, focusndx) {\n if (Utils.isNull(this.datasource) || this.datasource.length == 0)\n return false;\n return /*this.adapter.isPrevious(ndx) ||*/ this._isPreviousCore(ndx, focusndx, this.datasource.length);\n }\n /** Gets whether `ndx` is the item immediately following `focusndx` (wrapping around the datasource). */\n isNext(ndx, focusndx) {\n if (Utils.isNull(this.datasource) || this.datasource.length == 0)\n return false;\n return /*this.adapter.isNext(ndx) ||*/ this._isNextCore(ndx, focusndx, this.datasource.length);\n }\n _isNextCore(ndx, focusndx, count) {\n return ((focusndx + 1) % count) === ndx;\n }\n _isPreviousCore(ndx, focusndx, count) {\n return ((focusndx - 1 + count) % count) === ndx;\n }\n _isCloseToCore(ndx, focusndx, count) {\n return (((focusndx + count) % count) == ((ndx + count) % count))\n || this._isNextCore(ndx, focusndx, count) || this._isPreviousCore(ndx, focusndx, count);\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemAdaptedIterativeElement.prototype, \"index\", void 0);\n__decorate([\n Watch()\n], PacemAdaptedIterativeElement.prototype, \"datasource\", 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 { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, stopPropagationHandler, ViewChild, avoidHandler } from '@pacem/pacem-core';\nimport { LightboxBehavior } from './lightbox-abstractions';\nimport { PacemButtonElement } from './button';\n//namespace Pacem.Components.UI {\n// TODO: shadow-ize lightbox (slots, parts, ...) in the next version 0.5x.x.\n/** Full-viewport overlay (\"lightbox\") element showing its slotted content above a backdrop, with an auto-injected close button and optional modal (non-dismissible) behavior. */\nlet PacemLightboxElement = class PacemLightboxElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._keyupHandler = (evt) => {\n if (evt.keyCode === 27 /* ESC */ && this.show && !this.modal) {\n this.show = false;\n }\n };\n this._wrapperMousedownHandler = (evt) => {\n if (this.modal || this.behavior === LightboxBehavior.ExplicitClose) {\n stopPropagationHandler(evt);\n }\n else {\n this.show = false;\n }\n };\n this._slotchangeHandler = (evt) => {\n this._resetLayout();\n };\n this._closeHandler = (evt) => {\n this._close(evt);\n };\n }\n _resetLayout() {\n this._disposeButton();\n const btn = this._ensureButton();\n if (!Utils.isNull(btn)) {\n btn.addEventListener('click', this._closeHandler, false);\n }\n }\n _toggleCloseVisibility() {\n const closer = this._closeWrapper;\n if (!Utils.isNull(closer)) {\n closer.hidden = this.modal;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._toggleCloseVisibility();\n var wrapper = this._wrapperElement;\n var container = this._container;\n wrapper.addEventListener('mousedown', this._wrapperMousedownHandler, false);\n container.addEventListener('mousedown', stopPropagationHandler, false);\n document.body.removeEventListener('scroll', avoidHandler, true);\n window.addEventListener('keyup', this._keyupHandler, false);\n this._resetLayout();\n this._slot.addEventListener('slotchange', this._slotchangeHandler, false);\n if (this.show) {\n this._toggle(true);\n }\n }\n _toggle(val) {\n const wrap = this._wrapperElement;\n const container = this._container;\n if (!!val) {\n this.inert = false;\n this.dispatchEvent(new Event('open', { bubbles: true, cancelable: false }));\n wrap.style.display = '';\n wrap.hidden = false;\n window.requestAnimationFrame(() => {\n Utils.addPart(wrap, 'lightbox-wrapper-shown');\n Utils.addPart(container, 'lightbox-shown');\n });\n var scroller = this.querySelector('.' + PCSS + '-scrollable');\n if (scroller) {\n window.requestAnimationFrame(() => scroller.scrollTop = 0);\n }\n }\n else {\n this.inert = true;\n this.dispatchEvent(new Event('close', { bubbles: true, cancelable: false }));\n //\n Utils.removePart(wrap, 'lightbox-wrapper-shown');\n Utils.removePart(container, 'lightbox-shown');\n Utils.addAnimationEndCallback(wrap, (e) => {\n e.hidden = true;\n e.style.display = 'none';\n }, 500);\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'show':\n if (!!val) {\n this._toggle(true);\n }\n else if (!!old) {\n this._toggle(false);\n }\n break;\n case 'modal':\n this._toggleCloseVisibility();\n break;\n }\n }\n disconnectedCallback() {\n if (this.show) {\n this._close();\n }\n var wrapper = this._wrapperElement;\n var container = this._container;\n document.body.removeEventListener('scroll', avoidHandler, true);\n if (!Utils.isNull(wrapper)) {\n wrapper.removeEventListener('mousedown', this._wrapperMousedownHandler, false);\n }\n if (!Utils.isNull(container)) {\n container.removeEventListener('mousedown', stopPropagationHandler, false);\n }\n window.removeEventListener('keyup', this._keyupHandler, false);\n this._disposeButton();\n this._disposeSlot();\n super.disconnectedCallback();\n }\n _disposeButton() {\n this.#btn?.removeEventListener('click', this._closeHandler);\n this.#btn = null;\n }\n _disposeSlot() {\n this._slot?.removeEventListener('slotchange', this._slotchangeHandler, false);\n }\n _close(evt) {\n if (!Utils.isNull(evt)) {\n avoidHandler(evt);\n }\n this.show = false;\n }\n #btn;\n _ensureButton() {\n if (!Utils.isNull(this.#btn)) {\n return this.#btn;\n }\n const btnSlot = this._slot;\n if (Utils.isNull(btnSlot)) {\n return null;\n }\n const found = this._lookForAButton();\n if (!Utils.isNull(found)) {\n return this.#btn = found;\n }\n const retval = new PacemButtonElement();\n retval.setAttribute('slot', 'close');\n retval.className = `${PCSS}-margin margin-0 ${PCSS}-rise rise--2 button-circle circle-smaller`;\n retval.iconGlyph = 'close';\n this.appendChild(retval);\n return this.#btn = retval;\n }\n _lookForAButton() {\n const btnSlot = this._slot;\n if (Utils.isNull(btnSlot)) {\n return null;\n }\n const buttons = btnSlot.assignedElements({ flatten: true });\n if (Utils.isNullOrEmpty(buttons)) {\n return null;\n }\n return buttons[0];\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemLightboxElement.prototype, \"show\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemLightboxElement.prototype, \"modal\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemLightboxElement.prototype, \"behavior\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-lightbox-wrapper')\n], PacemLightboxElement.prototype, \"_wrapperElement\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-lightbox')\n], PacemLightboxElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild('slot[name=close]')\n], PacemLightboxElement.prototype, \"_slot\", void 0);\n__decorate([\n ViewChild('div[part=close]')\n], PacemLightboxElement.prototype, \"_closeWrapper\", void 0);\nPacemLightboxElement = __decorate([\n CustomElement({\n tagName: P + '-lightbox',\n shadow: true,\n template: `<div class=\"${PCSS}-lightbox-wrapper\" part=\"lightbox-wrapper\" hidden>\r\n <div class=\"${PCSS}-lightbox\" part=\"lightbox\">\r\n <div part=\"top\"><slot name=\"top\"></slot></div>\r\n <div class=\"${PCSS}-scrollable\" part=\"scrollable\">\r\n <slot></slot>\r\n </div>\r\n <div part=\"bottom\"><slot name=\"bottom\"></slot></div>\r\n <div part=\"close\">\r\n <slot name=\"close\"></slot>\r\n </div>\r\n </div>\r\n</div>`\n })\n], PacemLightboxElement);\nexport { PacemLightboxElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Utils, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Visual style of a {@link PacemLoaderElement}'s spinner. */\nexport var LoaderType;\n(function (LoaderType) {\n LoaderType[\"Spinner\"] = \"spin\";\n LoaderType[\"Pacem\"] = \"pacem\";\n LoaderType[\"Custom\"] = \"custom\";\n})(LoaderType || (LoaderType = {}));\n;\n/** Shows a spinner (plain CSS or the branded Pacem gear/SVG animation) while `active`, typically overlaid on content being loaded. */\nlet PacemLoaderElement = class PacemLoaderElement extends Components.PacemElement {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n var id = '_' + Utils.uniqueCode();\n this._svgSpinner.innerHTML = `<defs>\r\n <mask id=\"hole${id}\">\r\n <rect width=\"100%\" height=\"100%\" fill=\"white\" />\r\n <circle cx=\"36\" cy=\"36\" r=\"12\"></circle>\r\n <path d=\"M18,0 L32,16 H40 L54,0 Z\" fill=\"#000\"></path>\r\n <g transform=\"rotate(120,36,36)\">\r\n <path d=\"M18,0 L32,16 H40 L54,0 Z\" fill=\"#000\"></path>\r\n </g>\r\n </mask>\r\n </defs>\r\n\r\n <circle class=\"circle1\" cx=\"36\" cy=\"36\" r=\"34\" stroke-width=\"4\" fill=\"none\"></circle>\r\n <g class=\"gear\">\r\n <circle cx=\"36\" cy=\"36\" r=\"25\" mask=\"url(#hole${id})\"></circle>\r\n </g>\r\n <circle class=\"circle2\" cx=\"36\" cy=\"36\" r=\"8\" stroke-width=\"2\" fill=\"none\"></circle>\r\n\r\n <g class=\"bounds\">\r\n <path d=\"M8,0 H0 V8 M64,0 H71 V8 M71,63 V71 H64 M8,71 H0 V63\" stroke-width=\"2\"></path>\r\n </g>`;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!Utils.isNull(this._container)) {\n switch (name) {\n case 'active':\n case 'disabled':\n if (this.active === true && !this.disabled) {\n Utils.addClass(this._container, 'active');\n }\n else {\n Utils.removeClass(this._container, 'active');\n }\n break;\n case 'type':\n this._svgSpinner.setAttribute('hidden', 'hidden');\n this._spinner.setAttribute('hidden', 'hidden');\n switch (val) {\n case LoaderType.Pacem:\n this._svgSpinner.removeAttribute('hidden');\n break;\n default:\n this._spinner.removeAttribute('hidden');\n break;\n }\n break;\n }\n }\n }\n};\n__decorate([\n ViewChild('div.' + PCSS + '-spinner')\n], PacemLoaderElement.prototype, \"_spinner\", void 0);\n__decorate([\n ViewChild('div.' + PCSS + '-loader')\n], PacemLoaderElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild('svg')\n], PacemLoaderElement.prototype, \"_svgSpinner\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemLoaderElement.prototype, \"active\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemLoaderElement.prototype, \"type\", void 0);\nPacemLoaderElement = __decorate([\n CustomElement({\n tagName: P + '-loader', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${PCSS}-loader\" pacem>\r\n <div class=\"${PCSS}-spinner\" pacem>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n <svg class=\"${PCSS}-spinner\" pacem hidden xmlns=\"http://www.w3.org/2000/svg\" \r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"-18,-18,108,108\" preserveAspectRatio=\"xMidYMid\">\r\n </svg>\r\n </div>`\n })\n], PacemLoaderElement);\nexport { PacemLoaderElement };\n","import { Compile } from '@pacem/pacem-foundation';\nimport { P } from '@pacem/pacem-core';\n//namespace Pacem {\nconst match = (input, pattern, fn) => {\n const arr = pattern.exec(input);\n if (arr && arr.length) {\n return fn(arr);\n }\n return null;\n};\nconst MARKUP_RULES = [\n {\n // comment\n exec: (input) => match(input, /^((<|<)!--(?:(?!(--(>|>)))[\\s\\S])*(--(?:>|>)|$))/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-comment', raw, text, index: arr.index\n }];\n })\n },\n {\n // opening/self-closing tag\n exec: (input, lexer) => match(input, /^(<|<)([\\w-]+)(?:\\s+[\\w-]+(?:=(?:'[^']*'|\"[^\"]*\"))*)*(\\s*\\/?(?:>|>))/, arr => {\n const openingTag = arr[1], tagName = arr[2], closingTag = arr[3];\n const closingTagIndex = arr[0].length - closingTag.length, attributesIndex = openingTag.length + tagName.length, attributesString = input.substring(attributesIndex, closingTagIndex);\n const attributes = lexer.tokenize(attributesString, [{\n exec: (input) => match(input, /^(\\s+[\\w-]+)(=('[^']*'|\"[^\"]*\"))?/, arr => {\n const raw = arr[1];\n const output = [{\n type: 'code-attribute', raw, text: raw, index: arr[0].indexOf(raw)\n }];\n if (arr.length > 2) {\n output.push({\n type: 'code-string', raw: arr[2], text: arr[2], index: arr.index + arr[0].length - arr[2].length\n });\n }\n return output;\n })\n }]);\n const retval = [{\n type: 'code-tag', raw: openingTag, text: openingTag, index: 0\n }, {\n type: 'code-tagname', raw: tagName, text: tagName, index: openingTag.length\n }];\n // attributes\n Array.prototype.push.apply(retval, attributes);\n retval.push({\n type: 'code-tag', raw: closingTag, text: closingTag, index: closingTagIndex\n });\n return retval;\n })\n },\n {\n // closing tag\n exec: (input) => match(input, /^((?:<|<)\\/)([\\w-]+)(\\s*(?:>|>))/, arr => {\n const openingTag = arr[1], tagName = arr[2], closingTag = arr[3];\n return [{\n type: 'code-tag', raw: openingTag, text: openingTag, index: 0\n }, {\n type: 'code-tagname', raw: tagName, text: tagName, index: openingTag.length\n }, {\n type: 'code-tag', raw: closingTag, text: closingTag, index: arr.index + arr[0].length - closingTag.length\n }];\n })\n },\n {\n // text\n exec: (input) => match(input, /^(<|<)?((?!<|<).)+/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'text', raw, text\n }];\n })\n }\n];\nconst C_LIKE_RULES = [{\n // comments\n exec: (input, _) => match(input, /^\\/\\/.*/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-comment', raw, text\n }];\n })\n }, {\n exec: (input, _) => match(input, /^\\/\\*(?:(?!(\\*\\/))[\\s\\S])*(?:\\*\\/|$)/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-comment', raw, text\n }];\n })\n }, {\n // string literal\n exec: (input, _) => match(input, /^('(\\\\'|[^'])*[^\\\\]?'|@?\\$?\"(\\\\\"|[^\"])*[^\\\\]?\")/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-string', raw, text\n }];\n })\n }, {\n // keywords\n exec: (input, _) => match(input, /^\\b(abstract|as|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|static|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|nameof|orderby|partial|remove|select|set|value|var|when|where|yield)\\b/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-keyword', raw, text\n }];\n })\n }, {\n // number \n exec: (input, _) => match(input, /^\\b((0x[0-9a-fA-F]|[\\d])*\\.?[\\d]+)\\b/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-number', raw, text\n }];\n })\n }, {\n // variables, operators, parentheses\n exec: (input, _) => match(input, /^(@?\\w+|:|\\?\\??|\\?=?|\\|\\|?|&&?|&=?|;|,|=|\\*=?|--|-=?|\\+\\+|\\+=?|\\/=?|\\^|\\(|\\[|\\)|\\]|\\{|\\})/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'text', raw, text\n }];\n }),\n }, {\n // spaces\n exec: (input, _) => match(input, /^\\s+/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'space', raw, text\n }];\n }),\n }];\nconst SCRIPT_RULES = [\n C_LIKE_RULES[0], C_LIKE_RULES[1], {\n // string literal\n exec: (input, _) => match(input, /^('(\\\\'|[^'])*[^\\\\]?'|\"(\\\\\"|[^\"])*[^\\\\]?\"|`(\\\\`|[^`])*[^\\\\]?`)/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-string', raw, text\n }];\n })\n }, {\n // keywords\n exec: (input, _) => match(input, /^\\b(abstract|any|arguments|async|await|boolean|break|byte|case|catch|char|class|const|continue|debugger|declare|default|delete|do|double|else|enum|eval|export|extends|false|final|finally|float|for|function|get|goto|if|implements|import|in|instanceof|int|interface|let|long|native|new|null|number|package|private|protected|public|return|short|static|string|super|switch|synchronized|this|throw|throws|transient|true|try|type|typeof|var|void|volatile|while|with|yield)\\b/, arr => {\n const raw = arr[0], text = raw;\n return [{\n type: 'code-keyword', raw, text\n }];\n })\n },\n C_LIKE_RULES[4],\n C_LIKE_RULES[5],\n C_LIKE_RULES[6]\n];\nconst TWITTER_RULE = {\n rule: {\n exec: (input) => {\n const arr = /\\{tweet\\}\\(([^\\)]+)\\)/.exec(input);\n if (arr && arr.length > 1) {\n return [{\n type: 'tweet', raw: arr[0], text: arr[1], index: arr.index\n }];\n }\n return null;\n }\n },\n type: 'inline'\n};\nconst YOUTUBE_RULE = {\n rule: {\n exec: (input) => {\n const arr = /\\{yt([\\d]+x[\\d]+)?\\}\\(([^\\)]+)\\)/.exec(input);\n if (arr && arr.length > 2) {\n const m0 = arr[1] || '560x315';\n const size = m0.split('x'), w = size[0], h = size[1];\n return [{\n type: 'youtube', raw: arr[0], text: arr[2], index: arr.index, width: w, height: h\n }];\n }\n return null;\n }\n },\n type: 'inline'\n};\nconst RULES_TO_HTML = (token) => {\n switch (token.type) {\n case 'youtube':\n return `<!-- youtube embed -->\r\n<iframe width=\"${token['width']}\" height=\"${token['height']}\" src=\"https://www.youtube-nocookie.com/embed/${token.text}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe>`;\n case 'tweet':\n return `<!-- twitter embed -->\r\n<${P}-tweetembed tweetid=\"${token.text}\"></${P}-tweetembed>`;\n // code\n case 'code-string':\n case 'code-keyword':\n case 'code-number':\n case 'code-comment':\n case 'code-tag':\n case 'code-tagname':\n case 'code-attribute':\n return `<span class=\"${token.type}\">${token.text}</span>`;\n }\n};\n/** Parses Markdown into HTML, extended with C-like/script/markup code-fence highlighting and Pacem-specific inline embeds (`{tweet}(id)`, `{yt}(id)`). */\nexport class MarkdownService {\n constructor() {\n const grammar = [\n TWITTER_RULE,\n YOUTUBE_RULE\n ];\n for (let lang of ['c-sharp', 'c', 'c#', 'csharp', 'c++', 'cpp']) {\n const c_like_rules = C_LIKE_RULES.map(rule => { return { rule, lang, type: 'code' }; });\n Array.prototype.push.apply(grammar, c_like_rules);\n }\n for (let lang of ['ts', 'js', 'typescript', 'javascript']) {\n const script_rules = SCRIPT_RULES.map(rule => { return { rule, lang, type: 'code' }; });\n Array.prototype.push.apply(grammar, script_rules);\n }\n for (let lang of ['xml', 'html']) {\n const markup_rules = MARKUP_RULES.map(rule => { return { rule, lang, type: 'code' }; });\n Array.prototype.push.apply(grammar, markup_rules);\n }\n this.#grammar = grammar;\n }\n #grammar;\n #md = new Compile.Markdown.Parser();\n _escape(md) {\n // no html allowed\n return (md ?? '').replace(/</g, '<');\n }\n /** Converts the given Markdown source into an HTML string. */\n toHtml(md) {\n return this.#md.toHtml(this._escape(md), this.#grammar, RULES_TO_HTML);\n }\n /** Tokenizes the given Markdown source, without rendering it to HTML. */\n tokenize(md) {\n return this.#md.tokenize(this._escape(md), this.#grammar);\n }\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 { P, CustomElement, Watch, PropertyConverters, Components } from '@pacem/pacem-core';\nimport { MarkdownService } from './markdown-svc';\n//namespace Pacem.Components.UI {\n/** Renders its `value` property, interpreted as Markdown, as this element's inner HTML. */\nlet PacemMarkdownElement = class PacemMarkdownElement extends Components.PacemElement {\n constructor(_md = new MarkdownService()) {\n super();\n this._md = _md;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'value') {\n this.innerHTML = this.html();\n }\n }\n // IDEA: allow extensible parsing (grammar components?...)\n /** Tokenizes the given (or current `value`) Markdown source. */\n tokens(md = this.value) {\n return this._md.tokenize(md);\n }\n /** Converts the given (or current `value`) Markdown source to an HTML string. */\n html(md = this.value) {\n return this._md.toHtml(md);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMarkdownElement.prototype, \"value\", void 0);\nPacemMarkdownElement = __decorate([\n CustomElement({ tagName: P + '-markdown' })\n], PacemMarkdownElement);\nexport { PacemMarkdownElement };\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 { P, PCSS, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Continuously scrolls its content horizontally in a loop, like a classic marquee. */\nlet PacemMarqueeElement = class PacemMarqueeElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._state = { overlap: 0, content: 0 };\n }\n // TODO: reuse css animation injection\n connectedCallback() {\n super.connectedCallback();\n const css = this._css = document.createElement('style');\n document.head.appendChild(css);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'speed') {\n this._adjust();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._adjust();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._css))\n this._css.remove();\n super.disconnectedCallback();\n }\n _overlapResize(evt) {\n this._state.overlap = evt.detail.width;\n this._adjust();\n }\n _contentResize(evt) {\n this._state.content = evt.detail.width;\n this._adjust();\n }\n _adjust() {\n const state = this._state;\n if (state.content > 0 && state.overlap > 0) {\n const m = this._marquee;\n const id = 'marquee-' + Utils.uniqueCode(), // rename the animation every time (Edge bug)\n from = Math.round(state.overlap), to = -Math.round(state.content);\n this._css.innerHTML = `@keyframes ${id} {\r\n 0% {\r\n transform: translateX(${from}px);\r\n }\r\n\r\n 100% {\r\n transform: translateX(${to}px);\r\n }\r\n}`;\n const speed = this.speed || 20;\n const time = Math.max(speed, Math.round(speed * Math.abs(from - to) / 1920));\n m.style.animationName = id;\n m.style.animationDuration = time + 's';\n m.style.animationIterationCount = 'infinite';\n m.style.animationTimingFunction = 'linear';\n }\n }\n};\n__decorate([\n ViewChild(`.${PCSS}-marquee`)\n], PacemMarqueeElement.prototype, \"_marquee\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-marquee-overlap`)\n], PacemMarqueeElement.prototype, \"_overlap\", void 0);\n__decorate([\n ViewChild(P + \"-resize\")\n], PacemMarqueeElement.prototype, \"_resizer\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemMarqueeElement.prototype, \"speed\", void 0);\nPacemMarqueeElement = __decorate([\n CustomElement({\n tagName: P + '-marquee', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${PCSS}-marquee\"><${P}-content></${P}-content></div><div class=\"${PCSS}-marquee-overlap\"></div>\r\n<${P}-resize target=\"{{ :host._overlap }}\" on-${Components.ResizeEventName}=\":host._overlapResize($event)\"></${P}-resize>\r\n<${P}-resize target=\"{{ :host._marquee }}\" on-${Components.ResizeEventName}=\":host._contentResize($event)\"></${P}-resize>`\n })\n], PacemMarqueeElement);\nexport { PacemMarqueeElement };\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 { P, Utils, CustomElement, Watch, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst THRESHOLD_SM = 768;\nconst THRESHOLD_MD = 992;\nconst THRESHOLD_LG = 1200;\nconst THRESHOLD_XL = 1824;\nconst THRESHOLD_HD = 1920;\nconst THRESHOLD_2K = 2048;\nconst THRESHOLD_4K = 3840;\nexport const MEDIAQUERY_XS = `(max-width: ${(THRESHOLD_SM - 1)}px)`;\nexport const MEDIAQUERY_SM = `(min-width: ${THRESHOLD_SM}px)`;\nexport const MEDIAQUERY_MD = `(min-width: ${THRESHOLD_MD}px)`;\nexport const MEDIAQUERY_LG = `(min-width: ${THRESHOLD_LG}px)`;\nexport const MEDIAQUERY_XL = `(min-width: ${THRESHOLD_XL}px)`;\nexport const MEDIAQUERY_HD = `(min-width: ${THRESHOLD_HD}px)`;\nexport const MEDIAQUERY_2K = `(min-width: ${THRESHOLD_2K}px)`;\nexport const MEDIAQUERY_4K = `(min-width: ${THRESHOLD_4K}px)`;\nexport const MEDIAQUERY_PORTRAIT = `(orientation: portrait)`;\nexport const MEDIAQUERY_LANDSCAPE = `(orientation: landscape)`;\nexport const MEDIAQUERY_PREFERS_LIGHT = `(prefers-color-scheme: light)`;\nexport const MEDIAQUERY_PREFERS_DARK = `(prefers-color-scheme: dark)`;\n/** Evaluates a CSS media query and reflects its match state, dispatching `change`/`match`/`unmatch` events as it changes. */\nlet PacemMediaQueryElement = class PacemMediaQueryElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._changeHandler = (evt) => {\n this.isMatch = evt.matches;\n };\n }\n #mql;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._init();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'query':\n if (!first) {\n this._init();\n }\n break;\n case 'isMatch':\n // dedicated change events\n this._broadcastChange(val);\n break;\n }\n }\n disconnectedCallback() {\n this._init('');\n super.disconnectedCallback();\n }\n _broadcastChange(val = this.isMatch) {\n this.dispatchEvent(new Event('change'));\n this.dispatchEvent(new Event(val ? 'match' : 'unmatch'));\n }\n _init(q = this.query) {\n const old = this.#mql;\n if (!Utils.isNull(old)) {\n old.removeEventListener('change', this._changeHandler);\n }\n if (!Utils.isNullOrEmpty(q)) {\n const val = this.#mql = window.matchMedia(q);\n val.addEventListener('change', this._changeHandler);\n this.isMatch = val.matches;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMediaQueryElement.prototype, \"query\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemMediaQueryElement.prototype, \"isMatch\", void 0);\nPacemMediaQueryElement = __decorate([\n CustomElement({\n tagName: P + '-media-query'\n })\n], PacemMediaQueryElement);\nexport { PacemMediaQueryElement };\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};\nvar PacemMenuCursorElement_1;\nimport { P, PCSS, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults, avoidHandler, stopPropagationHandler, CustomElementUtils, Logging } from '@pacem/pacem-core';\n//namespace Components.UI {\n/** Collapsible off-canvas/hamburger navigation menu, optionally synchronized with the enclosing shell's CSS classes. */\nlet PacemMenuElement = class PacemMenuElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets whether the open/close and outset state toggle CSS classes on the ancestor shell. */\n this.synchronizeShell = true;\n this._stopPropagationHandlerConditional = (_) => {\n if (!Utils.isNull(this._container) && !Utils.isNull(this._base)) {\n const offsetNav = Utils.offset(this._container);\n const offsetBase = Utils.offset(this._base);\n // TODO: consider height as well for different skins, but DO manage edge cases...\n if (offsetNav.width < offsetBase.width) {\n this.open = false;\n }\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._container.addEventListener('click', stopPropagationHandler, false);\n this._container.addEventListener(\"scroll\", stopPropagationHandler, false);\n this._sync();\n }\n disconnectedCallback() {\n window.removeEventListener('navigate', this._stopPropagationHandlerConditional, false);\n if (!Utils.isNull(this._container)) {\n this._container.removeEventListener('click', stopPropagationHandler, false);\n this._container.removeEventListener(\"scroll\", stopPropagationHandler, false);\n }\n this._sync(false);\n super.disconnectedCallback();\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('navigate', this._stopPropagationHandlerConditional, false);\n this._shell = CustomElementUtils.findAncestorShell(this);\n }\n _toggle(evt) {\n avoidHandler(evt);\n this.open = !this.open;\n this.dispatchEvent(new Event('toggle'));\n }\n _sync(val = this.open) {\n if (this.synchronizeShell) {\n Utils.addClass(this, 'menu-sync');\n Utils.addClass(this._shell, PCSS + (val === true ? '-menu-open' : '-menu-close'));\n Utils.removeClass(this._shell, PCSS + (val === true ? '-menu-close' : '-menu-open'));\n }\n else {\n Utils.removeClass(this, 'menu-sync');\n Utils.removeClass(this._shell, PCSS + '-menu-close ' + PCSS + '-menu-open');\n }\n if (this.outset) {\n Utils.addClass(this, 'menu-outset');\n }\n else {\n Utils.removeClass(this, 'menu-outset');\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'open' || name === 'synchronizeShell' || name === 'outset') {\n this._sync();\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"open\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"hideHamburgerButton\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"hideBackButton\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"outset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemMenuElement.prototype, \"synchronizeShell\", void 0);\n__decorate([\n ViewChild('nav')\n], PacemMenuElement.prototype, \"_container\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-menu`)\n], PacemMenuElement.prototype, \"_base\", void 0);\nPacemMenuElement = __decorate([\n CustomElement({\n tagName: P + '-menu', template: `<${P}-panel class=\"${PCSS}-menu\" css-class=\"{{ {'menu-close': !:host.open, 'menu-open': :host.open} }}\" on-click=\":host._toggle($event)\"> \r\n <nav><${P}-content></${P}-content></nav>\r\n</${P}-panel>\r\n<${P}-shell-proxy>\r\n<${P}-button hide=\"{{ :host.hideBackButton }}\" class=\"${PCSS}-back ${PCSS}-menu button-flat\" css-class=\"{{ {'menu-close': !:host.open, 'menu-open': :host.open} }}\" on-click=\":host._toggle($event)\">BACK</${P}-button>\r\n<${P}-button hide=\"{{ :host.hideHamburgerButton }}\" class=\"${PCSS}-hamburger ${PCSS}-menu button-flat\" css-class=\"{{ {'menu-close': :host.open, 'menu-open': !:host.open} }}\" on-click=\":host._toggle($event)\">MENU</${P}-button></${P}-shell-proxy>`,\n shadow: Defaults.USE_SHADOW_ROOT\n })\n], PacemMenuElement);\nexport { PacemMenuElement };\n/** Animated cursor/indicator that tracks the anchor matching the current path within an ancestor `PacemMenuElement`. */\nlet PacemMenuCursorElement = PacemMenuCursorElement_1 = class PacemMenuCursorElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._onPathChange = (evt) => {\n const path = evt?.detail.path;\n this._findAnchorAndScrollItIntoView(path);\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._menu = CustomElementUtils.findAncestorOfType(this, PacemMenuElement);\n this._findAnchorAndScrollItIntoView();\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('navigate', this._onPathChange, false);\n }\n disconnectedCallback() {\n this._menu = null;\n window.removeEventListener('navigate', this._onPathChange, false);\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'disabled':\n this._findAnchorAndScrollItIntoView();\n break;\n }\n }\n _findAnchorAndScrollItIntoView(path = window.location.pathname) {\n if (this.disabled) {\n return;\n }\n const menu = this._menu;\n if (Utils.isNull(menu)) {\n this.log(Logging.LogLevel.Warn, `Couldn't find a ${PacemMenuElement} ancestor for this ${PacemMenuCursorElement_1}.`);\n return;\n }\n // 1. try to find a matching PacemAnchorElement\n const anchors = menu.querySelectorAll(P + '-a');\n let tget = null;\n for (let j = 0; j < anchors.length; j++) {\n const a = anchors.item(j);\n const router = a.router;\n let href = Utils.isNull(router)\n ? a.href\n : /* build fully formatted href, it might contain placeholders */ Utils.URIs.format(a.href, router.state);\n if (href === path) {\n tget = a;\n break;\n }\n }\n if (Utils.isNull(tget)) {\n // 2. try with real HTMLAnchorElement\n tget = menu.querySelector(`a[href='${path}']`);\n }\n // finally, scroll if any matching anchor was found\n if (!Utils.isNull(tget)) {\n tget.scrollIntoView({ behavior: 'smooth' });\n }\n }\n};\nPacemMenuCursorElement = PacemMenuCursorElement_1 = __decorate([\n CustomElement({\n tagName: P + '-menu-cursor'\n })\n], PacemMenuCursorElement);\nexport { PacemMenuCursorElement };\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 { P, PCSS, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults, Debounce } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Renders pagination buttons (first/previous/numbers/next/last, or a numeric-only strip) for a paged collection. */\nlet PacemPagerElement = class PacemPagerElement extends Components.PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'index':\n case 'total':\n case 'pages':\n case 'size':\n case 'mode':\n this._databind();\n break;\n }\n }\n _databind() {\n const repeater = this._repeater;\n if (Utils.isNull(repeater))\n return;\n //\n var datasource = [];\n const size = this.size ?? 10, pages = this.pages ?? 5, total = this.total ?? 0, index = this.index ?? 0, mode = this.mode ?? 'standard';\n if (total > 0) {\n let totpages = Math.ceil(total / size);\n let pageindex = Math.floor(index / size);\n let startpageindex = Math.max(0, Math.ceil(pageindex - pages / 2));\n let endpageindex = Math.min(totpages - 1, startpageindex + pages - 1);\n while (startpageindex > 0 && (1 + endpageindex - startpageindex) < pages) {\n startpageindex--;\n }\n if (mode === 'numeric-only') {\n if (startpageindex > 0) {\n datasource.push({ caption: (1).toLocaleString(Utils.lang(this)), index: 0, /*first: true,*/ disabled: !( /*start*/pageindex > 0) });\n }\n }\n else {\n // |<\n datasource.push({ caption: '«', index: 0, first: true, disabled: !( /*start*/pageindex > 0) });\n // <\n datasource.push({ caption: '<', index: size * (pageindex - 1), previous: true, disabled: !(pageindex > 0) });\n }\n // ...\n if (startpageindex > 0 && mode !== 'numeric-only' || startpageindex > 1 && mode === 'numeric-only') {\n datasource.push({ caption: '…', index: size * (startpageindex - 1) });\n }\n // #\n for (let j = startpageindex; j <= endpageindex; j++) {\n datasource.push({ caption: (j + 1).toLocaleString(Utils.lang(this)), index: j * size });\n }\n // ...\n if (endpageindex < (totpages - 1) && mode !== 'numeric-only' || endpageindex < (totpages - 2) && mode === 'numeric-only') {\n datasource.push({ caption: '…', index: size * (endpageindex + 1) });\n }\n if (mode === 'numeric-only') {\n if (endpageindex < (totpages - 1)) {\n datasource.push({ caption: totpages.toLocaleString(Utils.lang(this)), index: size * (totpages - 1), /*last: true,*/ disabled: !( /*end*/pageindex < (totpages - 1)) });\n }\n }\n else {\n // >\n datasource.push({ caption: '>', index: size * (pageindex + 1), next: true, disabled: !(pageindex < (totpages - 1)) });\n // >|\n datasource.push({ caption: '»', index: size * (totpages - 1), last: true, disabled: !( /*end*/pageindex < (totpages - 1)) });\n }\n // \n this.index = pageindex * size;\n }\n repeater.datasource = datasource;\n }\n};\n__decorate([\n ViewChild(P + '-repeater')\n], PacemPagerElement.prototype, \"_repeater\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemPagerElement.prototype, \"index\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemPagerElement.prototype, \"total\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemPagerElement.prototype, \"pages\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemPagerElement.prototype, \"size\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemPagerElement.prototype, \"mode\", void 0);\n__decorate([\n Debounce(true)\n], PacemPagerElement.prototype, \"_databind\", null);\nPacemPagerElement = __decorate([\n CustomElement({\n tagName: P + '-pager', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater class=\"${PCSS}-pager\"><div class=\"${PCSS}-buttonset\">\r\n<div class=\"pager-buttons\">\r\n <template>\r\n <${P}-button class=\"${PCSS}-page button\" on-click=\":host.index = ^item.index\" disabled=\"{{ ^item.disabled }}\"\r\n css-class=\"{{ { 'currentpage': ^item.index === :host.index, 'firstpage buttonset-first': ^item.first, 'previouspage': ^item.previous, 'nextpage': ^item.next, 'lastpage buttonset-last': ^item.last } }}\"><${P}-span content=\"{{ ^item.caption }}\"></${P}-span></${P}-button>\r\n </template>\r\n</div>\r\n</div></${P}-repeater>`\n })\n], PacemPagerElement);\nexport { PacemPagerElement };\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 { P, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Declares a single `<source>` candidate (srcset/media/type) for an ancestor `PacemPictureElement`. */\nlet PacemPictureSourceElement = class PacemPictureSourceElement extends Components.PacemItemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const picture = this.container;\n if (picture instanceof PacemPictureElement && ['srcset', 'media', 'type', 'disabled'].indexOf(name) >= 0) {\n picture.refreshSources();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureSourceElement.prototype, \"srcset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureSourceElement.prototype, \"media\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureSourceElement.prototype, \"type\", void 0);\nPacemPictureSourceElement = __decorate([\n CustomElement({\n tagName: P + '-picture-source'\n })\n], PacemPictureSourceElement);\nexport { PacemPictureSourceElement };\n/** Responsive `<picture>` wrapper that builds its `<source>` elements from child `PacemPictureSourceElement` items. */\nlet PacemPictureElement = class PacemPictureElement extends Components.PacemItemsContainerElement {\n constructor() {\n super('img', { 'label': 'picture' });\n this._updateCurrentSrcHandler = (evt) => {\n this.currentSrc = this._img.currentSrc;\n };\n }\n validate(item) {\n return item instanceof PacemPictureSourceElement;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'src':\n this._setSource();\n break;\n case 'items':\n this._setSources();\n break;\n case 'tooltip':\n this._setAltText();\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._img.addEventListener('load', this._updateCurrentSrcHandler, false);\n this._setSource();\n this._setAltText();\n this._setSources();\n }\n disconnectedCallback() {\n const img = this._img;\n if (!Utils.isNull(img)) {\n img.removeEventListener('load', this._updateCurrentSrcHandler, false);\n }\n super.disconnectedCallback();\n }\n /** Rebuilds the `<source>` elements from the current child `PacemPictureSourceElement` items. */\n refreshSources() {\n this._setSources();\n }\n _setSources(items = this.items) {\n const picture = this._picture, img = this._img;\n if (!Utils.isNull(picture) && !Utils.isNull(img)) {\n const sources = picture.querySelectorAll('source'), itemCount = items?.length ?? 0;\n // populate\n for (let i = 0; i < itemCount; i++) {\n const item = this.items[i];\n let source;\n if (sources.length <= i) {\n source = document.createElement('source');\n source.setAttribute('part', 'source');\n picture.insertBefore(source, img);\n }\n else {\n source = sources.item(i);\n }\n if (item.disabled || Utils.isNullOrEmpty(item.srcset)) {\n source.removeAttribute('srcset');\n }\n else {\n source.srcset = item.srcset;\n }\n if (Utils.isNullOrEmpty(item.media)) {\n source.removeAttribute('media');\n }\n else {\n source.media = item.media;\n }\n if (Utils.isNullOrEmpty(item.type)) {\n source.removeAttribute('type');\n }\n else {\n source.type = item.type;\n }\n }\n // cleanup\n for (let i = sources.length - 1; i >= itemCount; i--) {\n let source = sources.item(i);\n source.remove();\n }\n }\n }\n _setSource(src = this.src) {\n const img = this._img;\n if (!Utils.isNull(img)) {\n if (Utils.isNullOrEmpty(src)) {\n img.removeAttribute('src');\n }\n else {\n img.src = src;\n }\n }\n }\n _setAltText(tip = this.tooltip) {\n const img = this._img;\n if (!Utils.isNull(img)) {\n if (Utils.isNullOrEmpty(tip)) {\n img.alt = this.aria.attributes.toObject()['label'];\n }\n else {\n img.alt = tip;\n }\n }\n }\n};\n__decorate([\n ViewChild('picture')\n], PacemPictureElement.prototype, \"_picture\", void 0);\n__decorate([\n ViewChild('img')\n], PacemPictureElement.prototype, \"_img\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemPictureElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemPictureElement.prototype, \"currentSrc\", void 0);\nPacemPictureElement = __decorate([\n CustomElement({\n tagName: P + '-picture', shadow: true,\n template: `<picture part=\"picture\"><img loading=\"lazy\" part=\"img\" /></picture><slot></slot>`\n })\n], PacemPictureElement);\nexport { PacemPictureElement };\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 { P, Utils, CustomElement, Watch, ViewChild, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Horizontal progress bar with an optional textual caption. */\nlet PacemProgressbarElement = class PacemProgressbarElement extends Components.PacemElement {\n constructor() {\n super('progressbar', { 'valuemin': '0%', 'valuemax': '100%', 'valuenow': '0%' });\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'percentage':\n this._bar.style.transform = `translateX(${(-100 + (val || 0))}%)`;\n this._glow.style.transform = `scaleX(${((val || 0) * .01)})`;\n let perc = Utils.leftPad(Math.floor(val), 2, '0') + '%';\n this.aria.attributes.set('valuenow', perc);\n if (Utils.isNullOrEmpty(this.caption)) {\n this.aria.attributes.set('valuetext', this._caption.textContent = perc);\n }\n break;\n case 'caption':\n this.aria.attributes.set('valuetext', this._caption.textContent = val);\n break;\n }\n }\n};\n__decorate([\n ViewChild('.progressbar-bar')\n], PacemProgressbarElement.prototype, \"_bar\", void 0);\n__decorate([\n ViewChild('.progressbar-glow')\n], PacemProgressbarElement.prototype, \"_glow\", void 0);\n__decorate([\n ViewChild('.progressbar-caption')\n], PacemProgressbarElement.prototype, \"_caption\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemProgressbarElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemProgressbarElement.prototype, \"percentage\", void 0);\nPacemProgressbarElement = __decorate([\n CustomElement({\n tagName: P + '-progressbar', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"progressbar-glow\"></div>\r\n <div class=\"progressbar-track\"><div class=\"progressbar-bar\"></div></div>\r\n <label class=\"progressbar-caption\"></label>`\n })\n], PacemProgressbarElement);\nexport { PacemProgressbarElement };\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 { P, PCSS, Utils, CustomElement, Watch, PropertyConverters, Components, CustomElementUtils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Collapsible off-canvas drawer/sidebar, optionally synchronized with the enclosing shell's CSS classes. */\nlet PacemSidebarElement = class PacemSidebarElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets whether the sidebar is open. */\n this.open = false;\n /** Gets or sets whether the open/close state toggles CSS classes on the ancestor shell. */\n this.synchronizeShell = true;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'open':\n case 'synchronizeShell':\n this._sync();\n break;\n }\n }\n disconnectedCallback() {\n this._sync(false);\n super.disconnectedCallback();\n }\n _sync(val = this.open) {\n const shell = this.#shell;\n if (this.synchronizeShell) {\n Utils.addClass(this, 'sidebar-sync');\n Utils.addClass(shell, PCSS + (val === true ? '-sidebar-open' : '-sidebar-close'));\n Utils.removeClass(shell, PCSS + (val === true ? '-sidebar-close' : '-sidebar-open'));\n }\n else {\n Utils.removeClass(this, 'sidebar-sync');\n Utils.removeClass(shell, PCSS + '-sidebar-close ' + PCSS + '-sidebar-open');\n }\n }\n #shell;\n connectedCallback() {\n super.connectedCallback();\n this.#shell = CustomElementUtils.findAncestorShell(this);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemSidebarElement.prototype, \"open\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemSidebarElement.prototype, \"synchronizeShell\", void 0);\nPacemSidebarElement = __decorate([\n CustomElement({\n tagName: P + '-sidebar', template: `<${P}-panel class=\"sidebar-drawer\" part=\"drawer\" css-part=\"{{ { 'open': :host.open } }}\" css-class=\"{{ {'open': :host.open } }}\">\r\n <slot></slot>\r\n</${P}-panel>`,\n shadow: true\n })\n], PacemSidebarElement);\nexport { PacemSidebarElement };\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 { P, CustomElement, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Single slide item hosted within a `PacemSlideshowElement`. */\nlet PacemSlideElement = class PacemSlideElement extends Components.PacemIterableElement {\n};\nPacemSlideElement = __decorate([\n CustomElement({\n tagName: P + '-slide'\n })\n], PacemSlideElement);\nexport { PacemSlideElement };\n/** Iterates over `PacemSlideElement` children, exposing them as a navigable slideshow. */\nlet PacemSlideshowElement = class PacemSlideshowElement extends Components.PacemIterativeElement {\n validate(item) {\n return item instanceof PacemSlideElement;\n }\n};\nPacemSlideshowElement = __decorate([\n CustomElement({\n tagName: P + '-slideshow'\n })\n], PacemSlideshowElement);\nexport { PacemSlideshowElement };\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 { P, CustomElementUtils, CustomElement, Watch, PropertyConverters, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI.Social {\n/** Embeds a tweet, given its id, via Twitter's `widgets.js`. */\nlet PacemTweetEmbedElement = class PacemTweetEmbedElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this._scriptsLoaded = false;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'tweetid' && this._scriptsLoaded)\n this._render();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n CustomElementUtils.importjs('https://platform.twitter.com/widgets.js').then(() => {\n this._scriptsLoaded = true;\n this._render();\n });\n }\n _render() {\n if (this.tweetid && this._scriptsLoaded) {\n twttr.ready(tw => tw.widgets.createTweet(this.tweetid, this));\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemTweetEmbedElement.prototype, \"tweetid\", void 0);\nPacemTweetEmbedElement = __decorate([\n CustomElement({ tagName: P + '-tweetembed' })\n], PacemTweetEmbedElement);\nexport { PacemTweetEmbedElement };\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 { P, CustomElementUtils, CustomElement, Watch, PropertyConverters, PacemEventTarget, Components, Utils, Logging } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Determines how a `PacemStickyHeaderElement` behaves once the scroll offset passes its `threshold`. */\nexport var StickyHeaderVisibility;\n(function (StickyHeaderVisibility) {\n /** Stays pinned/visible once past the threshold. */\n StickyHeaderVisibility[\"Persistent\"] = \"persistent\";\n /** Hides while scrolling down and reappears while scrolling up. */\n StickyHeaderVisibility[\"QuickReturn\"] = \"quickreturn\";\n})(StickyHeaderVisibility || (StickyHeaderVisibility = {}));\n/** Header that reacts to page scroll, either staying pinned to the top of the shell or hiding/showing on scroll direction. */\nlet PacemStickyHeaderElement = class PacemStickyHeaderElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.#previousOffset = { left: 0, top: 0 };\n this._scrollHandler = (evt) => {\n this.offset = evt.detail;\n };\n }\n #scroller;\n #previousOffset;\n #id;\n #shell;\n _ensureScrollAwareElement() {\n if (Utils.isNull(this.#scroller)) {\n const scroller = this.#scroller = new Components.PacemScrollAwareElement();\n this.log(Logging.LogLevel.Debug, 'creating scroll aware ' + this.#id);\n const shell = this.#shell = CustomElementUtils.findAncestorShell(this);\n shell.appendChild(scroller);\n scroller.dataset[\"target\"] = this.#id;\n scroller.addEventListener(Components.ScrollEventName, this._scrollHandler, false);\n }\n this.#scroller.disabled = this.disabled;\n }\n _manageOffsetChange(offset = this.offset) {\n if (this.disabled) {\n return;\n }\n const visibility = this.visibility || StickyHeaderVisibility.Persistent, lastTop = this.#previousOffset.top, top = offset.top, threshold = this.threshold || 0, shell = this.#shell;\n if (lastTop <= threshold && top > threshold) {\n Utils.removeClass(shell, 'sticky-header-top');\n Utils.addClass(shell, 'sticky-header-scroll');\n // get into wavy behavior and aspect\n if (visibility === StickyHeaderVisibility.QuickReturn) {\n Utils.addClass(shell, 'sticky-header-fade');\n this.visible = false;\n }\n }\n else if (lastTop > threshold && top <= threshold) {\n // back to steady form\n Utils.removeClass(shell, 'sticky-header-fade');\n Utils.removeClass(shell, 'sticky-header-scroll');\n Utils.addClass(shell, 'sticky-header-top');\n }\n else if (lastTop > threshold && top > threshold && lastTop > top) {\n // scrolling up, show\n this.visible = true;\n Utils.removeClass(shell, 'sticky-header-fade');\n }\n else if (lastTop > threshold && top > threshold && lastTop < top && visibility == StickyHeaderVisibility.QuickReturn) {\n // keep scrolling down with quick return, hide\n Utils.addClass(shell, 'sticky-header-fade');\n }\n this.#previousOffset = offset;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'offset':\n this._manageOffsetChange(val);\n break;\n case 'disabled':\n this._ensureScrollAwareElement();\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.#id = this.id || 'sticky-' + Utils.uniqueCode();\n this._ensureScrollAwareElement();\n }\n disconnectedCallback() {\n const scroller = this.#scroller, shell = this.#shell;\n if (!Utils.isNull(scroller)) {\n this.log(Logging.LogLevel.Debug, 'disposing scroll aware ' + this.#id);\n scroller.removeEventListener(Components.ScrollEventName, this._scrollHandler, false);\n scroller.remove();\n this.#scroller = undefined;\n Utils.removeClass(shell, 'sticky-header-fade');\n Utils.removeClass(shell, 'sticky-header-top');\n Utils.removeClass(shell, 'sticky-header-scroll');\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Number, emit: false })\n], PacemStickyHeaderElement.prototype, \"threshold\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Point })\n], PacemStickyHeaderElement.prototype, \"offset\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemStickyHeaderElement.prototype, \"visible\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemStickyHeaderElement.prototype, \"visibility\", void 0);\nPacemStickyHeaderElement = __decorate([\n CustomElement({ tagName: P + '-sticky-header' })\n], PacemStickyHeaderElement);\nexport { PacemStickyHeaderElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, PropertyConverters, Components, Utils, PropertyChangeEvent, Animations } from '@pacem/pacem-core';\nimport { AdapterOrientation } from './adapter';\n//namespace Pacem.Components.UI {\nconst PACEM_TAB_FOCUS_CSS = 'tab-focus';\nconst StringOrNodePropertyConverter = {\n convert: (attr, e) => {\n return attr.startsWith('#') ? PropertyConverters.Element.convert(attr, e) : PropertyConverters.String.convert(attr, e);\n },\n convertBack: (prop, e) => {\n return (prop instanceof Node) ? PropertyConverters.Element.convertBack(prop, e) : PropertyConverters.String.convertBack(prop, e);\n },\n retryConversionWhenReady: true\n};\n/** Single tab item, pairing a `label` with its content, hosted within a `PacemTabsElement`. */\nlet PacemTabElement = class PacemTabElement extends Components.PacemIterableElement {\n constructor() {\n super('tab');\n this._slotChangeHandler = (_) => {\n const old = this.#content;\n const val = this.#content = this.content;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'content', currentValue: val, oldValue: old }));\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._slotLabel.addEventListener('slotchange', this._slotChangeHandler, false);\n }\n disconnectedCallback() {\n const lbl = this._slotLabel;\n if (!Utils.isNull(lbl)) {\n lbl.removeEventListener('slotchange', this._slotChangeHandler, false);\n }\n super.disconnectedCallback();\n }\n #content;\n /** @readonly Gets the nodes assigned to the `label` slot. */\n get content() {\n return this.querySelectorAll('*[slot=label]');\n }\n};\n__decorate([\n ViewChild('slot[name=label]')\n], PacemTabElement.prototype, \"_slotLabel\", void 0);\n__decorate([\n Watch({ converter: StringOrNodePropertyConverter })\n], PacemTabElement.prototype, \"label\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemTabElement.prototype, \"key\", void 0);\nPacemTabElement = __decorate([\n CustomElement({\n tagName: P + '-tab', shadow: true, template: `<slot name=\"label\" part=\"label\"></slot><slot></slot>`\n })\n], PacemTabElement);\nexport { PacemTabElement };\n/** Iterates over `PacemTabElement` children, rendering a tab strip (via an adapter) and animating the transition between the active tab's content. */\nlet PacemTabsElement = class PacemTabsElement extends Components.PacemIterativeElement {\n constructor(_tweener = new Animations.TweenService()) {\n super(\"tablist\");\n this._tweener = _tweener;\n }\n _labelCallback(item, index) {\n const content = item.content;\n if (content.length > 0) {\n let assembled = '';\n content.forEach((node) => {\n assembled += node.outerHTML;\n });\n return assembled;\n }\n if (item.label instanceof Node) {\n return item.label;\n }\n return `<span class=\"${(item.key || 'tab')}\">${item.label}</span>`;\n }\n _syncOrientation(val = this.orientation) {\n if (!Utils.isNull(this._defaultTabAdapter)) {\n this._defaultTabAdapter.orientation = val;\n }\n if (!Utils.isNull(this._tabs)) {\n const fn = val === AdapterOrientation.Vertical ? Utils.addClass : Utils.removeClass;\n fn(this._tabs, 'tabs-vertical');\n }\n }\n _syncVisibility(val = this.index, old = -1) {\n const timeout = 500;\n // lock height\n const container = this._container, height = container.clientHeight;\n const style = getComputedStyle(container), padding = style.boxSizing === 'border-box' ? 0 : parseInt(style.paddingTop) + parseInt(style.paddingBottom);\n container.style.height = (height - padding) + 'px';\n let ndx = 0;\n for (let tab of this.items || []) {\n if (ndx === val) {\n Utils.addClass(tab, 'tab-in');\n requestAnimationFrame(() => {\n // wait for visibility digestion\n Utils.addClass(tab, PACEM_TAB_FOCUS_CSS);\n Utils.removeClass(tab, 'tab-in');\n Utils.addAnimationEndCallback(tab, (t) => {\n Utils.removeClass(t, 'tab-previous tab-next');\n const tgetH = Utils.offset(t).height /* + padding*/;\n this._tweener.run(parseInt(container.style.height), tgetH, 100, 0, Animations.Easings.sineOut, (_, v) => {\n container.style.height = Math.round(v) + 'px';\n })\n .then(_ => {\n // unlock height\n container.style.height = '';\n });\n }, timeout);\n });\n tab.aria.attributes.set('selected', 'true');\n }\n else {\n Utils.removeClass(tab, 'tab-previous tab-next');\n Utils.addClass(tab, ndx < val ? 'tab-previous' : 'tab-next');\n if (ndx === old) {\n Utils.addClass(tab, 'tab-out');\n Utils.removeClass(tab, PACEM_TAB_FOCUS_CSS);\n Utils.addAnimationEndCallback(tab, (t) => {\n Utils.removeClass(t, 'tab-out');\n }, timeout);\n tab.aria.attributes.set('selected', 'false');\n }\n }\n ndx++;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n //this._defaultTabAdapter.labelCallback = this._labelCallback;\n if (Utils.isNull(this.adapter)) {\n this._syncOrientation();\n this._syncVisibility();\n this.adapter = this._defaultTabAdapter;\n }\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'adapter':\n if (Utils.isNull(val)) {\n this.adapter = this._defaultTabAdapter;\n }\n this._isUsingDefaultTabAdapter = this.adapter === this._defaultTabAdapter;\n break;\n case 'index':\n this._syncVisibility(val, old);\n break;\n case 'orientation':\n this._syncOrientation(val);\n break;\n }\n }\n validate(item) {\n return item instanceof PacemTabElement;\n }\n};\n__decorate([\n ViewChild(P + '-adapter')\n], PacemTabsElement.prototype, \"_defaultTabAdapter\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-tabs')\n], PacemTabsElement.prototype, \"_tabs\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-tabs-content')\n], PacemTabsElement.prototype, \"_container\", void 0);\n__decorate([\n Watch()\n], PacemTabsElement.prototype, \"_isUsingDefaultTabAdapter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemTabsElement.prototype, \"orientation\", void 0);\nPacemTabsElement = __decorate([\n CustomElement({\n tagName: P + '-tabs', shadow: false,\n template: `<div class=\"${PCSS}-tabs\">\r\n <${P}-adapter class=\"${PCSS}-tabs-adapter\" swipe-enabled=\"false\" hide=\"{{ !:host._isUsingDefaultTabAdapter }}\" label-callback=\"{{ :host._labelCallback }}\"></${P}-adapter>\r\n <div class=\"${PCSS}-tabs-content\">\r\n <${P}-content></${P}-content>\r\n </div>\r\n</div>`\n })\n], PacemTabsElement);\nexport { PacemTabsElement };\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 { P, CustomElement, ViewChild, Components, Utils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Displays scrolling/ticking content, animating the swap whenever its `content` changes. */\nlet PacemTickerElement = class PacemTickerElement extends Components.PacemSafeContentElement {\n constructor() {\n super(...arguments);\n this._contentChangeHandler = (evt) => {\n this._incoming.replaceChildren(...this.#newContent);\n Utils.addClass(this, 'ticking');\n Utils.addAnimationEndCallback(this._incoming, element => {\n Utils.removeClass(this, 'ticking');\n // swap content\n this._outgoing.replaceChildren(...this.#newContent);\n //this.#newContent = null;\n });\n };\n }\n #newContent;\n _tickContent(content = this.content) {\n if (typeof content === 'number') {\n content = content.toLocaleString();\n }\n if (typeof content === 'string') {\n const safeContent = this.sanitize(content);\n this.#newContent = this._buildMarkupNode(safeContent);\n }\n else if (content instanceof Node) {\n const safeContent = this.sanitize(content);\n this.replaceChildren(...(this.#newContent = [safeContent]));\n }\n else {\n const safeContent = content.map(a => this.sanitize(a));\n this.replaceChildren(...(this.#newContent = safeContent));\n }\n }\n _buildMarkupNode(html) {\n const tmpl = document.createElement('template');\n tmpl.innerHTML = html;\n return Array.from(tmpl.content.childNodes);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'content' && !first) {\n this._tickContent(val);\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._slot.addEventListener('slotchange', this._contentChangeHandler, false);\n const content = this.content ?? this._slot.assignedNodes();\n this._tickContent(content);\n }\n disconnectedCallback() {\n const slot = this._slot;\n if (!Utils.isNull(slot)) {\n slot.removeEventListener('slotchange', this._contentChangeHandler);\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n ViewChild('slot')\n], PacemTickerElement.prototype, \"_slot\", void 0);\n__decorate([\n ViewChild('div[part=ticker-outgoing]')\n], PacemTickerElement.prototype, \"_outgoing\", void 0);\n__decorate([\n ViewChild('div[part=ticker-incoming]')\n], PacemTickerElement.prototype, \"_incoming\", void 0);\nPacemTickerElement = __decorate([\n CustomElement({ tagName: P + '-ticker', shadow: true, template: `<div part=\"ticker-outgoing\"></div><div part=\"ticker-incoming\"></div><slot hidden></slot>` })\n], PacemTickerElement);\nexport { PacemTickerElement };\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};\nvar PacemToastElement_1;\nimport { P, PCSS, CustomElement, Watch, Components, Utils, PropertyConverters, CustomElementUtils, Transformer } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst PACEM_TOAST_POPS = \"pacem:toast:pops\";\n/** Dismissible toast/snackbar notification, with optional autohide. */\nlet PacemToastElement = PacemToastElement_1 = class PacemToastElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets whether the toast automatically hides itself after `timeout` milliseconds. */\n this.autohide = true;\n /** Gets or sets the autohide delay, in milliseconds. */\n this.timeout = 3000;\n this._doHide = (evt) => {\n window.clearTimeout(this._handle);\n this.show = false;\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this._doHide, false);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'show') {\n if (val !== true) {\n Utils.removeClass(this, 'toast-show');\n Utils.addClass(this, 'toast-hide');\n this.dispatchEvent(new CustomEvent('close'));\n Utils.waitForAnimationEnd(this, 1000).then(() => {\n Utils.removeClass(this, 'toast-hide');\n });\n }\n else {\n let order = CustomElementUtils.getAttachedPropertyValue(PacemToastElement_1, PACEM_TOAST_POPS, 0) - 1;\n CustomElementUtils.setAttachedPropertyValue(PacemToastElement_1, PACEM_TOAST_POPS, order);\n this.style.order = '' + order;\n Utils.addClass(this, 'toast-show');\n this._show();\n }\n }\n }\n disconnectedCallback() {\n this.removeEventListener('click', this._doHide, false);\n super.disconnectedCallback();\n }\n _show() {\n window.clearTimeout(this._handle);\n if (this.disabled) {\n return;\n }\n if (this.autohide) {\n this._handle = window.setTimeout(() => { this.show = false; }, this.timeout);\n }\n }\n /** Shows the toast, (re)starting the autohide timer if applicable. */\n popup() {\n if (this.show) {\n this._show();\n }\n else {\n this.show = true;\n }\n }\n /**\n * Opinionated shortcut/utility for toast spinning.\n * @param toaster Toast container\n * @param level Message criticity level\n * @param message The message\n * @param options Further options object\n */\n static toast(toaster, level, message, options) {\n var toast = new PacemToastElement_1();\n if (!Utils.isNullOrEmpty(options?.cssClass)) {\n const cssClass = Utils.isArray(options.cssClass) ? options.cssClass.join(' ') : options.cssClass;\n Utils.addClass(toast, cssClass);\n }\n else {\n toast.className = 'toast-' + level;\n }\n if (!Utils.isNull(options?.autohide)) {\n toast.autohide = options.autohide;\n }\n if (options?.timeout > 0) {\n toast.timeout = options.timeout;\n }\n // icon\n const icon = document.createElement('i');\n icon.className = PCSS + '-icon text-bigger-steady ' + PCSS + '-margin margin-right-1 flex-auto';\n var ligature = 'info';\n switch (level) {\n case 'danger':\n case 'error':\n ligature = 'error';\n break;\n case 'warning':\n ligature = 'warning';\n break;\n case 'success':\n ligature = 'check_circle';\n break;\n }\n icon.textContent = ligature;\n const container = document.createElement('div');\n Utils.addClass(container, 'display-flex flex-stretch flex-start flex-nowrap');\n container.appendChild(icon);\n // caption\n const caption = document.createElement('span');\n Utils.addClass(caption, 'text-small text-pre');\n if (typeof message === 'string') {\n caption.innerHTML = message;\n }\n else {\n caption.appendChild(message);\n }\n container.appendChild(caption);\n toast.appendChild(container);\n toaster.appendChild(toast);\n // promise\n return new Promise((resolve, _) => {\n window.setTimeout(() => {\n toast.popup();\n }, // needs some time to digest\n // state and transition\n 100);\n const callback = () => {\n toast.removeEventListener('close', callback, false);\n resolve();\n Utils.waitForAnimationEnd(toast, 1000).then(_ => {\n toast.remove();\n });\n };\n toast.addEventListener('close', callback, false);\n });\n }\n /**\n * Like `toast`, but renders the message inside a filled/bordered container for extra emphasis.\n * @param toaster Toast container\n * @param level Message criticity level\n * @param message The message\n * @param options Further options object\n */\n static toast2(toaster, level, message, options) {\n let cssClass = options?.cssClass;\n let cssArray = ['fill-' + level + '-container', 'fill-glass', 'border-solid', 'border-size--2', 'border-round', 'border-radius--6'];\n if (!Utils.isNullOrEmpty(cssClass)) {\n if (Utils.isArray(cssClass)) {\n Array.prototype.push.apply(cssArray, cssClass);\n }\n else {\n Array.prototype.push.apply(cssArray, cssClass.split(' '));\n }\n }\n return PacemToastElement_1.toast(toaster, level, message, Utils.extend({}, options ?? {}, { cssClass: cssArray }));\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemToastElement.prototype, \"autohide\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemToastElement.prototype, \"timeout\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemToastElement.prototype, \"show\", void 0);\n__decorate([\n Transformer(\"poptoast\")\n], PacemToastElement, \"toast\", null);\n__decorate([\n Transformer(\"poptoastcontainer\")\n], PacemToastElement, \"toast2\", null);\nPacemToastElement = PacemToastElement_1 = __decorate([\n CustomElement({\n tagName: P + '-toast'\n })\n], PacemToastElement);\nexport { PacemToastElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Components, Utils, PropertyConverters, Defaults, Animations, Debounce, avoidHandler } from '@pacem/pacem-core';\n//namespace Components.UI {\n/** Table-of-contents that lists the headings/elements matched by `selector`, highlighting and scrolling to the currently focused one. */\nlet PacemTocElement = class PacemTocElement extends Components.PacemElement {\n constructor(_tweener = new Animations.TweenService()) {\n super();\n this._tweener = _tweener;\n this._items = [];\n this._scrollToSelf = (evt) => {\n this._scrollTo('#' + evt.target.id);\n };\n this._hashChange = (evt) => {\n evt.preventDefault();\n this._scrollTo(window.location.hash, false);\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // url\n switch (name) {\n case 'target':\n if (!Utils.isNull(this._observer))\n this._observe();\n break;\n case 'selector':\n this.refresh();\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('hashchange', this._hashChange, false);\n }\n disconnectedCallback() {\n window.removeEventListener('hashchange', this._hashChange, false);\n if (!Utils.isNull(this._observer))\n this._observer.disconnect();\n super.disconnectedCallback();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._observer = new MutationObserver((e) => { this.refresh(); });\n this._observe();\n }\n _onScroll(evt) {\n this._update(Utils.scrollTop);\n }\n _observe() {\n this._observer.observe(this.target || document.body, { subtree: true, childList: true });\n }\n _getTop(dom) {\n return Utils.offset(dom).top;\n }\n _scrollTo(selector, tween = true) {\n if (/^#[^&=]+$/.test(selector)) {\n const dom = !Utils.isNullOrEmpty(selector) && document.querySelector(selector), item = !Utils.isNull(dom) && this._items.find(i => i.dom === dom);\n if (item && !Utils.isNull(item.dom)) {\n const tget = this._getTop(item.dom) - (this.offset || 0);\n if (tween) {\n let from = Utils.scrollTop;\n window.location.hash = item.dom.id;\n this._tweener.run(from, tget, 500, 0, Animations.Easings.sineInOut, (t, v) => {\n window.scrollTo(0, v);\n });\n }\n else {\n window.scrollTo(0, tget);\n }\n }\n }\n }\n _startScrollTo(item, evt) {\n avoidHandler(evt);\n this._scrollTo(item.url);\n }\n _update(top) {\n // pick focused item (fallback: first item)\n const zero = top + (this.offset || 0);\n var current = this._items && this._items.length > 0 && this._items[0];\n for (var item of this._items) {\n if (Utils.offset(item.dom).top <= zero)\n current = item;\n else\n break;\n }\n // update css\n const datasource = [];\n for (var item of this._items) {\n if (Utils.isNullOrEmpty(item.dom.id)) {\n item.dom.id = item.dom.innerText.trim().replace(/[^a-zA-Z0-9]/g, '-').replace(/-*$/, '').replace(/^-*/, '').toLowerCase();\n }\n datasource.push({ focus: item === current, label: item.dom.innerText, url: '#' + item.dom.id });\n }\n if (!Utils.isNull(this._repeater))\n this._repeater.datasource = datasource;\n }\n /** DOM might change while interacting with the page, this method allows extemporary resets. */\n refresh() {\n // reset items\n for (let item of this._items) {\n item.dom.removeEventListener('click', this._scrollToSelf, false);\n Utils.removeClass(item.dom, PCSS + '-toc-item');\n }\n //\n const selector = this.selector;\n if (Utils.isNullOrEmpty(selector)) {\n this._repeater && (this._repeater.datasource = []);\n this.hasContent = false;\n return;\n }\n const items = (this.target || document).querySelectorAll(selector), elements = [];\n for (let j = 0; j < items.length; j++) {\n const dom = items.item(j);\n dom.addEventListener('click', this._scrollToSelf, false);\n Utils.addClass(dom, PCSS + '-toc-item');\n elements.push({ dom: dom, top: this._getTop(dom) });\n }\n // bootstrap TOC\n this._items = elements;\n this._update(Utils.scrollTop);\n this.hasContent = !Utils.isNullOrEmpty(elements);\n // initial state\n let initialTarget = window.location.hash;\n if (!Utils.isNullOrEmpty(initialTarget)) {\n // in case of hash\n setTimeout(() => {\n this._scrollTo(initialTarget, true);\n }, 1000);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemTocElement.prototype, \"selector\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTocElement.prototype, \"offset\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemTocElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemTocElement.prototype, \"router\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemTocElement.prototype, \"hasContent\", void 0);\n__decorate([\n ViewChild(P + '-repeater')\n], PacemTocElement.prototype, \"_repeater\", void 0);\n__decorate([\n Debounce(100)\n], PacemTocElement.prototype, \"_onScroll\", null);\n__decorate([\n Debounce(250)\n /** DOM might change while interacting with the page, this method allows extemporary resets. */\n], PacemTocElement.prototype, \"refresh\", null);\nPacemTocElement = __decorate([\n CustomElement({\n tagName: P + '-toc', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-scroll-aware on-${Components.ScrollEventName}=\":host._onScroll($event)\" url=\"{{ :host.url }}\"></${P}-scroll-aware>\r\n<${P}-repeater><nav class=\"${PCSS}-toc\"><template>\r\n <${P}-a on-click=\":host._startScrollTo(^item, $event)\" router=\"{{ :host.router }}\" css-class=\"{{ {'toc-focus': ^item.focus} }}\" href=\"{{ ^item.url }}\"><${P}-text text=\"{{ ^item.label }}\"></${P}-text></${P}-a>\r\n</template></nav></${P}-repeater>`\n })\n], PacemTocElement);\nexport { PacemTocElement };\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 { P, PCSS, CustomElement, Watch, ViewChild, Components, Utils, PropertyConverters, UI, Animations } from '@pacem/pacem-core';\nimport { Angle } from '@pacem/pacem-foundation';\n//namespace Pacem.Components.UI {\nconst TWO_PI = Math.PI * 2;\nfunction cartesian(cx, cy, r, theta) {\n return {\n x: cx + (r * Math.cos(theta)),\n y: cy + (r * Math.sin(theta))\n };\n}\n/** Circular dial/knob control for picking a numeric value between `min` and `max` by rotating a handle. */\nlet PacemTunerElement = class PacemTunerElement extends Components.PacemElement {\n constructor() {\n super();\n //#region INTERACTIVE\n /** Gets or sets the minimum selectable value. */\n this.min = 0.0;\n /** Gets or sets the maximum selectable value. */\n this.max = 100.0;\n this._rotateStartHandler = (evt) => {\n const angle = this.#angle = this._getAngle(evt);\n const r = this._rotate;\n r.minRotation = 0 - angle;\n r.maxRotation = TWO_PI - angle;\n this._setValue(angle);\n };\n this._rotateEndHandler = (evt) => {\n //this.#angle += evt.detail.rotation;\n };\n this._rotateHandler = (evt) => {\n evt.preventDefault();\n const angle = evt.detail.rotation + this.#angle;\n this._setValue(angle);\n };\n }\n #angle;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const rotate = this._rotate, tween = this._tween;\n rotate.addEventListener(UI.RotateEventType.Start, this._rotateStartHandler, false);\n rotate.addEventListener(UI.RotateEventType.Rotate, this._rotateHandler, false);\n rotate.addEventListener(UI.RotateEventType.End, this._rotateEndHandler, false);\n rotate.register(this._canvas);\n this._toggleRotate();\n //\n requestAnimationFrame(() => this._draw(this.min));\n //\n tween.easing = Animations.Easings.sineInOut;\n tween.delay = 500 + (Math.random() * 100 - 100);\n tween.start = this.value > this.min;\n }\n disconnectedCallback() {\n const rotate = this._rotate, canvas = this._canvas;\n if (!Utils.isNull(rotate)) {\n rotate.removeEventListener(UI.RotateEventType.Rotate, this._rotateHandler, false);\n if (!Utils.isNull(canvas)) {\n rotate.unregister(canvas);\n }\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'interactive':\n this._toggleRotate(val);\n if (!val)\n Utils.removeClass(this, 'tuner-interactive');\n else\n Utils.addClass(this, 'tuner-interactive');\n break;\n case 'round':\n if (Math.round(val) != val || val < 0)\n throw `${this.constructor.name}: round value must be an integer greater or equal to zero.`;\n break;\n default:\n // in any other case:\n this._draw();\n break;\n }\n }\n _toggleRotate(interactive = this.interactive) {\n const r = this._rotate;\n if (!Utils.isNull(r)) {\n r.disabled = !interactive;\n }\n }\n _angleToValue(angle) {\n const round = Math.pow(10, this.round || 0);\n const angleValue = this.min + angle * (this.max - this.min) / TWO_PI;\n return Math.round(round * angleValue) / round;\n }\n _valueToAngle(v = this.value ?? this.min) {\n return TWO_PI * (v - this.min) / (this.max - this.min);\n }\n _setValue(angle) {\n const value = this._angleToValue(angle).clamp(this.min, this.max);\n if (value != this.value) {\n this.value = value;\n this.dispatchEvent(new Event(\"change\"));\n }\n }\n /**\n * Returns the angle between the vertical line through 'center' and the line through 'center' and 'currentPosition'.\n * @param evt\n * @returns\n */\n _getAngle(evt) {\n const angle = {\n vertex: evt.detail.center,\n end: evt.detail.currentPosition,\n start: { x: evt.detail.center.x, y: evt.detail.center.y - 1 }\n };\n const alpha = Angle.value(angle);\n if (alpha > 0) {\n return TWO_PI - alpha;\n }\n else {\n return -alpha;\n }\n }\n //#endregion\n _draw(value = this.value) {\n if (this.disabled || Utils.isNull(this._rail)) {\n return;\n }\n value = (isNaN(value) ? this.min : value).clamp(this.min, this.max);\n const rail = this._rail;\n const counterRail = this._counterRail;\n const isMin = value === this.min, isMax = value === this.max;\n if (isMin || isMax) {\n const d = `M 50 50 m -50,0 a 50,50 0 1,1 100,0 a 50,50 0 1,1 -100,0`;\n rail.setAttribute('d', isMin ? '' : d);\n counterRail.setAttribute('d', isMax ? '' : d);\n }\n else {\n const mathPI2 = Math.PI * .5;\n // rail\n const from = cartesian(50, 50, 50, -mathPI2);\n const angle /* fraction of the round angle */ = this._valueToAngle(value);\n const to = cartesian(50, 50, 50, -mathPI2 + angle);\n const large = angle > Math.PI ? 1 : 0;\n const d = `M ${to.x} ${to.y} A 50 50 0 ${large} 0 ${from.x} ${from.y}`;\n rail.setAttribute('d', d);\n // counter rail\n const counterFrom = to;\n const counterTo = cartesian(50, 50, 50, 3 * mathPI2);\n const counterAngle /* fraction of the round angle */ = this._valueToAngle(this.max - value);\n const counterLarge = counterAngle > Math.PI ? 1 : 0;\n const counterD = `M ${counterTo.x} ${counterTo.y} A 50 50 0 ${counterLarge} 0 ${counterFrom.x} ${counterFrom.y}`;\n counterRail.setAttribute('d', counterD);\n }\n }\n};\n__decorate([\n ViewChild('svg')\n], PacemTunerElement.prototype, \"_canvas\", void 0);\n__decorate([\n ViewChild('path[part=rail]')\n], PacemTunerElement.prototype, \"_rail\", void 0);\n__decorate([\n ViewChild('path[part=complementary-rail]')\n], PacemTunerElement.prototype, \"_counterRail\", void 0);\n__decorate([\n ViewChild(P + '-tween')\n], PacemTunerElement.prototype, \"_tween\", void 0);\n__decorate([\n ViewChild(P + '-rotate')\n], PacemTunerElement.prototype, \"_rotate\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"value\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"min\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"max\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemTunerElement.prototype, \"interactive\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTunerElement.prototype, \"round\", void 0);\nPacemTunerElement = __decorate([\n CustomElement({\n tagName: P + '-tuner', shadow: true,\n template: `<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"${PCSS}-tuner\" part=\"tuner\" viewBox=\"0 0 100 100\">\r\n <circle part=\"track\" cx=\"50\" cy=\"50\" r=\"50\" />\r\n <path part=\"rail\" />\r\n <path part=\"complementary-rail\" />\r\n </svg><div class=\"${PCSS}-content\" part=\"content\"><slot></slot></div>\r\n <${P}-rotate></${P}-rotate>\r\n<${P}-tween on-step=\":host._draw($event.detail.value)\" on-end=\"this.disabled = true\" duration=\"500\" to=\"{{ :host.value }}\" from=\"{{ :host.min }}\"></${P}-tween>`\n })\n], PacemTunerElement);\nexport { PacemTunerElement };\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 { P, CustomElement, Watch, PacemEventTarget, Utils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\n/** Triggers the device's vibration hardware (via the Vibration API) with a configurable pattern. */\nlet PacemVibrateElement = class PacemVibrateElement extends PacemEventTarget {\n /** Triggers a vibration using the current `pattern`, if supported by the browser and not disabled. */\n vibrate() {\n if (this.disabled) {\n return;\n }\n const pattern = this.pattern;\n if (!Utils.isNullOrEmpty(pattern)) {\n if (typeof navigator.vibrate === 'function') {\n navigator.vibrate(pattern);\n }\n }\n }\n};\n__decorate([\n Watch({\n emit: false, converter: {\n convert: (attr) => attr?.split(/[ ,]+/).map(i => parseInt(i)),\n convertBack: (prop) => prop?.join(' ')\n }\n })\n], PacemVibrateElement.prototype, \"pattern\", void 0);\nPacemVibrateElement = __decorate([\n CustomElement({ tagName: P + '-vibrate' })\n], PacemVibrateElement);\nexport { PacemVibrateElement };\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 { P, CustomElement, Watch, PacemEventTarget, Components, Utils, PropertyConverters, Logging, CustomElementUtils } from '@pacem/pacem-core';\n//namespace Pacem.Components.UI {\nconst ANIM_TIMEOUT = 500;\nconst ElementOrStringPropertyConverter = {\n convert: (attr, element) => {\n try {\n return document.querySelector(attr) ?? (element.isConnected ? attr : null);\n }\n catch {\n return attr;\n }\n },\n convertBack: (prop) => (prop instanceof Element && prop.id) ? ('#' + prop.id) : prop,\n retryConversionWhenReady: true\n};\n/** Fetches and renders remote HTML (or a local `<template>`'s content) as its own inner content, dispatching `prerender`/`render` lifecycle events. */\nlet PacemViewElement = class PacemViewElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._templateChangeHandler = (evt) => {\n const tmplProxy = evt.target;\n this._setTmpl(tmplProxy.target);\n };\n this._debounceDispatchHandler = (e) => {\n clearTimeout(this.#resizeHandle);\n this.#resizeHandle = setTimeout(() => {\n if (e) {\n const resizer = e.srcElement;\n resizer.removeEventListener(Components.ResizeEventName, this._debounceDispatchHandler);\n resizer.remove();\n }\n //\n this.dispatchEvent(new CustomEvent(\"render\"));\n }, 100 /* tenth of a second limit */);\n };\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // url\n if (name === 'url' || name === 'disabled') {\n this._dispose(old);\n this._manage();\n }\n else if (name === 'fetching') {\n (val ? Utils.addClass : Utils.removeClass)(this, 'view-fetching');\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const url = this.url;\n if (this._isReference(url) && !this.disabled) {\n this._manageRef();\n }\n }\n _isReference(url) {\n return url instanceof HTMLElement || (typeof url === 'string' && url.trim().startsWith('#'));\n }\n _dispose(url) {\n if (url instanceof Components.PacemTemplateProxyElement) {\n url.removeEventListener('templatechange', this._templateChangeHandler);\n }\n }\n _manage() {\n if (this.disabled) {\n return;\n }\n const debounce = this.debounce || 0, url = this.url;\n ;\n if (this._isReference(url)) {\n // <template>-based\n clearTimeout(this._fetchHandle);\n this._fetchHandle = setTimeout((() => this._manageRef()), debounce);\n }\n else if (typeof url === 'string' && !Utils.isNullOrEmpty(url)) {\n // url-based\n this.fetching = true;\n clearTimeout(this._fetchHandle);\n this._fetchHandle = setTimeout((() => this._manageUrl(url)), debounce);\n }\n else /* might be a reset */ {\n this.innerHTML = '';\n }\n }\n _manageRef() {\n const url = this.url, tmpl = url instanceof HTMLElement ? url : document.querySelector('template' + url);\n if (tmpl instanceof Components.PacemTemplateProxyElement) {\n tmpl.addEventListener('templatechange', this._templateChangeHandler, false);\n this._setTmpl(tmpl.target);\n }\n else if (tmpl instanceof HTMLTemplateElement) {\n this._setTmpl(tmpl);\n }\n else if (!Utils.isNull(tmpl)) {\n this.log(Logging.LogLevel.Error, `Invalid '${tmpl.constructor.name}' element, HTMLTemplate expected.`);\n }\n else {\n this.log(Logging.LogLevel.Error, `Template element not found.`);\n }\n }\n _setTmpl(tmpl) {\n cancelAnimationFrame(this._renderHandle);\n // this way, `this._container.innerHTML = ''` instruction will eventually let the page \"scroll up\"...\n this.innerHTML = '';\n this._dispatchPrerender();\n this._renderHandle = requestAnimationFrame(() => {\n if (Utils.isNull(tmpl)) {\n this.log(Logging.LogLevel.Error, `Template element not found.`);\n return;\n }\n this.appendChild(tmpl.cloneNode(true).content);\n this._dispatchRender();\n });\n }\n #aborter;\n _manageUrl(url) {\n if (this.#aborter) {\n this.#aborter.abort();\n }\n const { signal } = this.#aborter = new AbortController();\n fetch(url, { credentials: 'same-origin', signal }).then(async (r) => {\n // inline function\n const manageYield = (r, htmlPromise) => {\n if ((r.status === 301 || r.status === 302) && this.followRedirects) {\n this._manageUrl(r.headers.get(\"Location\"));\n }\n else if (r.ok || this.renderErrors) {\n htmlPromise.then((html) => Utils.addAnimationEndCallback(this, () => this._manageResult(html), ANIM_TIMEOUT));\n }\n // fallback to empty content.\n else\n this._manageResult('');\n };\n const contentLength = +r.headers.get('Content-Length');\n if (contentLength > 0) {\n this.progress = 0;\n let received = 0;\n const chunks = [];\n // progress available\n const reader = r.body.getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n this.progress = (received += value.length) / contentLength;\n chunks.push(value);\n }\n manageYield(r, new Promise((resolve, reject) => {\n try {\n let allChunks = new Uint8Array(received);\n let position = 0;\n for (let chunk of chunks) {\n allChunks.set(chunk, position);\n position += chunk.length;\n }\n const html = new TextDecoder(\"utf-8\").decode(allChunks);\n resolve(html);\n }\n catch (e) {\n reject(e);\n }\n }));\n }\n else {\n manageYield(r, r.text());\n }\n }, _ => {\n // do nothing on fail\n });\n }\n _manageResult(result) {\n // this way, `this._container.innerHTML = ''` instruction will eventually let the page \"scroll up\"...\n cancelAnimationFrame(this._renderHandle);\n this.scrollTo({ top: 0, left: 0, behavior: 'instant' });\n this.innerHTML = '';\n this._dispatchPrerender();\n this._renderHandle = requestAnimationFrame(() => {\n this.innerHTML = result;\n this.fetching = false;\n this.progress = Number.NaN;\n // setting fetching to `false` triggers a css class change that could/should cause a css transition to happen\n // TODO: manage to switch to native in a near future (https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API or https://youtu.be/oDcb3fvtETs)\n Utils.addAnimationEndCallback(this, () => {\n this._dispatchRender();\n }, ANIM_TIMEOUT);\n });\n }\n #resizeHandle;\n _dispatchRender() {\n const resizer = new Components.PacemResizeElement();\n resizer.target = this;\n resizer.addEventListener(Components.ResizeEventName, this._debounceDispatchHandler);\n CustomElementUtils.findAncestorShell(this).appendChild(resizer);\n this._debounceDispatchHandler();\n }\n _dispatchPrerender() {\n this.dispatchEvent(new CustomEvent(\"prerender\"));\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: ElementOrStringPropertyConverter })\n], PacemViewElement.prototype, \"url\", void 0);\n__decorate([\n Watch()\n], PacemViewElement.prototype, \"fetching\", void 0);\n__decorate([\n Watch()\n], PacemViewElement.prototype, \"progress\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemViewElement.prototype, \"renderErrors\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemViewElement.prototype, \"followRedirects\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemViewElement.prototype, \"debounce\", void 0);\nPacemViewElement = __decorate([\n CustomElement({\n tagName: P + '-view'\n })\n], PacemViewElement);\nexport { PacemViewElement };\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 { P, PCSS, CustomElement, Watch, Components, UI, Utils, PropertyConverters, Defaults, CustomElementUtils, PropertyChangeEventName } from '@pacem/pacem-core';\nimport { AdapterPageButtonRefreshEventName } from './adapter';\n//namespace Pacem.Components.UI {\nconst HANDLE_CSS = 'window-title';\n/** Container that arranges `PacemWindowElement` children as draggable/resizable floating windows, or docks them one at a time via an adapter. */\nlet PacemWindowAreaElement = class PacemWindowAreaElement extends Components.PacemIterativeElement {\n constructor() {\n super(...arguments);\n this._zIndex = 1;\n this._startHandler = (evt) => {\n this._incrementZIndex(evt.detail.element);\n Utils.addClass(evt.detail.element, 'window-rescaling');\n };\n this._blurHandler = (evt) => {\n Utils.removeClass(evt.detail.element, 'window-rescaling');\n };\n this._focusHandler = (evt) => {\n this._incrementZIndex(evt.currentTarget);\n };\n this._itemPropertyChangeHandler = (evt) => {\n if (evt.detail.propertyName === 'floating' && evt.detail.currentValue === false) {\n const item = evt.currentTarget, ndx = this.items.indexOf(item);\n Utils.addClass(item, 'docking-in');\n this.adapter.select(ndx);\n Utils.addAnimationEndCallback(item, (e) => {\n Utils.removeClass(e, 'docking-in');\n }, 150);\n }\n };\n this._adapterPagerCallback = (evt) => {\n const index = evt.detail.index, item = this.items[index];\n evt.detail.hide = item.hide || item.floating;\n };\n }\n validate(item) {\n return item instanceof PacemWindowElement;\n }\n _incrementZIndex(target) {\n if (this._zIndex != parseInt(target.style.zIndex)) {\n target.style.zIndex = '' + (++this._zIndex);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n let shell = CustomElementUtils.findAncestorShell(this);\n this._behaviors = [\n shell.appendChild(this._dragDrop = document.createElement(P + '-drag-drop')),\n shell.appendChild(this._rescale = document.createElement(P + '-rescale'))\n ];\n this._dragDrop.handleSelector = '.' + HANDLE_CSS;\n //this._dragDrop.addEventListener(DragDropEventType.Init, this._focusHandler, false);\n this._rescale.addEventListener(UI.RescaleEventType.Start, this._startHandler, false);\n this._rescale.addEventListener(UI.RescaleEventType.End, this._blurHandler, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n // adapter (reuse)\n if (Utils.isNull(this.adapter)) {\n const adapter = this.adapter = this.appendChild(document.createElement(P + '-adapter'));\n Utils.addClass(adapter, 'windows-adapter');\n adapter.labelCallback = (item, _) => {\n return item.caption;\n };\n adapter.swipeEnabled = false;\n adapter.deselectable = true;\n adapter.initialize(this);\n }\n this.adapter.addEventListener(AdapterPageButtonRefreshEventName, this._adapterPagerCallback, false);\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.adapter)) {\n this.adapter.removeEventListener(AdapterPageButtonRefreshEventName, this._adapterPagerCallback, false);\n this.adapter.remove();\n this.adapter = null;\n }\n //this._dragDrop.removeEventListener(DragDropEventType.Init, this._focusHandler, false);\n this._rescale.removeEventListener(UI.RescaleEventType.End, this._blurHandler, false);\n this._rescale.removeEventListener(UI.RescaleEventType.Start, this._startHandler, false);\n for (let b of this._behaviors) {\n b.remove();\n }\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'index') {\n this._syncVisibility();\n }\n }\n /** Registers a window item, wiring drag/resize behaviors and focus tracking; returns whether it was newly added. */\n register(item) {\n const retval = super.register(item);\n if (retval) {\n item.addEventListener(PropertyChangeEventName, this._itemPropertyChangeHandler, false);\n item.addEventListener('mousedown', this._focusHandler, false);\n for (let b of this._behaviors) {\n const ndx = item.behaviors.indexOf(b);\n if (ndx === -1) {\n item.behaviors.push(b);\n }\n }\n }\n return retval;\n }\n /** Unregisters a window item, tearing down its drag/resize behaviors; returns whether it was found and removed. */\n unregister(item) {\n const retval = super.unregister(item);\n if (retval) {\n item.removeEventListener(PropertyChangeEventName, this._itemPropertyChangeHandler, false);\n item.removeEventListener('mousedown', this._focusHandler, false);\n for (let b of this._behaviors) {\n const ndx = item.behaviors.indexOf(b);\n if (ndx >= 0) {\n item.behaviors.splice(ndx, 1);\n }\n }\n }\n return retval;\n }\n _syncVisibility() {\n let ndx = 0;\n const items = this.items ?? [];\n for (let item of items) {\n if (ndx === this.index) {\n Utils.addClass(item, 'dock-open');\n }\n else {\n Utils.removeClass(item, 'dock-open');\n }\n ndx++;\n }\n }\n};\nPacemWindowAreaElement = __decorate([\n CustomElement({\n tagName: P + '-window-area'\n })\n], PacemWindowAreaElement);\nexport { PacemWindowAreaElement };\n/** Single draggable, resizable, and dockable window pane hosted within a `PacemWindowAreaElement`. */\nlet PacemWindowElement = class PacemWindowElement extends Components.PacemIterableElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'minimized' || name === 'floating') {\n this._syncLayout();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._syncLayout();\n }\n _syncLayout() {\n (this.minimized ? Utils.addClass : Utils.removeClass).apply(this, [this, 'window-min']);\n (this.floating ? Utils.removeClass : Utils.addClass).apply(this, [this, 'window-dock']);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemWindowElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWindowElement.prototype, \"minimized\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWindowElement.prototype, \"floating\", void 0);\nPacemWindowElement = __decorate([\n CustomElement({\n tagName: P + '-window', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${HANDLE_CSS}\">\r\n <${P}-text text=\"{{ :host.caption || 'Window' }}\"></${P}-text>\r\n</div>\r\n<div class=\"window-buttons ${PCSS}-buttonset\"><div class=\"buttonset-right\">\r\n <${P}-button class=\"button\" on-click=\":host.minimized = !:host.minimized\" icon-glyph=\"{{ :host.minimized ? 'maximize' : 'minimize' }}\" hide=\"{{ !:host.floating }}\"></${P}-button>\r\n <${P}-button class=\"button\" on-click=\":host.floating = !:host.floating\" css-class=\"{{ {'buttonset-first': !:host.floating} }}\" icon-glyph=\"{{ :host.floating? 'lock_open' : 'lock' }}\"></${P}-button>\r\n</div></div>\r\n<div class=\"window-content\"><${P}-content></${P}-content></div>`\n })\n], PacemWindowElement);\nexport { PacemWindowElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","Components","Utils","CustomElementUtils","avoidHandler","UI","ViewChild","P","PCSS","Debounce","Watch","PropertyConverters","Throttle","CustomElement","Defaults","PropertyChangeEvent","preventDefaultHandler","stopPropagationHandler","CustomUIEvent","Point","OPEN_CSSCLASS","CustomTypedEvent","Logging","CommandEvent","PropertyChangeEventName","PacemEventTarget","Compile","Animations","Transformer","Angle","DeepMerger"],"mappings":"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"}
|