@pacem/pacem 1.0.0-abel → 1.0.0-amaldi

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 +3 -3
  2. package/dist/browser/pacem-2d.js.map +0 -5
  3. package/dist/browser/pacem-2d.min.js +3 -3
  4. package/dist/browser/pacem-2d.min.js.map +0 -5
  5. package/dist/browser/pacem-3d.js +341 -341
  6. package/dist/browser/pacem-3d.js.map +1 -6
  7. package/dist/browser/pacem-3d.min.js +3 -3
  8. package/dist/browser/pacem-3d.min.js.map +1 -6
  9. package/dist/browser/pacem-charts.js +3 -3
  10. package/dist/browser/pacem-charts.js.map +0 -5
  11. package/dist/browser/pacem-charts.min.js +3 -3
  12. package/dist/browser/pacem-charts.min.js.map +0 -5
  13. package/dist/browser/pacem-cms.js +107 -107
  14. package/dist/browser/pacem-cms.js.map +1 -6
  15. package/dist/browser/pacem-cms.min.js +3 -3
  16. package/dist/browser/pacem-cms.min.js.map +1 -6
  17. package/dist/browser/pacem-core.js +21 -7
  18. package/dist/browser/pacem-core.js.map +1 -6
  19. package/dist/browser/pacem-core.min.js +4 -4
  20. package/dist/browser/pacem-core.min.js.map +1 -6
  21. package/dist/browser/pacem-foundation.js +3 -3
  22. package/dist/browser/pacem-foundation.js.map +0 -5
  23. package/dist/browser/pacem-foundation.min.js +3 -3
  24. package/dist/browser/pacem-foundation.min.js.map +0 -5
  25. package/dist/browser/pacem-fx.js +19 -19
  26. package/dist/browser/pacem-fx.js.map +1 -6
  27. package/dist/browser/pacem-fx.min.js +3 -3
  28. package/dist/browser/pacem-fx.min.js.map +1 -6
  29. package/dist/browser/pacem-logging.js +3 -3
  30. package/dist/browser/pacem-logging.js.map +0 -5
  31. package/dist/browser/pacem-logging.min.js +3 -3
  32. package/dist/browser/pacem-logging.min.js.map +0 -5
  33. package/dist/browser/pacem-maps.js +3 -3
  34. package/dist/browser/pacem-maps.js.map +0 -5
  35. package/dist/browser/pacem-maps.min.js +3 -3
  36. package/dist/browser/pacem-maps.min.js.map +0 -5
  37. package/dist/browser/pacem-media.js +3 -3
  38. package/dist/browser/pacem-media.js.map +0 -5
  39. package/dist/browser/pacem-media.min.js +3 -3
  40. package/dist/browser/pacem-media.min.js.map +0 -5
  41. package/dist/browser/pacem-networking.js +3 -3
  42. package/dist/browser/pacem-networking.js.map +0 -5
  43. package/dist/browser/pacem-networking.min.js +3 -3
  44. package/dist/browser/pacem-networking.min.js.map +0 -5
  45. package/dist/browser/pacem-numerical.js +3 -3
  46. package/dist/browser/pacem-numerical.js.map +0 -5
  47. package/dist/browser/pacem-numerical.min.js +3 -3
  48. package/dist/browser/pacem-numerical.min.js.map +0 -5
  49. package/dist/browser/pacem-plus.js +77 -77
  50. package/dist/browser/pacem-plus.js.map +1 -6
  51. package/dist/browser/pacem-plus.min.js +3 -3
  52. package/dist/browser/pacem-plus.min.js.map +1 -6
  53. package/dist/browser/pacem-scaffolding.js +11 -8
  54. package/dist/browser/pacem-scaffolding.js.map +1 -6
  55. package/dist/browser/pacem-scaffolding.min.js +4 -4
  56. package/dist/browser/pacem-scaffolding.min.js.map +1 -6
  57. package/dist/browser/pacem-ui.js +37 -26
  58. package/dist/browser/pacem-ui.js.map +1 -6
  59. package/dist/browser/pacem-ui.min.js +4 -4
  60. package/dist/browser/pacem-ui.min.js.map +1 -6
  61. package/dist/bundle/pacem.min.mjs +40 -38
  62. package/dist/bundle/pacem.mjs +58 -32
  63. package/dist/bundle/pacem.mjs.map +2 -7
  64. package/dist/typings/index.d.ts +5 -3
  65. package/dist/vscode.html-custom.json +4834 -0
  66. package/package.json +9 -8
@@ -1,6 +1 @@
1
- /**
2
- * @pacem/pacem v1.0.0-abel (https://js.pacem.it)
3
- * Copyright 2026 Pacem (https://pacem.it)
4
- * Licensed under Apache-2.0
5
- */
6
- {"version":3,"file":"pacem-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/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 }}\">\n <${P}-slideshow class=\"${PCSS}-carousel\" adapter=\"{{ ::adapter }}\" index=\"{{ :host.index, twoway }}\" on-load=\"this.focus()\">\n\n <template>\n\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 } }}\">\n <${P}-a href=\"{{ ^item.url }}\">\n <${P}-img disabled=\"{{ !:host.isCloseTo(^index, ::slideshow.index) }}\" class=\"${PCSS}-carousel-splash\" adapt=\"cover\" src=\"{{ ^item.image }}\"></${P}-img>\n <div class=\"${PCSS}-carousel-content\">\n <div class=\"${PCSS}-carousel-caption\">\n <h3><${P}-text text=\"{{ ^item.title }}\"></${P}-text></h3>\n <${P}-panel class=\"paragraph\" content=\"{{ ^item.content }}\"></${P}-panel>\n </div>\n </div>\n </${P}-a>\n </${P}-slide>\n\n </template>\n </${P}-slideshow>\n\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\"\ncss-class=\"{{ { '${PCSS}-gallery-previous': :host.isPrevious(^index, ::_slideshow.index), '${PCSS}-gallery-next': :host.isNext(^index, ::_slideshow.index), '${PCSS}-gallery-focus': ^index === ::_slideshow.index } }}\"\n>\n <${P}-img src=\"{{ ^item.${imageProperty} }}\" disabled=\"{{ !::_lightbox.show || !(:host.isCloseTo(^index, ::_slideshow.index) || ^index === ::_slideshow.index) }}\"\ncss=\"{{ {'visibility': (:host._poppingUp ? 'hidden' : ''), 'transition': (:host._poppingUp ? 'none' : '')} }}\" class=\"${PCSS}-gallery-splash\" adapt=\"contain\"></${P}-img>\n\n${captionTemplate}\n\n </${P}-slide>`;\n}\nfunction getDefaultCaptionTemplate(captionProperty = 'caption') {\n return `<${P}-panel hide=\"{{ $pacem.isNullOrEmpty(^item.${captionProperty}) }}\" class=\"${PCSS}-gallery-caption gallery-caption-default\">\n <${P}-span class=\"paragraph\" text=\"{{ ^item.${captionProperty} }}\"></${P}-span>\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\">\n <${P}-repeater>\n <${P}-slideshow adapter=\"{{ ::_adapter }}\" index=\"{{ :host.index, twoway }}\" hide=\"{{ !::_lightbox.show }}\">\n <${P}-template-proxy></${P}-template-proxy>\n </${P}-slideshow>\n </${P}-repeater>\n<${P}-adapter class=\"${PCSS}-gallery-adapter\"></${P}-adapter>\n</${P}-lightbox>\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 }}\">\n <${P}-form wrapper>\n <${P}-form logger=\"{{ :host.logger }}\" on-submit=\":host._onSubmit($event)\" readonly=\"{{ :host.readonly }}\" entity=\"{{ :host.state, twoway }}\" on-success=\":host._broadcast($event)\"\n on-fail=\":host._broadcast($event)\" success=\"{{ :host.success, twoway }}\" fail=\"{{ :host.fail, twoway }}\" autogenerate=\"{{ !$pacem.isNull($this.entity) }}\" metadata=\"{{ :host.metadata }}\"\n fetch-headers=\"{{ :host.fetchHeaders }}\" fetch-credentials=\"{{ :host.fetchCredentials }}\" sudden-validation=\"{{ :host.suddenValidation }}\"></${P}-form>\n </${P}-form>\n <${P}-fetch logger=\"{{ :host.logger }}\" method=\"{{ :host.method }}\" headers=\"{{ :host.fetchHeaders }}\" credentials=\"{{ :host.fetchCredentials }}\" autofetch=\"false\" url=\"{{ :host.action }}\"></${P}-fetch>\n <div class=\"${PCSS}-dialog-buttons ${PCSS}-buttonset buttons\" slot=\"bottom\">\n <div class=\"buttonset-left\">\n <${P}-button on-click=\":host._submit($event)\" css-class=\"{{ {'buttonset-last': :host.readonly} }}\" type=\"submit\"\n class=\"button primary button-size size-small\" disabled=\"{{ (:host.suddenValidation && !:host.readonly && !(::_form.valid && ::_form.dirty)) || ::_fetcher.fetching }}\">\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>\n <${P}-text text=\"{{ :host.okCaption || 'OK' }}\"></${P}-text>\n </${P}-button>\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>\n </div></div>\n <div class=\"${PCSS}-dialog-heading\" slot=\"top\">\n <${P}-content></${P}-content>\n </div>\n <div class=\"pos-absolute absolute-top absolute-right absolute-left absolute-bottom overflow-hidden ${PCSS}-inert display-flex flex-center flex-middle\">\n <${P}-loader type=\"{{ :host.loaderType }}\" class=\"loader-primary loader-smaller ${PCSS}-anim anim-pop\" active=\"{{ ::_fetcher.fetching }}\"></${P}-loader>\n </div>\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, 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 }}\">\n</${P}-fetch><${P}-input-search value=\"{{ :host.hint, twoway }}\"></${P}-input-search>\n<${P}-repeater datasource=\"{{ ::_fetch.result }}\">\n <${P}-content></${P}-content>\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 }}\"\non-${DataColumnSortEventName}=\":host._broadcastSortCommand($event)\"\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 }}\"\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 }}\">\n<${P}-panel class=\"${PCSS}-datatable\" css=\"{{ {'grid-template-columns': :host._getColumnSizes(:host._columnState, '${css.trimEnd()}', :host._gridState) } }}\">\n ${headcells}\n <template>\n ${datacells}\n </template>\n ${footcells}\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/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, 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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"}