@pacem/pacem 1.0.0-bessel → 1.0.0-binet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/browser/pacem-2d.js +149 -2
  2. package/dist/browser/pacem-2d.js.map +1 -1
  3. package/dist/browser/pacem-2d.min.js +1 -1
  4. package/dist/browser/pacem-3d.js +646 -2
  5. package/dist/browser/pacem-3d.js.map +1 -1
  6. package/dist/browser/pacem-3d.min.js +1 -1
  7. package/dist/browser/pacem-charts.js +21 -1
  8. package/dist/browser/pacem-charts.js.map +1 -1
  9. package/dist/browser/pacem-charts.min.js +1 -1
  10. package/dist/browser/pacem-cms.js +118 -3
  11. package/dist/browser/pacem-cms.js.map +1 -1
  12. package/dist/browser/pacem-cms.min.js +1 -1
  13. package/dist/browser/pacem-core.js +870 -9
  14. package/dist/browser/pacem-core.js.map +1 -1
  15. package/dist/browser/pacem-core.min.js +2 -2
  16. package/dist/browser/pacem-foundation.js +296 -1
  17. package/dist/browser/pacem-foundation.js.map +1 -1
  18. package/dist/browser/pacem-foundation.min.js +1 -1
  19. package/dist/browser/pacem-fx.js +18 -1
  20. package/dist/browser/pacem-fx.js.map +1 -1
  21. package/dist/browser/pacem-fx.min.js +1 -1
  22. package/dist/browser/pacem-logging.js +15 -1
  23. package/dist/browser/pacem-logging.js.map +1 -1
  24. package/dist/browser/pacem-logging.min.js +1 -1
  25. package/dist/browser/pacem-maps.js +97 -1
  26. package/dist/browser/pacem-maps.js.map +1 -1
  27. package/dist/browser/pacem-maps.min.js +1 -1
  28. package/dist/browser/pacem-media.js +14 -1
  29. package/dist/browser/pacem-media.js.map +1 -1
  30. package/dist/browser/pacem-media.min.js +1 -1
  31. package/dist/browser/pacem-networking.js +22 -1
  32. package/dist/browser/pacem-networking.js.map +1 -1
  33. package/dist/browser/pacem-networking.min.js +1 -1
  34. package/dist/browser/pacem-numerical.js +360 -1
  35. package/dist/browser/pacem-numerical.js.map +1 -1
  36. package/dist/browser/pacem-numerical.min.js +1 -1
  37. package/dist/browser/pacem-plus.js +195 -4
  38. package/dist/browser/pacem-plus.js.map +1 -1
  39. package/dist/browser/pacem-plus.min.js +1 -1
  40. package/dist/browser/pacem-scaffolding.js +420 -38
  41. package/dist/browser/pacem-scaffolding.js.map +1 -1
  42. package/dist/browser/pacem-scaffolding.min.js +2 -2
  43. package/dist/browser/pacem-ui.js +143 -19
  44. package/dist/browser/pacem-ui.js.map +1 -1
  45. package/dist/browser/pacem-ui.min.js +2 -2
  46. package/dist/bundle/pacem.min.mjs +147 -147
  47. package/dist/bundle/pacem.mjs +2905 -1417
  48. package/dist/bundle/pacem.mjs.map +3 -3
  49. package/dist/docs/pacem-2d.json +11549 -0
  50. package/dist/docs/pacem-3d.json +29096 -0
  51. package/dist/docs/pacem-charts.json +4244 -0
  52. package/dist/docs/pacem-cms.json +9325 -0
  53. package/dist/docs/pacem-core.json +40109 -0
  54. package/dist/docs/pacem-foundation.json +8941 -0
  55. package/dist/docs/pacem-fx.json +3121 -0
  56. package/dist/docs/pacem-logging.json +941 -0
  57. package/dist/docs/pacem-maps.json +17387 -0
  58. package/dist/docs/pacem-media.json +1203 -0
  59. package/dist/docs/pacem-networking.json +1798 -0
  60. package/dist/docs/pacem-numerical.json +13706 -0
  61. package/dist/docs/pacem-plus.json +8468 -0
  62. package/dist/docs/pacem-scaffolding.json +34788 -0
  63. package/dist/docs/pacem-ui.json +18628 -0
  64. package/dist/typings/index.d.ts +4109 -31
  65. package/dist/vscode.html-custom.json +1303 -741
  66. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"pacem-plus.js","sources":["../esm/datagrid/types.js","../esm/datagrid/l10n.js","../esm/carousel.js","../esm/context-menu.js","../esm/edit.js","../esm/gallery.js","../esm/modal-form.js","../esm/router-hash-state.js","../esm/router-view-scroll.js","../esm/search.js","../esm/datagrid/datacell.js","../esm/datagrid/headcell.js","../esm/datagrid/datagrid.js","../esm/index-iife.js"],"sourcesContent":["var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, Components } from '@pacem/pacem-core';\nexport class PacemBaseCellElement extends Components.PacemSafeContentElement {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.updateColumnPosition();\n this.updateLayout(this.metadata);\n }\n updateColumnPosition(metadata = this.metadata, state = this.gridState) {\n this.style.gridColumn = (state.orderedColumns.indexOf(metadata.prop) + 1).toString();\n }\n updateVisibility(state = this.state) {\n this.hide = !!state.hidden;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'metadata':\n this.updateLayout(val);\n break;\n case 'gridState':\n this.updateColumnPosition();\n break;\n case 'state':\n this.updateVisibility();\n break;\n }\n }\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemBaseCellElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemBaseCellElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemBaseCellElement.prototype, \"gridState\", 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 { Utils, Transformer } from '@pacem/pacem-core';\nconst DefaultLocalizationOptions = {\n headCell: (headCellProp, prop, dictionary) => {\n switch (headCellProp) {\n case 'name':\n return dictionary['column_name_' + prop] ?? dictionary['name_' + prop];\n case 'description':\n return dictionary['column_description_' + prop] ?? dictionary['description_' + prop];\n }\n return null;\n }\n};\nexport class DataGrids {\n /**\n * Localizes the metadata of a data grid **in place** using a translation dictionary.\n * Only the `name` and `description` properties of data columns are localized.\n *\n * By default, this method uses an opinionated key lookup strategy and attempts to resolve translation keys in the following format:\n * - `column_name_{key}` for column names\n * - `column_description_{key}` for column descriptions/tooltips\n *\n * This behavior can be customized by providing a replacement strategy through the `options` parameter.\n *\n * @param metadata The metadata to localize.\n * @param dictionary The translation dictionary.\n * @param options Optional customization of the replacement strategy.\n * @returns The localized metadata.\n */\n static localizeMetadata(metadata, dictionary, options) {\n options = Utils.extend({}, DefaultLocalizationOptions, options ?? {});\n // do not clone (for now...)\n for (let prop of metadata) {\n const display = prop.headCell = prop.headCell ?? {};\n display.name = options.headCell('name', prop.prop, dictionary) ?? display.name; // dictionary['column_name_' + prop.prop] ?? dictionary['name_' + prop.prop] ?? display.name;\n display.description = options.headCell('description', prop.prop, dictionary) ?? /* dictionary['column_description_' + prop.prop] ?? dictionary['description_' + prop.prop] ?? */ display.description;\n }\n return metadata;\n }\n}\n__decorate([\n Transformer('datagrids.localizeMetadata')\n], DataGrids, \"localizeMetadata\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, PCSS, ViewChild, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n/** @deprecated*/\nlet PacemCarouselElement = class PacemCarouselElement extends UI.PacemAdaptedIterativeElement {\n constructor() {\n super(...arguments);\n this.interval = 4000;\n }\n};\n__decorate([\n ViewChild(P + '-adapter')\n], PacemCarouselElement.prototype, \"adapter\", void 0);\n__decorate([\n ViewChild(P + '-slideshow')\n], PacemCarouselElement.prototype, \"slideshow\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemCarouselElement.prototype, \"interval\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemCarouselElement.prototype, \"pausable\", void 0);\nPacemCarouselElement = __decorate([\n CustomElement({\n tagName: P + '-carousel', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater datasource=\"{{ :host.datasource }}\">\r\n <${P}-slideshow class=\"${PCSS}-carousel\" adapter=\"{{ ::adapter }}\" index=\"{{ :host.index, twoway }}\" on-load=\"this.focus()\">\r\n\r\n <template>\r\n\r\n <${P}-slide class=\"${PCSS}-carousel-item\" css-class=\"{{ { '${PCSS}-carousel-previous': :host.isPrevious(^index, ::slideshow.index), '${PCSS}-carousel-next': :host.isNext(^index, ::slideshow.index), '${PCSS}-carousel-focus': ^index === ::slideshow.index } }}\">\r\n <${P}-a href=\"{{ ^item.url }}\">\r\n <${P}-img disabled=\"{{ !:host.isCloseTo(^index, ::slideshow.index) }}\" class=\"${PCSS}-carousel-splash\" adapt=\"cover\" src=\"{{ ^item.image }}\"></${P}-img>\r\n <div class=\"${PCSS}-carousel-content\">\r\n <div class=\"${PCSS}-carousel-caption\">\r\n <h3><${P}-text text=\"{{ ^item.title }}\"></${P}-text></h3>\r\n <${P}-panel class=\"paragraph\" content=\"{{ ^item.content }}\"></${P}-panel>\r\n </div>\r\n </div>\r\n </${P}-a>\r\n </${P}-slide>\r\n\r\n </template>\r\n </${P}-slideshow>\r\n\r\n </${P}-repeater><${P}-adapter pausable=\"{{ :host.pausable }}\" class=\"${PCSS}-carousel-adapter\" interval=\"{{ :host.interval }}\"></${P}-adapter>`\n })\n], PacemCarouselElement);\nexport { PacemCarouselElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, CustomElementUtils, avoidHandler, Debounce, ViewChild, Components, CommandEvent, CommandEventName, AttributeChangeEventName } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n//namespace Pacem.Components.Plus {\nexport class PacemContextMenuItemElement extends Components.PacemItemElement {\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-context-menuitem');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const container = this.container;\n if (container instanceof PacemContextMenuElement) {\n container.refresh();\n }\n }\n}\nlet PacemContextMenuItemCommandElement = class PacemContextMenuItemCommandElement extends PacemContextMenuItemElement {\n createMenuItemElement() {\n const retval = new UI.PacemButtonElement();\n retval.commandArgument = this.commandArgument;\n retval.commandName = this.commandName;\n retval.textContent = this.caption;\n retval.iconGlyph = this.iconGlyph;\n retval.confirmationDialog = this.confirmationDialog;\n retval.confirmationMessage = this.confirmationMessage;\n retval.tooltip = this.tooltip;\n retval.disabled = this.disabled;\n retval.cssClass = this.buttonCssClass;\n return retval;\n }\n};\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"commandName\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"tooltip\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"iconGlyph\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.StringArray })\n], PacemContextMenuItemCommandElement.prototype, \"buttonCssClass\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"confirmationMessage\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.Element })\n], PacemContextMenuItemCommandElement.prototype, \"confirmationDialog\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.Json })\n], PacemContextMenuItemCommandElement.prototype, \"commandArgument\", void 0);\nPacemContextMenuItemCommandElement = __decorate([\n CustomElement({ tagName: P + '-context-menuitem-command' })\n], PacemContextMenuItemCommandElement);\nexport { PacemContextMenuItemCommandElement };\nlet PacemContextMenuItemSeparatorElement = class PacemContextMenuItemSeparatorElement extends PacemContextMenuItemElement {\n createMenuItemElement() {\n const retval = document.createElement('hr');\n retval.style.pointerEvents = 'none';\n return retval;\n }\n};\nPacemContextMenuItemSeparatorElement = __decorate([\n CustomElement({ tagName: P + '-context-menuitem-separator' })\n], PacemContextMenuItemSeparatorElement);\nexport { PacemContextMenuItemSeparatorElement };\n// <${P}-button class=\"button-flat ${PCSS}-margin margin-0\"><${P}-icon icon=\"{{ :host.icon || 'more_horiz' }}\"></${P}-icon></${P}-button>\nlet PacemContextMenuElement = class PacemContextMenuElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._dispatchCommand = (e) => {\n avoidHandler(e);\n this._onCommand(new CommandEvent({ commandName: e.detail.commandName, commandArgument: e.detail.commandArgument ?? this.commandArgument }));\n };\n this._slotchangeHandler = (evt) => {\n this._resetLayout();\n };\n this._attributeChangeHandler = (evt) => this._refreshMenuItems;\n this._mouseupHandler = (evt) => {\n const balloon = this._ensureBalloon();\n if (!Utils.isNull(balloon)) {\n balloon.popout();\n }\n };\n }\n validate(item) {\n return item instanceof PacemContextMenuItemElement;\n }\n #btn;\n #icon;\n #balloon;\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 UI.PacemButtonElement();\n retval.setAttribute('slot', 'button');\n retval.className = `${PCSS}-margin margin-0 button-flat`;\n const icon = this.#icon = new UI.PacemIconElement();\n retval.appendChild(icon);\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 _ensureBalloon() {\n let balloon = this.#balloon;\n if (!Utils.isNull(balloon)) {\n return balloon;\n }\n const shell = CustomElementUtils.findAncestorShell(this);\n if (Utils.isNull(shell)) {\n return null;\n }\n balloon = new UI.PacemBalloonElement();\n balloon.options = { trigger: UI.BalloonTrigger.Click, position: UI.BalloonPosition.HorizontalAuto, align: UI.BalloonAlignment.Auto, autoAdjust: true };\n //balloon.target = this._btn;\n balloon.addEventListener(CommandEventName, this._dispatchCommand, false);\n balloon.className = `${PCSS}-contextmenu`;\n shell.appendChild(balloon);\n return this.#balloon = balloon;\n }\n register(item) {\n const retval = super.register(item);\n if (retval) {\n item.addEventListener(AttributeChangeEventName, this._attributeChangeHandler, false);\n this._refreshMenuItems();\n }\n return retval;\n }\n unregister(item) {\n const retval = super.unregister(item);\n if (retval) {\n item.removeEventListener(AttributeChangeEventName, this._attributeChangeHandler, false);\n this._refreshMenuItems();\n }\n return retval;\n }\n _onCommand(evt) {\n this.dispatchEvent(new CustomEvent(CommandEventName, { detail: evt.detail, cancelable: true, bubbles: true }));\n this.dispatchEvent(new CustomEvent(evt.detail.commandName.toLowerCase(), { detail: evt.detail.commandArgument, cancelable: true, bubbles: true }));\n }\n _resetLayout() {\n const btn = this._ensureButton();\n const balloon = this._ensureBalloon();\n if (!Utils.isNull(btn) && !Utils.isNull(balloon)) {\n balloon.target = btn;\n }\n this._toggleBtn();\n this._toggleIcon();\n }\n _toggleBtn(disabled = this.disabled) {\n const btn = this.#btn;\n if (!Utils.isNull(btn) && btn instanceof Components.PacemElement) {\n btn.disabled = disabled;\n }\n }\n _toggleIcon(icon = this.icon) {\n const iconEl = this.#icon;\n if (!Utils.isNull(iconEl)) {\n iconEl.icon = icon;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._resetLayout();\n this._slot.addEventListener('slotchange', this._slotchangeHandler, false);\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._toggleIcon(val);\n break;\n case 'disabled':\n this._toggleBtn(val);\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeButton();\n this._disposeSlot();\n this._disposeBalloon();\n super.disconnectedCallback();\n }\n refresh() {\n this._refreshMenuItems();\n }\n _disposeButton() {\n this.#btn = this.#icon = null;\n }\n _disposeSlot() {\n const slot = this._slot;\n if (!Utils.isNull(slot)) {\n slot.removeEventListener('slotchange', this._slotchangeHandler, false);\n }\n }\n _disposeBalloon() {\n const balloon = this.#balloon;\n if (!Utils.isNull(balloon)) {\n balloon.removeEventListener(CommandEventName, this._dispatchCommand, false);\n this._disposeBalloonChildren(0);\n balloon.remove();\n this.#balloon = null;\n }\n }\n _disposeBalloonChildren(startAt) {\n const balloon = this.#balloon;\n const count = balloon.children.length;\n for (let j = count - 1; j >= startAt; j--) {\n // cleanup\n const rem = balloon.children.item(j);\n rem.removeEventListener('mouseup', this._mouseupHandler, false);\n rem.remove();\n }\n }\n _refreshMenuItems() {\n const balloon = this._ensureBalloon();\n if (Utils.isNull(balloon)) {\n return;\n }\n const count = balloon.children.length;\n let cursor = 0;\n for (let item of this.items) {\n if (item.hide) {\n continue;\n }\n const menuitem = item.createMenuItemElement();\n menuitem.addEventListener('mouseup', this._mouseupHandler, false);\n if (cursor < count) {\n const repl = balloon.children.item(cursor);\n repl.removeEventListener('mouseup', this._mouseupHandler, false);\n repl.replaceWith(menuitem);\n }\n else {\n balloon.appendChild(menuitem);\n }\n cursor++;\n }\n this._disposeBalloonChildren(cursor);\n }\n};\n__decorate([\n ViewChild('slot[name=button]')\n], PacemContextMenuElement.prototype, \"_slot\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemContextMenuElement.prototype, \"commandArgument\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemContextMenuElement.prototype, \"icon\", void 0);\n__decorate([\n Debounce(true)\n], PacemContextMenuElement.prototype, \"_refreshMenuItems\", null);\nPacemContextMenuElement = __decorate([\n CustomElement({\n tagName: P + '-context-menu', shadow: true,\n template: `<slot name=\"button\"></slot><slot></slot>`\n })\n], PacemContextMenuElement);\nexport { PacemContextMenuElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, PropertyChangeEventName, Components, avoidHandler } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nconst UI = UIComponents.UI;\nconst Scaffolding = ScaffoldingComponents.Scaffolding;\n//namespace Pacem.Components.Plus {\nexport var EditMode;\n(function (EditMode) {\n EditMode[\"Text\"] = \"text\";\n EditMode[\"Html\"] = \"html\";\n EditMode[\"Image\"] = \"image\";\n EditMode[\"Markdown\"] = \"markdown\";\n})(EditMode || (EditMode = {}));\nlet PacemEditElement = class PacemEditElement extends Components.PacemElement {\n constructor(_markdown = new UI.MarkdownService()) {\n super();\n this._markdown = _markdown;\n // #endregion\n // #endregion\n this._dialogPropertyChangedHandler = (evt) => {\n this._dialogPropertyChangedCallback(evt);\n };\n this._broadcastFetchRequestEventName = (evt) => {\n this.dispatchEvent(new Scaffolding.ImageFetchRequestEvent(evt.detail));\n };\n this._innerValueChangedHandler = (evt) => {\n if (evt.detail.propertyName === 'value' && !Utils.isNull(this._dialog))\n this._dialog.state = evt.detail.currentValue;\n };\n this._editHandler = (evt) => {\n this.edit(evt);\n };\n }\n _addButton() {\n /*<pacem-balloon options=\"{ position: '${UI.BalloonPosition.Top}', align: '${UI.BalloonAlignment.End}', behavior: '${UI.BalloonBehavior.Inert}', hoverDelay: 0 }\" disabled=\"{{ :host.disabled }}\" class=\"pacem-edit-balloon\">\n <pacem-button class=\"pacem-edit\" on-click=\":host.edit($event)\"></pacem-button>\n </pacem-balloon>*/\n if (!Utils.isNull(this._button))\n return;\n //\n var btn = document.createElement(P + '-button');\n btn.className = PCSS + '-edit-button';\n btn.addEventListener('click', this._editHandler, false);\n this._target.appendChild(btn);\n //\n return this._button = btn;\n }\n _removeButton() {\n var btn = this._button;\n if (Utils.isNull(btn))\n return;\n btn.removeEventListener('click', this._editHandler, false);\n btn.remove();\n this._button = null;\n }\n // #region dialog\n _addDialog() {\n /* <pacem-dialog buttons=\"'${ UI.DialogButtons.OkCancel}'\" on-${PropertyChangeEventName}=\":host._dialogPropertyChangedCallback($event)\"> */\n var dialog = document.createElement(P + '-dialog');\n dialog.buttons = UI.DialogButtons.OkCancel;\n dialog.addEventListener(PropertyChangeEventName, this._dialogPropertyChangedHandler, false);\n dialog.appendChild(this._addTextarea());\n dialog.appendChild(this._addContenteditable());\n dialog.appendChild(this._addEditImage());\n document.body.appendChild(dialog);\n //\n return this._dialog = dialog;\n }\n _removeDialog() {\n this._removeTextarea();\n this._removeContenteditable();\n this._removeEditImage();\n if (!Utils.isNull(this._dialog)) {\n this._dialog.removeEventListener(PropertyChangeEventName, this._dialogPropertyChangedHandler, false);\n this._dialog.remove();\n }\n }\n // #region textarea\n _addTextarea() {\n /*<pacem-textarea hide=\"{{ :host.type === '${ EditMode.Html}' || :host.type === '${EditMode.Image}' }}\" value=\"{{ ::_dialog.state, twoway }}\"></pacem-textarea>*/\n var textarea = document.createElement(P + '-textarea');\n textarea.className = PCSS + '-edit-text';\n textarea.addEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n const type = this.type || EditMode.Text;\n textarea.hide = type !== EditMode.Text && type !== EditMode.Markdown;\n return this._textarea = textarea;\n }\n _removeTextarea() {\n if (!Utils.isNull(this._textarea))\n this._textarea.removeEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n }\n // #endregion\n // #region contenteditable\n _addContenteditable() {\n /*<pacem-contenteditable hide=\"{{ :host.type != '${ EditMode.Html}' }}\" value=\"{{ ::_dialog.state, twoway }}\"></pacem-contenteditable> */\n var contenteditable = document.createElement(P + '-contenteditable');\n contenteditable.className = PCSS + '-edit-content';\n contenteditable.addEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n const type = this.type || EditMode.Text;\n contenteditable.hide = type !== EditMode.Html;\n return this._contenteditable = contenteditable;\n }\n _removeContenteditable() {\n if (!Utils.isNull(this._contenteditable))\n this._contenteditable.removeEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n }\n // #endregion\n // #region edit-image\n _addEditImage() {\n /*<!-- img -->\n<pacem-panel class=\"pacem-edit-image\" hide=\"{{ :host.type != '${ EditMode.Image}' }}\"\n css-class=\"{{ {'pacem-uploading': ::_uploader.uploading, 'pacem-upload-enabled': !Pacem.Utils.isNullOrEmpty(:host.imageUploadUrl)} }}\">\n <pacem-input-search value=\"{{ :host.hint, twoway }}\"></pacem-input-search>\n <pacem-upload pattern=\"'.+\\.(jpe?g|png)$'\" url=\"{{ :host.imageUploadUrl }}\" on-${ PropertyChangeEventName}=\":host._uploaderPropertyChangedCallback($event)\" hide=\"{{ Pacem.Utils.isNullOrEmpty(:host.imageUploadUrl) }}\"></pacem-upload>\n <pacem-infinite-scroller container=\"{{ ::_repeater }}\" on-fetchmore=\":host._imagefetchSuddenly()\" disabled=\"{{ :host._fetching || !:host._open || :host._images.length >= :host.imageSet.total }}\"></pacem-infinite-scroller>\n <pacem-repeater datasource=\"{{ :host._images }}\">\n <template>\n <pacem-img css-class=\"{{ {'pacem-selected': ^item.src === ::_dialog.state } }}\" on-click=\"::_dialog.state = ^item.src\" src=\"{{ ^item.thumb }}\" adapt=\"'contain'\"></pacem-img>\n </template>\n </pacem-repeater>\n <pacem-progressbar></pacem-progressbar>\n</pacem-panel>*/\n var editImage = document.createElement(P + '-edit-image');\n editImage.disabled = true;\n editImage.addEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n editImage.addEventListener(Scaffolding.ImageFetchRequestEventName, this._broadcastFetchRequestEventName, false);\n const type = this.type || EditMode.Text;\n editImage.hide = type !== EditMode.Image;\n editImage.uploadUrl = this.imageUploadUrl;\n editImage.allowSnapshot = this.allowSnapshot;\n editImage.maxWidth = this.maxImageWidth;\n editImage.maxHeight = this.maxImageHeight;\n return this._editImage = editImage;\n }\n _removeEditImage() {\n if (!Utils.isNull(this._editImage)) {\n this._editImage.removeEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n this._editImage.removeEventListener(Scaffolding.ImageFetchRequestEventName, this._broadcastFetchRequestEventName, false);\n }\n }\n _update(val) {\n var cnt = this._content;\n switch (this.type) {\n case EditMode.Html:\n cnt.innerHTML = val;\n break;\n case EditMode.Markdown:\n switch (cnt.localName) {\n case P + '-markdown':\n cnt.value = val;\n break;\n default:\n cnt.innerHTML = this._markdown.toHtml(val);\n break;\n }\n break;\n case EditMode.Image:\n switch (cnt.localName) {\n case 'img':\n case P + '-img':\n cnt['src'] = val;\n break;\n default:\n cnt.style.backgroundImage = `url(${val})`;\n break;\n }\n break;\n default:\n this._content.textContent = val;\n break;\n }\n }\n _retrieve() {\n var cnt = this._content;\n switch (this.type) {\n case EditMode.Html:\n return cnt.innerHTML;\n case EditMode.Image:\n switch (cnt.localName) {\n case P + '-img':\n case 'img':\n return cnt['src'];\n default:\n let styled = getComputedStyle(cnt).backgroundImage, matches = /url\\([\"']?([^'\"]+)[\"']?\\)/.exec(styled);\n return matches && matches.length && matches[1];\n }\n case EditMode.Markdown:\n return cnt['value'] || cnt.textContent;\n default:\n return cnt.textContent;\n }\n }\n _setup() {\n const val = this.disabled;\n if (val) {\n Utils.removeClass(this._target, PCSS + '-editing');\n this._removeButton();\n }\n else {\n Utils.addClass(this._target, PCSS + '-editing');\n this._addButton();\n }\n }\n _dialogPropertyChangedCallback(evt) {\n if (evt.detail.propertyName === 'state') {\n const val = evt.detail.currentValue;\n if (!Utils.isNull(this._textarea))\n this._textarea.value = val;\n if (!Utils.isNull(this._contenteditable))\n this._contenteditable.value = val;\n if (!Utils.isNull(this._editImage))\n this._editImage.value = val;\n this._update(evt.detail.currentValue);\n }\n }\n get _target() {\n var cnt = this.target;\n if (Utils.isNull(cnt))\n cnt = this.firstElementChild;\n return cnt;\n }\n connectedCallback() {\n super.connectedCallback();\n this._addDialog();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._addButton();\n this._setup();\n }\n disconnectedCallback() {\n this._removeButton();\n this._removeDialog();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'imageUploadUrl':\n if (!Utils.isNull(this._editImage))\n this._editImage.uploadUrl = val;\n break;\n case 'allowSnapshot':\n if (!Utils.isNull(this._editImage))\n this._editImage.allowSnapshot = val;\n break;\n case 'imageSet':\n if (!Utils.isNull(this._editImage))\n this._editImage.imageSet = val;\n break;\n case 'disabled':\n this._setup();\n break;\n case 'type':\n const type = val;\n if (!Utils.isNull(this._textarea))\n this._textarea.hide = type !== EditMode.Text && type !== EditMode.Markdown;\n if (!Utils.isNull(this._contenteditable))\n this._contenteditable.hide = type !== EditMode.Html;\n if (!Utils.isNull(this._editImage))\n this._editImage.hide = type !== EditMode.Image;\n break;\n case 'maxImageHeight':\n if (!Utils.isNull(this._editImage))\n this._editImage.maxHeight = val;\n break;\n case 'maxImageWidth':\n if (!Utils.isNull(this._editImage))\n this._editImage.maxWidth = val;\n break;\n }\n }\n edit(evt) {\n avoidHandler(evt);\n var cnt = this._target;\n if (Utils.isNull(cnt))\n return;\n this._removeButton();\n this._content = cnt;\n var state = this._state = this._retrieve();\n if (!Utils.isNull(this._editImage))\n this._editImage.disabled = false;\n this._dialog.open(state).then(args => {\n switch (args.button) {\n case UI.DialogButton.Cancel:\n // reset value\n this._update(this._state);\n break;\n case UI.DialogButton.Ok:\n // save\n this._update(args.state);\n this.dispatchEvent(new CustomEvent('commit', { detail: { value: args.state } }));\n break;\n }\n this._content = null;\n if (!Utils.isNull(this._editImage))\n this._editImage.disabled = true;\n this._addButton();\n });\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemEditElement.prototype, \"key\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemEditElement.prototype, \"type\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemEditElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemEditElement.prototype, \"imageUploadUrl\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemEditElement.prototype, \"imageSet\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemEditElement.prototype, \"maxImageWidth\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemEditElement.prototype, \"maxImageHeight\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemEditElement.prototype, \"allowSnapshot\", void 0);\nPacemEditElement = __decorate([\n CustomElement({\n tagName: P + '-edit'\n })\n], PacemEditElement);\nexport { PacemEditElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, PCSS, ViewChild, Watch, PropertyConverters, Utils, Components } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\nfunction getGallerySlideShowTemplate(captionTemplate = getDefaultCaptionTemplate(), imageProperty = 'image') {\n return `<${P}-slide class=\"${PCSS}-gallery-item\"\r\ncss-class=\"{{ { '${PCSS}-gallery-previous': :host.isPrevious(^index, ::_slideshow.index), '${PCSS}-gallery-next': :host.isNext(^index, ::_slideshow.index), '${PCSS}-gallery-focus': ^index === ::_slideshow.index } }}\"\r\n>\r\n <${P}-img src=\"{{ ^item.${imageProperty} }}\" disabled=\"{{ !::_lightbox.show || !(:host.isCloseTo(^index, ::_slideshow.index) || ^index === ::_slideshow.index) }}\"\r\ncss=\"{{ {'visibility': (:host._poppingUp ? 'hidden' : ''), 'transition': (:host._poppingUp ? 'none' : '')} }}\" class=\"${PCSS}-gallery-splash\" adapt=\"contain\"></${P}-img>\r\n\r\n${captionTemplate}\r\n\r\n </${P}-slide>`;\n}\nfunction getDefaultCaptionTemplate(captionProperty = 'caption') {\n return `<${P}-panel hide=\"{{ $pacem.isNullOrEmpty(^item.${captionProperty}) }}\" class=\"${PCSS}-gallery-caption gallery-caption-default\">\r\n <${P}-span class=\"paragraph\" text=\"{{ ^item.${captionProperty} }}\"></${P}-span>\r\n </${P}-panel>`;\n}\n;\nlet PacemGalleryElement = class PacemGalleryElement extends UI.PacemAdaptedIterativeElement {\n constructor() {\n super(...arguments);\n this._templateChangeHandler = (evt) => {\n const proxy = evt.target;\n this._setupWithCaptionTemplate(proxy.target);\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setupWithCaptionTemplate();\n this._databind();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'datasource':\n this._databind();\n break;\n case 'captionTemplate':\n this._setupWithCaptionTemplate(val, old);\n break;\n case 'imageProperty':\n this._setupWithCaptionTemplate(this.captionTemplate, this.captionTemplate);\n break;\n case 'captionProperty':\n if (Utils.isNull(this.captionTemplate)) {\n this._setupDefaultTemplate();\n }\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeTemplate();\n super.disconnectedCallback();\n }\n _disposeTemplate(val = this.captionTemplate) {\n if (val instanceof Components.PacemTemplateProxyElement) {\n val.removeEventListener('templatechange', this._templateChangeHandler);\n }\n }\n _setupWithCaptionTemplate(val = this.captionTemplate, old) {\n this._disposeTemplate(old);\n if (Utils.isNull(val)) {\n this._setupDefaultTemplate();\n return;\n }\n if (val instanceof Components.PacemTemplateProxyElement) {\n val.addEventListener('templatechange', this._templateChangeHandler, false);\n val = val.target;\n }\n const container = val.content.firstElementChild;\n Utils.addClass(container, PCSS + '-gallery-caption');\n const tmpl = document.createElement('template');\n tmpl.innerHTML = getGallerySlideShowTemplate(val.innerHTML, this.imageProperty);\n this._setupTemplate(tmpl);\n }\n _setupTemplate(val) {\n this._templateProxy.target = val;\n }\n _setupDefaultTemplate() {\n const tmpl = document.createElement('template');\n tmpl.innerHTML = getGallerySlideShowTemplate(getDefaultCaptionTemplate(this.captionProperty), this.imageProperty);\n this._setupTemplate(tmpl);\n }\n _databind() {\n const rep = this._repeater;\n if (!Utils.isNull(rep)) {\n rep.datasource = this.datasource;\n }\n }\n get adapter() {\n return this._adapter;\n }\n async _heroAnimate(fromEl, src) {\n if (!Utils.isNull(fromEl)) {\n let pImg = new UI.PacemImageElement();\n let goalEl = this._heroPlaceholderProxy.dom[0];\n const TRANSITION = 300;\n pImg.src = src || /* assuming an img-ish element */ fromEl['src'];\n pImg.adapt = 'contain';\n let goal = Utils.offset(goalEl), from = Utils.offset(fromEl), style = pImg.style;\n const cfrStyle = getComputedStyle(goalEl);\n style.border = cfrStyle.border;\n style.width = goalEl.clientWidth + 'px';\n style.height = goalEl.clientHeight + 'px';\n style.position = 'absolute';\n style.zIndex = cfrStyle.zIndex;\n style.top = goal.top + 'px';\n style.left = goal.left + 'px';\n const scaleX = fromEl.clientWidth / goalEl.clientWidth, scaleY = fromEl.clientHeight / goalEl.clientHeight, translateX = (from.left - goal.left) + 'px', translateY = (from.top - goal.top) + 'px';\n style.transformOrigin = '0 0';\n style.transition = `transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${TRANSITION}ms, opacity ${TRANSITION}ms`;\n style.transform = `translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`;\n document.body.appendChild(pImg);\n requestAnimationFrame(() => {\n pImg.style.transform = '';\n });\n await Utils.waitForAnimationEnd(pImg, TRANSITION);\n pImg.remove();\n }\n }\n open(startIndex, heroFrom, src) {\n this._poppingUp = true;\n this._lightbox.show = true;\n this._slideshow.index = startIndex; // reflects on 'this' (twoway)\n this._heroAnimate(heroFrom, src)\n .then(_ => {\n this._poppingUp = false;\n this._slideshow.focus();\n });\n }\n};\n__decorate([\n ViewChild(P + '-adapter')\n], PacemGalleryElement.prototype, \"_adapter\", void 0);\n__decorate([\n ViewChild(P + '-lightbox')\n], PacemGalleryElement.prototype, \"_lightbox\", void 0);\n__decorate([\n ViewChild(P + '-slideshow')\n], PacemGalleryElement.prototype, \"_slideshow\", void 0);\n__decorate([\n ViewChild(P + '-repeater')\n], PacemGalleryElement.prototype, \"_repeater\", void 0);\n__decorate([\n ViewChild(P + '-template-proxy')\n], PacemGalleryElement.prototype, \"_templateProxy\", void 0);\n__decorate([\n ViewChild(P + '-shell-proxy')\n], PacemGalleryElement.prototype, \"_heroPlaceholderProxy\", void 0);\n__decorate([\n Watch()\n], PacemGalleryElement.prototype, \"_poppingUp\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemGalleryElement.prototype, \"captionTemplate\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemGalleryElement.prototype, \"captionProperty\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemGalleryElement.prototype, \"imageProperty\", void 0);\nPacemGalleryElement = __decorate([\n CustomElement({\n tagName: P + '-gallery', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-lightbox class=\"${PCSS}-gallery\">\r\n <${P}-repeater>\r\n <${P}-slideshow adapter=\"{{ ::_adapter }}\" index=\"{{ :host.index, twoway }}\" hide=\"{{ !::_lightbox.show }}\">\r\n <${P}-template-proxy></${P}-template-proxy>\r\n </${P}-slideshow>\r\n </${P}-repeater>\r\n<${P}-adapter class=\"${PCSS}-gallery-adapter\"></${P}-adapter>\r\n</${P}-lightbox>\r\n<${P}-shell-proxy><div class=\"${PCSS}-gallery-hero-target\"></div></${P}-shell-proxy>`\n })\n], PacemGalleryElement);\nexport { PacemGalleryElement };\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 PacemModalFormElement_1;\nimport { CustomElement, Defaults, P, PCSS, Watch, PropertyConverters, ViewChild, Utils, Net, avoidHandler } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nconst UI = UIComponents.UI;\n//namespace Pacem.Components.Plus {\n// TODO: use onewaytosource as a binding mode\nlet PacemModalFormElement = PacemModalFormElement_1 = class PacemModalFormElement extends UI.PacemDialogBase {\n get form() {\n return this._form;\n }\n constructor() {\n super();\n this.suddenValidation = true;\n this.method = Net.HttpMethod.Post;\n this._keyupHandler = (evt) => {\n if (evt.keyCode === /* Enter */ 13\n // no modifiers\n && !evt.shiftKey && !evt.ctrlKey && !evt.altKey && !evt.metaKey) {\n let btn = evt.currentTarget.querySelector(`.${PCSS}-dialog-buttons ${P}-button[type=submit]`);\n if (!Utils.isNull(btn) && Utils.isVisible(btn) && !btn.disabled) {\n btn.click();\n }\n }\n };\n this.#keepStateOnCommit = false;\n this._emitter = new ScaffoldingComponents.Scaffolding.FormEventEmitter(this);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n // HACK: move the buttons outside the .pacem-scrollable element in the lightbox\n //var lightboxCore = this.querySelector(`.${PCSS}-lightbox`);\n //lightboxCore.appendChild(\n // this._buttons = this.querySelector(`.${PCSS}-dialog-buttons`)\n //);\n //lightboxCore.appendChild(\n // this.querySelector(`.${PCSS}-dialog-heading`)\n //);\n //lightboxCore.appendChild(\n // this.querySelector(P + '-loader')\n //);\n //this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'modalButtons', currentValue: this.modalButtons }));\n this.addEventListener('keyup', this._keyupHandler, false);\n this._emitter.start();\n }\n disconnectedCallback() {\n this._emitter.stop();\n this.removeEventListener('keyup', this._keyupHandler, false);\n super.disconnectedCallback();\n }\n _submit(evt) {\n if (this.readonly) {\n this.commit(UI.DialogButton.Ok, evt);\n }\n else {\n avoidHandler(evt);\n this._form.validate().then(valid => {\n if (valid) {\n if (Utils.isNullOrEmpty(this.action)) {\n this.commit(UI.DialogButton.Ok, evt);\n }\n else {\n this._form.submit(this._fetcher).then(_ => {\n this.commit(UI.DialogButton.Ok, evt);\n }, r => {\n // do nothing\n });\n }\n }\n });\n }\n }\n _onSubmit(evt) {\n // no need to broadcast, event bubbles itself...\n // ...just handle it using the eventual listeners:\n this.emit(evt);\n }\n #keepStateOnCommit;\n open(state, keepStateOnCommit, setAsPristine = true) {\n if (Utils.isNull(state)) {\n throw `The state of a ${PacemModalFormElement_1} cannot be null.`;\n }\n this.#keepStateOnCommit = keepStateOnCommit;\n var retval = super.open(state);\n if (setAsPristine) {\n this._form.setPristine();\n }\n return retval;\n }\n commit(btn, evt) {\n super.commit(btn, evt);\n if (!this.#keepStateOnCommit) {\n Utils.waitForAnimationEnd(this, 500).then(_ => {\n // BREAKING change (v0.8.37): state destroyed when dialog committed\n // TODO: consider 'if' and 'how' to avoid this.\n this.state = {};\n });\n }\n }\n _cancel(evt) {\n this.commit(UI.DialogButton.Cancel, evt);\n this._form.reset();\n }\n _broadcast(evt) {\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }\n /** Gets the 'ok' and 'cancel' modal buttons. */\n get modalButtons() {\n const btns = this._buttons;\n return {\n ok: btns && btns.firstElementChild && btns.firstElementChild.firstElementChild,\n cancel: btns && btns.firstElementChild && btns.firstElementChild.lastElementChild\n };\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"suddenValidation\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"okCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"cancelCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemModalFormElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"action\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"loaderType\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"success\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"fail\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"readonly\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemModalFormElement.prototype, \"fetchHeaders\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"fetchCredentials\", void 0);\n__decorate([\n ViewChild(P + '-lightbox')\n], PacemModalFormElement.prototype, \"lightbox\", void 0);\n__decorate([\n ViewChild(P + '-form[entity]')\n], PacemModalFormElement.prototype, \"_form\", void 0);\n__decorate([\n ViewChild(P + '-fetch')\n], PacemModalFormElement.prototype, \"_fetcher\", void 0);\nPacemModalFormElement = PacemModalFormElement_1 = __decorate([\n CustomElement({\n tagName: P + '-modal-form', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-lightbox modal=\"true\" logger=\"{{ :host.logger }}\">\r\n <${P}-form wrapper>\r\n <${P}-form logger=\"{{ :host.logger }}\" on-submit=\":host._onSubmit($event)\" readonly=\"{{ :host.readonly }}\" entity=\"{{ :host.state, twoway }}\" on-success=\":host._broadcast($event)\"\r\n on-fail=\":host._broadcast($event)\" success=\"{{ :host.success, twoway }}\" fail=\"{{ :host.fail, twoway }}\" autogenerate=\"{{ !$pacem.isNull($this.entity) }}\" metadata=\"{{ :host.metadata }}\"\r\n fetch-headers=\"{{ :host.fetchHeaders }}\" fetch-credentials=\"{{ :host.fetchCredentials }}\" sudden-validation=\"{{ :host.suddenValidation }}\"></${P}-form>\r\n </${P}-form>\r\n <${P}-fetch logger=\"{{ :host.logger }}\" method=\"{{ :host.method }}\" headers=\"{{ :host.fetchHeaders }}\" credentials=\"{{ :host.fetchCredentials }}\" autofetch=\"false\" url=\"{{ :host.action }}\"></${P}-fetch>\r\n <div class=\"${PCSS}-dialog-buttons ${PCSS}-buttonset buttons\" slot=\"bottom\">\r\n <div class=\"buttonset-left\">\r\n <${P}-button on-click=\":host._submit($event)\" css-class=\"{{ {'buttonset-last': :host.readonly} }}\" type=\"submit\"\r\n class=\"button primary button-size size-small\" disabled=\"{{ (:host.suddenValidation && !:host.readonly && !(::_form.valid && ::_form.dirty)) || ::_fetcher.fetching }}\">\r\n <${P}-panel class=\"submit-spinner ${PCSS}-anim anim-pop\" hide=\"{{ !::_form.fetching }}\"><i class=\"${PCSS}-icon ${PCSS}-anim anim-rotate rotate-uniform display-block\">refresh</i></${P}-panel>\r\n <${P}-text text=\"{{ :host.okCaption || 'OK' }}\"></${P}-text>\r\n </${P}-button>\r\n <${P}-button on-click=\":host._cancel($event)\" hide=\"{{ :host.readonly }}\" class=\"button button-size size-small\" disabled=\"{{ ::_fetcher.fetching }}\"><${P}-text text=\"{{ :host.cancelCaption || 'Cancel' }}\"></${P}-text></${P}-button>\r\n </div></div>\r\n <div class=\"${PCSS}-dialog-heading\" slot=\"top\">\r\n <${P}-content></${P}-content>\r\n </div>\r\n <div class=\"pos-absolute absolute-top absolute-right absolute-left absolute-bottom overflow-hidden ${PCSS}-inert display-flex flex-center flex-middle\">\r\n <${P}-loader type=\"{{ :host.loaderType }}\" class=\"loader-primary loader-smaller ${PCSS}-anim anim-pop\" active=\"{{ ::_fetcher.fetching }}\"></${P}-loader>\r\n </div>\r\n</${P}-lightbox>`\n })\n], PacemModalFormElement);\nexport { PacemModalFormElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, PacemEventTarget } from '@pacem/pacem-core';\n//namespace Pacem.Components.Plus {\nlet PacemRouterHashStateElement = class PacemRouterHashStateElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.default = {};\n this.state = {};\n this.normalizedState = {};\n this._routerNavigatingHandler = (_) => {\n this.#locked = true;\n };\n this._routerNavigateHandler = (_) => {\n this.#locked = false;\n this._updateStateFromURI();\n };\n }\n #locked;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._updateStateFromURI();\n this._setupRouterHandlers(this.router);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'state':\n if (!first && !this.#locked) {\n this._updateNormalizedState();\n this._updateURIFromState();\n }\n break;\n case 'disabled':\n if (!!val) {\n this._updateStateFromURI();\n }\n break;\n case 'default':\n this._updateStateFromURI();\n break;\n case 'router':\n if (!first) {\n this._disposeRouterHandlers(old);\n this._setupRouterHandlers(val);\n }\n break;\n }\n }\n disconnectedCallback() {\n this._disposeRouterHandlers();\n super.disconnectedCallback();\n }\n _setupRouterHandlers(router = this.router) {\n if (!Utils.isNull(router)) {\n window.addEventListener('navigating', this._routerNavigatingHandler, false);\n window.addEventListener('navigate', this._routerNavigateHandler, false);\n }\n }\n _disposeRouterHandlers(router = this.router) {\n if (!Utils.isNull(router)) {\n window.removeEventListener('navigating', this._routerNavigatingHandler, false);\n window.removeEventListener('navigate', this._routerNavigateHandler, false);\n }\n }\n _currentBasePath() {\n const router = this.router;\n if (!Utils.isNull(router)) {\n const q = router.state.$querystring;\n return this._normalizePath(document.location.pathname, q);\n }\n return null;\n }\n _normalizePath(path, q) {\n if (Utils.isNullOrEmpty(path)) {\n return path;\n }\n if (path.endsWith('/')) {\n path = path.substring(0, path.length - 1);\n }\n q ??= '';\n return path + (q.length > 0 ? ('?' + q) : '');\n }\n _areStatesEquivalent(s1, s2) {\n const state1 = Utils.extend({}, s1 || {}), state2 = Utils.extend({}, s2 || {});\n for (let prop in state1) {\n if (!this._areSubstantiallyEquivalent(state1[prop], state2[prop])) {\n return false;\n }\n delete state1[prop];\n delete state2[prop];\n }\n for (let prop in state2) {\n if (!this._areSubstantiallyEquivalent(state1[prop], state2[prop])) {\n return false;\n }\n }\n return true;\n }\n _updateNormalizedState(state = this.state) {\n if (this.disabled || this.#locked) {\n return;\n }\n const normalizedState = this._normalizeState(state);\n if (!this._areStatesEquivalent(normalizedState, this.normalizedState)) {\n this.normalizedState = normalizedState;\n }\n }\n _updateStateFromURI() {\n if (this.disabled || this.#locked) {\n return;\n }\n var state = Utils.extend({}, this.default || {});\n const router = this.router;\n if (!Utils.isNull(router)) {\n const denormalized = this._denormalizeState(Utils.URIs.parseQuery(router.state && router.state.$hash || '{}'));\n Utils.extend(state, denormalized);\n }\n if (!this._areStatesEquivalent(this.state, state)) {\n this.state = state;\n }\n }\n _updateURIFromState(state = this.normalizedState) {\n if (this.disabled || this.#locked) {\n return;\n }\n const router = this.router;\n if (!Utils.isNull(router)) {\n const actual = this._currentBasePath();\n const currentState = Utils.URIs.parseQuery(router.state.$hash || '{}'), targetState = state || {};\n if (!this._areStatesEquivalent(currentState, targetState)) {\n // checked state equivalence to avoid superfluous navigation\n const clean = this._cleanupStateForURI(targetState);\n var url = actual;\n if (!Utils.isNullOrEmpty(clean)) {\n url = Utils.URIs.appendQuery(actual, clean, false, true);\n }\n // navigate\n router.path = url;\n }\n }\n }\n _areSubstantiallyEquivalent(v1, v2) {\n v1 ??= '';\n v2 ??= '';\n return v1.toString() == v2.toString() || Utils.areSemanticallyEqual(v1, v2) || JSON.stringify(v1) === JSON.stringify(v2);\n }\n _cleanupStateForURI(state = this.state) {\n const copy = Utils.clone(state || {}), base = this.default;\n for (let key in copy) {\n if ((Utils.isNullOrEmpty(copy[key]) && (Utils.isNull(base) || !(key in base)))\n || (!Utils.isNull(base) && (key in base) && this._areSubstantiallyEquivalent(base[key], copy[key]))) {\n delete copy[key];\n }\n }\n return copy;\n }\n _normalizeState(state = this.state, mold = this.default) {\n var output = {};\n const base = mold;\n for (let key in state || {}) {\n const value = state[key];\n if (Utils.isNullOrEmpty(value)) {\n if (!Utils.isNull(base) && (key in base) && !Utils.isNullOrEmpty(base[key])) {\n output[key] = '';\n }\n continue;\n }\n switch (typeof value) {\n case 'number':\n case 'bigint':\n case 'boolean':\n Object.defineProperty(output, key, { enumerable: true, value: value.toString() });\n break;\n case 'symbol':\n case 'string':\n Object.defineProperty(output, key, { enumerable: true, value });\n break;\n default:\n if (Utils.Dates.isDate(value)) {\n Object.defineProperty(output, key, { enumerable: true, value: value.toISOString() });\n }\n else if (value instanceof RegExp) {\n Object.defineProperty(output, key, { enumerable: true, value: value.source });\n }\n else {\n throw new Error('Type not supported to be normalized into a URI hash.');\n }\n break;\n }\n }\n return output;\n }\n _denormalizeState(state = this.normalizedState, mold = this.default) {\n const output = {};\n const base = mold || {};\n for (let prop in state) {\n if (!(prop in base)) {\n output[prop] = state[prop];\n continue;\n }\n const moldProp = base[prop], value = state[prop];\n switch (typeof moldProp) {\n case 'boolean':\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.Boolean.convert(value) });\n break;\n case 'number':\n case 'bigint':\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.Number.convert(value) });\n break;\n case 'symbol':\n case 'string':\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.String.convert(value) });\n break;\n default:\n if (moldProp instanceof Date) {\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.Date.convert(value) });\n }\n else if (moldProp instanceof RegExp) {\n Object.defineProperty(output, prop, { enumerable: true, value: new RegExp(value, moldProp.flags) });\n }\n else {\n Object.defineProperty(output, prop, { enumerable: true, value });\n }\n break;\n }\n }\n return output;\n }\n set(key, value) {\n var obj = {};\n if (typeof key === 'string') {\n Object.defineProperty(obj, key, { enumerable: true, value });\n }\n else {\n obj = key;\n }\n this.state = Utils.extend({}, this.state || {}, obj);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemRouterHashStateElement.prototype, \"router\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemRouterHashStateElement.prototype, \"default\", void 0);\n__decorate([\n Watch()\n], PacemRouterHashStateElement.prototype, \"state\", void 0);\n__decorate([\n Watch()\n], PacemRouterHashStateElement.prototype, \"normalizedState\", void 0);\nPacemRouterHashStateElement = __decorate([\n CustomElement({ tagName: P + '-router-hash-state' })\n], PacemRouterHashStateElement);\nexport { PacemRouterHashStateElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, PacemEventTarget } from '@pacem/pacem-core';\n/**\n * Bridges a {@link Components.PacemRouterElement}'s persisted scroll position (`state.$scrollY`, populated\n * when `PacemRouterElement.scrollRestoration` is enabled) with a {@link ComponentsUI.UI.PacemViewElement}'s\n * content lifecycle: navigating to a new page starts at the top, navigating back restores where the user\n * left off - without either the router or the view needing to know about the other.\n *\n * This listens to the *view*'s `prerender`/`render` events rather than the router's own navigation events,\n * because `render` only fires once the view's content has stopped resizing (it's debounced against the\n * view's own resize detection, not just \"content was inserted\"). That mitigates - though doesn't fully\n * eliminate - restoring to a scrollTop the page isn't tall enough to reach yet (e.g. images or async\n * content still loading in): content changes that don't affect the view's own box size won't retrigger it.\n */\nlet PacemRouterViewScrollElement = class PacemRouterViewScrollElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n /** The old content is already gone and the new content hasn't landed yet - jump to the top now, instantly, so the transition never shows a scrolled-down blank/stale view. */\n this._prerenderHandler = (_) => {\n Utils.scrollTo(0, false);\n };\n /**\n * New content has landed and its size has settled (see class remarks on `render`'s debounce). Restores the\n * router's persisted scroll position for this entry, if any: `$scrollY` is `undefined` (or `0`) for a\n * freshly-pushed page - never explicitly set on push, only captured when *leaving* a page - so this\n * correctly leaves new pages at the top without any special-casing.\n */\n this._renderHandler = (_) => {\n const state = this.router?.state;\n if (state.$scrollY > 0) {\n const smooth = this.scrollBehavior != 'instant';\n Utils.scrollTo(state.$scrollY, smooth);\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setupRouter();\n this._setupView();\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 'router':\n // re-wire if the `router` reference itself is swapped out at runtime, not just on first assignment\n if (!Utils.isNull(old)) {\n this._disposeRouter(old);\n }\n if (!Utils.isNull(val)) {\n this._setupRouter(val);\n }\n break;\n case 'view':\n if (!Utils.isNull(old)) {\n this._disposeView(old);\n }\n if (!Utils.isNull(val)) {\n this._setupView(val);\n }\n break;\n }\n }\n disconnectedCallback() {\n this._disposeRouter();\n this._disposeView();\n super.disconnectedCallback();\n }\n /** Turns on the router's own scroll-position bookkeeping (capturing `state.$scrollY` per history entry); see `PacemRouterElement.scrollRestoration`. */\n _setupRouter(router = this.router) {\n if (Utils.isNull(router)) {\n return;\n }\n router.scrollRestoration = true;\n }\n /** No-op: `_setupRouter` only flips a flag on the router, there's no subscription to tear down. Kept for symmetry with `_disposeView`, and in case this grows one later. */\n _disposeRouter(router = this.router) {\n // do nothing\n }\n _setupView(view = this.view) {\n if (Utils.isNull(view)) {\n return;\n }\n view.addEventListener('prerender', this._prerenderHandler, false);\n view.addEventListener('render', this._renderHandler, false);\n }\n _disposeView(view = this.view) {\n if (Utils.isNull(view)) {\n return;\n }\n view.removeEventListener('prerender', this._prerenderHandler);\n view.removeEventListener('render', this._renderHandler);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element, emit: false })\n], PacemRouterViewScrollElement.prototype, \"router\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element, emit: false })\n], PacemRouterViewScrollElement.prototype, \"view\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemRouterViewScrollElement.prototype, \"scrollBehavior\", void 0);\nPacemRouterViewScrollElement = __decorate([\n CustomElement({ tagName: P + '-router-view-scroll' })\n], PacemRouterViewScrollElement);\nexport { PacemRouterViewScrollElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, Watch, PropertyConverters, ViewChild, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Plus {\nlet PacemSearchElement = class PacemSearchElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n this.hintParameter = 'q';\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'hint') {\n let params = {};\n params[this.hintParameter] = val;\n this._fetcher.parameters = params;\n }\n }\n};\n__decorate([\n ViewChild(P + '-fetch')\n], PacemSearchElement.prototype, \"_fetcher\", void 0);\n__decorate([\n Watch()\n], PacemSearchElement.prototype, \"datasource\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"hint\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"hintParameter\", void 0);\nPacemSearchElement = __decorate([\n CustomElement({\n tagName: P + '-search', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-fetch debounce=\"800\" url=\"{{ :host.url }}\" method=\"{{ :host.method }}\">\r\n</${P}-fetch><${P}-input-search value=\"{{ :host.hint, twoway }}\"></${P}-input-search>\r\n<${P}-repeater datasource=\"{{ ::_fetch.result }}\">\r\n <${P}-content></${P}-content>\r\n</${P}-repeater>`\n })\n], PacemSearchElement);\nexport { PacemSearchElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, CustomElementUtils, ViewChild } from '@pacem/pacem-core';\nimport { PacemBaseCellElement } from './types';\n//namespace Pacem.Components.Plus {\nexport const DataRowSelectChangeEventName = \"datarowselectchange\";\nexport class DataRowSelectChangeEvent extends CustomEvent {\n constructor(detail) {\n super(DataRowSelectChangeEventName, { detail, bubbles: false, cancelable: true });\n }\n}\nconst EMPTY_CSS = {};\nconst EMPTY_CSSCLASS = [];\nlet PacemDataCellElement = class PacemDataCellElement extends PacemBaseCellElement {\n updateLayout(metadata = this.metadata) {\n this._setup(metadata);\n }\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-datacell');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case '_contentTooltip':\n this._updateTooltipJustInCase();\n break;\n case 'gridState':\n case 'rowindex':\n this._updateSelection();\n break;\n }\n }\n }\n _updateTooltipJustInCase() {\n const tip = this.metadata.dataCell?.autoTooltip ?? true;\n if (tip && !Utils.isNullOrEmpty(this._contentTooltip)) {\n this.setAttribute('tooltip', this._contentTooltip);\n }\n else {\n this.removeAttribute('tooltip');\n }\n }\n _inflateContent(item = this.dataitem, index = this.rowindex, metadata = this.metadata) {\n this._contentTooltip = '';\n let format = metadata.dataCell?.format;\n const nullValue = metadata.dataCell?.null ?? '';\n // is 'format' a custom function?\n if (typeof format === 'function') {\n const htmlOrNode = format(this, metadata, item, index);\n if (Utils.isNullOrEmpty(htmlOrNode)) {\n return nullValue;\n }\n if (typeof htmlOrNode === 'string') {\n return htmlOrNode;\n }\n return htmlOrNode;\n }\n // standard column\n const tget = CustomElementUtils.resolvePath(metadata.prop, item)?.target;\n const plainValue = tget?.value;\n if (Utils.isNullOrEmpty(plainValue)) {\n return nullValue;\n }\n const culture = Utils.lang(this);\n switch (metadata.dataType) {\n case \"boolean\":\n return `<${P}-icon icon=\"material ${(!plainValue ? 'radio_button_unchecked' : 'check_circle_outline')} text-big-steady\"></${P}-icon>`;\n case \"time\":\n case \"date\":\n case \"datetime\":\n return this._contentTooltip = Utils.core.date(plainValue, format, culture);\n case \"byte\":\n case \"int16\":\n case \"int32\":\n case \"int64\":\n case \"short\":\n case \"integer\":\n case \"int\":\n case \"long\":\n case \"double\":\n case \"decimal\":\n case \"float\":\n case \"single\":\n case \"number\":\n return this._contentTooltip = Utils.core.number(plainValue, format || '', culture);\n case \"currency\":\n format ??= 'EUR';\n if (typeof format === 'string') {\n return this._contentTooltip = Utils.core.currency(plainValue, format, culture);\n }\n return this._contentTooltip = Utils.core.number(plainValue, format, culture);\n case \"percent\":\n case \"percentage\":\n format ??= { style: 'percent', maximumFractionDigits: 2 };\n if (typeof format === 'string') {\n return this._contentTooltip = Utils.core.currency(plainValue, format, culture);\n }\n return this._contentTooltip = Utils.core.number(plainValue, format, culture);\n case \"url\":\n case \"emailaddress\":\n case \"phonenumber\":\n // TODO: render links\n default:\n return this._contentTooltip = plainValue;\n }\n }\n // @Debounce(true)\n _inflateCssClass(item = this.dataitem, index = this.rowindex, metadata = this.metadata, datasource) {\n if (Utils.isNull(item) || Utils.isNullOrEmpty(metadata)) {\n return EMPTY_CSSCLASS;\n }\n const cssClass = metadata.dataCell && metadata.dataCell.cssClass || EMPTY_CSSCLASS;\n const retval = [];\n if (typeof cssClass === 'function') {\n Array.prototype.push.apply(retval, cssClass(this, metadata, item, index) || []);\n }\n else {\n Array.prototype.push.apply(retval, cssClass);\n }\n // alignment\n switch (metadata.dataCell?.verticalAlign?.toLowerCase()) {\n case 'top':\n retval.push('datacell-top');\n break;\n case 'bottom':\n retval.push('datacell-bottom');\n break;\n case 'middle':\n retval.push('datacell-middle');\n break;\n }\n switch (metadata.dataCell?.horizontalAlign?.toLowerCase()) {\n // headcell display is flex: set h-alignment at container-level\n case 'left':\n retval.push('datacell-left');\n break;\n case 'right':\n retval.push('datacell-right');\n break;\n case 'center':\n retval.push('datacell-center');\n break;\n }\n if (datasource?.length) {\n if (index === 0) {\n retval.push('datacell-firstrow');\n }\n if (index === (datasource.length - 1)) {\n retval.push('datacell-lastrow');\n }\n }\n return retval;\n }\n _inflateCss(item = this.dataitem, index = this.rowindex, metadata = this.metadata) {\n if (Utils.isNull(item) || Utils.isNullOrEmpty(metadata)) {\n return EMPTY_CSS;\n }\n const css = metadata.dataCell && metadata.dataCell.css || EMPTY_CSS;\n if (typeof css === 'function') {\n return css(this, metadata, item, index);\n }\n return css;\n }\n _setup(metadata = this.metadata) {\n this.setAttribute(\"css-class\", \"{{ this._inflateCssClass(^item, ^index, this.metadata, :host.datasource) }}\");\n this.setAttribute(\"css\", \"{{ Pacem.Utils.extend({ 'grid-row': ^index+2 }, this._inflateCss(^item, ^index, this.metadata, :host.datasource)) }}\");\n const truncate = !!(metadata.dataCell?.textEllipsis);\n const contentCssClass = truncate ? ['text-truncate'] : [];\n const selectMode = metadata?.dataCell?.selectMode?.toLowerCase();\n switch (selectMode) {\n case 'cell':\n case 'row':\n // make the content wrapper inert so that the click event can bubble\n contentCssClass.push(PCSS + '-inert');\n contentCssClass.push(PCSS + '-unselect');\n break;\n }\n this._content.cssClass = contentCssClass;\n this._updateSelection();\n }\n _updateSelection() {\n const selectedRows = this.gridState?.selectedRows ?? [];\n if (selectedRows.indexOf(this.rowindex) >= 0) {\n Utils.addClass(this, 'datarow-selected datacell-filled datacell-primary');\n }\n else {\n Utils.removeClass(this, 'datarow-selected datacell-filled datacell-primary');\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Eval })\n], PacemDataCellElement.prototype, \"dataitem\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataCellElement.prototype, \"rowindex\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String, debounce: 200 })\n], PacemDataCellElement.prototype, \"_contentTooltip\", void 0);\n__decorate([\n ViewChild(P + '-span')\n], PacemDataCellElement.prototype, \"_content\", void 0);\nPacemDataCellElement = __decorate([\n CustomElement({ tagName: P + '-datacell', shadow: false, template: `<${P}-span content=\"{{ :host._inflateContent(^item, ^index, :host.metadata) }}\"></${P}-span>` })\n], PacemDataCellElement);\nexport { PacemDataCellElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Utils, CustomElementUtils, Components, UI as CoreUI } from '@pacem/pacem-core';\nimport { Components as UIPkgComponents } from '@pacem/pacem-ui';\nimport { PacemBaseCellElement } from './types';\nconst UI = UIPkgComponents.UI;\n//namespace Pacem.Components.Plus {\nexport const DataColumnSortEventName = \"datacolumnsort\";\nexport class DataColumnSortEvent extends CustomEvent {\n constructor(detail) {\n super(DataColumnSortEventName, { detail, bubbles: false, cancelable: true });\n }\n}\nexport const DataColumnRescaleEventName = \"datacolumnrescale\";\nexport class DataColumnRescaleEvent extends CustomEvent {\n constructor(detail) {\n super(DataColumnRescaleEventName, { detail, bubbles: false, cancelable: true });\n }\n}\nlet PacemHeadCellElement = class PacemHeadCellElement extends PacemBaseCellElement {\n constructor(_md = new UI.MarkdownService()) {\n super();\n this._md = _md;\n //#region sort button\n this._sortButtonClickHandler = (evt) => {\n const metadata = this.metadata, gridState = this.gridState, column = metadata.prop;\n const dir = gridState.sort?.column === column ? (gridState.sort.dir === 'desc' ? 'asc' : 'desc') : (metadata.defaultSort || 'asc');\n this.dispatchEvent(new DataColumnSortEvent({ column, dir }));\n };\n this._rescaleHandler = (evt) => {\n evt.preventDefault();\n const detail = evt.detail;\n const width = Math.max(this.metadata.minPixelWidth ?? 24, detail.currentPosition.x - this._columnBBox.x);\n this.dispatchEvent(new DataColumnRescaleEvent({ width }));\n };\n this._rescaleStartHandler = (evt) => {\n this._columnBBox = Utils.offsetRect(this);\n };\n this._rescaleEndHandler = (evt) => {\n // nothing(?)\n };\n }\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-headcell');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && name === 'gridState') {\n this._updateSortButtonIconGlyph();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._ensureBalloon();\n }\n disconnectedCallback() {\n this._disposeBalloon();\n this._disposeRescaler();\n super.disconnectedCallback();\n }\n updateLayout(metadata = this.metadata) {\n this._setup(metadata);\n }\n _setupSortButton() {\n const btn = new UI.PacemButtonElement();\n btn.className = `button-flat headcell-sort ${PCSS}-inert`;\n this.addEventListener('click', this._sortButtonClickHandler, false);\n Utils.addClass(this, PCSS + '-clickable');\n return btn;\n }\n _disposeSortButton(btn = this._sortButton) {\n if (Utils.isNull(btn)) {\n return;\n }\n Utils.removeClass(this, PCSS + '-clickable');\n this.removeEventListener('click', this._sortButtonClickHandler, false);\n btn.remove();\n this._sortButton = null;\n }\n _updateSortButtonIconGlyph(btn = this._sortButton, state = this.gridState, metadata = this.metadata) {\n if (Utils.isNull(btn) || Utils.isNullOrEmpty(metadata)) {\n return;\n }\n btn.iconGlyph = state?.sort?.column === metadata.prop ? (state.sort.dir === 'desc' ? 'arrow_drop_down' : 'arrow_drop_up') : '';\n }\n _ensureRescaler() {\n if (Utils.isNull(this._rescaler)) {\n const r = this._rescaler = this._rescaler || new Components.PacemRescaleElement();\n r.handles = [CoreUI.RescaleHandle.Right];\n r.addEventListener(CoreUI.RescaleEventType.Rescale, this._rescaleHandler, false);\n r.addEventListener(CoreUI.RescaleEventType.Start, this._rescaleStartHandler, false);\n r.addEventListener(CoreUI.RescaleEventType.End, this._rescaleEndHandler, false);\n CustomElementUtils.findAncestorShell(this).appendChild(r);\n }\n }\n _setupRescaleContainer() {\n this._ensureRescaler();\n const c = new Components.PacemPanelElement();\n c.className = \"headcell-rescale\";\n c.behaviors = [this._rescaler];\n return c;\n }\n _disposeRescaleContainer(c = this._rescaleContainer) {\n if (Utils.isNull(c)) {\n return;\n }\n c.remove();\n this._rescaleContainer = null;\n }\n _disposeRescaler(r = this._rescaler) {\n if (Utils.isNull(r)) {\n return;\n }\n r.removeEventListener(CoreUI.RescaleEventType.Rescale, this._rescaleHandler, false);\n r.removeEventListener(CoreUI.RescaleEventType.Start, this._rescaleStartHandler, false);\n r.removeEventListener(CoreUI.RescaleEventType.End, this._rescaleEndHandler, false);\n r.remove();\n this._rescaler = null;\n }\n //#endregion\n _setup(metadata = this.metadata) {\n this.setAttribute(\"css-class\", \"{{ this.metadata && this.metadata.headCell && this.metadata.headCell.cssClass || [] }}\");\n this.setAttribute(\"css\", \"{{ this.metadata && this.metadata.headCell && this.metadata.headCell.css }}\");\n const truncate = !!(metadata.headCell?.textEllipsis);\n const cssClass = truncate ? ['text-truncate'] : [];\n // alignment\n switch (metadata.headCell?.verticalAlign?.toLowerCase()) {\n case 'top':\n Utils.addClass(this, 'headcell-top');\n break;\n case 'bottom':\n Utils.addClass(this, 'headcell-bottom');\n break;\n case 'middle':\n Utils.addClass(this, 'headcell-middle');\n break;\n }\n switch (metadata.headCell?.horizontalAlign?.toLowerCase()) {\n // headcell display is grid: set h-alignment at content-level\n case 'left':\n cssClass.push('text-left');\n break;\n case 'right':\n cssClass.push('text-right');\n break;\n case 'center':\n cssClass.push('text-center');\n break;\n }\n // basic content\n this.removeAttribute('content');\n const css = !Utils.isNullOrEmpty(cssClass) ? ` class=\"${cssClass.join(' ')}\"` : '';\n const headContent = metadata.headCell?.name ?? metadata.prop;\n this.innerHTML = `<div${css}>${headContent}</div>`;\n if (metadata.isSortable) {\n this._disposeSortButton();\n const btn = this._sortButton = this._setupSortButton();\n this._updateSortButtonIconGlyph(btn);\n this.appendChild(btn);\n }\n if (metadata.isRescalable) {\n this._disposeRescaleContainer();\n const cnt = this._rescaleContainer = this._setupRescaleContainer();\n this.appendChild(cnt);\n }\n if (metadata.isTogglable) {\n // TODO: add context menu actions (hide, filter)\n }\n }\n //#region balloon\n _normalizeTooltip() {\n const metadata = this.metadata.headCell?.tooltip || false;\n if (typeof metadata === 'object') {\n return metadata;\n }\n return { type: metadata };\n }\n _ensureBalloon() {\n var innerText, tooltip;\n const noBalloon = ((tooltip = this._normalizeTooltip()).type === false)\n || Utils.isNullOrEmpty(innerText = this.metadata.headCell?.description);\n // balloon\n if (Utils.isNull(this._balloon) && !noBalloon) {\n let balloon = new UI.PacemBalloonElement();\n balloon.options = {\n behavior: UI.BalloonBehavior.Tooltip,\n trigger: tooltip.trigger || UI.BalloonTrigger.Hover,\n position: tooltip.position || UI.BalloonPosition.Top,\n hoverDelay: 200, hoverTimeout: 50,\n align: tooltip.align || UI.BalloonAlignment.Auto,\n };\n Utils.addClass(balloon, PCSS + '-headcell-tooltip');\n var shell = CustomElementUtils.findAncestorShell(this);\n shell.appendChild(this._balloon = balloon);\n }\n const balloon = this._balloon;\n if (!Utils.isNull(balloon)) {\n balloon.target = this;\n if (!(balloon.disabled = noBalloon)) {\n const content = innerText || '';\n switch (tooltip.type) {\n case 'md':\n case 'markdown':\n balloon.innerHTML = this._md.toHtml(content);\n break;\n case 'html':\n balloon.innerHTML = content;\n break;\n default:\n balloon.innerText = content;\n break;\n }\n }\n }\n }\n _disposeBalloon() {\n if (!Utils.isNull(this._balloon)) {\n this._balloon.remove();\n this._balloon = null;\n }\n }\n};\nPacemHeadCellElement = __decorate([\n CustomElement({ tagName: P + '-headcell' })\n], PacemHeadCellElement);\nexport { PacemHeadCellElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, Debounce, ViewChild, CommandEventName, CustomUIEvent, Components, Logging } from '@pacem/pacem-core';\nimport { DataColumnSortEvent, DataColumnSortEventName, DataColumnRescaleEvent, DataColumnRescaleEventName } from './headcell';\nimport { DataRowSelectChangeEvent } from './datacell';\n//namespace Pacem.Components.Plus {\nconst DataColumnRebuildEventName = 'datacolumnchange';\nconst DataColumnStateChangeEventName = 'datacolumnstatechange';\nconst DataGridConsts = {\n Defaults: {\n selectCaption: 'Details',\n editCaption: 'Edit',\n editIcon: 'edit',\n deleteCaption: 'Delete',\n deleteIcon: 'delete'\n }\n};\nexport class DataGridBindEvent extends CustomEvent {\n constructor(detail) {\n super('databind', { cancelable: false, bubbles: false, detail });\n }\n}\nexport class DataCellUIEvent extends CustomUIEvent {\n constructor(type, detail, orig) {\n super(type, detail, { bubbles: false, cancelable: true }, orig);\n }\n}\nlet PacemDataColumnElement = class PacemDataColumnElement extends Components.PacemItemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'field':\n case 'headcellCss':\n case 'headcellCssClass':\n case 'datacellCss':\n case 'datacellCssClass':\n case 'resizable':\n case 'togglable':\n case 'sortable':\n case 'label':\n this.dispatchEvent(new Event(DataColumnRebuildEventName));\n break;\n case 'order':\n case 'hide':\n this.dispatchEvent(new Event(DataColumnStateChangeEventName));\n break;\n }\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"field\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"label\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemDataColumnElement.prototype, \"resizable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemDataColumnElement.prototype, \"togglable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemDataColumnElement.prototype, \"sortable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"order\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json /*OrString (TODO)*/ })\n], PacemDataColumnElement.prototype, \"format\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"headcellCss\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"headcellCssClass\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"datacellCss\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"datacellCssClass\", void 0);\nPacemDataColumnElement = __decorate([\n CustomElement({ tagName: P + '-datacolumn' })\n], PacemDataColumnElement);\nexport { PacemDataColumnElement };\nfunction headColumnHtml(c) {\n return `<${P}-headcell metadata=\"{{ :host._getColumnMetadata('${c.prop}') }}\" state=\"{{ :host._columnState.${c.prop} }}\" grid-state=\"{{ :host._gridState }}\"\r\non-${DataColumnSortEventName}=\":host._broadcastSortCommand($event)\"\r\non-${DataColumnRescaleEventName}=\":host._broadcastRescaleCommand($event)\"></${P}-headcell>`;\n}\nfunction dataColumnHtml(c, extra) {\n return `<${P}-datacell metadata=\"{{ :host._getColumnMetadata('${c.prop}') }}\" state=\"{{ :host._columnState.${c.prop} }}\" grid-state=\"{{ :host._gridState }}\"\r\ndataitem=\"{{ ^item }}\" rowindex=\"{{ ^index }}\" ${extra}></${P}-datacell>`;\n}\nlet PacemDataGridElement = class PacemDataGridElement extends Components.PacemItemsContainerElement {\n constructor(_key = Utils.uniqueCode()) {\n super();\n this._key = _key;\n this.state = {};\n // TODO: allow to persist states (key) on the session or location level...\n this._columnState = {};\n this._gridState = { sort: {}, orderedColumns: [], selectedRows: [] };\n this._itemDataColumnRebuildHandler = (evt) => {\n this._adaptColumnMetadata(this.items || []);\n };\n this._itemDataColumnChangeHandler = (evt) => {\n this._adaptColumnMetadata(this.items || []);\n };\n this._memoizer = {};\n }\n validate(item) {\n return item instanceof PacemDataColumnElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.addEventListener(CommandEventName, this._onCommand, false);\n this._adaptColumnMetadata();\n const cols = this._adaptedColumnMetadata || [];\n this._buildUpGrid(cols);\n }\n disconnectedCallback() {\n this.removeEventListener(CommandEventName, this._onCommand, false);\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'items':\n case 'metadata':\n this._adaptColumnMetadata();\n break;\n case '_adaptedColumnMetadata':\n this._buildUpGrid(val);\n break;\n case 'datasource':\n // cleanup row selection as datasource changes...\n const eventArgs = { keepRowSelection: false, datasource: val };\n const event = new DataGridBindEvent(eventArgs);\n this.dispatchEvent(event);\n if (!eventArgs.keepRowSelection) {\n this._setRowSelection();\n }\n break;\n case 'state':\n this._mergeState(val);\n break;\n }\n }\n }\n register(item) {\n if (super.register(item)) {\n // add listeners\n item.addEventListener(DataColumnRebuildEventName, this._itemDataColumnRebuildHandler, false);\n item.addEventListener(DataColumnStateChangeEventName, this._itemDataColumnChangeHandler, false);\n return true;\n }\n return false;\n }\n unregister(item) {\n if (super.unregister(item)) {\n // remove listeners\n item.removeEventListener(DataColumnRebuildEventName, this._itemDataColumnRebuildHandler, false);\n item.removeEventListener(DataColumnStateChangeEventName, this._itemDataColumnChangeHandler, false);\n return true;\n }\n return false;\n }\n /**\n * Sets the selected rows among the current ones.\n * @param args\n */\n setRowSelection(...args) {\n const indices = Array.from(args);\n this._setRowSelection(indices);\n }\n _setRowSelection(indices) {\n const args = (indices || []).map(i => { return { item: this.datasource[i], index: i }; });\n const evt = new DataRowSelectChangeEvent({ selectedRows: args });\n this.dispatchEvent(evt);\n if (!evt.defaultPrevented) {\n let retval = evt.detail.selectedRows;\n if (!Utils.isArray(retval)) {\n retval = [];\n }\n this._doSetRowSelection(retval.map(i => (i?.index ?? -1)).filter(i => i >= 0));\n }\n }\n _doSetRowSelection(selectedRows) {\n const selection = { selectedRows };\n this._mergeState(selection);\n }\n /**\n * Merges and synchronizes grid states (public vs private).\n * @param state Partial state to be merged\n */\n _mergeState(state = this.state) {\n state ??= {};\n // normalize selected rows into numbers\n const normalizedState = { selectedRows: (state.selectedRows || []).map((i) => typeof i === 'number' ? i : i.index) };\n const newState = this._gridState = Utils.extend({}, this._gridState, state, normalizedState);\n // does not trigger propertychange event (does not have to).\n this.state = Utils.extend(this.state ?? {}, newState);\n }\n _adaptColumnMetadata(items = this.items, metadata = this.metadata) {\n const output = Array.prototype.concat.apply((items || []).map(i => {\n const retval = {\n prop: i.field,\n // format: i.format,\n headCell: {\n name: i.label, cssClass: i.headcellCssClass || [], css: i.headcellCss || {}\n },\n dataCell: {\n format: i.format, cssClass: i.datacellCssClass || [], css: i.datacellCss || {}\n },\n hide: i.hide,\n isRescalable: i.resizable,\n isSortable: i.sortable,\n isTogglable: i.togglable,\n order: i.order,\n width: 1,\n };\n return retval;\n }), metadata || []);\n this._memoizer = {};\n this._adaptedColumnMetadata = output;\n }\n _getColumnMetadata(prop) {\n return this._memoizer[prop] = this._memoizer[prop] || this._adaptedColumnMetadata.find(m => m.prop === prop);\n }\n _buildUpGrid(metadata) {\n const container = this._tableContainer;\n if (Utils.isNull(container)) {\n return;\n }\n if (Utils.isNullOrEmpty(metadata)) {\n container.innerHTML = '';\n return;\n }\n const options = this.options = Utils.extend({}, DataGridConsts.Defaults, this.options || {}), hasCommands = options.allowDelete || options.allowEdit || options.allowSelect, multiSelect = options.allowMultiSelect && hasCommands;\n let css = multiSelect ? 'auto ' : '', headcells = multiSelect ? `<div class=\"${PCSS}-headcell\"></div>` : '', datacells = multiSelect ? `<${P}-panel class=\"${PCSS}-datacell\" style=\"grid-column: 1;\" css=\"{{ {'grid-row': ^index+2} }}\"></${P}-panel>` : '', footcells = multiSelect ? `<div class=\"${PCSS}-footcell\"></div>` : '';\n // 1-based column index\n let colIndex = multiSelect ? 2 : 1;\n const colCount = multiSelect ? (metadata.length + 2) : (hasCommands ? (metadata.length + 1) : metadata.length);\n this._gridState.orderedColumns = metadata.sort((i, j) => ((i.order ?? 0) - (j.order ?? 0))).map(i => i.prop);\n let extraUi = '';\n for (let evtType of Components.PacemElement.emittedEventTypes) {\n extraUi += ` on-${evtType}=\":host._broadcastUiEvent(^item, ^index, $event)\"`;\n }\n // loop\n for (let c of metadata) {\n this._columnState[c.prop] = {\n hidden: c.hide\n };\n // css\n css += this._getColumnSize(c).replaceAll(' ', '') + ' ';\n // headcell\n headcells += headColumnHtml(c);\n // datacell\n datacells += dataColumnHtml(c, extraUi);\n // footcell\n // end-of-loop\n colIndex++;\n }\n datacells += `<${P}-panel class=\"${PCSS}-datarow\" css-class=\"{{ {'datarow-alt': ^index % 2 === 1, 'datarow-first': ^index === 0, 'datarow-last': ^index === (:host.datasource.length - 1), 'datarow-selected': :host._gridState.selectedRows.indexOf(^index) >= 0 } }}\" style=\"grid-column: 1 /span ${colCount};\" css=\"{{ {'grid-row': ^index+2} }}\"></${P}-panel>`;\n const html = `<${P}-repeater datasource=\"{{ :host.datasource }}\">\r\n<${P}-panel class=\"${PCSS}-datatable\" css=\"{{ {'grid-template-columns': :host._getColumnSizes(:host._columnState, '${css.trimEnd()}', :host._gridState) } }}\">\r\n ${headcells}\r\n <template>\r\n ${datacells}\r\n </template>\r\n ${footcells}\r\n</${P}-panel>`;\n container.innerHTML = html;\n }\n _getColumnSizes(state = this._columnState, css, grid = this._gridState) {\n if (Utils.isNullOrEmpty(state)) {\n return css;\n }\n const split = css.split(' ');\n for (let prop in state) {\n const col = state[prop];\n const ndx = grid.orderedColumns.indexOf(prop);\n if (col.hidden) {\n split[ndx] = 'auto';\n }\n else if (col.pixelWidth > 0) {\n split[ndx] = col.pixelWidth + 'px';\n }\n }\n return split.join(' ');\n }\n _getColumnSize(c) {\n if (c.hide) {\n return 'auto';\n }\n const min = c.minPixelWidth, max = c.maxPixelWidth;\n if (max > 0 && min > 0) {\n return `minmax(${min}px, ${max}px)`;\n }\n else {\n const flexWidth = typeof c.width === 'number' ? (c.width + 'fr') : 'auto';\n if (min > 0) {\n return `minmax(${min}px, ${flexWidth})`;\n }\n if (max > 0) {\n return `minmax(${flexWidth}, ${max}px)`;\n }\n return flexWidth;\n }\n }\n //#endregion\n //#region events\n _onCommand(evt) {\n // DO NOT stop bubbling! Might be 'handy' in autogenerated forms...\n // Pacem.stopPropagationHandler(evt);\n // ...But might lead to unwanted behaviors in nested repeaters.\n // Thus include the 'originalEvent' in the outscoped one as a read-only property.\n // 'itemcommand' event fires first\n this.dispatchEvent(new Components.ItemCommandEvent(/* 'originalEvent' */ evt));\n // custom 'item<cmd>' event fires next\n this.dispatchEvent(new Components.CustomItemCommandEvent(/* 'originalEvent' */ evt));\n }\n _broadcastUiEvent(item, index, evt) {\n const evtType = evt.type.toLowerCase(), type = 'datacell' + evtType;\n const args = { dataitem: item, rowindex: index, datacell: evt.srcElement }, uiEvt = (evt instanceof MouseEvent || evt instanceof TouchEvent || evt instanceof KeyboardEvent) ? new DataCellUIEvent(type, args, evt) : new DataCellUIEvent(type, args);\n this.dispatchEvent(uiEvt);\n if (evtType === 'click' && !uiEvt.defaultPrevented) {\n const datacell = uiEvt.detail.datacell;\n const selectMode = datacell.metadata?.dataCell?.selectMode?.toLowerCase();\n switch (selectMode) {\n case 'cell':\n break;\n case 'row':\n this._broadcastSelectCommand(uiEvt.detail.rowindex);\n break;\n }\n }\n }\n _broadcastSortCommand(evt) {\n const sort = evt.detail;\n const event = new DataColumnSortEvent(sort);\n this.dispatchEvent(event);\n if (!event.defaultPrevented) {\n const sort2 = { column: '' };\n if (typeof event.detail.column === 'string') {\n sort2.column = event.detail.column;\n }\n if (typeof event.detail.dir === 'string') {\n sort2.dir = event.detail.dir === 'desc' ? 'desc' : 'asc';\n }\n this._gridState = Utils.extend({}, this._gridState, /* let it be manipulated on the \"other side\" */ { sort: sort2 });\n }\n }\n _broadcastRescaleCommand(evt) {\n const rescale = evt.detail;\n const event = new DataColumnRescaleEvent(rescale);\n this.dispatchEvent(event);\n if (!event.defaultPrevented) {\n let width2 = rescale.width;\n if (typeof event.detail.width === 'number' && event.detail.width > 0) {\n width2 = event.detail.width;\n }\n const column = evt.srcElement.metadata;\n const newState = {};\n newState[column.prop] = { pixelWidth: width2 };\n this._columnState = Utils.extend({}, this._columnState, newState);\n }\n }\n _broadcastSelectCommand(toggledRowIndex) {\n let actualRows = (this._gridState.selectedRows || []).slice(0);\n const ndx = actualRows.indexOf(toggledRowIndex);\n let trigger = true;\n if (ndx >= 0) {\n actualRows.splice(ndx, 1);\n }\n else {\n const options = this.options;\n if (options.allowMultiSelect) {\n actualRows.push(toggledRowIndex);\n }\n else if (options.allowSelect) {\n actualRows = [toggledRowIndex];\n }\n else {\n trigger = false;\n const msg = `Cannot select the row at index ${toggledRowIndex} since datagrid options do not allow any row selection.`;\n if (Utils.isNull(this.logger)) {\n console.warn(msg);\n }\n else {\n this.log(Logging.LogLevel.Warn, msg);\n }\n }\n }\n if (trigger) {\n this._setRowSelection(actualRows);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"options\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"datasource\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-datagrid')\n], PacemDataGridElement.prototype, \"_tableContainer\", void 0);\n__decorate([\n Watch()\n], PacemDataGridElement.prototype, \"_adaptedColumnMetadata\", void 0);\n__decorate([\n Watch()\n], PacemDataGridElement.prototype, \"_columnState\", void 0);\n__decorate([\n Watch()\n], PacemDataGridElement.prototype, \"_gridState\", void 0);\n__decorate([\n Debounce()\n], PacemDataGridElement.prototype, \"_adaptColumnMetadata\", null);\nPacemDataGridElement = __decorate([\n CustomElement({ tagName: P + '-datagrid', shadow: false, template: `<div class=\"${PCSS}-datagrid\"></div><${P}-content></${P}-content>` })\n], PacemDataGridElement);\nexport { PacemDataGridElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","Components","Watch","PropertyConverters","Utils","Transformer","UI","UIComponents","ViewChild","P","CustomElement","Defaults","PCSS","avoidHandler","CommandEvent","CustomElementUtils","CommandEventName","AttributeChangeEventName","Debounce","ScaffoldingComponents","PropertyChangeEventName","Net","PacemEventTarget","UIPkgComponents","CoreUI","CustomUIEvent","Logging","DeepMerger"],"mappings":"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"}
1
+ {"version":3,"file":"pacem-plus.js","sources":["../esm/datagrid/types.js","../esm/datagrid/l10n.js","../esm/carousel.js","../esm/context-menu.js","../esm/edit.js","../esm/gallery.js","../esm/modal-form.js","../esm/router-hash-state.js","../esm/router-view-scroll.js","../esm/search.js","../esm/datagrid/datacell.js","../esm/datagrid/headcell.js","../esm/datagrid/datagrid.js","../esm/index-iife.js"],"sourcesContent":["var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, Components } from '@pacem/pacem-core';\n/**\n * Base class shared by {@link PacemDataCellElement} and {@link PacemHeadCellElement}: both are bound to the\n * same `metadata`/`state`/`gridState` triple describing their column, both position themselves within the\n * grid's CSS-grid layout according to `gridState.orderedColumns`, and both toggle their own visibility from\n * `state.hidden`. Concrete subclasses only need to implement {@link updateLayout} to (re)build their own\n * content whenever `metadata` changes.\n */\nexport class PacemBaseCellElement extends Components.PacemSafeContentElement {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.updateColumnPosition();\n this.updateLayout(this.metadata);\n }\n /** Positions this cell within the grid's CSS-grid layout according to `gridState.orderedColumns`. */\n updateColumnPosition(metadata = this.metadata, state = this.gridState) {\n this.style.gridColumn = (state.orderedColumns.indexOf(metadata.prop) + 1).toString();\n }\n /** Shows/hides this cell according to `state.hidden`. */\n updateVisibility(state = this.state) {\n this.hide = !!state.hidden;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'metadata':\n this.updateLayout(val);\n break;\n case 'gridState':\n this.updateColumnPosition();\n break;\n case 'state':\n this.updateVisibility();\n break;\n }\n }\n }\n}\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemBaseCellElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemBaseCellElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemBaseCellElement.prototype, \"gridState\", 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 { Utils, Transformer } from '@pacem/pacem-core';\nconst DefaultLocalizationOptions = {\n headCell: (headCellProp, prop, dictionary) => {\n switch (headCellProp) {\n case 'name':\n return dictionary['column_name_' + prop] ?? dictionary['name_' + prop];\n case 'description':\n return dictionary['column_description_' + prop] ?? dictionary['description_' + prop];\n }\n return null;\n }\n};\n/** Namespaced helpers for working with {@link PacemDataGridElement} column metadata, e.g. localization. */\nexport class DataGrids {\n /**\n * Localizes the metadata of a data grid **in place** using a translation dictionary.\n * Only the `name` and `description` properties of data columns are localized.\n *\n * By default, this method uses an opinionated key lookup strategy and attempts to resolve translation keys in the following format:\n * - `column_name_{key}` for column names\n * - `column_description_{key}` for column descriptions/tooltips\n *\n * This behavior can be customized by providing a replacement strategy through the `options` parameter.\n *\n * @param metadata The metadata to localize.\n * @param dictionary The translation dictionary.\n * @param options Optional customization of the replacement strategy.\n * @returns The localized metadata.\n */\n static localizeMetadata(metadata, dictionary, options) {\n options = Utils.extend({}, DefaultLocalizationOptions, options ?? {});\n // do not clone (for now...)\n for (let prop of metadata) {\n const display = prop.headCell = prop.headCell ?? {};\n display.name = options.headCell('name', prop.prop, dictionary) ?? display.name; // dictionary['column_name_' + prop.prop] ?? dictionary['name_' + prop.prop] ?? display.name;\n display.description = options.headCell('description', prop.prop, dictionary) ?? /* dictionary['column_description_' + prop.prop] ?? dictionary['description_' + prop.prop] ?? */ display.description;\n }\n return metadata;\n }\n}\n__decorate([\n Transformer('datagrids.localizeMetadata')\n], DataGrids, \"localizeMetadata\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, PCSS, ViewChild, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n/**\n * @deprecated Superseded by composing a `${P}-repeater`/`${P}-slideshow` pair directly (see the template this\n * element generates below for reference). Renders a `datasource` of {@link CarouselDataItem}s as a full-bleed,\n * auto-advancing slideshow with a per-slide image, title and caption, applying 'previous'/'next'/'focus' CSS\n * classes to neighbouring slides so they can be animated in/out as the current slide changes.\n */\nlet PacemCarouselElement = class PacemCarouselElement extends UI.PacemAdaptedIterativeElement {\n constructor() {\n super(...arguments);\n /** Gets or sets the interval (in milliseconds) between automatic slide transitions. Default: `4000`. */\n this.interval = 4000;\n }\n};\n__decorate([\n ViewChild(P + '-adapter')\n], PacemCarouselElement.prototype, \"adapter\", void 0);\n__decorate([\n ViewChild(P + '-slideshow')\n], PacemCarouselElement.prototype, \"slideshow\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemCarouselElement.prototype, \"interval\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemCarouselElement.prototype, \"pausable\", void 0);\nPacemCarouselElement = __decorate([\n CustomElement({\n tagName: P + '-carousel', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater datasource=\"{{ :host.datasource }}\">\r\n <${P}-slideshow class=\"${PCSS}-carousel\" adapter=\"{{ ::adapter }}\" index=\"{{ :host.index, twoway }}\" on-load=\"this.focus()\">\r\n\r\n <template>\r\n\r\n <${P}-slide class=\"${PCSS}-carousel-item\" css-class=\"{{ { '${PCSS}-carousel-previous': :host.isPrevious(^index, ::slideshow.index), '${PCSS}-carousel-next': :host.isNext(^index, ::slideshow.index), '${PCSS}-carousel-focus': ^index === ::slideshow.index } }}\">\r\n <${P}-a href=\"{{ ^item.url }}\">\r\n <${P}-img disabled=\"{{ !:host.isCloseTo(^index, ::slideshow.index) }}\" class=\"${PCSS}-carousel-splash\" adapt=\"cover\" src=\"{{ ^item.image }}\"></${P}-img>\r\n <div class=\"${PCSS}-carousel-content\">\r\n <div class=\"${PCSS}-carousel-caption\">\r\n <h3><${P}-text text=\"{{ ^item.title }}\"></${P}-text></h3>\r\n <${P}-panel class=\"paragraph\" content=\"{{ ^item.content }}\"></${P}-panel>\r\n </div>\r\n </div>\r\n </${P}-a>\r\n </${P}-slide>\r\n\r\n </template>\r\n </${P}-slideshow>\r\n\r\n </${P}-repeater><${P}-adapter pausable=\"{{ :host.pausable }}\" class=\"${PCSS}-carousel-adapter\" interval=\"{{ :host.interval }}\"></${P}-adapter>`\n })\n], PacemCarouselElement);\nexport { PacemCarouselElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, CustomElementUtils, avoidHandler, Debounce, ViewChild, Components, CommandEvent, CommandEventName, AttributeChangeEventName } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n//namespace Pacem.Components.Plus {\n/**\n * Base class for the items registered within a {@link PacemContextMenuElement}: either a command button\n * ({@link PacemContextMenuItemCommandElement}) or a separator ({@link PacemContextMenuItemSeparatorElement}).\n * Subclasses only need to implement {@link createMenuItemElement} to produce the actual DOM element rendered\n * inside the menu's balloon; this base class takes care of the `pacem-context-menuitem` CSS class and of\n * notifying the owning {@link PacemContextMenuElement} (via `refresh()`) whenever one of its properties changes.\n */\nexport class PacemContextMenuItemElement extends Components.PacemItemElement {\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-context-menuitem');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const container = this.container;\n if (container instanceof PacemContextMenuElement) {\n container.refresh();\n }\n }\n}\n/** A {@link PacemContextMenuElement} item rendered as a clickable command button ({@link UI.PacemButtonElement}). */\nlet PacemContextMenuItemCommandElement = class PacemContextMenuItemCommandElement extends PacemContextMenuItemElement {\n createMenuItemElement() {\n const retval = new UI.PacemButtonElement();\n retval.commandArgument = this.commandArgument;\n retval.commandName = this.commandName;\n retval.textContent = this.caption;\n retval.iconGlyph = this.iconGlyph;\n retval.confirmationDialog = this.confirmationDialog;\n retval.confirmationMessage = this.confirmationMessage;\n retval.tooltip = this.tooltip;\n retval.disabled = this.disabled;\n retval.cssClass = this.buttonCssClass;\n return retval;\n }\n};\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"commandName\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"caption\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"tooltip\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"iconGlyph\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.StringArray })\n], PacemContextMenuItemCommandElement.prototype, \"buttonCssClass\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.String })\n], PacemContextMenuItemCommandElement.prototype, \"confirmationMessage\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.Element })\n], PacemContextMenuItemCommandElement.prototype, \"confirmationDialog\", void 0);\n__decorate([\n Watch({ emit: false, /* important */ reflectBack: true, converter: PropertyConverters.Json })\n], PacemContextMenuItemCommandElement.prototype, \"commandArgument\", void 0);\nPacemContextMenuItemCommandElement = __decorate([\n CustomElement({ tagName: P + '-context-menuitem-command' })\n], PacemContextMenuItemCommandElement);\nexport { PacemContextMenuItemCommandElement };\n/** A {@link PacemContextMenuElement} item rendered as a non-interactive `<hr>` separator between commands. */\nlet PacemContextMenuItemSeparatorElement = class PacemContextMenuItemSeparatorElement extends PacemContextMenuItemElement {\n createMenuItemElement() {\n const retval = document.createElement('hr');\n retval.style.pointerEvents = 'none';\n return retval;\n }\n};\nPacemContextMenuItemSeparatorElement = __decorate([\n CustomElement({ tagName: P + '-context-menuitem-separator' })\n], PacemContextMenuItemSeparatorElement);\nexport { PacemContextMenuItemSeparatorElement };\n// <${P}-button class=\"button-flat ${PCSS}-margin margin-0\"><${P}-icon icon=\"{{ :host.icon || 'more_horiz' }}\"></${P}-icon></${P}-button>\n/**\n * A button that pops out a floating balloon menu built from its {@link PacemContextMenuItemElement} children\n * (commands and separators). If a `slot=\"button\"` element is provided by the consumer it's used as the trigger;\n * otherwise a default icon button is generated. Menu items are rendered lazily into a {@link UI.PacemBalloonElement}\n * appended to the nearest shell, and kept in sync with the registered items whenever they (or their attributes)\n * change - see `refresh`.\n */\nlet PacemContextMenuElement = class PacemContextMenuElement extends Components.PacemItemsContainerElement {\n constructor() {\n super(...arguments);\n this._dispatchCommand = (e) => {\n avoidHandler(e);\n this._onCommand(new CommandEvent({ commandName: e.detail.commandName, commandArgument: e.detail.commandArgument ?? this.commandArgument }));\n };\n this._slotchangeHandler = (evt) => {\n this._resetLayout();\n };\n this._attributeChangeHandler = (evt) => this._refreshMenuItems;\n this._mouseupHandler = (evt) => {\n const balloon = this._ensureBalloon();\n if (!Utils.isNull(balloon)) {\n balloon.popout();\n }\n };\n }\n /** Only accepts {@link PacemContextMenuItemElement} instances (commands or separators) as registrable items. */\n validate(item) {\n return item instanceof PacemContextMenuItemElement;\n }\n #btn;\n #icon;\n #balloon;\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 UI.PacemButtonElement();\n retval.setAttribute('slot', 'button');\n retval.className = `${PCSS}-margin margin-0 button-flat`;\n const icon = this.#icon = new UI.PacemIconElement();\n retval.appendChild(icon);\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 _ensureBalloon() {\n let balloon = this.#balloon;\n if (!Utils.isNull(balloon)) {\n return balloon;\n }\n const shell = CustomElementUtils.findAncestorShell(this);\n if (Utils.isNull(shell)) {\n return null;\n }\n balloon = new UI.PacemBalloonElement();\n balloon.options = { trigger: UI.BalloonTrigger.Click, position: UI.BalloonPosition.HorizontalAuto, align: UI.BalloonAlignment.Auto, autoAdjust: true };\n //balloon.target = this._btn;\n balloon.addEventListener(CommandEventName, this._dispatchCommand, false);\n balloon.className = `${PCSS}-contextmenu`;\n shell.appendChild(balloon);\n return this.#balloon = balloon;\n }\n /** Registers a menu item, wiring its attribute-change notifications and rebuilding the rendered menu. */\n register(item) {\n const retval = super.register(item);\n if (retval) {\n item.addEventListener(AttributeChangeEventName, this._attributeChangeHandler, false);\n this._refreshMenuItems();\n }\n return retval;\n }\n /** Unregisters a menu item and rebuilds the rendered menu. */\n unregister(item) {\n const retval = super.unregister(item);\n if (retval) {\n item.removeEventListener(AttributeChangeEventName, this._attributeChangeHandler, false);\n this._refreshMenuItems();\n }\n return retval;\n }\n _onCommand(evt) {\n this.dispatchEvent(new CustomEvent(CommandEventName, { detail: evt.detail, cancelable: true, bubbles: true }));\n this.dispatchEvent(new CustomEvent(evt.detail.commandName.toLowerCase(), { detail: evt.detail.commandArgument, cancelable: true, bubbles: true }));\n }\n _resetLayout() {\n const btn = this._ensureButton();\n const balloon = this._ensureBalloon();\n if (!Utils.isNull(btn) && !Utils.isNull(balloon)) {\n balloon.target = btn;\n }\n this._toggleBtn();\n this._toggleIcon();\n }\n _toggleBtn(disabled = this.disabled) {\n const btn = this.#btn;\n if (!Utils.isNull(btn) && btn instanceof Components.PacemElement) {\n btn.disabled = disabled;\n }\n }\n _toggleIcon(icon = this.icon) {\n const iconEl = this.#icon;\n if (!Utils.isNull(iconEl)) {\n iconEl.icon = icon;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._resetLayout();\n this._slot.addEventListener('slotchange', this._slotchangeHandler, false);\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._toggleIcon(val);\n break;\n case 'disabled':\n this._toggleBtn(val);\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeButton();\n this._disposeSlot();\n this._disposeBalloon();\n super.disconnectedCallback();\n }\n /** Forces the balloon's menu items to be rebuilt from the currently registered items. */\n refresh() {\n this._refreshMenuItems();\n }\n _disposeButton() {\n this.#btn = this.#icon = null;\n }\n _disposeSlot() {\n const slot = this._slot;\n if (!Utils.isNull(slot)) {\n slot.removeEventListener('slotchange', this._slotchangeHandler, false);\n }\n }\n _disposeBalloon() {\n const balloon = this.#balloon;\n if (!Utils.isNull(balloon)) {\n balloon.removeEventListener(CommandEventName, this._dispatchCommand, false);\n this._disposeBalloonChildren(0);\n balloon.remove();\n this.#balloon = null;\n }\n }\n _disposeBalloonChildren(startAt) {\n const balloon = this.#balloon;\n const count = balloon.children.length;\n for (let j = count - 1; j >= startAt; j--) {\n // cleanup\n const rem = balloon.children.item(j);\n rem.removeEventListener('mouseup', this._mouseupHandler, false);\n rem.remove();\n }\n }\n _refreshMenuItems() {\n const balloon = this._ensureBalloon();\n if (Utils.isNull(balloon)) {\n return;\n }\n const count = balloon.children.length;\n let cursor = 0;\n for (let item of this.items) {\n if (item.hide) {\n continue;\n }\n const menuitem = item.createMenuItemElement();\n menuitem.addEventListener('mouseup', this._mouseupHandler, false);\n if (cursor < count) {\n const repl = balloon.children.item(cursor);\n repl.removeEventListener('mouseup', this._mouseupHandler, false);\n repl.replaceWith(menuitem);\n }\n else {\n balloon.appendChild(menuitem);\n }\n cursor++;\n }\n this._disposeBalloonChildren(cursor);\n }\n};\n__decorate([\n ViewChild('slot[name=button]')\n], PacemContextMenuElement.prototype, \"_slot\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemContextMenuElement.prototype, \"commandArgument\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemContextMenuElement.prototype, \"icon\", void 0);\n__decorate([\n Debounce(true)\n], PacemContextMenuElement.prototype, \"_refreshMenuItems\", null);\nPacemContextMenuElement = __decorate([\n CustomElement({\n tagName: P + '-context-menu', shadow: true,\n template: `<slot name=\"button\"></slot><slot></slot>`\n })\n], PacemContextMenuElement);\nexport { PacemContextMenuElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, PropertyChangeEventName, Components, avoidHandler } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nconst UI = UIComponents.UI;\nconst Scaffolding = ScaffoldingComponents.Scaffolding;\n//namespace Pacem.Components.Plus {\n/** The kind of inline content a {@link PacemEditElement} edits, and the editor UI it swaps in accordingly. */\nexport var EditMode;\n(function (EditMode) {\n /** Plain text, edited via a `${P}-textarea`. */\n EditMode[\"Text\"] = \"text\";\n /** Rich HTML, edited via a `${P}-contenteditable`. */\n EditMode[\"Html\"] = \"html\";\n /** An image URL, edited via a `${P}-edit-image` (with optional upload/snapshot support). */\n EditMode[\"Image\"] = \"image\";\n /** Markdown source, edited via a `${P}-textarea` and rendered back through the markdown service. */\n EditMode[\"Markdown\"] = \"markdown\";\n})(EditMode || (EditMode = {}));\n/**\n * Makes an arbitrary piece of content (`target`, or this element's first child when unset) inline-editable:\n * overlays an edit button that, on click, opens a modal `${P}-dialog` hosting the editor matching `type`\n * (text, HTML, markdown or image - see {@link EditMode}), and writes the result back into the target element\n * once confirmed. The dialog and its editors (textarea/contenteditable/edit-image) are created once, lazily,\n * on connect, and shown/hidden according to `type` rather than being recreated on every edit.\n */\nlet PacemEditElement = class PacemEditElement extends Components.PacemElement {\n constructor(_markdown = new UI.MarkdownService()) {\n super();\n this._markdown = _markdown;\n // #endregion\n // #endregion\n this._dialogPropertyChangedHandler = (evt) => {\n this._dialogPropertyChangedCallback(evt);\n };\n this._broadcastFetchRequestEventName = (evt) => {\n this.dispatchEvent(new Scaffolding.ImageFetchRequestEvent(evt.detail));\n };\n this._innerValueChangedHandler = (evt) => {\n if (evt.detail.propertyName === 'value' && !Utils.isNull(this._dialog))\n this._dialog.state = evt.detail.currentValue;\n };\n this._editHandler = (evt) => {\n this.edit(evt);\n };\n }\n _addButton() {\n /*<pacem-balloon options=\"{ position: '${UI.BalloonPosition.Top}', align: '${UI.BalloonAlignment.End}', behavior: '${UI.BalloonBehavior.Inert}', hoverDelay: 0 }\" disabled=\"{{ :host.disabled }}\" class=\"pacem-edit-balloon\">\n <pacem-button class=\"pacem-edit\" on-click=\":host.edit($event)\"></pacem-button>\n </pacem-balloon>*/\n if (!Utils.isNull(this._button))\n return;\n //\n var btn = document.createElement(P + '-button');\n btn.className = PCSS + '-edit-button';\n btn.addEventListener('click', this._editHandler, false);\n this._target.appendChild(btn);\n //\n return this._button = btn;\n }\n _removeButton() {\n var btn = this._button;\n if (Utils.isNull(btn))\n return;\n btn.removeEventListener('click', this._editHandler, false);\n btn.remove();\n this._button = null;\n }\n // #region dialog\n _addDialog() {\n /* <pacem-dialog buttons=\"'${ UI.DialogButtons.OkCancel}'\" on-${PropertyChangeEventName}=\":host._dialogPropertyChangedCallback($event)\"> */\n var dialog = document.createElement(P + '-dialog');\n dialog.buttons = UI.DialogButtons.OkCancel;\n dialog.addEventListener(PropertyChangeEventName, this._dialogPropertyChangedHandler, false);\n dialog.appendChild(this._addTextarea());\n dialog.appendChild(this._addContenteditable());\n dialog.appendChild(this._addEditImage());\n document.body.appendChild(dialog);\n //\n return this._dialog = dialog;\n }\n _removeDialog() {\n this._removeTextarea();\n this._removeContenteditable();\n this._removeEditImage();\n if (!Utils.isNull(this._dialog)) {\n this._dialog.removeEventListener(PropertyChangeEventName, this._dialogPropertyChangedHandler, false);\n this._dialog.remove();\n }\n }\n // #region textarea\n _addTextarea() {\n /*<pacem-textarea hide=\"{{ :host.type === '${ EditMode.Html}' || :host.type === '${EditMode.Image}' }}\" value=\"{{ ::_dialog.state, twoway }}\"></pacem-textarea>*/\n var textarea = document.createElement(P + '-textarea');\n textarea.className = PCSS + '-edit-text';\n textarea.addEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n const type = this.type || EditMode.Text;\n textarea.hide = type !== EditMode.Text && type !== EditMode.Markdown;\n return this._textarea = textarea;\n }\n _removeTextarea() {\n if (!Utils.isNull(this._textarea))\n this._textarea.removeEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n }\n // #endregion\n // #region contenteditable\n _addContenteditable() {\n /*<pacem-contenteditable hide=\"{{ :host.type != '${ EditMode.Html}' }}\" value=\"{{ ::_dialog.state, twoway }}\"></pacem-contenteditable> */\n var contenteditable = document.createElement(P + '-contenteditable');\n contenteditable.className = PCSS + '-edit-content';\n contenteditable.addEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n const type = this.type || EditMode.Text;\n contenteditable.hide = type !== EditMode.Html;\n return this._contenteditable = contenteditable;\n }\n _removeContenteditable() {\n if (!Utils.isNull(this._contenteditable))\n this._contenteditable.removeEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n }\n // #endregion\n // #region edit-image\n _addEditImage() {\n /*<!-- img -->\n<pacem-panel class=\"pacem-edit-image\" hide=\"{{ :host.type != '${ EditMode.Image}' }}\"\n css-class=\"{{ {'pacem-uploading': ::_uploader.uploading, 'pacem-upload-enabled': !Pacem.Utils.isNullOrEmpty(:host.imageUploadUrl)} }}\">\n <pacem-input-search value=\"{{ :host.hint, twoway }}\"></pacem-input-search>\n <pacem-upload pattern=\"'.+\\.(jpe?g|png)$'\" url=\"{{ :host.imageUploadUrl }}\" on-${ PropertyChangeEventName}=\":host._uploaderPropertyChangedCallback($event)\" hide=\"{{ Pacem.Utils.isNullOrEmpty(:host.imageUploadUrl) }}\"></pacem-upload>\n <pacem-infinite-scroller container=\"{{ ::_repeater }}\" on-fetchmore=\":host._imagefetchSuddenly()\" disabled=\"{{ :host._fetching || !:host._open || :host._images.length >= :host.imageSet.total }}\"></pacem-infinite-scroller>\n <pacem-repeater datasource=\"{{ :host._images }}\">\n <template>\n <pacem-img css-class=\"{{ {'pacem-selected': ^item.src === ::_dialog.state } }}\" on-click=\"::_dialog.state = ^item.src\" src=\"{{ ^item.thumb }}\" adapt=\"'contain'\"></pacem-img>\n </template>\n </pacem-repeater>\n <pacem-progressbar></pacem-progressbar>\n</pacem-panel>*/\n var editImage = document.createElement(P + '-edit-image');\n editImage.disabled = true;\n editImage.addEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n editImage.addEventListener(Scaffolding.ImageFetchRequestEventName, this._broadcastFetchRequestEventName, false);\n const type = this.type || EditMode.Text;\n editImage.hide = type !== EditMode.Image;\n editImage.uploadUrl = this.imageUploadUrl;\n editImage.allowSnapshot = this.allowSnapshot;\n editImage.maxWidth = this.maxImageWidth;\n editImage.maxHeight = this.maxImageHeight;\n return this._editImage = editImage;\n }\n _removeEditImage() {\n if (!Utils.isNull(this._editImage)) {\n this._editImage.removeEventListener(PropertyChangeEventName, this._innerValueChangedHandler, false);\n this._editImage.removeEventListener(Scaffolding.ImageFetchRequestEventName, this._broadcastFetchRequestEventName, false);\n }\n }\n _update(val) {\n var cnt = this._content;\n switch (this.type) {\n case EditMode.Html:\n cnt.innerHTML = val;\n break;\n case EditMode.Markdown:\n switch (cnt.localName) {\n case P + '-markdown':\n cnt.value = val;\n break;\n default:\n cnt.innerHTML = this._markdown.toHtml(val);\n break;\n }\n break;\n case EditMode.Image:\n switch (cnt.localName) {\n case 'img':\n case P + '-img':\n cnt['src'] = val;\n break;\n default:\n cnt.style.backgroundImage = `url(${val})`;\n break;\n }\n break;\n default:\n this._content.textContent = val;\n break;\n }\n }\n _retrieve() {\n var cnt = this._content;\n switch (this.type) {\n case EditMode.Html:\n return cnt.innerHTML;\n case EditMode.Image:\n switch (cnt.localName) {\n case P + '-img':\n case 'img':\n return cnt['src'];\n default:\n let styled = getComputedStyle(cnt).backgroundImage, matches = /url\\([\"']?([^'\"]+)[\"']?\\)/.exec(styled);\n return matches && matches.length && matches[1];\n }\n case EditMode.Markdown:\n return cnt['value'] || cnt.textContent;\n default:\n return cnt.textContent;\n }\n }\n _setup() {\n const val = this.disabled;\n if (val) {\n Utils.removeClass(this._target, PCSS + '-editing');\n this._removeButton();\n }\n else {\n Utils.addClass(this._target, PCSS + '-editing');\n this._addButton();\n }\n }\n _dialogPropertyChangedCallback(evt) {\n if (evt.detail.propertyName === 'state') {\n const val = evt.detail.currentValue;\n if (!Utils.isNull(this._textarea))\n this._textarea.value = val;\n if (!Utils.isNull(this._contenteditable))\n this._contenteditable.value = val;\n if (!Utils.isNull(this._editImage))\n this._editImage.value = val;\n this._update(evt.detail.currentValue);\n }\n }\n get _target() {\n var cnt = this.target;\n if (Utils.isNull(cnt))\n cnt = this.firstElementChild;\n return cnt;\n }\n connectedCallback() {\n super.connectedCallback();\n this._addDialog();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._addButton();\n this._setup();\n }\n disconnectedCallback() {\n this._removeButton();\n this._removeDialog();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'imageUploadUrl':\n if (!Utils.isNull(this._editImage))\n this._editImage.uploadUrl = val;\n break;\n case 'allowSnapshot':\n if (!Utils.isNull(this._editImage))\n this._editImage.allowSnapshot = val;\n break;\n case 'imageSet':\n if (!Utils.isNull(this._editImage))\n this._editImage.imageSet = val;\n break;\n case 'disabled':\n this._setup();\n break;\n case 'type':\n const type = val;\n if (!Utils.isNull(this._textarea))\n this._textarea.hide = type !== EditMode.Text && type !== EditMode.Markdown;\n if (!Utils.isNull(this._contenteditable))\n this._contenteditable.hide = type !== EditMode.Html;\n if (!Utils.isNull(this._editImage))\n this._editImage.hide = type !== EditMode.Image;\n break;\n case 'maxImageHeight':\n if (!Utils.isNull(this._editImage))\n this._editImage.maxHeight = val;\n break;\n case 'maxImageWidth':\n if (!Utils.isNull(this._editImage))\n this._editImage.maxWidth = val;\n break;\n }\n }\n /**\n * Opens the modal editor over `target`'s current content. On 'Ok' the edited value is written back into\n * `target` and a `commit` event is dispatched with `{ value }`; on 'Cancel' the target's original content\n * is restored.\n */\n edit(evt) {\n avoidHandler(evt);\n var cnt = this._target;\n if (Utils.isNull(cnt))\n return;\n this._removeButton();\n this._content = cnt;\n var state = this._state = this._retrieve();\n if (!Utils.isNull(this._editImage))\n this._editImage.disabled = false;\n this._dialog.open(state).then(args => {\n switch (args.button) {\n case UI.DialogButton.Cancel:\n // reset value\n this._update(this._state);\n break;\n case UI.DialogButton.Ok:\n // save\n this._update(args.state);\n this.dispatchEvent(new CustomEvent('commit', { detail: { value: args.state } }));\n break;\n }\n this._content = null;\n if (!Utils.isNull(this._editImage))\n this._editImage.disabled = true;\n this._addButton();\n });\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemEditElement.prototype, \"key\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemEditElement.prototype, \"type\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemEditElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemEditElement.prototype, \"imageUploadUrl\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemEditElement.prototype, \"imageSet\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemEditElement.prototype, \"maxImageWidth\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemEditElement.prototype, \"maxImageHeight\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemEditElement.prototype, \"allowSnapshot\", void 0);\nPacemEditElement = __decorate([\n CustomElement({\n tagName: P + '-edit'\n })\n], PacemEditElement);\nexport { PacemEditElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, PCSS, ViewChild, Watch, PropertyConverters, Utils, Components } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n/** Builds the markup for a single `${P}-slide`, embedding `captionTemplate`'s markup and reading the image from `imageProperty`. */\nfunction getGallerySlideShowTemplate(captionTemplate = getDefaultCaptionTemplate(), imageProperty = 'image') {\n return `<${P}-slide class=\"${PCSS}-gallery-item\"\r\ncss-class=\"{{ { '${PCSS}-gallery-previous': :host.isPrevious(^index, ::_slideshow.index), '${PCSS}-gallery-next': :host.isNext(^index, ::_slideshow.index), '${PCSS}-gallery-focus': ^index === ::_slideshow.index } }}\"\r\n>\r\n <${P}-img src=\"{{ ^item.${imageProperty} }}\" disabled=\"{{ !::_lightbox.show || !(:host.isCloseTo(^index, ::_slideshow.index) || ^index === ::_slideshow.index) }}\"\r\ncss=\"{{ {'visibility': (:host._poppingUp ? 'hidden' : ''), 'transition': (:host._poppingUp ? 'none' : '')} }}\" class=\"${PCSS}-gallery-splash\" adapt=\"contain\"></${P}-img>\r\n\r\n${captionTemplate}\r\n\r\n </${P}-slide>`;\n}\n/** Default caption markup: a simple panel bound to `captionProperty`, hidden when the value is empty. */\nfunction getDefaultCaptionTemplate(captionProperty = 'caption') {\n return `<${P}-panel hide=\"{{ $pacem.isNullOrEmpty(^item.${captionProperty}) }}\" class=\"${PCSS}-gallery-caption gallery-caption-default\">\r\n <${P}-span class=\"paragraph\" text=\"{{ ^item.${captionProperty} }}\"></${P}-span>\r\n </${P}-panel>`;\n}\n;\n/**\n * A lightbox photo gallery: renders `datasource` (a list of {@link GalleryDataItem}, or any shape when a custom\n * `captionTemplate`/`imageProperty`/`captionProperty` is supplied) as a `${P}-lightbox`-hosted `${P}-slideshow`,\n * opened via {@link open} with an optional 'hero' image-morph transition animating from the triggering thumbnail\n * into the lightbox. The per-slide markup (image + caption) is generated dynamically from `captionTemplate`\n * (or a default caption panel) so consumers can customize the caption's content without overriding the whole slide.\n */\nlet PacemGalleryElement = class PacemGalleryElement extends UI.PacemAdaptedIterativeElement {\n constructor() {\n super(...arguments);\n this._templateChangeHandler = (evt) => {\n const proxy = evt.target;\n this._setupWithCaptionTemplate(proxy.target);\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setupWithCaptionTemplate();\n this._databind();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'datasource':\n this._databind();\n break;\n case 'captionTemplate':\n this._setupWithCaptionTemplate(val, old);\n break;\n case 'imageProperty':\n this._setupWithCaptionTemplate(this.captionTemplate, this.captionTemplate);\n break;\n case 'captionProperty':\n if (Utils.isNull(this.captionTemplate)) {\n this._setupDefaultTemplate();\n }\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeTemplate();\n super.disconnectedCallback();\n }\n _disposeTemplate(val = this.captionTemplate) {\n if (val instanceof Components.PacemTemplateProxyElement) {\n val.removeEventListener('templatechange', this._templateChangeHandler);\n }\n }\n _setupWithCaptionTemplate(val = this.captionTemplate, old) {\n this._disposeTemplate(old);\n if (Utils.isNull(val)) {\n this._setupDefaultTemplate();\n return;\n }\n if (val instanceof Components.PacemTemplateProxyElement) {\n val.addEventListener('templatechange', this._templateChangeHandler, false);\n val = val.target;\n }\n const container = val.content.firstElementChild;\n Utils.addClass(container, PCSS + '-gallery-caption');\n const tmpl = document.createElement('template');\n tmpl.innerHTML = getGallerySlideShowTemplate(val.innerHTML, this.imageProperty);\n this._setupTemplate(tmpl);\n }\n _setupTemplate(val) {\n this._templateProxy.target = val;\n }\n _setupDefaultTemplate() {\n const tmpl = document.createElement('template');\n tmpl.innerHTML = getGallerySlideShowTemplate(getDefaultCaptionTemplate(this.captionProperty), this.imageProperty);\n this._setupTemplate(tmpl);\n }\n _databind() {\n const rep = this._repeater;\n if (!Utils.isNull(rep)) {\n rep.datasource = this.datasource;\n }\n }\n /** @readonly Gets the `${P}-adapter` driving the gallery's slideshow. */\n get adapter() {\n return this._adapter;\n }\n async _heroAnimate(fromEl, src) {\n if (!Utils.isNull(fromEl)) {\n let pImg = new UI.PacemImageElement();\n let goalEl = this._heroPlaceholderProxy.dom[0];\n const TRANSITION = 300;\n pImg.src = src || /* assuming an img-ish element */ fromEl['src'];\n pImg.adapt = 'contain';\n let goal = Utils.offset(goalEl), from = Utils.offset(fromEl), style = pImg.style;\n const cfrStyle = getComputedStyle(goalEl);\n style.border = cfrStyle.border;\n style.width = goalEl.clientWidth + 'px';\n style.height = goalEl.clientHeight + 'px';\n style.position = 'absolute';\n style.zIndex = cfrStyle.zIndex;\n style.top = goal.top + 'px';\n style.left = goal.left + 'px';\n const scaleX = fromEl.clientWidth / goalEl.clientWidth, scaleY = fromEl.clientHeight / goalEl.clientHeight, translateX = (from.left - goal.left) + 'px', translateY = (from.top - goal.top) + 'px';\n style.transformOrigin = '0 0';\n style.transition = `transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${TRANSITION}ms, opacity ${TRANSITION}ms`;\n style.transform = `translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`;\n document.body.appendChild(pImg);\n requestAnimationFrame(() => {\n pImg.style.transform = '';\n });\n await Utils.waitForAnimationEnd(pImg, TRANSITION);\n pImg.remove();\n }\n }\n /**\n * Opens the lightbox at `startIndex`, animating a morph from `heroFrom` (typically the thumbnail that\n * triggered the gallery) into the lightbox's hero placeholder, when provided.\n * @param startIndex Index of the slide to open the gallery on.\n * @param heroFrom Optional element to morph the opening transition from.\n * @param src Optional image URL to use for the morph, when different from `heroFrom`'s own `src`.\n */\n open(startIndex, heroFrom, src) {\n this._poppingUp = true;\n this._lightbox.show = true;\n this._slideshow.index = startIndex; // reflects on 'this' (twoway)\n this._heroAnimate(heroFrom, src)\n .then(_ => {\n this._poppingUp = false;\n this._slideshow.focus();\n });\n }\n};\n__decorate([\n ViewChild(P + '-adapter')\n], PacemGalleryElement.prototype, \"_adapter\", void 0);\n__decorate([\n ViewChild(P + '-lightbox')\n], PacemGalleryElement.prototype, \"_lightbox\", void 0);\n__decorate([\n ViewChild(P + '-slideshow')\n], PacemGalleryElement.prototype, \"_slideshow\", void 0);\n__decorate([\n ViewChild(P + '-repeater')\n], PacemGalleryElement.prototype, \"_repeater\", void 0);\n__decorate([\n ViewChild(P + '-template-proxy')\n], PacemGalleryElement.prototype, \"_templateProxy\", void 0);\n__decorate([\n ViewChild(P + '-shell-proxy')\n], PacemGalleryElement.prototype, \"_heroPlaceholderProxy\", void 0);\n__decorate([\n Watch()\n], PacemGalleryElement.prototype, \"_poppingUp\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemGalleryElement.prototype, \"captionTemplate\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemGalleryElement.prototype, \"captionProperty\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemGalleryElement.prototype, \"imageProperty\", void 0);\nPacemGalleryElement = __decorate([\n CustomElement({\n tagName: P + '-gallery', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-lightbox class=\"${PCSS}-gallery\">\r\n <${P}-repeater>\r\n <${P}-slideshow adapter=\"{{ ::_adapter }}\" index=\"{{ :host.index, twoway }}\" hide=\"{{ !::_lightbox.show }}\">\r\n <${P}-template-proxy></${P}-template-proxy>\r\n </${P}-slideshow>\r\n </${P}-repeater>\r\n<${P}-adapter class=\"${PCSS}-gallery-adapter\"></${P}-adapter>\r\n</${P}-lightbox>\r\n<${P}-shell-proxy><div class=\"${PCSS}-gallery-hero-target\"></div></${P}-shell-proxy>`\n })\n], PacemGalleryElement);\nexport { PacemGalleryElement };\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 PacemModalFormElement_1;\nimport { CustomElement, Defaults, P, PCSS, Watch, PropertyConverters, ViewChild, Utils, Net, avoidHandler } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nconst UI = UIComponents.UI;\n//namespace Pacem.Components.Plus {\n// TODO: use onewaytosource as a binding mode\n/**\n * A modal, `${P}-lightbox`-hosted CRUD form: wraps an autogenerated `${P}-form` bound to `state`/`metadata`,\n * relays its submit/success/fail events, and turns 'Ok' into a `${P}-fetch` request (`method`) to `action`\n * before committing the dialog - or, when `action` is empty, commits immediately without any network call.\n * Extends {@link UI.PacemDialogBase}, so it's opened the same way (`open(state)`) and resolves the same\n * `{ button, state }` result once committed.\n */\nlet PacemModalFormElement = PacemModalFormElement_1 = class PacemModalFormElement extends UI.PacemDialogBase {\n /** @readonly Gets the underlying `${P}-form` element. */\n get form() {\n return this._form;\n }\n constructor() {\n super();\n /** Gets or sets whether the 'Ok' button stays disabled until the form is both valid and dirty. Default: `true`. */\n this.suddenValidation = true;\n /** Gets or sets the HTTP method used to submit the form to `action`. Default: `Net.HttpMethod.Post`. */\n this.method = Net.HttpMethod.Post;\n this._keyupHandler = (evt) => {\n if (evt.keyCode === /* Enter */ 13\n // no modifiers\n && !evt.shiftKey && !evt.ctrlKey && !evt.altKey && !evt.metaKey) {\n let btn = evt.currentTarget.querySelector(`.${PCSS}-dialog-buttons ${P}-button[type=submit]`);\n if (!Utils.isNull(btn) && Utils.isVisible(btn) && !btn.disabled) {\n btn.click();\n }\n }\n };\n this.#keepStateOnCommit = false;\n this._emitter = new ScaffoldingComponents.Scaffolding.FormEventEmitter(this);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n // HACK: move the buttons outside the .pacem-scrollable element in the lightbox\n //var lightboxCore = this.querySelector(`.${PCSS}-lightbox`);\n //lightboxCore.appendChild(\n // this._buttons = this.querySelector(`.${PCSS}-dialog-buttons`)\n //);\n //lightboxCore.appendChild(\n // this.querySelector(`.${PCSS}-dialog-heading`)\n //);\n //lightboxCore.appendChild(\n // this.querySelector(P + '-loader')\n //);\n //this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'modalButtons', currentValue: this.modalButtons }));\n this.addEventListener('keyup', this._keyupHandler, false);\n this._emitter.start();\n }\n disconnectedCallback() {\n this._emitter.stop();\n this.removeEventListener('keyup', this._keyupHandler, false);\n super.disconnectedCallback();\n }\n _submit(evt) {\n if (this.readonly) {\n this.commit(UI.DialogButton.Ok, evt);\n }\n else {\n avoidHandler(evt);\n this._form.validate().then(valid => {\n if (valid) {\n if (Utils.isNullOrEmpty(this.action)) {\n this.commit(UI.DialogButton.Ok, evt);\n }\n else {\n this._form.submit(this._fetcher).then(_ => {\n this.commit(UI.DialogButton.Ok, evt);\n }, r => {\n // do nothing\n });\n }\n }\n });\n }\n }\n _onSubmit(evt) {\n // no need to broadcast, event bubbles itself...\n // ...just handle it using the eventual listeners:\n this.emit(evt);\n }\n #keepStateOnCommit;\n open(state, keepStateOnCommit, setAsPristine = true) {\n if (Utils.isNull(state)) {\n throw `The state of a ${PacemModalFormElement_1} cannot be null.`;\n }\n this.#keepStateOnCommit = keepStateOnCommit;\n var retval = super.open(state);\n if (setAsPristine) {\n this._form.setPristine();\n }\n return retval;\n }\n /** Commits the dialog, then - unless `keepStateOnCommit` was requested on `open` - resets `state` to `{}` once the closing animation ends. */\n commit(btn, evt) {\n super.commit(btn, evt);\n if (!this.#keepStateOnCommit) {\n Utils.waitForAnimationEnd(this, 500).then(_ => {\n // BREAKING change (v0.8.37): state destroyed when dialog committed\n // TODO: consider 'if' and 'how' to avoid this.\n this.state = {};\n });\n }\n }\n _cancel(evt) {\n this.commit(UI.DialogButton.Cancel, evt);\n this._form.reset();\n }\n _broadcast(evt) {\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }\n /** Gets the 'ok' and 'cancel' modal buttons. */\n get modalButtons() {\n const btns = this._buttons;\n return {\n ok: btns && btns.firstElementChild && btns.firstElementChild.firstElementChild,\n cancel: btns && btns.firstElementChild && btns.firstElementChild.lastElementChild\n };\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"suddenValidation\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"okCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"cancelCaption\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemModalFormElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"action\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"loaderType\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"success\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"fail\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemModalFormElement.prototype, \"readonly\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemModalFormElement.prototype, \"fetchHeaders\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemModalFormElement.prototype, \"fetchCredentials\", void 0);\n__decorate([\n ViewChild(P + '-lightbox')\n], PacemModalFormElement.prototype, \"lightbox\", void 0);\n__decorate([\n ViewChild(P + '-form[entity]')\n], PacemModalFormElement.prototype, \"_form\", void 0);\n__decorate([\n ViewChild(P + '-fetch')\n], PacemModalFormElement.prototype, \"_fetcher\", void 0);\nPacemModalFormElement = PacemModalFormElement_1 = __decorate([\n CustomElement({\n tagName: P + '-modal-form', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-lightbox modal=\"true\" logger=\"{{ :host.logger }}\">\r\n <${P}-form wrapper>\r\n <${P}-form logger=\"{{ :host.logger }}\" on-submit=\":host._onSubmit($event)\" readonly=\"{{ :host.readonly }}\" entity=\"{{ :host.state, twoway }}\" on-success=\":host._broadcast($event)\"\r\n on-fail=\":host._broadcast($event)\" success=\"{{ :host.success, twoway }}\" fail=\"{{ :host.fail, twoway }}\" autogenerate=\"{{ !$pacem.isNull($this.entity) }}\" metadata=\"{{ :host.metadata }}\"\r\n fetch-headers=\"{{ :host.fetchHeaders }}\" fetch-credentials=\"{{ :host.fetchCredentials }}\" sudden-validation=\"{{ :host.suddenValidation }}\"></${P}-form>\r\n </${P}-form>\r\n <${P}-fetch logger=\"{{ :host.logger }}\" method=\"{{ :host.method }}\" headers=\"{{ :host.fetchHeaders }}\" credentials=\"{{ :host.fetchCredentials }}\" autofetch=\"false\" url=\"{{ :host.action }}\"></${P}-fetch>\r\n <div class=\"${PCSS}-dialog-buttons ${PCSS}-buttonset buttons\" slot=\"bottom\">\r\n <div class=\"buttonset-left\">\r\n <${P}-button on-click=\":host._submit($event)\" css-class=\"{{ {'buttonset-last': :host.readonly} }}\" type=\"submit\"\r\n class=\"button primary button-size size-small\" disabled=\"{{ (:host.suddenValidation && !:host.readonly && !(::_form.valid && ::_form.dirty)) || ::_fetcher.fetching }}\">\r\n <${P}-panel class=\"submit-spinner ${PCSS}-anim anim-pop\" hide=\"{{ !::_form.fetching }}\"><i class=\"${PCSS}-icon ${PCSS}-anim anim-rotate rotate-uniform display-block\">refresh</i></${P}-panel>\r\n <${P}-text text=\"{{ :host.okCaption || 'OK' }}\"></${P}-text>\r\n </${P}-button>\r\n <${P}-button on-click=\":host._cancel($event)\" hide=\"{{ :host.readonly }}\" class=\"button button-size size-small\" disabled=\"{{ ::_fetcher.fetching }}\"><${P}-text text=\"{{ :host.cancelCaption || 'Cancel' }}\"></${P}-text></${P}-button>\r\n </div></div>\r\n <div class=\"${PCSS}-dialog-heading\" slot=\"top\">\r\n <${P}-content></${P}-content>\r\n </div>\r\n <div class=\"pos-absolute absolute-top absolute-right absolute-left absolute-bottom overflow-hidden ${PCSS}-inert display-flex flex-center flex-middle\">\r\n <${P}-loader type=\"{{ :host.loaderType }}\" class=\"loader-primary loader-smaller ${PCSS}-anim anim-pop\" active=\"{{ ::_fetcher.fetching }}\"></${P}-loader>\r\n </div>\r\n</${P}-lightbox>`\n })\n], PacemModalFormElement);\nexport { PacemModalFormElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, PacemEventTarget } from '@pacem/pacem-core';\n//namespace Pacem.Components.Plus {\n/**\n * Two-way syncs a plain `state` object with the URL hash's query-string (`#...`) through a\n * {@link Components.PacemRouterElement}: reading the hash into `state` on navigation, and pushing `state`\n * back into the hash (merged with `default`, minus anything already matching `default`) whenever `state`\n * changes. Values are normalized to strings for the URL (see `normalizedState`) and denormalized back to\n * their original type using `default` as a type mold, so booleans/numbers/dates/regexes round-trip correctly.\n * Navigation events lock the element (`#locked`) to avoid feedback loops between the router-driven read and\n * the state-driven write while a navigation is in flight.\n */\nlet PacemRouterHashStateElement = class PacemRouterHashStateElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n /** Gets or sets the default/mold values: used both to fill in missing `state` entries and to infer each value's original type when denormalizing from the URL. */\n this.default = {};\n /** Gets or sets the current state, kept in sync with the URL hash's query-string. */\n this.state = {};\n /** @readonly Gets the string-normalized projection of `state` actually written to the URL hash. */\n this.normalizedState = {};\n this._routerNavigatingHandler = (_) => {\n this.#locked = true;\n };\n this._routerNavigateHandler = (_) => {\n this.#locked = false;\n this._updateStateFromURI();\n };\n }\n #locked;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._updateStateFromURI();\n this._setupRouterHandlers(this.router);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'state':\n if (!first && !this.#locked) {\n this._updateNormalizedState();\n this._updateURIFromState();\n }\n break;\n case 'disabled':\n if (!!val) {\n this._updateStateFromURI();\n }\n break;\n case 'default':\n this._updateStateFromURI();\n break;\n case 'router':\n if (!first) {\n this._disposeRouterHandlers(old);\n this._setupRouterHandlers(val);\n }\n break;\n }\n }\n disconnectedCallback() {\n this._disposeRouterHandlers();\n super.disconnectedCallback();\n }\n _setupRouterHandlers(router = this.router) {\n if (!Utils.isNull(router)) {\n window.addEventListener('navigating', this._routerNavigatingHandler, false);\n window.addEventListener('navigate', this._routerNavigateHandler, false);\n }\n }\n _disposeRouterHandlers(router = this.router) {\n if (!Utils.isNull(router)) {\n window.removeEventListener('navigating', this._routerNavigatingHandler, false);\n window.removeEventListener('navigate', this._routerNavigateHandler, false);\n }\n }\n _currentBasePath() {\n const router = this.router;\n if (!Utils.isNull(router)) {\n const q = router.state.$querystring;\n return this._normalizePath(document.location.pathname, q);\n }\n return null;\n }\n _normalizePath(path, q) {\n if (Utils.isNullOrEmpty(path)) {\n return path;\n }\n if (path.endsWith('/')) {\n path = path.substring(0, path.length - 1);\n }\n q ??= '';\n return path + (q.length > 0 ? ('?' + q) : '');\n }\n _areStatesEquivalent(s1, s2) {\n const state1 = Utils.extend({}, s1 || {}), state2 = Utils.extend({}, s2 || {});\n for (let prop in state1) {\n if (!this._areSubstantiallyEquivalent(state1[prop], state2[prop])) {\n return false;\n }\n delete state1[prop];\n delete state2[prop];\n }\n for (let prop in state2) {\n if (!this._areSubstantiallyEquivalent(state1[prop], state2[prop])) {\n return false;\n }\n }\n return true;\n }\n _updateNormalizedState(state = this.state) {\n if (this.disabled || this.#locked) {\n return;\n }\n const normalizedState = this._normalizeState(state);\n if (!this._areStatesEquivalent(normalizedState, this.normalizedState)) {\n this.normalizedState = normalizedState;\n }\n }\n _updateStateFromURI() {\n if (this.disabled || this.#locked) {\n return;\n }\n var state = Utils.extend({}, this.default || {});\n const router = this.router;\n if (!Utils.isNull(router)) {\n const denormalized = this._denormalizeState(Utils.URIs.parseQuery(router.state && router.state.$hash || '{}'));\n Utils.extend(state, denormalized);\n }\n if (!this._areStatesEquivalent(this.state, state)) {\n this.state = state;\n }\n }\n _updateURIFromState(state = this.normalizedState) {\n if (this.disabled || this.#locked) {\n return;\n }\n const router = this.router;\n if (!Utils.isNull(router)) {\n const actual = this._currentBasePath();\n const currentState = Utils.URIs.parseQuery(router.state.$hash || '{}'), targetState = state || {};\n if (!this._areStatesEquivalent(currentState, targetState)) {\n // checked state equivalence to avoid superfluous navigation\n const clean = this._cleanupStateForURI(targetState);\n var url = actual;\n if (!Utils.isNullOrEmpty(clean)) {\n url = Utils.URIs.appendQuery(actual, clean, false, true);\n }\n // navigate\n router.path = url;\n }\n }\n }\n _areSubstantiallyEquivalent(v1, v2) {\n v1 ??= '';\n v2 ??= '';\n return v1.toString() == v2.toString() || Utils.areSemanticallyEqual(v1, v2) || JSON.stringify(v1) === JSON.stringify(v2);\n }\n _cleanupStateForURI(state = this.state) {\n const copy = Utils.clone(state || {}), base = this.default;\n for (let key in copy) {\n if ((Utils.isNullOrEmpty(copy[key]) && (Utils.isNull(base) || !(key in base)))\n || (!Utils.isNull(base) && (key in base) && this._areSubstantiallyEquivalent(base[key], copy[key]))) {\n delete copy[key];\n }\n }\n return copy;\n }\n _normalizeState(state = this.state, mold = this.default) {\n var output = {};\n const base = mold;\n for (let key in state || {}) {\n const value = state[key];\n if (Utils.isNullOrEmpty(value)) {\n if (!Utils.isNull(base) && (key in base) && !Utils.isNullOrEmpty(base[key])) {\n output[key] = '';\n }\n continue;\n }\n switch (typeof value) {\n case 'number':\n case 'bigint':\n case 'boolean':\n Object.defineProperty(output, key, { enumerable: true, value: value.toString() });\n break;\n case 'symbol':\n case 'string':\n Object.defineProperty(output, key, { enumerable: true, value });\n break;\n default:\n if (Utils.Dates.isDate(value)) {\n Object.defineProperty(output, key, { enumerable: true, value: value.toISOString() });\n }\n else if (value instanceof RegExp) {\n Object.defineProperty(output, key, { enumerable: true, value: value.source });\n }\n else {\n throw new Error('Type not supported to be normalized into a URI hash.');\n }\n break;\n }\n }\n return output;\n }\n _denormalizeState(state = this.normalizedState, mold = this.default) {\n const output = {};\n const base = mold || {};\n for (let prop in state) {\n if (!(prop in base)) {\n output[prop] = state[prop];\n continue;\n }\n const moldProp = base[prop], value = state[prop];\n switch (typeof moldProp) {\n case 'boolean':\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.Boolean.convert(value) });\n break;\n case 'number':\n case 'bigint':\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.Number.convert(value) });\n break;\n case 'symbol':\n case 'string':\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.String.convert(value) });\n break;\n default:\n if (moldProp instanceof Date) {\n Object.defineProperty(output, prop, { enumerable: true, value: PropertyConverters.Date.convert(value) });\n }\n else if (moldProp instanceof RegExp) {\n Object.defineProperty(output, prop, { enumerable: true, value: new RegExp(value, moldProp.flags) });\n }\n else {\n Object.defineProperty(output, prop, { enumerable: true, value });\n }\n break;\n }\n }\n return output;\n }\n set(key, value) {\n var obj = {};\n if (typeof key === 'string') {\n Object.defineProperty(obj, key, { enumerable: true, value });\n }\n else {\n obj = key;\n }\n this.state = Utils.extend({}, this.state || {}, obj);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemRouterHashStateElement.prototype, \"router\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemRouterHashStateElement.prototype, \"default\", void 0);\n__decorate([\n Watch()\n], PacemRouterHashStateElement.prototype, \"state\", void 0);\n__decorate([\n Watch()\n], PacemRouterHashStateElement.prototype, \"normalizedState\", void 0);\nPacemRouterHashStateElement = __decorate([\n CustomElement({ tagName: P + '-router-hash-state' })\n], PacemRouterHashStateElement);\nexport { PacemRouterHashStateElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, PacemEventTarget } from '@pacem/pacem-core';\n/**\n * Bridges a {@link Pacem.Components.PacemRouterElement}'s persisted scroll position (`state.$scrollY`, populated\n * when `PacemRouterElement.scrollRestoration` is enabled) with a {@link Pacem.Components.UI.PacemViewElement}'s\n * content lifecycle: navigating to a new page starts at the top, navigating back restores where the user\n * left off - without either the router or the view needing to know about the other.\n *\n * This listens to the *view*'s `prerender`/`render` events rather than the router's own navigation events,\n * because `render` only fires once the view's content has stopped resizing (it's debounced against the\n * view's own resize detection, not just \"content was inserted\"). That mitigates - though doesn't fully\n * eliminate - restoring to a scrollTop the page isn't tall enough to reach yet (e.g. images or async\n * content still loading in): content changes that don't affect the view's own box size won't retrigger it.\n */\nlet PacemRouterViewScrollElement = class PacemRouterViewScrollElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n /** The old content is already gone and the new content hasn't landed yet - jump to the top now, instantly, so the transition never shows a scrolled-down blank/stale view. */\n this._prerenderHandler = (_) => {\n Utils.scrollTo(0, false);\n };\n /**\n * New content has landed and its size has settled (see class remarks on `render`'s debounce). Restores the\n * router's persisted scroll position for this entry, if any: `$scrollY` is `undefined` (or `0`) for a\n * freshly-pushed page - never explicitly set on push, only captured when *leaving* a page - so this\n * correctly leaves new pages at the top without any special-casing.\n */\n this._renderHandler = (_) => {\n const state = this.router?.state;\n if (state.$scrollY > 0) {\n const smooth = this.scrollBehavior != 'instant';\n Utils.scrollTo(state.$scrollY, smooth);\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setupRouter();\n this._setupView();\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 'router':\n // re-wire if the `router` reference itself is swapped out at runtime, not just on first assignment\n if (!Utils.isNull(old)) {\n this._disposeRouter(old);\n }\n if (!Utils.isNull(val)) {\n this._setupRouter(val);\n }\n break;\n case 'view':\n if (!Utils.isNull(old)) {\n this._disposeView(old);\n }\n if (!Utils.isNull(val)) {\n this._setupView(val);\n }\n break;\n }\n }\n disconnectedCallback() {\n this._disposeRouter();\n this._disposeView();\n super.disconnectedCallback();\n }\n /** Turns on the router's own scroll-position bookkeeping (capturing `state.$scrollY` per history entry); see `PacemRouterElement.scrollRestoration`. */\n _setupRouter(router = this.router) {\n if (Utils.isNull(router)) {\n return;\n }\n router.scrollRestoration = true;\n }\n /** No-op: `_setupRouter` only flips a flag on the router, there's no subscription to tear down. Kept for symmetry with `_disposeView`, and in case this grows one later. */\n _disposeRouter(router = this.router) {\n // do nothing\n }\n _setupView(view = this.view) {\n if (Utils.isNull(view)) {\n return;\n }\n view.addEventListener('prerender', this._prerenderHandler, false);\n view.addEventListener('render', this._renderHandler, false);\n }\n _disposeView(view = this.view) {\n if (Utils.isNull(view)) {\n return;\n }\n view.removeEventListener('prerender', this._prerenderHandler);\n view.removeEventListener('render', this._renderHandler);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element, emit: false })\n], PacemRouterViewScrollElement.prototype, \"router\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element, emit: false })\n], PacemRouterViewScrollElement.prototype, \"view\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String, emit: false })\n], PacemRouterViewScrollElement.prototype, \"scrollBehavior\", void 0);\nPacemRouterViewScrollElement = __decorate([\n CustomElement({ tagName: P + '-router-view-scroll' })\n], PacemRouterViewScrollElement);\nexport { PacemRouterViewScrollElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, Defaults, P, Watch, PropertyConverters, ViewChild, Components } from '@pacem/pacem-core';\n//namespace Pacem.Components.Plus {\n/**\n * A simple search box: a `${P}-input-search`'s `hint` text feeds a debounced `${P}-fetch` against `url` as\n * the `hintParameter` query-string parameter, and the results are rendered through a `${P}-repeater`\n * (customize the row markup via the element's default `${P}-content` slot).\n */\nlet PacemSearchElement = class PacemSearchElement extends Components.PacemElement {\n constructor() {\n super(...arguments);\n /** Gets or sets the name of the query-string parameter `hint` is sent as. Default: `'q'`. */\n this.hintParameter = 'q';\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'hint') {\n let params = {};\n params[this.hintParameter] = val;\n this._fetcher.parameters = params;\n }\n }\n};\n__decorate([\n ViewChild(P + '-fetch')\n], PacemSearchElement.prototype, \"_fetcher\", void 0);\n__decorate([\n Watch()\n], PacemSearchElement.prototype, \"datasource\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"hint\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemSearchElement.prototype, \"hintParameter\", void 0);\nPacemSearchElement = __decorate([\n CustomElement({\n tagName: P + '-search', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-fetch debounce=\"800\" url=\"{{ :host.url }}\" method=\"{{ :host.method }}\">\r\n</${P}-fetch><${P}-input-search value=\"{{ :host.hint, twoway }}\"></${P}-input-search>\r\n<${P}-repeater datasource=\"{{ ::_fetch.result }}\">\r\n <${P}-content></${P}-content>\r\n</${P}-repeater>`\n })\n], PacemSearchElement);\nexport { PacemSearchElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, CustomElementUtils, ViewChild } from '@pacem/pacem-core';\nimport { PacemBaseCellElement } from './types';\n//namespace Pacem.Components.Plus {\n/** Name of the {@link DataRowSelectChangeEvent}. */\nexport const DataRowSelectChangeEventName = \"datarowselectchange\";\n/**\n * Dispatched by a {@link PacemDataGridElement} whenever its row selection is about to change (e.g. a row was\n * clicked while in 'row' select mode). Cancelable: a listener can call `preventDefault()` and instead assign\n * its own `detail.selectedRows` to override which rows actually end up selected.\n */\nexport class DataRowSelectChangeEvent extends CustomEvent {\n constructor(detail) {\n super(DataRowSelectChangeEventName, { detail, bubbles: false, cancelable: true });\n }\n}\nconst EMPTY_CSS = {};\nconst EMPTY_CSSCLASS = [];\n/**\n * The `<td>`-like cell of a {@link PacemDataGridElement}'s body: renders `dataitem`'s `metadata.prop` value\n * according to `metadata.dataType`/`metadata.dataCell.format` (numbers, currency, percentages, dates,\n * booleans, ...), or through a custom `metadata.dataCell.format` function when one is supplied. Also derives\n * the cell's CSS class(es)/inline style from `metadata.dataCell`, and reflects the grid's row-selection state\n * (`gridState.selectedRows`) via the `datarow-selected`/`datacell-filled`/`datacell-primary` CSS classes.\n */\nlet PacemDataCellElement = class PacemDataCellElement extends PacemBaseCellElement {\n updateLayout(metadata = this.metadata) {\n this._setup(metadata);\n }\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-datacell');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case '_contentTooltip':\n this._updateTooltipJustInCase();\n break;\n case 'gridState':\n case 'rowindex':\n this._updateSelection();\n break;\n }\n }\n }\n _updateTooltipJustInCase() {\n const tip = this.metadata.dataCell?.autoTooltip ?? true;\n if (tip && !Utils.isNullOrEmpty(this._contentTooltip)) {\n this.setAttribute('tooltip', this._contentTooltip);\n }\n else {\n this.removeAttribute('tooltip');\n }\n }\n _inflateContent(item = this.dataitem, index = this.rowindex, metadata = this.metadata) {\n this._contentTooltip = '';\n let format = metadata.dataCell?.format;\n const nullValue = metadata.dataCell?.null ?? '';\n // is 'format' a custom function?\n if (typeof format === 'function') {\n const htmlOrNode = format(this, metadata, item, index);\n if (Utils.isNullOrEmpty(htmlOrNode)) {\n return nullValue;\n }\n if (typeof htmlOrNode === 'string') {\n return htmlOrNode;\n }\n return htmlOrNode;\n }\n // standard column\n const tget = CustomElementUtils.resolvePath(metadata.prop, item)?.target;\n const plainValue = tget?.value;\n if (Utils.isNullOrEmpty(plainValue)) {\n return nullValue;\n }\n const culture = Utils.lang(this);\n switch (metadata.dataType) {\n case \"boolean\":\n return `<${P}-icon icon=\"material ${(!plainValue ? 'radio_button_unchecked' : 'check_circle_outline')} text-big-steady\"></${P}-icon>`;\n case \"time\":\n case \"date\":\n case \"datetime\":\n return this._contentTooltip = Utils.core.date(plainValue, format, culture);\n case \"byte\":\n case \"int16\":\n case \"int32\":\n case \"int64\":\n case \"short\":\n case \"integer\":\n case \"int\":\n case \"long\":\n case \"double\":\n case \"decimal\":\n case \"float\":\n case \"single\":\n case \"number\":\n return this._contentTooltip = Utils.core.number(plainValue, format || '', culture);\n case \"currency\":\n format ??= 'EUR';\n if (typeof format === 'string') {\n return this._contentTooltip = Utils.core.currency(plainValue, format, culture);\n }\n return this._contentTooltip = Utils.core.number(plainValue, format, culture);\n case \"percent\":\n case \"percentage\":\n format ??= { style: 'percent', maximumFractionDigits: 2 };\n if (typeof format === 'string') {\n return this._contentTooltip = Utils.core.currency(plainValue, format, culture);\n }\n return this._contentTooltip = Utils.core.number(plainValue, format, culture);\n case \"url\":\n case \"emailaddress\":\n case \"phonenumber\":\n // TODO: render links\n default:\n return this._contentTooltip = plainValue;\n }\n }\n // @Debounce(true)\n _inflateCssClass(item = this.dataitem, index = this.rowindex, metadata = this.metadata, datasource) {\n if (Utils.isNull(item) || Utils.isNullOrEmpty(metadata)) {\n return EMPTY_CSSCLASS;\n }\n const cssClass = metadata.dataCell && metadata.dataCell.cssClass || EMPTY_CSSCLASS;\n const retval = [];\n if (typeof cssClass === 'function') {\n Array.prototype.push.apply(retval, cssClass(this, metadata, item, index) || []);\n }\n else {\n Array.prototype.push.apply(retval, cssClass);\n }\n // alignment\n switch (metadata.dataCell?.verticalAlign?.toLowerCase()) {\n case 'top':\n retval.push('datacell-top');\n break;\n case 'bottom':\n retval.push('datacell-bottom');\n break;\n case 'middle':\n retval.push('datacell-middle');\n break;\n }\n switch (metadata.dataCell?.horizontalAlign?.toLowerCase()) {\n // headcell display is flex: set h-alignment at container-level\n case 'left':\n retval.push('datacell-left');\n break;\n case 'right':\n retval.push('datacell-right');\n break;\n case 'center':\n retval.push('datacell-center');\n break;\n }\n if (datasource?.length) {\n if (index === 0) {\n retval.push('datacell-firstrow');\n }\n if (index === (datasource.length - 1)) {\n retval.push('datacell-lastrow');\n }\n }\n return retval;\n }\n _inflateCss(item = this.dataitem, index = this.rowindex, metadata = this.metadata) {\n if (Utils.isNull(item) || Utils.isNullOrEmpty(metadata)) {\n return EMPTY_CSS;\n }\n const css = metadata.dataCell && metadata.dataCell.css || EMPTY_CSS;\n if (typeof css === 'function') {\n return css(this, metadata, item, index);\n }\n return css;\n }\n _setup(metadata = this.metadata) {\n this.setAttribute(\"css-class\", \"{{ this._inflateCssClass(^item, ^index, this.metadata, :host.datasource) }}\");\n this.setAttribute(\"css\", \"{{ Pacem.Utils.extend({ 'grid-row': ^index+2 }, this._inflateCss(^item, ^index, this.metadata, :host.datasource)) }}\");\n const truncate = !!(metadata.dataCell?.textEllipsis);\n const contentCssClass = truncate ? ['text-truncate'] : [];\n const selectMode = metadata?.dataCell?.selectMode?.toLowerCase();\n switch (selectMode) {\n case 'cell':\n case 'row':\n // make the content wrapper inert so that the click event can bubble\n contentCssClass.push(PCSS + '-inert');\n contentCssClass.push(PCSS + '-unselect');\n break;\n }\n this._content.cssClass = contentCssClass;\n this._updateSelection();\n }\n _updateSelection() {\n const selectedRows = this.gridState?.selectedRows ?? [];\n if (selectedRows.indexOf(this.rowindex) >= 0) {\n Utils.addClass(this, 'datarow-selected datacell-filled datacell-primary');\n }\n else {\n Utils.removeClass(this, 'datarow-selected datacell-filled datacell-primary');\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Eval })\n], PacemDataCellElement.prototype, \"dataitem\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataCellElement.prototype, \"rowindex\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String, debounce: 200 })\n], PacemDataCellElement.prototype, \"_contentTooltip\", void 0);\n__decorate([\n ViewChild(P + '-span')\n], PacemDataCellElement.prototype, \"_content\", void 0);\nPacemDataCellElement = __decorate([\n CustomElement({ tagName: P + '-datacell', shadow: false, template: `<${P}-span content=\"{{ :host._inflateContent(^item, ^index, :host.metadata) }}\"></${P}-span>` })\n], PacemDataCellElement);\nexport { PacemDataCellElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Utils, CustomElementUtils, Components, UI as CoreUI } from '@pacem/pacem-core';\nimport { Components as UIPkgComponents } from '@pacem/pacem-ui';\nimport { PacemBaseCellElement } from './types';\nconst UI = UIPkgComponents.UI;\n//namespace Pacem.Components.Plus {\n/** Name of the {@link DataColumnSortEvent}. */\nexport const DataColumnSortEventName = \"datacolumnsort\";\n/**\n * Dispatched by a {@link PacemHeadCellElement} when its sort button is clicked, and re-dispatched by the\n * owning {@link PacemDataGridElement} after it updates its internal sort state. Cancelable: a listener can\n * call `preventDefault()` to veto the sort, or normalize/override `detail` (e.g. fetch a re-sorted datasource)\n * before the grid applies it.\n */\nexport class DataColumnSortEvent extends CustomEvent {\n constructor(detail) {\n super(DataColumnSortEventName, { detail, bubbles: false, cancelable: true });\n }\n}\n/** Name of the {@link DataColumnRescaleEvent}. */\nexport const DataColumnRescaleEventName = \"datacolumnrescale\";\n/**\n * Dispatched by a {@link PacemHeadCellElement} while its rescale handle is being dragged, and re-dispatched\n * by the owning {@link PacemDataGridElement} after it updates the column's pixel width. Cancelable: a\n * listener can call `preventDefault()` and override `detail.width` to clamp/snap the resulting width.\n */\nexport class DataColumnRescaleEvent extends CustomEvent {\n constructor(detail) {\n super(DataColumnRescaleEventName, { detail, bubbles: false, cancelable: true });\n }\n}\n/**\n * The `<th>`-like cell of a {@link PacemDataGridElement}'s header row: renders `metadata.headCell.name`\n * (falling back to `metadata.prop`), and - depending on `metadata` flags - a sort button that dispatches\n * {@link DataColumnSortEvent}, a rescale handle (backed by a `${P}-rescale` behavior appended to the shell)\n * that dispatches {@link DataColumnRescaleEvent}, and a description tooltip balloon rendered as plain text,\n * HTML or Markdown according to `metadata.headCell.tooltip`.\n */\nlet PacemHeadCellElement = class PacemHeadCellElement extends PacemBaseCellElement {\n constructor(_md = new UI.MarkdownService()) {\n super();\n this._md = _md;\n //#region sort button\n this._sortButtonClickHandler = (evt) => {\n const metadata = this.metadata, gridState = this.gridState, column = metadata.prop;\n const dir = gridState.sort?.column === column ? (gridState.sort.dir === 'desc' ? 'asc' : 'desc') : (metadata.defaultSort || 'asc');\n this.dispatchEvent(new DataColumnSortEvent({ column, dir }));\n };\n this._rescaleHandler = (evt) => {\n evt.preventDefault();\n const detail = evt.detail;\n const width = Math.max(this.metadata.minPixelWidth ?? 24, detail.currentPosition.x - this._columnBBox.x);\n this.dispatchEvent(new DataColumnRescaleEvent({ width }));\n };\n this._rescaleStartHandler = (evt) => {\n this._columnBBox = Utils.offsetRect(this);\n };\n this._rescaleEndHandler = (evt) => {\n // nothing(?)\n };\n }\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-headcell');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first && name === 'gridState') {\n this._updateSortButtonIconGlyph();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._ensureBalloon();\n }\n disconnectedCallback() {\n this._disposeBalloon();\n this._disposeRescaler();\n super.disconnectedCallback();\n }\n updateLayout(metadata = this.metadata) {\n this._setup(metadata);\n }\n _setupSortButton() {\n const btn = new UI.PacemButtonElement();\n btn.className = `button-flat headcell-sort ${PCSS}-inert`;\n this.addEventListener('click', this._sortButtonClickHandler, false);\n Utils.addClass(this, PCSS + '-clickable');\n return btn;\n }\n _disposeSortButton(btn = this._sortButton) {\n if (Utils.isNull(btn)) {\n return;\n }\n Utils.removeClass(this, PCSS + '-clickable');\n this.removeEventListener('click', this._sortButtonClickHandler, false);\n btn.remove();\n this._sortButton = null;\n }\n _updateSortButtonIconGlyph(btn = this._sortButton, state = this.gridState, metadata = this.metadata) {\n if (Utils.isNull(btn) || Utils.isNullOrEmpty(metadata)) {\n return;\n }\n btn.iconGlyph = state?.sort?.column === metadata.prop ? (state.sort.dir === 'desc' ? 'arrow_drop_down' : 'arrow_drop_up') : '';\n }\n _ensureRescaler() {\n if (Utils.isNull(this._rescaler)) {\n const r = this._rescaler = this._rescaler || new Components.PacemRescaleElement();\n r.handles = [CoreUI.RescaleHandle.Right];\n r.addEventListener(CoreUI.RescaleEventType.Rescale, this._rescaleHandler, false);\n r.addEventListener(CoreUI.RescaleEventType.Start, this._rescaleStartHandler, false);\n r.addEventListener(CoreUI.RescaleEventType.End, this._rescaleEndHandler, false);\n CustomElementUtils.findAncestorShell(this).appendChild(r);\n }\n }\n _setupRescaleContainer() {\n this._ensureRescaler();\n const c = new Components.PacemPanelElement();\n c.className = \"headcell-rescale\";\n c.behaviors = [this._rescaler];\n return c;\n }\n _disposeRescaleContainer(c = this._rescaleContainer) {\n if (Utils.isNull(c)) {\n return;\n }\n c.remove();\n this._rescaleContainer = null;\n }\n _disposeRescaler(r = this._rescaler) {\n if (Utils.isNull(r)) {\n return;\n }\n r.removeEventListener(CoreUI.RescaleEventType.Rescale, this._rescaleHandler, false);\n r.removeEventListener(CoreUI.RescaleEventType.Start, this._rescaleStartHandler, false);\n r.removeEventListener(CoreUI.RescaleEventType.End, this._rescaleEndHandler, false);\n r.remove();\n this._rescaler = null;\n }\n //#endregion\n _setup(metadata = this.metadata) {\n this.setAttribute(\"css-class\", \"{{ this.metadata && this.metadata.headCell && this.metadata.headCell.cssClass || [] }}\");\n this.setAttribute(\"css\", \"{{ this.metadata && this.metadata.headCell && this.metadata.headCell.css }}\");\n const truncate = !!(metadata.headCell?.textEllipsis);\n const cssClass = truncate ? ['text-truncate'] : [];\n // alignment\n switch (metadata.headCell?.verticalAlign?.toLowerCase()) {\n case 'top':\n Utils.addClass(this, 'headcell-top');\n break;\n case 'bottom':\n Utils.addClass(this, 'headcell-bottom');\n break;\n case 'middle':\n Utils.addClass(this, 'headcell-middle');\n break;\n }\n switch (metadata.headCell?.horizontalAlign?.toLowerCase()) {\n // headcell display is grid: set h-alignment at content-level\n case 'left':\n cssClass.push('text-left');\n break;\n case 'right':\n cssClass.push('text-right');\n break;\n case 'center':\n cssClass.push('text-center');\n break;\n }\n // basic content\n this.removeAttribute('content');\n const css = !Utils.isNullOrEmpty(cssClass) ? ` class=\"${cssClass.join(' ')}\"` : '';\n const headContent = metadata.headCell?.name ?? metadata.prop;\n this.innerHTML = `<div${css}>${headContent}</div>`;\n if (metadata.isSortable) {\n this._disposeSortButton();\n const btn = this._sortButton = this._setupSortButton();\n this._updateSortButtonIconGlyph(btn);\n this.appendChild(btn);\n }\n if (metadata.isRescalable) {\n this._disposeRescaleContainer();\n const cnt = this._rescaleContainer = this._setupRescaleContainer();\n this.appendChild(cnt);\n }\n if (metadata.isTogglable) {\n // TODO: add context menu actions (hide, filter)\n }\n }\n //#region balloon\n _normalizeTooltip() {\n const metadata = this.metadata.headCell?.tooltip || false;\n if (typeof metadata === 'object') {\n return metadata;\n }\n return { type: metadata };\n }\n _ensureBalloon() {\n var innerText, tooltip;\n const noBalloon = ((tooltip = this._normalizeTooltip()).type === false)\n || Utils.isNullOrEmpty(innerText = this.metadata.headCell?.description);\n // balloon\n if (Utils.isNull(this._balloon) && !noBalloon) {\n let balloon = new UI.PacemBalloonElement();\n balloon.options = {\n behavior: UI.BalloonBehavior.Tooltip,\n trigger: tooltip.trigger || UI.BalloonTrigger.Hover,\n position: tooltip.position || UI.BalloonPosition.Top,\n hoverDelay: 200, hoverTimeout: 50,\n align: tooltip.align || UI.BalloonAlignment.Auto,\n };\n Utils.addClass(balloon, PCSS + '-headcell-tooltip');\n var shell = CustomElementUtils.findAncestorShell(this);\n shell.appendChild(this._balloon = balloon);\n }\n const balloon = this._balloon;\n if (!Utils.isNull(balloon)) {\n balloon.target = this;\n if (!(balloon.disabled = noBalloon)) {\n const content = innerText || '';\n switch (tooltip.type) {\n case 'md':\n case 'markdown':\n balloon.innerHTML = this._md.toHtml(content);\n break;\n case 'html':\n balloon.innerHTML = content;\n break;\n default:\n balloon.innerText = content;\n break;\n }\n }\n }\n }\n _disposeBalloon() {\n if (!Utils.isNull(this._balloon)) {\n this._balloon.remove();\n this._balloon = null;\n }\n }\n};\nPacemHeadCellElement = __decorate([\n CustomElement({ tagName: P + '-headcell' })\n], PacemHeadCellElement);\nexport { PacemHeadCellElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters, Utils, Debounce, ViewChild, CommandEventName, CustomUIEvent, Components, Logging } from '@pacem/pacem-core';\nimport { DataColumnSortEvent, DataColumnSortEventName, DataColumnRescaleEvent, DataColumnRescaleEventName } from './headcell';\nimport { DataRowSelectChangeEvent } from './datacell';\n//namespace Pacem.Components.Plus {\nconst DataColumnRebuildEventName = 'datacolumnchange';\nconst DataColumnStateChangeEventName = 'datacolumnstatechange';\nconst DataGridConsts = {\n Defaults: {\n selectCaption: 'Details',\n editCaption: 'Edit',\n editIcon: 'edit',\n deleteCaption: 'Delete',\n deleteIcon: 'delete'\n }\n};\n/**\n * Dispatched by a {@link PacemDataGridElement} right after its `datasource` changes and before row selection\n * is cleared; a listener can set `detail.keepRowSelection` to `true` to preserve the current selection instead\n * of the default reset-on-rebind behavior.\n */\nexport class DataGridBindEvent extends CustomEvent {\n constructor(detail) {\n super('databind', { cancelable: false, bubbles: false, detail });\n }\n}\n/**\n * Dispatched by a {@link PacemDataGridElement} for every UI event bubbling up from one of its data cells\n * (see `Components.PacemElement.emittedEventTypes`), re-typed as `'datacell' + originalType` (e.g. a cell's\n * `click` becomes `datacellclick`) and enriched with the originating cell/item/row-index. An un-prevented\n * `click` while in `'row'` select mode additionally toggles that row's selection.\n */\nexport class DataCellUIEvent extends CustomUIEvent {\n constructor(type, detail, orig) {\n super(type, detail, { bubbles: false, cancelable: true }, orig);\n }\n}\n/**\n * Declarative, `<${P}-datacolumn>`-authored description of a {@link PacemDataGridElement} column: field\n * binding, label, sort/resize/toggle flags and per-column CSS. Registering, unregistering or changing one of\n * these items causes the owning grid to recompute its adapted column metadata and rebuild its rendered\n * columns/state accordingly.\n */\nlet PacemDataColumnElement = class PacemDataColumnElement extends Components.PacemItemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'field':\n case 'headcellCss':\n case 'headcellCssClass':\n case 'datacellCss':\n case 'datacellCssClass':\n case 'resizable':\n case 'togglable':\n case 'sortable':\n case 'label':\n this.dispatchEvent(new Event(DataColumnRebuildEventName));\n break;\n case 'order':\n case 'hide':\n this.dispatchEvent(new Event(DataColumnStateChangeEventName));\n break;\n }\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"field\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"label\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemDataColumnElement.prototype, \"resizable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemDataColumnElement.prototype, \"togglable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemDataColumnElement.prototype, \"sortable\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"order\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json /*OrString (TODO)*/ })\n], PacemDataColumnElement.prototype, \"format\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"headcellCss\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"headcellCssClass\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"datacellCss\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataColumnElement.prototype, \"datacellCssClass\", void 0);\nPacemDataColumnElement = __decorate([\n CustomElement({ tagName: P + '-datacolumn' })\n], PacemDataColumnElement);\nexport { PacemDataColumnElement };\n/** Builds the bindable `${P}-headcell` markup for a single column, wired to relay sort/rescale requests up to the grid. */\nfunction headColumnHtml(c) {\n return `<${P}-headcell metadata=\"{{ :host._getColumnMetadata('${c.prop}') }}\" state=\"{{ :host._columnState.${c.prop} }}\" grid-state=\"{{ :host._gridState }}\"\r\non-${DataColumnSortEventName}=\":host._broadcastSortCommand($event)\"\r\non-${DataColumnRescaleEventName}=\":host._broadcastRescaleCommand($event)\"></${P}-headcell>`;\n}\n/** Builds the bindable `${P}-datacell` markup for a single column/row, appending `extra` (typically the UI event relays) to the tag. */\nfunction dataColumnHtml(c, extra) {\n return `<${P}-datacell metadata=\"{{ :host._getColumnMetadata('${c.prop}') }}\" state=\"{{ :host._columnState.${c.prop} }}\" grid-state=\"{{ :host._gridState }}\"\r\ndataitem=\"{{ ^item }}\" rowindex=\"{{ ^index }}\" ${extra}></${P}-datacell>`;\n}\n/**\n * A CSS-grid-based data table driven by an array of {@link PacemDataColumnElement} children and/or a\n * `metadata` array (columns declared as elements are merged on top of `metadata` by matching `field`/`prop`,\n * see `_adaptColumnMetadata`). For each bound `datasource` row, one `${P}-datacell` is generated per column,\n * matched by a `${P}-headcell` per column in the header row; columns can independently be sortable,\n * rescalable and togglable, coordinated through `_gridState`/`_columnState` and the head cell's\n * {@link DataColumnSortEvent}/{@link DataColumnRescaleEvent}.\n *\n * The grid's markup is fully re-generated (`innerHTML` on the internal grid container, see `_buildUpGrid`)\n * whenever the adapted column metadata changes, so adding/removing/reordering `${P}-datacolumn` children -\n * or changing `metadata` directly - keeps the grid's markup, `grid-template-columns` and per-cell bindings\n * in sync. Row selection is centralized here (`setRowSelection`, `_gridState.selectedRows`) and exposed both\n * as the public, mergeable `state` and as bubbling {@link DataRowSelectChangeEvent}s/{@link DataCellUIEvent}s\n * relayed from the individual cells.\n */\nlet PacemDataGridElement = class PacemDataGridElement extends Components.PacemItemsContainerElement {\n constructor(_key = Utils.uniqueCode()) {\n super();\n this._key = _key;\n /** Gets or sets the grid's public state (currently just row selection); merged into, and kept in sync with, the internal `_gridState`. */\n this.state = {};\n // TODO: allow to persist states (key) on the session or location level...\n /** @readonly Per-column runtime state (visibility, rescaled width), keyed by `prop`; fed into each cell's `state`. */\n this._columnState = {};\n /** @readonly The grid's internal, always-consistent state (sort, selection, column order); `state` is merged from/into this. */\n this._gridState = { sort: {}, orderedColumns: [], selectedRows: [] };\n /** A registered column's display-affecting properties changed (field/label/css/sort/resize/toggle flags): re-adapt the column metadata so the grid rebuilds. */\n this._itemDataColumnRebuildHandler = (evt) => {\n this._adaptColumnMetadata(this.items || []);\n };\n /** A registered column's order/hide state changed: re-adapt the column metadata so the grid rebuilds. */\n this._itemDataColumnChangeHandler = (evt) => {\n this._adaptColumnMetadata(this.items || []);\n };\n /** Per-column-`prop` cache of {@link DataColumnMetadata} lookups (see `_getColumnMetadata`), invalidated whenever `_adaptedColumnMetadata` is recomputed. */\n this._memoizer = {};\n }\n /** Only accepts {@link PacemDataColumnElement} instances as registrable items. */\n validate(item) {\n return item instanceof PacemDataColumnElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.addEventListener(CommandEventName, this._onCommand, false);\n this._adaptColumnMetadata();\n const cols = this._adaptedColumnMetadata || [];\n this._buildUpGrid(cols);\n }\n disconnectedCallback() {\n this.removeEventListener(CommandEventName, this._onCommand, false);\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'items':\n case 'metadata':\n this._adaptColumnMetadata();\n break;\n case '_adaptedColumnMetadata':\n this._buildUpGrid(val);\n break;\n case 'datasource':\n // cleanup row selection as datasource changes...\n const eventArgs = { keepRowSelection: false, datasource: val };\n const event = new DataGridBindEvent(eventArgs);\n this.dispatchEvent(event);\n if (!eventArgs.keepRowSelection) {\n this._setRowSelection();\n }\n break;\n case 'state':\n this._mergeState(val);\n break;\n }\n }\n }\n /** Registers a column item, wiring its rebuild/state-change notifications so the grid re-adapts its metadata whenever the column changes. */\n register(item) {\n if (super.register(item)) {\n // add listeners\n item.addEventListener(DataColumnRebuildEventName, this._itemDataColumnRebuildHandler, false);\n item.addEventListener(DataColumnStateChangeEventName, this._itemDataColumnChangeHandler, false);\n return true;\n }\n return false;\n }\n /** Unregisters a column item and removes its rebuild/state-change listeners. */\n unregister(item) {\n if (super.unregister(item)) {\n // remove listeners\n item.removeEventListener(DataColumnRebuildEventName, this._itemDataColumnRebuildHandler, false);\n item.removeEventListener(DataColumnStateChangeEventName, this._itemDataColumnChangeHandler, false);\n return true;\n }\n return false;\n }\n /**\n * Sets the selected rows among the current ones.\n * @param args\n */\n setRowSelection(...args) {\n const indices = Array.from(args);\n this._setRowSelection(indices);\n }\n /** Dispatches a cancelable {@link DataRowSelectChangeEvent} for `indices`, then applies `event.detail.selectedRows` (possibly overridden by a listener) as the new selection - unless the event was prevented. */\n _setRowSelection(indices) {\n const args = (indices || []).map(i => { return { item: this.datasource[i], index: i }; });\n const evt = new DataRowSelectChangeEvent({ selectedRows: args });\n this.dispatchEvent(evt);\n if (!evt.defaultPrevented) {\n let retval = evt.detail.selectedRows;\n if (!Utils.isArray(retval)) {\n retval = [];\n }\n this._doSetRowSelection(retval.map(i => (i?.index ?? -1)).filter(i => i >= 0));\n }\n }\n /** Merges the given `selectedRows` indices into `_gridState`/`state`. */\n _doSetRowSelection(selectedRows) {\n const selection = { selectedRows };\n this._mergeState(selection);\n }\n /**\n * Merges and synchronizes grid states (public vs private).\n * @param state Partial state to be merged\n */\n _mergeState(state = this.state) {\n state ??= {};\n // normalize selected rows into numbers\n const normalizedState = { selectedRows: (state.selectedRows || []).map((i) => typeof i === 'number' ? i : i.index) };\n const newState = this._gridState = Utils.extend({}, this._gridState, state, normalizedState);\n // does not trigger propertychange event (does not have to).\n this.state = Utils.extend(this.state ?? {}, newState);\n }\n /** Recomputes `_adaptedColumnMetadata` by projecting each {@link PacemDataColumnElement} item into a {@link DataColumnMetadata} and concatenating the plain `metadata` array after it. Debounced, since several column items/attributes typically change together. */\n _adaptColumnMetadata(items = this.items, metadata = this.metadata) {\n const output = Array.prototype.concat.apply((items || []).map(i => {\n const retval = {\n prop: i.field,\n // format: i.format,\n headCell: {\n name: i.label, cssClass: i.headcellCssClass || [], css: i.headcellCss || {}\n },\n dataCell: {\n format: i.format, cssClass: i.datacellCssClass || [], css: i.datacellCss || {}\n },\n hide: i.hide,\n isRescalable: i.resizable,\n isSortable: i.sortable,\n isTogglable: i.togglable,\n order: i.order,\n width: 1,\n };\n return retval;\n }), metadata || []);\n this._memoizer = {};\n this._adaptedColumnMetadata = output;\n }\n /** Looks up (and memoizes) a column's {@link DataColumnMetadata} by `prop`; bound from each generated head/data cell's `metadata` attribute. */\n _getColumnMetadata(prop) {\n return this._memoizer[prop] = this._memoizer[prop] || this._adaptedColumnMetadata.find(m => m.prop === prop);\n }\n /**\n * (Re)generates the grid's entire markup - the CSS grid-template-columns, one `${P}-headcell` and one\n * `${P}-datacell` per column (repeated per `datasource` row via a `${P}-repeater`), plus the optional\n * multi-select gutter column - and assigns it as `innerHTML` of the internal grid container.\n */\n _buildUpGrid(metadata) {\n const container = this._tableContainer;\n if (Utils.isNull(container)) {\n return;\n }\n if (Utils.isNullOrEmpty(metadata)) {\n container.innerHTML = '';\n return;\n }\n const options = this.options = Utils.extend({}, DataGridConsts.Defaults, this.options || {}), hasCommands = options.allowDelete || options.allowEdit || options.allowSelect, multiSelect = options.allowMultiSelect && hasCommands;\n let css = multiSelect ? 'auto ' : '', headcells = multiSelect ? `<div class=\"${PCSS}-headcell\"></div>` : '', datacells = multiSelect ? `<${P}-panel class=\"${PCSS}-datacell\" style=\"grid-column: 1;\" css=\"{{ {'grid-row': ^index+2} }}\"></${P}-panel>` : '', footcells = multiSelect ? `<div class=\"${PCSS}-footcell\"></div>` : '';\n // 1-based column index\n let colIndex = multiSelect ? 2 : 1;\n const colCount = multiSelect ? (metadata.length + 2) : (hasCommands ? (metadata.length + 1) : metadata.length);\n this._gridState.orderedColumns = metadata.sort((i, j) => ((i.order ?? 0) - (j.order ?? 0))).map(i => i.prop);\n let extraUi = '';\n for (let evtType of Components.PacemElement.emittedEventTypes) {\n extraUi += ` on-${evtType}=\":host._broadcastUiEvent(^item, ^index, $event)\"`;\n }\n // loop\n for (let c of metadata) {\n this._columnState[c.prop] = {\n hidden: c.hide\n };\n // css\n css += this._getColumnSize(c).replaceAll(' ', '') + ' ';\n // headcell\n headcells += headColumnHtml(c);\n // datacell\n datacells += dataColumnHtml(c, extraUi);\n // footcell\n // end-of-loop\n colIndex++;\n }\n datacells += `<${P}-panel class=\"${PCSS}-datarow\" css-class=\"{{ {'datarow-alt': ^index % 2 === 1, 'datarow-first': ^index === 0, 'datarow-last': ^index === (:host.datasource.length - 1), 'datarow-selected': :host._gridState.selectedRows.indexOf(^index) >= 0 } }}\" style=\"grid-column: 1 /span ${colCount};\" css=\"{{ {'grid-row': ^index+2} }}\"></${P}-panel>`;\n const html = `<${P}-repeater datasource=\"{{ :host.datasource }}\">\r\n<${P}-panel class=\"${PCSS}-datatable\" css=\"{{ {'grid-template-columns': :host._getColumnSizes(:host._columnState, '${css.trimEnd()}', :host._gridState) } }}\">\r\n ${headcells}\r\n <template>\r\n ${datacells}\r\n </template>\r\n ${footcells}\r\n</${P}-panel>`;\n container.innerHTML = html;\n }\n /** Patches the static `grid-template-columns` track list with any per-column overrides from `_columnState` (`auto` when hidden, a pixel width when rescaled). Bound as the grid container's `css['grid-template-columns']`. */\n _getColumnSizes(state = this._columnState, css, grid = this._gridState) {\n if (Utils.isNullOrEmpty(state)) {\n return css;\n }\n const split = css.split(' ');\n for (let prop in state) {\n const col = state[prop];\n const ndx = grid.orderedColumns.indexOf(prop);\n if (col.hidden) {\n split[ndx] = 'auto';\n }\n else if (col.pixelWidth > 0) {\n split[ndx] = col.pixelWidth + 'px';\n }\n }\n return split.join(' ');\n }\n /** Computes a column's initial CSS grid-template-columns track (`auto`, a flex `fr` unit, or a `minmax()`) from its `width`/`minPixelWidth`/`maxPixelWidth`. */\n _getColumnSize(c) {\n if (c.hide) {\n return 'auto';\n }\n const min = c.minPixelWidth, max = c.maxPixelWidth;\n if (max > 0 && min > 0) {\n return `minmax(${min}px, ${max}px)`;\n }\n else {\n const flexWidth = typeof c.width === 'number' ? (c.width + 'fr') : 'auto';\n if (min > 0) {\n return `minmax(${min}px, ${flexWidth})`;\n }\n if (max > 0) {\n return `minmax(${flexWidth}, ${max}px)`;\n }\n return flexWidth;\n }\n }\n //#endregion\n //#region events\n /** Relays a bubbled `CommandEvent` (e.g. from an autogenerated row-command button) as the grid's own `itemcommand`/`item<cmd>` events. */\n _onCommand(evt) {\n // DO NOT stop bubbling! Might be 'handy' in autogenerated forms...\n // Pacem.stopPropagationHandler(evt);\n // ...But might lead to unwanted behaviors in nested repeaters.\n // Thus include the 'originalEvent' in the outscoped one as a read-only property.\n // 'itemcommand' event fires first\n this.dispatchEvent(new Components.ItemCommandEvent(/* 'originalEvent' */ evt));\n // custom 'item<cmd>' event fires next\n this.dispatchEvent(new Components.CustomItemCommandEvent(/* 'originalEvent' */ evt));\n }\n /** Relays a UI event bubbled from a data cell as a {@link DataCellUIEvent} (`'datacell' + type`) on the grid, and toggles the row's selection on an un-prevented `click` while in `'row'` select mode. */\n _broadcastUiEvent(item, index, evt) {\n const evtType = evt.type.toLowerCase(), type = 'datacell' + evtType;\n const args = { dataitem: item, rowindex: index, datacell: evt.srcElement }, uiEvt = (evt instanceof MouseEvent || evt instanceof TouchEvent || evt instanceof KeyboardEvent) ? new DataCellUIEvent(type, args, evt) : new DataCellUIEvent(type, args);\n this.dispatchEvent(uiEvt);\n if (evtType === 'click' && !uiEvt.defaultPrevented) {\n const datacell = uiEvt.detail.datacell;\n const selectMode = datacell.metadata?.dataCell?.selectMode?.toLowerCase();\n switch (selectMode) {\n case 'cell':\n break;\n case 'row':\n this._broadcastSelectCommand(uiEvt.detail.rowindex);\n break;\n }\n }\n }\n /** Relays a head cell's {@link DataColumnSortEvent} up as the grid's own event, then - unless prevented - normalizes and applies the resulting sort into `_gridState.sort`. */\n _broadcastSortCommand(evt) {\n const sort = evt.detail;\n const event = new DataColumnSortEvent(sort);\n this.dispatchEvent(event);\n if (!event.defaultPrevented) {\n const sort2 = { column: '' };\n if (typeof event.detail.column === 'string') {\n sort2.column = event.detail.column;\n }\n if (typeof event.detail.dir === 'string') {\n sort2.dir = event.detail.dir === 'desc' ? 'desc' : 'asc';\n }\n this._gridState = Utils.extend({}, this._gridState, /* let it be manipulated on the \"other side\" */ { sort: sort2 });\n }\n }\n /** Relays a head cell's {@link DataColumnRescaleEvent} up as the grid's own event, then - unless prevented - stores the resulting pixel width into that column's `_columnState`. */\n _broadcastRescaleCommand(evt) {\n const rescale = evt.detail;\n const event = new DataColumnRescaleEvent(rescale);\n this.dispatchEvent(event);\n if (!event.defaultPrevented) {\n let width2 = rescale.width;\n if (typeof event.detail.width === 'number' && event.detail.width > 0) {\n width2 = event.detail.width;\n }\n const column = evt.srcElement.metadata;\n const newState = {};\n newState[column.prop] = { pixelWidth: width2 };\n this._columnState = Utils.extend({}, this._columnState, newState);\n }\n }\n /** Toggles `toggledRowIndex` in/out of the current row selection, honoring `options.allowMultiSelect`/`allowSelect` (logging a warning and doing nothing if selection isn't allowed at all), then applies it via `_setRowSelection`. */\n _broadcastSelectCommand(toggledRowIndex) {\n let actualRows = (this._gridState.selectedRows || []).slice(0);\n const ndx = actualRows.indexOf(toggledRowIndex);\n let trigger = true;\n if (ndx >= 0) {\n actualRows.splice(ndx, 1);\n }\n else {\n const options = this.options;\n if (options.allowMultiSelect) {\n actualRows.push(toggledRowIndex);\n }\n else if (options.allowSelect) {\n actualRows = [toggledRowIndex];\n }\n else {\n trigger = false;\n const msg = `Cannot select the row at index ${toggledRowIndex} since datagrid options do not allow any row selection.`;\n if (Utils.isNull(this.logger)) {\n console.warn(msg);\n }\n else {\n this.log(Logging.LogLevel.Warn, msg);\n }\n }\n }\n if (trigger) {\n this._setRowSelection(actualRows);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"options\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Json })\n], PacemDataGridElement.prototype, \"datasource\", void 0);\n__decorate([\n ViewChild('.' + PCSS + '-datagrid')\n], PacemDataGridElement.prototype, \"_tableContainer\", void 0);\n__decorate([\n Watch()\n], PacemDataGridElement.prototype, \"_adaptedColumnMetadata\", void 0);\n__decorate([\n Watch()\n], PacemDataGridElement.prototype, \"_columnState\", void 0);\n__decorate([\n Watch()\n], PacemDataGridElement.prototype, \"_gridState\", void 0);\n__decorate([\n Debounce()\n], PacemDataGridElement.prototype, \"_adaptColumnMetadata\", null);\nPacemDataGridElement = __decorate([\n CustomElement({ tagName: P + '-datagrid', shadow: false, template: `<div class=\"${PCSS}-datagrid\"></div><${P}-content></${P}-content>` })\n], PacemDataGridElement);\nexport { PacemDataGridElement };\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["__decorate","this","Components","Watch","PropertyConverters","Utils","Transformer","UI","UIComponents","ViewChild","P","CustomElement","Defaults","PCSS","avoidHandler","CommandEvent","CustomElementUtils","CommandEventName","AttributeChangeEventName","Debounce","ScaffoldingComponents","PropertyChangeEventName","Net","PacemEventTarget","UIPkgComponents","CoreUI","CustomUIEvent","Logging","DeepMerger"],"mappings":"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"}