@pacem/pacem-cms 1.0.0-bessel → 1.0.0-dirac
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/pacem-cms.js +118 -3
- package/dist/browser/pacem-cms.js.map +1 -1
- package/dist/browser/pacem-cms.min.js +1 -1
- package/dist/bundle/pacem-cms.min.mjs +1 -1
- package/dist/bundle/pacem-cms.mjs +17 -1
- package/dist/bundle/pacem-cms.mjs.map +2 -2
- package/dist/docs/pacem-cms.json +9325 -0
- package/dist/esm/index-iife.js +1 -1
- package/dist/esm/index.cms.js +1 -1
- package/dist/esm/index.components.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/types.js +9 -1
- package/package.json +2 -1
- package/typings/index.d.ts +178 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pacem-cms.js","sources":["../esm/scaffolding/types.js","../esm/scaffolding/element-picker.js","../esm/scaffolding/expression.js","../esm/widgets/types.js","../esm/widgets/helpers/data.js","../esm/widgets/helpers/fetcher.js","../esm/widgets/helpers/types.js","../esm/widgets/helpers/translator.js","../esm/widgets/helpers/clock.js","../esm/openapi/swagger-cms.js","../esm/widgets/helpers/apimanifest.js","../esm/widgets/ui/types.js","../esm/widgets/ui/text.js","../esm/widgets/ui/composite/picker.js","../esm/widgets/ui/composite/grid.js","../esm/widgets/scaffolding/datacolumns.js","../esm/widgets/ui/dataviz/datagrid.js","../esm/types.js","../esm/index-iife.js"],"sourcesContent":["import { PropertyChangeEventName, Utils, CustomElementUtils, P } from '@pacem/pacem-core';\n//namespace Pacem.Components.Cms {\n/** Function container proxy (used in metadata) */\nexport const Functions = {\n 'dismiss': (...args) => {\n for (let name of args || []) {\n delete Functions[name];\n }\n },\n 'handleExpressionValueChange': (evt, prop, entity) => {\n if (evt.detail.propertyName === 'value' && !Utils.isNull(entity)) {\n const value = evt.detail.currentValue;\n if (entity instanceof HTMLElement) {\n // handle the entity as an element and modify the attribute\n let attr = CustomElementUtils.camelToKebab(prop);\n if (Utils.isNullOrEmpty(value)) {\n entity.removeAttribute(attr);\n }\n else {\n entity.setAttribute(attr, value.toString());\n }\n }\n else {\n entity[prop] = value;\n }\n }\n }\n};\n/** Default metadata ('expression' field) 'type' factory. */\nexport const EXPRESSION_METADATA_TYPE = (host, hostRef = ':host', hostEntityRef = ':host.entity') => {\n const attrs = {}, meta = host.metadata, fns = Functions, fnKeys = [];\n attrs['value'] = `{{ ${hostEntityRef} instanceof HTMLElement && ${hostEntityRef}.getAttribute('${CustomElementUtils.camelToKebab(meta.prop)}') }}`;\n attrs['on-' + PropertyChangeEventName] = `Pacem.Components.Cms.Functions.handleExpressionValueChange($event, '${meta.prop}', ${hostEntityRef})`;\n attrs['converter'] = `{{ Pacem.CustomElementUtils.getWatchedProperty(${hostEntityRef}, '${meta.prop}').config.converter }}`;\n const tagName = P + '-expression';\n let extra = (meta.extra || {});\n // selector\n if (!Utils.isNullOrEmpty(extra.selector)) {\n attrs['selector'] = extra.selector;\n }\n // filters to the selector\n if (!Utils.isNullOrEmpty(extra.filter)) {\n switch (typeof extra.filter) {\n case 'string':\n attrs['filter'] = `{{ (e) => e.constructor.name === \"${extra.filter}\" || e.localName === \"${extra.filter.toLowerCase()}\" }}`;\n break;\n case 'function':\n const fnKey = 'fn' + Utils.uniqueCode();\n fns[fnKey] = extra.filter;\n attrs['filter'] = `{{ Pacem.Components.Cms.Functions.${fnKey}, once }}`;\n // tidy-up memento\n fnKeys.push(fnKey);\n break;\n }\n }\n // labeler\n if (typeof extra.labeler === 'function') {\n const fnKey = 'fn' + Utils.uniqueCode();\n fns[fnKey] = extra.labeler;\n attrs['labeler'] = `{{ Pacem.Components.Cms.Functions.${fnKey}, once }}`;\n // tidy-up memento\n fnKeys.push(fnKey);\n }\n if (fnKeys.length > 0) {\n // tidy-up\n attrs['on-unload'] = `{{ Pacem.Components.Cms.Functions.dismiss('${fnKeys.join('\\',\\'')}') }}`;\n }\n return { tagName: tagName, attrs: attrs };\n};\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Defaults, Watch, PropertyConverters, ViewChild, Debounce, Utils } from '@pacem/pacem-core';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\n//namespace Pacem.Components.Cms {\nexport class PacemElementPickerElementBase extends ScaffoldingComponents.Scaffolding.PacemBaseElement {\n}\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemElementPickerElementBase.prototype, \"selector\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemElementPickerElementBase.prototype, \"filter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemElementPickerElementBase.prototype, \"labeler\", void 0);\nlet PacemElementPickerElement = class PacemElementPickerElement extends PacemElementPickerElementBase {\n get inputFields() {\n return [this._select];\n }\n toggleReadonlyView(readonly) {\n this._select.readonly = readonly;\n }\n onChange(_) {\n return Utils.fromResult(this.value = this._select.value);\n }\n acceptValue(val) {\n this._select.value = val;\n }\n getViewValue(value) {\n return this._select.viewValue;\n }\n convertValueAttributeToProperty(attr) {\n return PropertyConverters.Element.convert(attr);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\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 'selector':\n case 'filter':\n case 'labeler':\n this._databind();\n break;\n }\n }\n }\n _databind() {\n const project = this.labeler || (e => {\n let label = e.constructor.name;\n if (e.id) {\n label += '#' + e.id;\n }\n return label;\n });\n const retval = [];\n document.querySelectorAll(this.selector || '[pacem]').forEach((e, i, arr) => {\n if ((Utils.isNull(this.filter) || this.filter(e) === true)\n // let' say 'id' is a must-have...\n && !Utils.isNullOrEmpty(e.id)) {\n retval.push({ element: e, label: project(e) });\n }\n });\n this._select.valueProperty = 'element';\n this._select.textProperty = 'label';\n this._select.datasource = retval;\n }\n};\n__decorate([\n ViewChild(P + '-select')\n], PacemElementPickerElement.prototype, \"_select\", void 0);\n__decorate([\n Debounce(50)\n], PacemElementPickerElement.prototype, \"_databind\", null);\nPacemElementPickerElement = __decorate([\n CustomElement({\n tagName: P + '-element-picker', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-select></${P}-select>`\n })\n], PacemElementPickerElement);\nexport { PacemElementPickerElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Debounce, Utils, CustomElementUtils, RepeaterItem } from '@pacem/pacem-core';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nimport { PacemElementPickerElementBase } from './element-picker';\n//namespace Pacem.Components.Cms {\nexport var ExpressionSource;\n(function (ExpressionSource) {\n ExpressionSource[\"Constant\"] = \"const\";\n ExpressionSource[\"PropertyReference\"] = \"property\";\n ExpressionSource[\"Expression\"] = \"expr\";\n})(ExpressionSource || (ExpressionSource = {}));\nlet PacemExpressionElement = class PacemExpressionElement extends PacemElementPickerElementBase {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'converter') {\n this._setFeedbackText(this.value);\n }\n else if (!first) {\n if (this._editing) {\n switch (name) {\n case '_source':\n switch (val) {\n case ExpressionSource.PropertyReference:\n this._picker.focus();\n break;\n default:\n this._editor.focus();\n break;\n }\n break;\n case '_propRef':\n if (!Utils.isNullOrEmpty(val)) {\n this._editor.focus();\n this._editor.value = '{{ #' + this._sourceRef.id + '.' + val + ' }}';\n }\n this.changeHandler(new Event('change'));\n break;\n }\n }\n }\n }\n get inputFields() {\n return [this._editor];\n }\n toggleReadonlyView(readonly) {\n if (readonly) {\n // ensure not editing\n this._editing = false;\n }\n }\n setPristine() {\n super.setPristine();\n this._editing = false;\n }\n onChange(_) {\n return Utils.fromResult(this.value = this._editor.value);\n }\n acceptValue(val) {\n this._view.textContent = val || '...';\n this._setFeedbackText(val);\n this._reverseStructure();\n if (val !== this._editor.value) {\n this._editor.value = val;\n }\n }\n _setFeedbackText(val = this.value) {\n const converter = this.converter;\n if (CustomElementUtils.isBindingAttribute(val) || typeof (converter && converter.convert) !== 'function') {\n this._eval.setAttribute('text', val);\n }\n else if (val === undefined) {\n this._eval.text = '<undefined>';\n }\n else {\n this._eval.text = converter.convert(val);\n }\n }\n getViewValue(value) {\n return value;\n }\n convertValueAttributeToProperty(attr) {\n return attr;\n }\n _reverseStructure() {\n let cleanup = () => {\n this._source = this._sourceRef = this._propRef = /*this.value =*/ undefined;\n };\n // dependencies?\n let expr = this.value;\n if (!Utils.isNullOrEmpty(expr)) {\n // setup the most likely form fields\n if (CustomElementUtils.isBindingAttribute(expr)) {\n const expression = CustomElementUtils.parseBindingAttribute(expr, this), deps = expression.dependencies;\n // complex or simple (one dependency) expression\n if (Utils.isNullOrEmpty(deps) || deps.length > 1 || RepeaterItem.isRepeaterItem(deps[0].element)) {\n this._source = ExpressionSource.Expression;\n }\n else {\n const dep = deps[0];\n this._source = ExpressionSource.PropertyReference;\n this._sourceRef = document.querySelector('#' + dep.element.id);\n this._propRef = dep.path;\n }\n }\n else {\n this._source = ExpressionSource.Constant;\n }\n //\n }\n else {\n cleanup();\n }\n }\n};\n__decorate([\n Watch({ emit: false })\n], PacemExpressionElement.prototype, \"converter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemExpressionElement.prototype, \"_editing\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemExpressionElement.prototype, \"_source\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemExpressionElement.prototype, \"_sourceRef\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemExpressionElement.prototype, \"_propRef\", void 0);\n__decorate([\n ViewChild(P + '-element-picker')\n], PacemExpressionElement.prototype, \"_picker\", void 0);\n__decorate([\n ViewChild(P + '-textarea')\n], PacemExpressionElement.prototype, \"_editor\", void 0);\n__decorate([\n ViewChild('span.' + PCSS + '-viewfinder')\n], PacemExpressionElement.prototype, \"_view\", void 0);\n__decorate([\n ViewChild(P + '-text')\n], PacemExpressionElement.prototype, \"_eval\", void 0);\n__decorate([\n Debounce(50)\n], PacemExpressionElement.prototype, \"_reverseStructure\", null);\nPacemExpressionElement = __decorate([\n CustomElement({\n tagName: P + '-expression', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-collapse class=\"${PCSS}-expression\" collapse=\"{{ !:host._editing }}\">\r\n <div class=\"expression-builder ${PCSS}-grid grid-tiny-rowgap grid-tiny-colgap ${PCSS}-pad pad-bottom-2\">\r\n <div class=\"${PCSS}-cell\">\r\n <${P}-select value=\"{{ :host._source, twoway }}\" class=\"display-block\">\r\n <${P}-data-item value=\"${ExpressionSource.Constant}\" label=\"constant value\"></${P}-data-item>\r\n <${P}-data-item value=\"${ExpressionSource.PropertyReference}\" label=\"property reference\"></${P}-data-item>\r\n <${P}-data-item value=\"${ExpressionSource.Expression}\" label=\"complex expression\"></${P}-data-item>\r\n </${P}-select>\r\n </div>\r\n\r\n <${P}-panel class=\"${PCSS}-cell cols-hd-6\" hide=\"{{ :host._source !== '${ExpressionSource.PropertyReference}' }}\">\r\n <${P}-element-picker value=\"{{ :host._sourceRef, twoway }}\" selector=\"{{ :host.selector }}\" filter=\"{{ :host.filter }}\" labeler=\"{{ :host.labeler }}\" class=\"display-block\"></${P}-element-picker>\r\n </${P}-panel>\r\n <${P}-panel class=\"${PCSS}-cell cols-hd-6\" hide=\"{{ :host._source !== '${ExpressionSource.PropertyReference}' }}\">\r\n <${P}-property-picker value=\"{{ :host._propRef, twoway }}\" disabled=\"{{ !:host._sourceRef }}\" target=\"{{ :host._sourceRef }}\" on-change=\"::_editor.focus()\" class=\"display-block\"></${P}-property-picker>\r\n </${P}-panel>\r\n\r\n <${P}-panel class=\"${PCSS}-cell\">\r\n <${P}-textarea class=\"display-block\" placeholder=\"{{ '{{ '+ (:host._source || '') +'... }}' }}\" change-policy=\"${ScaffoldingComponents.Scaffolding.ChangePolicy.Blur}\"></${P}-textarea>\r\n </${P}-panel>\r\n </div>\r\n</${P}-collapse>\r\n<div class=\"${PCSS}-fieldset\">\r\n <div class=\"fieldset-left\">\r\n <div class=\"${PCSS}-fieldgroup ${PCSS}-viewfinder\">\r\n <div class=\"text-truncate ${PCSS}-pad pad-x-1\"><span class=\"${PCSS}-viewfinder text-tech\">{{ :host.value || '...' }}</span></div>\r\n <${P}-panel class=\"fieldgroup-prepend\">\r\n <${P}-button class=\"flat edit ${PCSS}-pad pad-left-1\" on-click=\":host._editing = !:host._editing\" hide=\"{{ :host.readonly }}\"></${P}-button>\r\n </${P}-panel>\r\n <${P}-panel class=\"fieldgroup-append text-tech display-flex flex-middle flex-nowrap\" hide=\"{{ $pacem.isNullOrEmpty(:host.value) }}\">\r\n <i class=\"${PCSS}-icon text-primary\">keyboard_arrow_right</i>\r\n <${P}-text text=\"?\" class=\"bg-primary ${PCSS}-pad pad-left-1 pad-right-1 ${PCSS}-margin margin-right-1 text-truncate\" eval></${P}-text>\r\n </${P}-panel>\r\n </div>\r\n </div>\r\n</div>`\n })\n], PacemExpressionElement);\nexport { PacemExpressionElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Utils, CustomElementUtils, Components } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n//namespace Pacem.Components.Cms {\nconst DEFAULT_PERMISSION_METADATA = {\n props: [\n {\n prop: 'permissions',\n // child form-fields\n type: 'array',\n display: { name: 'Permissions' },\n props: {\n display: { cssClass: [PCSS + '-cell', PCSS + '-grid', 'grid-novgap', 'grid-tiny-colgap', 'grid-nospace'], name: 'Permission' },\n props: Array.prototype.concat.apply([\n {\n prop: 'claimType', type: 'string',\n display: { cssClass: [PCSS + '-cell', 'cols-hd-4', 'cols-lg-6', 'field-stretch', 'field-minimal'], name: 'Claim type' },\n validators: [{ type: 'required', errorMessage: '!' }]\n },\n {\n prop: 'claimValue', type: 'string',\n display: { cssClass: [PCSS + '-cell', 'cols-hd-4', 'cols-lg-6', 'field-stretch', 'field-minimal'], name: 'Claim value' },\n validators: [{ type: 'required', errorMessage: '!' }]\n },\n ], ['read', 'update', 'create', 'delete'].map((p, j) => {\n return {\n prop: p,\n type: 'boolean',\n display: { cssClass: [PCSS + '-cell', 'cols-hd-1', 'cols-3', 'field-minimal', PCSS + '-pad pad-left-2'], name: p.charAt(0).toUpperCase() + p.substr(1) }\n };\n }))\n }\n }\n ]\n};\nexport const DEFAULT_METADATA = {\n display: { name: 'Widget', cssClass: [PCSS + '-grid', 'grid-novgap', 'grid-tiny-colgap', 'grid-nospace'] },\n props: [\n { prop: 'tag', type: 'string', display: { name: 'Tag', cssClass: [PCSS + '-cell'] } }\n ]\n};\nfunction cellifyMetadata(p) {\n // ensure pacem-cell cssClass\n p.display = p.display || { name: p.prop, cssClass: [] };\n const css = p.display.cssClass = Utils.isArray(p.display.cssClass) && p.display.cssClass || [];\n css.push(PCSS + '-cell');\n}\nexport function gridifyMetadata(metadata) {\n var props = metadata && metadata.props || [];\n var display = metadata && metadata.display || { name: 'Element' };\n if (!Utils.isNull(display)) {\n const css = display.cssClass = display.cssClass || [];\n Array.prototype.push.apply(css, DEFAULT_METADATA.display.cssClass);\n }\n props.forEach(cellifyMetadata);\n return { display: display, props: props };\n}\nexport function buildWidgetMetadata(metadata) {\n var display = Utils.extend({}, DEFAULT_METADATA.display, metadata && metadata.display || {});\n var props = Utils.clone(DEFAULT_METADATA.props);\n Array.prototype.push.apply(props, (metadata && metadata.props || []).filter(p => {\n if (p.prop === 'tag') {\n return false;\n }\n cellifyMetadata(p);\n return true;\n }));\n return { display: display, props: props };\n}\nconst WIDGET_CSS_CLASS = PCSS + '-widget';\n/** Default metadata ('expression' field) 'extra' object. */\nexport const EXPRESSION_WIDGET_METADATA_EXTRA = {\n selector: '.' + WIDGET_CSS_CLASS,\n labeler: (e) => {\n if (!Utils.isNullOrEmpty(e.tag)) {\n return e.tag;\n }\n return (e.metadata && e.metadata.display && e.metadata.display.name || '') + '#' + e.id;\n }\n};\nexport class Widget {\n /**\n * Utility method for widget gathering.\n * @param predicate Predicate for filtering\n */\n static findAll(predicate) {\n return CustomElementUtils.findAll('.' + WIDGET_CSS_CLASS, (widget) => widget instanceof PacemWidgetElement && !Utils.isNullOrEmpty(widget.id) && (Utils.isNull(predicate) || predicate(widget)));\n }\n}\nlet PacemWidgetToolbarElement = class PacemWidgetToolbarElement extends Components.PacemElement {\n /** Gets the toolbar's edit button. */\n get editButton() {\n return this._btnEdit;\n }\n /** Gets the toolbar's permimssions button. */\n get permissionsButton() {\n return this._btnPerms;\n }\n /** Gets the toolbar's remove button. */\n get removeButton() {\n return this._btnRemove;\n }\n _edit(evt) {\n const form = this._proxy.dom.find(e => 'core' in e.attributes);\n form.open(this.target, true);\n form.metadata = this.target.metadata;\n // popout\n this._popoutJustInCase();\n }\n _editPermissions(evt) {\n const form = this._proxy.dom.find(e => 'permissions' in e.attributes);\n form.open(this.target);\n form.metadata = this.target.permissionMetadata;\n // popout\n this._popoutJustInCase();\n }\n _popoutJustInCase() {\n const balloon = CustomElementUtils.findAncestorOfType(this, UI.PacemBalloonElement);\n if (!Utils.isNullOrEmpty(balloon)) {\n balloon.popout();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemWidgetToolbarElement.prototype, \"target\", void 0);\n__decorate([\n ViewChild('.buttons > div')\n], PacemWidgetToolbarElement.prototype, \"_toolbar\", void 0);\n__decorate([\n ViewChild(P + '-button[edit]')\n], PacemWidgetToolbarElement.prototype, \"_btnEdit\", void 0);\n__decorate([\n ViewChild(P + '-button[permissions]')\n], PacemWidgetToolbarElement.prototype, \"_btnPerms\", void 0);\n__decorate([\n ViewChild(P + '-button[remove]')\n], PacemWidgetToolbarElement.prototype, \"_btnRemove\", void 0);\n__decorate([\n ViewChild(P + '-shell-proxy')\n], PacemWidgetToolbarElement.prototype, \"_proxy\", void 0);\nPacemWidgetToolbarElement = __decorate([\n CustomElement({\n tagName: P + '-widget-toolbar', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-span class=\"toolbar-text\" content=\"{{ '<i class="${PCSS}-icon">'+ (::target.metadata && ::target.metadata.display && ::target.metadata.display.icon || 'widgets') +'</i> '+ (::target.tag || (::target.metadata && ::target.metadata.display && ::target.metadata.display.name || ::target.localName) +'#'+ ::target.id) }}\"></${P}-span>\r\n<div class=\"buttons ${PCSS}-buttonset ${PCSS}-pad ${PCSS}-margin pad-0 margin-left-2\">\r\n <div class=\"buttonset-left\">\r\n <${P}-button edit class=\"button edit\" on-click=\":host._edit($event)\"></${P}-button>\r\n <${P}-button permissions class=\"button\" on-click=\":host._editPermissions($event)\" css-class=\"{{ {'button-success': ::target.permissions.length > 0} }}\" icon-glyph=\"verified_user\"></${P}-button>\r\n <${P}-button remove class=\"button button-danger delete\"></${P}-button>\r\n </div>\r\n<div>\r\n<${P}-shell-proxy>\r\n <${P}-modal-form core></${P}-modal-form>\r\n <${P}-modal-form permissions></${P}-modal-form>\r\n</${P}-shell-proxy>`\n })\n], PacemWidgetToolbarElement);\nexport { PacemWidgetToolbarElement };\nexport class PacemWidgetElement extends Components.PacemElement {\n constructor(metadata, role = 'widget') {\n super(role);\n this.permissionMetadata = DEFAULT_PERMISSION_METADATA;\n this.metadata = metadata;\n }\n connectedCallback() {\n super.connectedCallback();\n // ensure an explicit id for each widget\n if (Utils.isNullOrEmpty(this.id)) {\n this.id = 'wdg' + Utils.uniqueCode();\n }\n Utils.addClass(this, WIDGET_CSS_CLASS);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'editable':\n if (!val) {\n this._disposeBalloon();\n }\n else if (this.isReady) {\n this._ensureBalloon();\n }\n break;\n case 'editing':\n if (!Utils.isNull(this._balloon)) {\n this._balloon.disabled = !val;\n }\n (val ? Utils.addClass : Utils.removeClass).apply(this, [this, 'widget-' + name]);\n break;\n case 'metadata':\n this._assignIcon(val);\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._assignIcon();\n this._ensureBalloon();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n _assignIcon(val = this.metadata) {\n this.dataset['icon'] = (val && val.display && val.display.icon) || 'widgets';\n }\n _ensureBalloon() {\n if (Utils.isNull(this._balloon)) {\n const balloon = this._balloon = document.createElement(P + '-balloon');\n balloon.target = this;\n balloon.disabled = !this.editing;\n balloon.options = {\n behavior: UI.BalloonBehavior.Menu,\n trigger: UI.BalloonTrigger.Hover\n };\n // innerHTML before appending the balloon to the DOM.\n balloon.innerHTML = `<${P}-widget-toolbar target=\"{{ #${this.id} }}\"><${P}-widget-toolbar>`;\n // append to trigger connected/viewActivated callbacks\n CustomElementUtils.findAncestorShell(this).appendChild(balloon);\n }\n }\n _disposeBalloon() {\n if (!Utils.isNull(this._balloon)) {\n this._balloon.remove();\n this._balloon = null;\n }\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemWidgetElement.prototype, \"editing\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemWidgetElement.prototype, \"editable\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetElement.prototype, \"tag\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Json })\n], PacemWidgetElement.prototype, \"permissions\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemWidgetElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemWidgetElement.prototype, \"permissionMetadata\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { PacemWidgetElement, buildWidgetMetadata } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\n//namespace Pacem.Components.Cms {\nconst DATA_METADATA = {\n display: { icon: 'storage', name: 'Data', description: 'Data object widget.' },\n props: [\n {\n prop: 'model', type: EXPRESSION_METADATA_TYPE, display: {\n name: 'Model'\n }, extra: {\n selector: '.' + PCSS + '-widget'\n }\n }\n ]\n};\nlet PacemWidgetDataElement = class PacemWidgetDataElement extends PacemWidgetElement {\n constructor() {\n super(buildWidgetMetadata(DATA_METADATA));\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Json })\n], PacemWidgetDataElement.prototype, \"model\", void 0);\nPacemWidgetDataElement = __decorate([\n CustomElement({\n tagName: P + '-widget-data'\n })\n], PacemWidgetDataElement);\nexport { PacemWidgetDataElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Utils, CustomElementUtils, PacemEventTarget, Net } from '@pacem/pacem-core';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { buildWidgetMetadata, gridifyMetadata } from '../types';\nimport { PacemBearerWidgetElement, ACCESS_TOKEN_METADATA } from './types';\n//namespace Pacem.Components.Cms {\nconst FETCH_PARAMETER_METADATA = {\n props: [\n { prop: 'name', type: 'string', isReadOnly: true, display: { name: 'Name', cssClass: ['cols-md-4', 'cols-lg-3', 'cols-hd-2'] } },\n { prop: 'value', type: EXPRESSION_METADATA_TYPE, display: { name: 'Value', cssClass: ['cols-md-8', 'cols-lg-9', 'cols-hd-10'] } }\n ]\n};\nconst FETCH_METADATA = {\n display: {\n icon: 'wifi', name: 'Api Fetcher', description: 'Fetching widget that retrieves data from a REST endpoint.'\n }, props: [\n {\n prop: 'manifest', type: EXPRESSION_METADATA_TYPE, isComplexType: true, display: {\n name: 'Api Manifest'\n }, extra: {\n selector: P + '-widget-apimanifest'\n }, validators: [{ type: 'required', errorMessage: 'Api Manifest is a required field.' }]\n },\n {\n prop: 'endpoint', type: 'object', isComplexType: true, display: {\n name: 'Endpoint', ui: 'oneToMany'\n }, validators: [{ type: 'required', errorMessage: 'Api Manifest is a required field.' }],\n extra: {\n source: (manifest) => manifest.endpoints.map(e => Utils.extend(e, { 'fullPath': `[${e.method.toUpperCase()}] ${e.path}` })).sort(),\n textProperty: 'fullPath', valueProperty: 'fullPath',\n dependsOn: [{ prop: 'manifest', hide: true }]\n }\n },\n {\n prop: 'parameters', type: 'array', display: {\n name: 'Parameters'\n },\n props: gridifyMetadata(FETCH_PARAMETER_METADATA),\n extra: {\n lockItems: true,\n dependsOn: [{ prop: 'endpoint', hide: true }]\n }\n },\n ACCESS_TOKEN_METADATA\n ]\n};\nconst PARAMETER_TAGNAME = P + '-widget-fetch-parameter';\nlet PacemWidgetFetchParameterElement = class PacemWidgetFetchParameterElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val.first);\n if (name === 'value' && !Utils.isNull(this._fetcher)) {\n this._fetcher.fetch();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const fetcher = this._fetcher = CustomElementUtils.findAncestorOfType(this, PacemWidgetFetchElement);\n if (!Utils.isNull(this._fetcher) && !Utils.isNull(this.value)) {\n this._fetcher.fetch();\n }\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemWidgetFetchParameterElement.prototype, \"required\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetFetchParameterElement.prototype, \"name\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetFetchParameterElement.prototype, \"value\", void 0);\nPacemWidgetFetchParameterElement = __decorate([\n CustomElement({ tagName: PARAMETER_TAGNAME })\n], PacemWidgetFetchParameterElement);\nexport { PacemWidgetFetchParameterElement };\nlet PacemWidgetFetchElement = class PacemWidgetFetchElement extends PacemBearerWidgetElement {\n constructor() {\n super(buildWidgetMetadata(FETCH_METADATA));\n this._onerror = (e) => {\n this.failure = !(this.success = false);\n };\n this._onsuccess = (e) => {\n this.failure = !(this.success = true);\n };\n this._onresult = (e) => {\n this.result = e.detail;\n };\n }\n get _parameters() {\n return Array.from(this._itemsElement.children).filter(e => e.localName === PARAMETER_TAGNAME);\n }\n fetch() {\n const fetcher = this._fetcher, parameters = this._parameters || [], endpoint = this.endpoint;\n if (!Utils.isNull(endpoint)) {\n for (let param of endpoint.parameters) {\n if (param.required && Utils.isNull(parameters.find(p => p.name === param.name))) {\n // parameters not yet aligned with the ref endpoint:\n // not all the required parameters are attached => exit\n return;\n }\n }\n }\n // build-up fetch params\n const params = {};\n for (let parameter of parameters) {\n if (!Utils.isNullOrEmpty(parameter.value)) {\n params[parameter.name] = parameter.value;\n }\n else if (parameter.required) {\n // found an empty (required) parameter => exit\n return;\n }\n }\n fetcher.url = this.url;\n fetcher.method = this.method;\n fetcher.credentials = this.fetchCredentials;\n fetcher.headers = this.fetchHeaders;\n fetcher.parameters = params;\n return fetcher.fetch();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.fetch();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'endpoint' && !Utils.isNullOrEmpty(val)) {\n this._mergeEndpoint(val);\n }\n else\n switch (name) {\n case 'parameters':\n case 'fetchHeaders':\n case 'fetchCredentials':\n case 'url':\n case 'method':\n this.fetch();\n break;\n }\n }\n _mergeEndpoint(endpoint = this.endpoint) {\n this.url = this.manifest.baseUrl + endpoint.path;\n this.method = endpoint.method;\n this.fields = endpoint.response.fields;\n const itemsElement = this._itemsElement, parameters = this._parameters;\n // remove exceeding\n for (let j = parameters.length - 1; j >= 0; j--) {\n let item = parameters[j];\n let matching = endpoint.parameters.find(p => p.name === item.name);\n if (Utils.isNull(matching)) {\n item.remove();\n }\n }\n // add missing\n for (let param of endpoint.parameters) {\n let existing = parameters.find(p => p.name === param.name);\n if (Utils.isNull(existing)) {\n let item = existing = document.createElement(PARAMETER_TAGNAME);\n item.name = param.name;\n itemsElement.appendChild(item);\n }\n existing.required = param.required;\n }\n // for editing sake\n this.parameters = parameters;\n }\n};\n__decorate([\n Watch({ reflectBack: true, emit: true /* < due to metadata 'dependsOn' */, converter: PropertyConverters.Json })\n], PacemWidgetFetchElement.prototype, \"manifest\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: true /* < due to metadata 'dependsOn' */, converter: PropertyConverters.Json })\n], PacemWidgetFetchElement.prototype, \"endpoint\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: false, converter: PropertyConverters.String })\n], PacemWidgetFetchElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: false, converter: PropertyConverters.String })\n], PacemWidgetFetchElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: false, converter: PropertyConverters.Json })\n], PacemWidgetFetchElement.prototype, \"fields\", void 0);\n__decorate([\n Watch( /* just for editing sake */)\n], PacemWidgetFetchElement.prototype, \"parameters\", void 0);\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemWidgetFetchElement.prototype, \"result\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWidgetFetchElement.prototype, \"fetching\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWidgetFetchElement.prototype, \"success\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWidgetFetchElement.prototype, \"failure\", void 0);\n__decorate([\n ViewChild(P + '-fetch')\n], PacemWidgetFetchElement.prototype, \"_fetcher\", void 0);\n__decorate([\n ViewChild('div[hidden]')\n], PacemWidgetFetchElement.prototype, \"_itemsElement\", void 0);\nPacemWidgetFetchElement = __decorate([\n CustomElement({\n tagName: P + '-widget-fetch', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-fetch autofetch=\"false\" fetching=\"{{ :host.fetching, twoway }}\" debounce=\"100\"\r\non-${Net.FetchResultEventName}=\":host._onresult($event)\" on-${Net.FetchErrorEventName}=\":host._onerror($event)\" on-${Net.FetchSuccessEventName}=\":host._onsuccess($event)\"></${P}-fetch><div hidden><${P}-content></${P}-content></div>`\n })\n], PacemWidgetFetchElement);\nexport { PacemWidgetFetchElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, Utils } from '@pacem/pacem-core';\nimport { PacemWidgetElement, EXPRESSION_WIDGET_METADATA_EXTRA } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { PacemWidgetDataElement } from './data';\nimport { PacemWidgetFetchElement } from './fetcher';\n//namespace Pacem.Components.Cms {\nexport const FETCH_CREDENTIALS_METADATA = {\n prop: 'fetchCredentials', type: 'string', dataType: 'enumeration', display: { name: 'Fetch Credentials' }, extra: {\n enum: ['same-origin', 'omit', 'include']\n }\n};\nexport const ACCESS_TOKEN_METADATA = {\n prop: 'accessToken', type: EXPRESSION_METADATA_TYPE, display: { name: 'Access Token' },\n extra: Utils.extend({}, EXPRESSION_WIDGET_METADATA_EXTRA, { filter: (e) => e instanceof PacemWidgetDataElement || e instanceof PacemWidgetFetchElement })\n};\nexport class PacemBearerWidgetElement extends PacemWidgetElement {\n constructor() {\n super(...arguments);\n this.fetchCredentials = 'same-origin';\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'accessToken') {\n if (!Utils.isNullOrEmpty(val)) {\n this.fetchHeaders = { 'Authorization': 'Bearer ' + val };\n }\n else {\n this.fetchHeaders = {};\n }\n }\n }\n}\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemBearerWidgetElement.prototype, \"fetchCredentials\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemBearerWidgetElement.prototype, \"fetchHeaders\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemBearerWidgetElement.prototype, \"accessToken\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemBearerWidgetElement.prototype, \"fetching\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P } from '@pacem/pacem-core';\nimport { PacemWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\nlet PacemWidgetTranslatorElement = class PacemWidgetTranslatorElement extends PacemWidgetElement {\n};\nPacemWidgetTranslatorElement = __decorate([\n CustomElement({\n tagName: P + '-widget-translator'\n })\n], PacemWidgetTranslatorElement);\nexport { PacemWidgetTranslatorElement };\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 } from '@pacem/pacem-core';\nimport { PacemWidgetElement, buildWidgetMetadata } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\n//namespace Pacem.Components.Cms {\nconst DATA_METADATA = {\n display: { icon: 'timer', name: 'Clock', description: 'Timer widget.' },\n props: [\n {\n prop: 'interval', type: EXPRESSION_METADATA_TYPE, display: {\n name: 'Interval (msec)'\n }, extra: {\n selector: '.' + PCSS + '-widget', step: 1000\n },\n validators: [{\n type: 'range', errorMessage: 'Negative numbers not allowed', params: { min: 0 }\n }]\n }\n ]\n};\nlet PacemWidgetClockElement = class PacemWidgetClockElement extends PacemWidgetElement {\n constructor() {\n super(buildWidgetMetadata(DATA_METADATA));\n this.interval = 0;\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Number })\n], PacemWidgetClockElement.prototype, \"interval\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemWidgetClockElement.prototype, \"time\", void 0);\nPacemWidgetClockElement = __decorate([\n CustomElement({\n tagName: P + '-widget-clock', template: `<${P}-timer interval=\"{{ :host.interval }}\" on-tick=\"{{ :host.time = Date.now() }}\"></${P}-timer>`\n })\n], PacemWidgetClockElement);\nexport { PacemWidgetClockElement };\n","/// <reference path=\"./swagger-types.d.ts\" />\nimport { Scaffolding } from '@pacem/pacem-scaffolding';\n//namespace Pacem.Cms.OpenApi {\nconst BAG = 'pacem:metadatabag';\nexport class SwaggerCmsParser {\n constructor(_openApi = new Scaffolding.OpenApi.OpenApiParser()) {\n this._openApi = _openApi;\n this._cachedMetadataUrls = [];\n }\n async load(url, headers) {\n let api = await this._openApi.load(url, headers);\n if (api != null) {\n api[BAG] = {};\n // greedy load of datafields\n for (let endpoint of api.endpoints) {\n await this._enrichSchemas(api, endpoint, headers);\n }\n }\n return api;\n }\n async _enrichSchemas(api, endpoint, headers) {\n const response = endpoint.response;\n if (response && response.meta) {\n response.fields = await this._fetchMetadata(api, { name: response.fullType, schema: response.meta }, headers);\n }\n // parameters?\n const parameters = endpoint.parameters;\n for (let parameter of (parameters || [])) {\n if (parameter.meta && parameter.fullType) {\n let fields = await this._fetchMetadata(api, { name: parameter.fullType, schema: parameter.meta }, headers);\n parameter.fields = fields;\n }\n }\n }\n clearCache() {\n const cache = this.cache, keys = this._cachedMetadataUrls;\n if (cache) {\n for (let key of keys) {\n cache.removeProperty(key);\n }\n // clear keys\n keys.splice(0);\n }\n }\n /**\n *\n * @param def1\n * @param headers HTTP headers for API fetching\n */\n async _fetchMetadata(api, def0, headers) {\n let _fetch = async (def1) => {\n let cols = [];\n if (def1 && def1.name) {\n // short-circuit if already in the bag\n if (api[BAG][def1.name]) {\n return api[BAG][def1.name];\n }\n /* reserve a place for this type so that it gets not fetched again if aggressive recursion occurs */ api[BAG][def1.name] = cols;\n let meta = { props: [] }, metadataUrl;\n if (/^https?:\\/\\//.test(def1.name)) {\n // name is url? then it's the endpoint for type metadata, fetch it!\n metadataUrl = def1.name;\n }\n else {\n console.warn(`Swagger entity definition keys must appear in form of absolute url. Their response to a GET request needs to be the entity metadata itself.\\nNo other options are currently supported.`);\n return;\n }\n if (metadataUrl) {\n let retrieveFn = async () => {\n let response = await fetch(metadataUrl, { credentials: 'omit', mode: 'cors', headers: headers });\n if (response.ok) {\n return await response.json();\n }\n };\n if (this.cache) {\n // check for session cache\n meta = this.cache.getPropertyValue(metadataUrl);\n if (!meta) {\n // no cache available? then fetch...\n meta = await retrieveFn();\n this._cachedMetadataUrls.push(metadataUrl);\n this.cache.setPropertyValue(metadataUrl, meta, /* persist in session not on location */ false);\n }\n }\n else {\n // do fetch\n meta = await retrieveFn();\n }\n }\n let schema = def1.schema;\n for (let col in schema.properties) {\n let column = schema.properties[col], field = meta && meta.props.find(p => p.prop === col);\n let datafield = Object.assign({\n prop: col, type: column.type || 'text', props: undefined\n }, field || /* if there's no match, then read-only */ { isReadOnly: true });\n if (field) {\n let $ref = (column.items && column.items.$ref) || column.$ref;\n if ($ref) {\n let ref = Scaffolding.OpenApi.getOpenApiDefinition(api, $ref), key = ref.name;\n if (api[BAG][key]) {\n datafield.props = api[BAG][key];\n }\n else {\n // recursion here\n datafield.props = await _fetch(ref);\n }\n }\n }\n cols.push(datafield);\n }\n }\n return cols;\n };\n return await _fetch(def0);\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, Storage } from '@pacem/pacem-core';\nimport { buildWidgetMetadata } from '../types';\nimport { PacemBearerWidgetElement, ACCESS_TOKEN_METADATA } from './types';\nimport { SwaggerCmsParser } from '../../openapi/swagger-cms';\n//namespace Pacem.Components.Cms {\nconst APIMANIFEST_METADATA = {\n display: { icon: 'cloud_circle', name: 'Api Manifest', description: 'OpenApi parser for WebApi scaffolding.' },\n props: [\n {\n prop: 'url', type: 'text', display: {\n name: 'Url', description: 'Insert the url of the OpenApi json configuration.', cssClass: ['cols-lg-8'],\n watermark: 'https://domain.com/swagger/v1/swagger.json'\n },\n extra: { tooltip: true },\n validators: [{\n type: 'required', errorMessage: 'Url field is required.'\n }]\n },\n {\n prop: 'usecache', type: 'boolean', display: {\n name: 'Cache results', description: 'Whether to cache the manifest per-url.', cssClass: ['cols-lg-4'],\n ui: 'switcher'\n },\n extra: { tooltip: true }\n },\n ACCESS_TOKEN_METADATA\n ]\n};\nlet PacemWidgetApiManifestElement = class PacemWidgetApiManifestElement extends PacemBearerWidgetElement {\n constructor(_openapi = new SwaggerCmsParser(), _cache = new Storage()) {\n super(buildWidgetMetadata(APIMANIFEST_METADATA));\n this._openapi = _openapi;\n this._cache = _cache;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'url':\n case 'editing':\n case 'editable':\n this._scaffold();\n break;\n case 'usecache':\n this._openapi.cache = val ? this._cache : null;\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.usecache) {\n this._openapi.cache = this._cache;\n }\n this._scaffold();\n }\n _scaffold() {\n if (this.editing && this.editable && !Utils.isNullOrEmpty(this.url)) {\n this.fetching = true;\n this._openapi.load(this.url).then(s => {\n this.manifest = s;\n this.fetching = false;\n }, _ => {\n this.fetching = false;\n });\n }\n }\n};\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetApiManifestElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemWidgetApiManifestElement.prototype, \"usecache\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemWidgetApiManifestElement.prototype, \"manifest\", void 0);\nPacemWidgetApiManifestElement = __decorate([\n CustomElement({ tagName: P + '-widget-apimanifest' })\n], PacemWidgetApiManifestElement);\nexport { PacemWidgetApiManifestElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, Utils, CustomElementUtils, Logging, PCSS } from '@pacem/pacem-core';\nimport { PacemWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\nexport class PacemUiWidgetElement extends PacemWidgetElement {\n constructor(metadata, colspan = 1, role) {\n super(metadata, role);\n this.colspan = colspan;\n this.rowspan = 1;\n }\n // just a flag class\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, 'ui-widget ' + PCSS + '-cell cols-xs-start-1 cols-xs-12 rows-xs-start-auto');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'row':\n Utils.removeClass(this, `rows-start-${old + 1}`);\n Utils.addClass(this, `rows-start-${val + 1}`);\n break;\n case 'rowspan':\n Utils.removeClass(this, `rows-${old}`);\n Utils.addClass(this, `rows-${val}`);\n break;\n case 'column':\n Utils.removeClass(this, `cols-start-${old + 1}`);\n Utils.addClass(this, `cols-start-${val + 1}`);\n break;\n case 'colspan':\n Utils.removeClass(this, `cols-${old}`);\n Utils.addClass(this, `cols-${val}`);\n break;\n case 'borders':\n (this.borders ? Utils.addClass : Utils.removeClass).apply(this, [this, PCSS + '-border']);\n break;\n case 'corners':\n (this.borders ? Utils.addClass : Utils.removeClass).apply(this, [this, PCSS + '-corners']);\n break;\n }\n }\n get container() {\n return this._container;\n }\n /** @overridable */\n findContainer() {\n return CustomElementUtils.findAncestor(this, n => n instanceof PacemCompositeWidgetElement);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n let iter = this._container = this.findContainer();\n if (!Utils.isNull(iter)) {\n iter.register(this);\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._container)) {\n this._container.unregister(this);\n }\n super.disconnectedCallback();\n }\n}\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"column\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"row\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"colspan\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"rowspan\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemUiWidgetElement.prototype, \"borders\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemUiWidgetElement.prototype, \"corners\", void 0);\nexport const WidgetRegisterEventName = \"widgetregister\";\nexport const WidgetUnregisterEventName = \"widgetunregister\";\nexport const LayoutChangeEventName = \"layoutchange\";\nexport class WidgetRegisterEvent extends CustomEvent {\n constructor(item, eventInit) {\n super(WidgetRegisterEventName, Utils.extend(eventInit || {}, { detail: item }));\n }\n}\nexport class WidgetUnregisterEvent extends CustomEvent {\n constructor(item, eventInit) {\n super(WidgetUnregisterEventName, Utils.extend(eventInit || {}, { detail: item }));\n }\n}\nexport class PacemCompositeWidgetElement extends PacemUiWidgetElement {\n get itemsElement() {\n return this;\n }\n validate(item) {\n return item instanceof PacemUiWidgetElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n Utils.addClass(this.itemsElement, PCSS + '-items-element');\n }\n /**\n * Appends a child Element to this CompositeWidget's itemsElement.\n * @param item New child element\n */\n appendItem(item) {\n this.itemsElement.appendChild(item);\n }\n /**\n * Registers a new item among the items.\n * @param item {PacemUiWidgetElement} Item to be enrolled\n */\n register(item) {\n if (!this.validate(item)) {\n this.log(Logging.LogLevel.Debug, `${(item && item.localName)} element couldn't be registered in a ${this.localName} element.`);\n return false;\n }\n let retval = false;\n const items = this.items = this.items || [];\n if (Utils.isNullOrEmpty(items)) {\n this.items = [item];\n retval = true;\n }\n else if (items.indexOf(item) === -1) {\n items.push(item);\n retval = true;\n }\n //\n if (retval) {\n this.dispatchEvent(new WidgetRegisterEvent(item));\n }\n return retval;\n }\n /**\n * Removes an existing element from the items.\n * @param item {PacemUiWidgetElement} Item to be removed\n */\n unregister(item) {\n const items = this.items, ndx = !Utils.isNullOrEmpty(items) && items.indexOf(item);\n if (ndx >= 0) {\n let item = items.splice(ndx, 1);\n this.dispatchEvent(new WidgetUnregisterEvent(item[0]));\n return true;\n }\n return false;\n }\n}\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemCompositeWidgetElement.prototype, \"items\", void 0);\n// #endregion COMPOSITE\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, Defaults, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { buildWidgetMetadata, EXPRESSION_WIDGET_METADATA_EXTRA } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { PacemUiWidgetElement } from './types';\n//namespace Pacem.Components.Cms {\nconst TEXT_METADATA = buildWidgetMetadata({\n display: { icon: 'font_download', name: 'Text', description: 'Plain text widget.' },\n props: [{\n prop: 'text', type: EXPRESSION_METADATA_TYPE, display: { name: 'Text' }, extra: EXPRESSION_WIDGET_METADATA_EXTRA\n }]\n});\nlet PacemWidgetTextElement = class PacemWidgetTextElement extends PacemUiWidgetElement {\n constructor() {\n super(TEXT_METADATA);\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetTextElement.prototype, \"text\", void 0);\nPacemWidgetTextElement = __decorate([\n CustomElement({\n tagName: P + '-widget-text', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-text text=\"{{ :host.text }}\"></${P}-text>`\n })\n], PacemWidgetTextElement);\nexport { PacemWidgetTextElement };\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, Defaults, ViewChild } from '@pacem/pacem-core';\nimport { PacemCompositeWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\n/**\n * UI widget container that eases dragdrop-based enrollment into composite widgets.\n */\nlet PacemWidgetPickerElement = class PacemWidgetPickerElement extends PacemCompositeWidgetElement {\n register(item) {\n const retval = super.register(item);\n if (retval) {\n item.hide = true;\n }\n return retval;\n }\n};\n__decorate([\n ViewChild(P + '-drag-drop')\n], PacemWidgetPickerElement.prototype, \"_dragDrop\", void 0);\nPacemWidgetPickerElement = __decorate([\n CustomElement({\n tagName: P + '-widget-picker', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater datasource=\"{{ :host.items }}\">\r\n <template>\r\n <${P}-panel behaviors=\"{{ [::_dragDrop] }}\" class=\"${PCSS}-widget-itempicker display-flex flex-fill flex-middle flex-nowrap\">\r\n <i class=\"${PCSS}-icon flex-auto\" dragger>drag_indicator</i>\r\n <${P}-icon icon=\"{{ ^item.metadata.display.icon }}\" class=\"flex-auto ${PCSS}-margin margin-x-1\"></${P}-icon>\r\n <${P}-text text=\"{{ ^item.metadata.display.name }}\"></${P}-text>\r\n </${P}-panel>\r\n </template>\r\n</${P}-repeater>\r\n<${P}-drag-drop handle-selector=\"i.${PCSS}-icon[dragger]\"></${P}-drag-drop>\r\n<${P}-content></${P}-content>`\n })\n], PacemWidgetPickerElement);\nexport { PacemWidgetPickerElement };\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, Debounce, Utils, UI, PropertyChangeEventName } from '@pacem/pacem-core';\nimport { buildWidgetMetadata } from '../../types';\nimport { PacemCompositeWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\nfunction createSvgGridBox() {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.style.pointerEvents = 'none';\n svg.style.zIndex = '1000';\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'none');\n svg.setAttribute('class', 'grid-cell-wrapper');\n //svg.style.padding = '2px';\n //svg.style.boxSizing = 'border-box';\n svg.innerHTML = `<rect class=\"grid-cell\" width=\"100%\" height=\"100%\"></rect>`;\n return svg;\n}\nexport const GRID_COLUMNS = 12;\nconst FALLBACK_COLUMNS = GRID_COLUMNS;\nconst FALLBACK_ROWS = 1;\nconst GRID_METADATA = {\n display: {\n icon: 'grid_on',\n name: 'Grid',\n description: 'Composition Widget that lays out child-widgets in a grid container.'\n },\n props: [\n {\n prop: 'rows', type: 'int', display: {\n name: 'Rows', cssClass: ['cols-lg-4']\n }, validators: [\n { type: 'required', errorMessage: '' },\n {\n type: 'range', errorMessage: '', params: {\n min: 1, max: 24\n }\n }\n ]\n }, {\n prop: 'rowGap', type: 'int', display: {\n //ui: 'slider',\n name: 'Row gap', cssClass: ['cols-lg-4']\n }, validators: [\n // { type: 'required', errorMessage: '' },\n {\n type: 'range', errorMessage: '', params: {\n min: 0, max: 3, step: .25\n }\n }\n ]\n }, {\n prop: 'columnGap', type: 'int', display: {\n //ui: 'slider',\n name: 'Column gap', cssClass: ['cols-lg-4']\n }, validators: [\n // { type: 'required', errorMessage: '' },\n {\n type: 'range', errorMessage: '', params: {\n min: 0, max: 3, step: .25\n }\n }\n ]\n }\n ]\n};\nlet PacemGridWidgetElement = class PacemGridWidgetElement extends PacemCompositeWidgetElement {\n constructor() {\n super(buildWidgetMetadata(GRID_METADATA), FALLBACK_COLUMNS, \"grid\");\n this._widgetPropertyChange = (evt) => {\n if (evt.detail.propertyName === 'row' || evt.detail.propertyName === 'rowspan') {\n const widget = evt.target;\n this.rows = Math.max(this.rows, widget.row + widget.rowspan);\n }\n };\n this._dragDropHandler = (evt) => {\n const args = evt.detail, el = args.element;\n switch (evt.type) {\n case UI.DragDropEventType.Start:\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'auto'; });\n this._initState = {\n colspan: el.colspan,\n rowspan: el.rowspan,\n col: el.column,\n row: el.row\n };\n break;\n case UI.DragDropEventType.End:\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'none'; });\n break;\n case UI.DragDropEventType.Over:\n var dropTarget = args.target;\n var col = +dropTarget.style.gridColumnStart - 1;\n var row = +dropTarget.style.gridRowStart - 1;\n const farRight = col + this._initState.colspan, farBottom = row + this._initState.rowspan;\n // check overlap\n if (!this._intersects(el, col, row, el.colspan, el.rowspan)) {\n let fireLayoutChange = false;\n //\n if (farRight <= (this.columns || FALLBACK_COLUMNS)) {\n fireLayoutChange = el.column !== col;\n el.column = col; // + '/' + (col + this._initState.colspan);\n }\n if (farBottom <= (this.rows || FALLBACK_ROWS)) {\n fireLayoutChange = fireLayoutChange || (el.row !== row);\n el.row = row; // + '/' + (row + this._initState.rowspan);\n }\n if (fireLayoutChange) {\n // attributechange should suffice\n // this.dispatchLayoutChangeEvent();\n }\n }\n break;\n }\n ;\n };\n this._resizeHandler = (evt) => {\n switch (evt.type) {\n case UI.RescaleEventType.Start:\n Utils.addClass(evt.detail.element, PCSS + '-rescaling');\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'auto'; });\n break;\n case UI.RescaleEventType.End:\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'none'; });\n Utils.removeClass(evt.detail.element, PCSS + '-rescaling');\n break;\n case UI.RescaleEventType.Rescale:\n evt.preventDefault();\n // check pos\n const pos = { x: evt.clientX, y: evt.clientY }, handle = evt.detail.handle;\n const dropTarget = document.elementsFromPoint(pos.x, pos.y).find(e => this._dragDrop.dropTargets.indexOf(e) >= 0);\n if (dropTarget) {\n var col = +dropTarget.style.gridColumnStart;\n var row = +dropTarget.style.gridRowStart;\n const widget = evt.detail.element, startcol = widget.column + 1, startrow = widget.row + 1;\n const colspan = 1 + col - startcol, rowspan = 1 + row - startrow;\n if (!this._intersects(widget, widget.column, widget.row, colspan, rowspan)) {\n let fireLayoutChange = false;\n //\n if (col >= startcol && handle.endsWith('right')) {\n fireLayoutChange = widget.colspan !== colspan;\n widget.colspan = colspan;\n }\n if (row >= startrow && handle.startsWith('bottom')) {\n fireLayoutChange = fireLayoutChange || widget.rowspan !== rowspan;\n widget.rowspan = rowspan;\n }\n if (fireLayoutChange) {\n // attributechange should suffice\n // this.dispatchLayoutChangeEvent();\n }\n }\n }\n break;\n }\n };\n this._gridBoxes = [];\n }\n register(item) {\n let retval = super.register(item);\n if (retval) {\n const row = item.row || 0, column = item.column || 0, colspan = item.colspan || 2, rowspan = item.rowspan || 1;\n let foundspot = !this._intersects(item, column, row, colspan, rowspan);\n if (foundspot) {\n item.row = row;\n item.column = column;\n item.colspan = colspan;\n item.rowspan = rowspan;\n }\n else {\n if (!foundspot) {\n // select a spot or create a new row\n let check = (elasticOnColspan = false) => {\n let maxColIndex = this.columns - 1;\n if (!elasticOnColspan) {\n maxColIndex = maxColIndex - colspan + 1;\n }\n for (let j = 0; j < this.rows; j++) {\n for (let i = 0; i <= maxColIndex; i++) {\n if (!this._intersects(item, i, j, colspan, rowspan)) {\n item.column = i;\n item.row = j;\n item.colspan = Math.min(maxColIndex + 1 - i, colspan);\n item.rowspan = rowspan;\n foundspot = true;\n break;\n }\n }\n if (foundspot)\n break;\n }\n };\n check();\n if (!foundspot && colspan > 1) {\n // find first avail slot conceding less colspan\n check(true);\n }\n }\n // okay, surrender and create a new row\n if (!foundspot) {\n this.rows++;\n item.row = this.rows - 1;\n item.column = 0;\n }\n }\n //\n // item.behaviors.push(this._dragDrop, this._rescaler);\n item.behaviors = [this._dragDrop, this._rescaler];\n item.addEventListener(PropertyChangeEventName, this._widgetPropertyChange, false);\n }\n //\n return retval;\n }\n unregister(item) {\n let retval = super.unregister(item);\n if (retval) {\n item.removeEventListener(PropertyChangeEventName, this._widgetPropertyChange, false);\n const ndx = item.behaviors.indexOf(this._dragDrop);\n if (ndx >= 0)\n item.behaviors.splice(ndx, 1);\n const ndx1 = item.behaviors.indexOf(this._rescaler);\n if (ndx1 >= 0)\n item.behaviors.splice(ndx1, 1);\n }\n return retval;\n }\n _intersects(who, col, row, colspan, rowspan) {\n for (let item of this.items) {\n let widget = item;\n if (widget === who) {\n continue;\n }\n if ((widget.column < (col + colspan) && (widget.column + widget.colspan) > col)\n && (widget.row < (row + rowspan) && (widget.row + widget.rowspan) > row)) {\n return true;\n }\n }\n return false;\n }\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-grid');\n // drag-drop\n let dragDrop = this._dragDrop = document.createElement(P + '-drag-drop');\n let floater = document.createElement('div');\n document.body.appendChild(floater);\n dragDrop.floater = floater;\n dragDrop.mode = UI.DragDataMode.Alias;\n dragDrop.dropBehavior = UI.DropBehavior.None;\n dragDrop.addEventListener(UI.DragDropEventType.Start, this._dragDropHandler, false);\n dragDrop.addEventListener(UI.DragDropEventType.Over, this._dragDropHandler, false);\n dragDrop.addEventListener(UI.DragDropEventType.End, this._dragDropHandler, false);\n document.body.appendChild(dragDrop);\n // rescale\n let rescale = this._rescaler = document.createElement(P + '-rescale');\n rescale.handles = [UI.RescaleHandle.Right, UI.RescaleHandle.Bottom];\n rescale.addEventListener(UI.RescaleEventType.Start, this._resizeHandler, false);\n rescale.addEventListener(UI.RescaleEventType.Rescale, this._resizeHandler, false);\n rescale.addEventListener(UI.RescaleEventType.End, this._resizeHandler, false);\n document.body.appendChild(rescale);\n // editor\n // default configuration\n if (Utils.isNullOrEmpty(this.columns)) {\n this.columns = GRID_COLUMNS;\n }\n if (Utils.isNullOrEmpty(this.rows)) {\n this.rows = 1;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.adapt();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this.adapt();\n }\n disconnectedCallback() {\n var dragDrop = this._dragDrop, rescale = this._rescaler;\n if (!Utils.isNull(dragDrop)) {\n dragDrop.floater.remove();\n dragDrop.removeEventListener(UI.DragDropEventType.Start, this._dragDropHandler, false);\n dragDrop.removeEventListener(UI.DragDropEventType.Over, this._dragDropHandler, false);\n dragDrop.removeEventListener(UI.DragDropEventType.End, this._dragDropHandler, false);\n dragDrop.remove();\n this._dragDrop = null;\n }\n if (!Utils.isNull(rescale)) {\n rescale.removeEventListener(UI.RescaleEventType.Start, this._resizeHandler, false);\n rescale.removeEventListener(UI.RescaleEventType.Rescale, this._resizeHandler, false);\n rescale.removeEventListener(UI.RescaleEventType.End, this._resizeHandler, false);\n rescale.remove();\n this._rescaler = null;\n }\n super.disconnectedCallback();\n }\n _normalize(measure, defaultValue = 1) {\n if (typeof measure === 'string') {\n return measure;\n }\n else if (measure == null) {\n measure = defaultValue;\n }\n return this.unitPixels(measure) + 'px';\n }\n unitPixels(qty) {\n return qty * (this.unit || 8);\n }\n adapt() {\n this.style.marginTop = this.unitPixels(this.marginTop || 0) + 'px';\n this.style.marginBottom = this.unitPixels(this.marginBottom || 0) + 'px';\n //\n this.style.gridTemplateColumns = `repeat(${(this.columns || FALLBACK_COLUMNS)}, 1fr)`;\n //this.style.gridAutoRows = `minmax(${(this.minRowheight || 24)}, ${(this.rowheight || 'auto')})`;\n let minrowheight = this._normalize(this.minRowheight, 3), rowheight = this._normalize(this.rowheight || 'auto');\n this.style.gridTemplateRows = `repeat(${(this.rows || FALLBACK_ROWS)}, minmax(${minrowheight}, ${rowheight}))`;\n this.style.gridRowGap = this._normalize(this.rowGap, 1);\n this.style.gridColumnGap = this._normalize(this.columnGap, 1);\n //\n this._setGridLines();\n }\n _setGridLines() {\n var splice = 0;\n const editing = this.editing;\n if (editing) {\n const cols = this.columns || FALLBACK_COLUMNS, rows = this.rows || FALLBACK_ROWS, total = cols * rows;\n splice = total;\n for (let k = 0; k < total; k++) {\n while (this._gridBoxes.length <= k) {\n let s = createSvgGridBox();\n this.appendChild(s);\n this._gridBoxes.push(s);\n }\n let svg = this._gridBoxes[k];\n const i = k % cols, j = Math.floor(k / cols);\n svg.style.gridColumn = (i + 1).toString();\n svg.style.gridRow = (j + 1).toString();\n }\n }\n for (let svg of this._gridBoxes.splice(splice)) {\n svg.remove();\n }\n // behaviors to be synchronized\n if (!Utils.isNull(this._dragDrop) && !Utils.isNull(this._rescaler)) {\n this._dragDrop.disabled = this._rescaler.disabled\n = !editing;\n this._dragDrop.dropTargets = this._gridBoxes;\n }\n }\n};\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"unit\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"marginTop\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"marginBottom\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"columns\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"rows\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemGridWidgetElement.prototype, \"minRowheight\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemGridWidgetElement.prototype, \"rowheight\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"rowGap\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"columnGap\", void 0);\n__decorate([\n Debounce(100)\n], PacemGridWidgetElement.prototype, \"adapt\", null);\nPacemGridWidgetElement = __decorate([\n CustomElement({ tagName: P + '-widget-grid' })\n], PacemGridWidgetElement);\nexport { PacemGridWidgetElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Utils, Components, UI } from '@pacem/pacem-core';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nimport { Functions, EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { EXPRESSION_WIDGET_METADATA_EXTRA, gridifyMetadata } from '../types';\n//namespace Pacem.Components.Cms {\n/** Default metadata ('expression' field) 'type' factory. */\nexport const DATACOLUMNS_METADATA_TYPE = (host, hostRef = ':host', hostEntityRef = ':host.entity') => {\n const attrs = {}, meta = host.metadata, fns = Functions, fnKeys = [];\n attrs['properties'] = `{{ Pacem.CustomElementUtils.getWatchedProperty(${hostEntityRef}, '${meta.prop}').config.converter }}`;\n const tagName = P + '-datacolumns';\n let extra = (meta.extra || {});\n // properties\n if (!Utils.isNullOrEmpty(extra.properties)) {\n switch (typeof extra.properties) {\n case 'string':\n attrs['properties'] = `{{ ${hostEntityRef}.${extra.properties} }}`;\n break;\n case 'function':\n const fnKey = 'fn' + Utils.uniqueCode();\n fns[fnKey] = extra.properties;\n attrs['properties'] = `{{ Pacem.Components.Cms.Functions.${fnKey}(${hostRef}), once }}`;\n // tidy-up memento\n fnKeys.push(fnKey);\n break;\n }\n }\n if (fnKeys.length > 0) {\n // tidy-up\n attrs['on-unload'] = `{{ Pacem.Components.Cms.Functions.dismiss('${fnKeys.join('\\',\\'')}') }}`;\n }\n return { tagName: tagName, attrs: attrs };\n};\nconst DATACOLUMN_METADATA = {\n display: { name: 'Columns' },\n props: [\n { prop: 'header', type: 'string', display: { cssClass: ['form-minimal'], name: 'Header' } },\n {\n prop: 'content', type: EXPRESSION_METADATA_TYPE, display: { name: 'Content' },\n extra: EXPRESSION_WIDGET_METADATA_EXTRA\n }\n ]\n};\nlet PacemDataColumnElement = class PacemDataColumnElement extends Components.PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'content':\n this.contentExpression = val;\n break;\n case 'contentExpression':\n this.setAttribute('content', val || '');\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._form.entity = this;\n this._form.metadata = gridifyMetadata(DATACOLUMN_METADATA);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"header\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"content\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"contentExpression\", void 0);\n__decorate([\n ViewChild(P + '-form')\n], PacemDataColumnElement.prototype, \"_form\", void 0);\nPacemDataColumnElement = __decorate([\n CustomElement({\n tagName: P + '-widget-datacolumn', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-form class=\"panel-body\" autogenerate=\"true\"></${P}-form>`\n })\n], PacemDataColumnElement);\nexport { PacemDataColumnElement };\nlet PacemDataColumnsElement = class PacemDataColumnsElement extends ScaffoldingComponents.Scaffolding.PacemBaseElement {\n constructor() {\n super(...arguments);\n this._dropHandler = (e) => {\n this.changeHandler(e);\n };\n this._columnifyMetadata = (props = this.properties) => {\n return (props || []).map(p => {\n const header = typeof p.display?.name === 'function' ? /* NOT supported */ p.prop : (p.display?.name || p.prop);\n const c = {\n header,\n content: `{{ ^item.${p.prop} }}`\n };\n return c;\n }).sort((a, b) => a.header > b.header ? 1 : -1);\n };\n }\n get inputFields() {\n return [];\n }\n toggleReadonlyView(readonly) {\n // leave it all to the template bindings\n }\n onChange(evt) {\n return Utils.fromResult(this.value = this._repeater.datasource);\n }\n acceptValue(val) {\n if (!Utils.isNull(this._repeater)) {\n this._repeater.datasource = Utils.clone(val || []);\n }\n }\n getViewValue(value) {\n return /* dummy */ '[DataColumns]';\n }\n convertValueAttributeToProperty(attr) {\n return PropertyConverters.Json.convert(attr, this);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._propDragger.addEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n this._colDragger.addEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._propDragger)) {\n this._propDragger.removeEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n }\n if (!Utils.isNull(this._colDragger)) {\n this._colDragger.removeEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n ViewChild(`${P}-repeater[columns]`)\n], PacemDataColumnsElement.prototype, \"_repeater\", void 0);\n__decorate([\n ViewChild(`${P}-drag-drop[properties]`)\n], PacemDataColumnsElement.prototype, \"_propDragger\", void 0);\n__decorate([\n ViewChild(`${P}-drag-drop[columns]`)\n], PacemDataColumnsElement.prototype, \"_colDragger\", void 0);\n__decorate([\n ViewChild('div[drop-target]')\n], PacemDataColumnsElement.prototype, \"_dropTarget\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemDataColumnsElement.prototype, \"properties\", void 0);\nPacemDataColumnsElement = __decorate([\n CustomElement({\n tagName: P + '-widget-datacolumns', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${PCSS}-datacolumns\">\r\n <div class=\"datacolumns-main display-flex flex-fill\">\r\n\r\n <${P}-drag-drop mode=\"${UI.DragDataMode.Alias}\" disabled=\"{{ :host.readonly }}\" handle-selector=\"*[handle]\"\r\n drop-behavior=\"${UI.DropBehavior.InsertChild}\" drop-targets=\"{{ [::_dropTarget] }}\" columns></${P}-drag-drop>\r\n <${P}-repeater class=\"display-flex flex-fill\" columns>\r\n <!-- columns -->\r\n <div class=\"display-flex flex-nowrap\" drop-target>\r\n <template>\r\n <${P}-panel behaviors=\"{{ [::_colDragger] }}\">\r\n <div class=\"${PCSS}-panel panel-side-left side-auto\">\r\n <div class=\"panel-side\">\r\n <${P}-button class=\"display-block button-flat icon-glyph-small\" icon-glyph=\"drag_indicator\" handle></${P}-button>\r\n <${P}-button class=\"display-block button-flat icon-glyph-small\" on-click=\":host.value.splice(^index, 1)\" icon-glyph=\"clear\"></${P}-button>\r\n </div>\r\n <div class=\"panel-heading\">\r\n <${P}-text text=\"{{ ^item.header }}\"></${P}-text>\r\n </div>\r\n <${P}-widget-datacolumn class=\"panel-body\" header=\"{{ ^item.header, twoway }}\" content-expression=\"{{ ^item.content, twoway }}\"></${P}-widget-datacolumn>\r\n </div>\r\n </${P}-panel>\r\n </template>\r\n </div>\r\n </${P}-repeater>\r\n\r\n </div>\r\n <${P}-panel class=\"datacolumns-props\" hide=\"{{ :host.readonly }}\">\r\n <${P}-drag-drop mode=\"${UI.DragDataMode.Copy}\" disabled=\"{{ :host.readonly }}\" handle-selector=\"*[handle]\"\r\n drop-behavior=\"${UI.DropBehavior.InsertChild}\" drop-targets=\"{{ [::_dropTarget] }}\" properties></${P}-drag-drop>\r\n <${P}-repeater datasource=\"{{ :host._columnifyMetadata(:host.properties) }}\">\r\n <!-- properties -->\r\n <template>\r\n <${P}-panel behaviors=\"{{ [::_propDragger] }}\" class=\"${PCSS}-panel panel-side-left side-auto panel-primary panel-filled ${PCSS}-margin margin-bottom-1\">\r\n <div class=\"panel-side\">\r\n <${P}-button class=\"display-block button-flat icon-glyph-small\" icon-glyph=\"drag_indicator\" handle></${P}-button>\r\n </div>\r\n <div class=\"text-truncate panel-body\">\r\n <${P}-span text=\"{{ ^item.header }}\"></${P}-span>\r\n </div>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n </${P}-panel>\r\n</div>`\n })\n], PacemDataColumnsElement);\nexport { PacemDataColumnsElement };\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, ViewChild, Utils, Components } from '@pacem/pacem-core';\nimport { EXPRESSION_METADATA_TYPE } from '../../../scaffolding/types';\nimport { EXPRESSION_WIDGET_METADATA_EXTRA, buildWidgetMetadata, gridifyMetadata } from '../../types';\nimport { PacemWidgetDataElement } from '../../helpers/data';\nimport { PacemWidgetFetchElement } from '../../helpers/fetcher';\nimport { DATACOLUMNS_METADATA_TYPE } from '../../scaffolding/datacolumns';\nimport { PacemUiWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\nconst DATACOLUMN_METADATA = {\n display: { name: 'DataColumn' },\n props: [\n { prop: \"header\", type: \"string\", display: { name: \"Header\" } },\n { prop: \"content\", type: EXPRESSION_METADATA_TYPE, display: { name: \"Content\" }, extra: EXPRESSION_WIDGET_METADATA_EXTRA },\n ]\n};\nconst DATAGRID_METADATA = buildWidgetMetadata({\n display: { icon: 'table_chart', name: 'DataGrid', description: 'DataGrid widget.' },\n props: [{\n prop: 'datasource', type: EXPRESSION_METADATA_TYPE, display: { name: 'Datasource' },\n extra: Utils.extend({}, EXPRESSION_WIDGET_METADATA_EXTRA, { filter: (e) => e instanceof PacemWidgetDataElement || e instanceof PacemWidgetFetchElement })\n },\n {\n prop: 'columns', type: DATACOLUMNS_METADATA_TYPE, display: { name: 'Columns' },\n // this will include 'datasource' as argument in the oneToMany source fn\n extra: { properties: 'datarowMetadata' },\n props: gridifyMetadata(DATACOLUMN_METADATA)\n }]\n});\nconst DATAGRID_HEADING_SEPARATOR = 'pacem-widget-datagrid-heading';\nfunction gridify(columns = []) {\n var output = '';\n for (let column of columns || []) {\n // if empty then 1fr\n const col = column.width || 1;\n if (typeof col === 'number') {\n output += col + 'fr ';\n }\n else {\n output += 'auto ';\n }\n }\n return output;\n}\nfunction datagridFragments(columns = []) {\n const fragHeading = document.createDocumentFragment(), fragBody = document.createDocumentFragment();\n let j = 1;\n for (let col of columns) {\n // heading\n const headcell = document.createElement('div');\n headcell.classList.add(PCSS + '-headcell');\n headcell.textContent = col.header;\n fragHeading.appendChild(headcell);\n // body\n const datacell = new Components.PacemSpanElement();\n datacell.classList.add(PCSS + '-datacell', 'datacell-corners');\n datacell.style.gridColumn = j.toString();\n datacell.setAttribute('css', \"{{ {'grid-row': ^index+2} }}\");\n datacell.setAttribute('content', col.content);\n fragBody.appendChild(datacell);\n j++;\n }\n const datarow = new Components.PacemPanelElement();\n datarow.classList.add(PCSS + '-datarow');\n datarow.setAttribute('css', \"{{ {'grid-row': ^index+2} }}\");\n datarow.setAttribute('css-class', \"{{ {'datarow-alt': ^index % 2 === 1} }}\");\n datarow.style.gridColumn = \"1/\" + (columns.length + 1);\n fragBody.appendChild(datarow);\n return { head: fragHeading, body: fragBody };\n}\nfunction datagridInnerHTML(id, columns = []) {\n const { head, body } = datagridFragments(columns);\n const head0 = document.createElement('div');\n head0.appendChild(head);\n const body0 = document.createElement('div');\n body0.appendChild(body);\n return `<${P}-repeater datasource=\"{{ #${id}.datasource }}\">\r\n <div class=\"${PCSS}-datatable\" style=\"grid-template-columns: ${gridify(columns)}\">\r\n ${head0.innerHTML}\r\n <template>${body0.innerHTML}</template>\r\n</div></${P}-repeater>`;\n}\nlet PacemWidgetDataGridElement = class PacemWidgetDataGridElement extends PacemUiWidgetElement {\n constructor() {\n super(DATAGRID_METADATA);\n this.columns = [];\n this.datasource = [];\n this.datarowMetadata = [];\n this._builtUponDatasource = false;\n }\n _gridify(columns = this.columns) {\n var output = '';\n for (let column of columns || []) {\n // if empty then 1fr\n const col = column.width || 1;\n if (typeof col === 'number') {\n output += col + 'fr ';\n }\n else {\n output += 'auto ';\n }\n }\n return output;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'columns':\n /*\n *\n * TODO: manage columns separately!\n * Create an ad-hoc editor/formfield and a dedicated form\n *\n * */\n this.innerHTML = datagridInnerHTML(this.id, val);\n break;\n case 'datasource':\n this._extractMetadataJustInCase(val);\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.innerHTML = datagridInnerHTML(this.id, this.columns);\n }\n _seekArray(ds) {\n if (Utils.isArray(ds)) {\n return ds;\n }\n if (typeof ds === 'object') {\n for (let prop in ds) {\n const arr = this._seekArray(ds[prop]);\n if (!Utils.isNull(arr)) {\n return arr;\n }\n }\n }\n return null;\n }\n _extractMetadataJustInCase(ds = this.datasource) {\n if ((Utils.isNullOrEmpty(this.datarowMetadata) || this._builtUponDatasource) && !Utils.isNullOrEmpty(ds)) {\n const arr = this._seekArray(ds);\n if (!Utils.isNullOrEmpty(arr)) {\n const props = [];\n const item = arr[0];\n for (let prop in item) {\n props.push({ prop, type: typeof item[prop] });\n }\n this.datarowMetadata = props;\n this._builtUponDatasource = true;\n }\n }\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Json })\n], PacemWidgetDataGridElement.prototype, \"columns\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemWidgetDataGridElement.prototype, \"datasource\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemWidgetDataGridElement.prototype, \"datarowMetadata\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-datatable`)\n], PacemWidgetDataGridElement.prototype, \"_datatable\", void 0);\n__decorate([\n ViewChild('template')\n], PacemWidgetDataGridElement.prototype, \"_template\", void 0);\n__decorate([\n ViewChild(P + '-repeater')\n], PacemWidgetDataGridElement.prototype, \"_repeater\", void 0);\nPacemWidgetDataGridElement = __decorate([\n CustomElement({\n tagName: P + '-widget-datagrid'\n })\n], PacemWidgetDataGridElement);\nexport { PacemWidgetDataGridElement };\n","import { Utils } from '@pacem/pacem-core';\nexport const PermissionEditEventName = 'permissionedit';\nexport class PermissionEditEvent extends CustomEvent {\n constructor(permissible) {\n super(PermissionEditEventName, { detail: permissible, cancelable: false, bubbles: true });\n }\n}\nexport class Permissible {\n static canEdit(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.update); }\n static canRead(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.read); }\n static canAdd(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.create); }\n static canDelete(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.delete); }\n static canTranslate(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.translate); }\n static _canDoSomethingToResource(claims, resource, predicate) {\n if (Utils.isNullOrEmpty(claims) || Utils.isNull(resource)) {\n return false;\n }\n // if no permissions are set, then you're free to go!\n var editable = true;\n if (resource.permissions && resource.permissions.length > 0) {\n // check correspondence otherwise\n editable = false;\n for (let permission of resource.permissions) {\n if (predicate(permission) && claims[permission.claimType] && claims[permission.claimType].indexOf(permission.claimValue) >= 0) {\n return true;\n }\n }\n }\n // return\n return editable;\n }\n}\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["Utils","CustomElementUtils","PropertyChangeEventName","P","__decorate","this","ScaffoldingComponents","Watch","PropertyConverters","ViewChild","Debounce","CustomElement","Defaults","RepeaterItem","PCSS","UIComponents","Components","DATA_METADATA","PacemEventTarget","Net","Scaffolding","Storage","Logging","UI","DATACOLUMN_METADATA","DeepMerger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pacem-cms.js","sources":["../esm/scaffolding/types.js","../esm/scaffolding/element-picker.js","../esm/scaffolding/expression.js","../esm/widgets/types.js","../esm/widgets/helpers/data.js","../esm/widgets/helpers/fetcher.js","../esm/widgets/helpers/types.js","../esm/widgets/helpers/translator.js","../esm/widgets/helpers/clock.js","../esm/openapi/swagger-cms.js","../esm/widgets/helpers/apimanifest.js","../esm/widgets/ui/types.js","../esm/widgets/ui/text.js","../esm/widgets/ui/composite/picker.js","../esm/widgets/ui/composite/grid.js","../esm/widgets/scaffolding/datacolumns.js","../esm/widgets/ui/dataviz/datagrid.js","../esm/types.js","../esm/index-iife.js"],"sourcesContent":["import { PropertyChangeEventName, Utils, CustomElementUtils, P } from '@pacem/pacem-core';\n//namespace Pacem.Components.Cms {\n/** Function container proxy (used in metadata) */\nexport const Functions = {\n 'dismiss': (...args) => {\n for (let name of args || []) {\n delete Functions[name];\n }\n },\n 'handleExpressionValueChange': (evt, prop, entity) => {\n if (evt.detail.propertyName === 'value' && !Utils.isNull(entity)) {\n const value = evt.detail.currentValue;\n if (entity instanceof HTMLElement) {\n // handle the entity as an element and modify the attribute\n let attr = CustomElementUtils.camelToKebab(prop);\n if (Utils.isNullOrEmpty(value)) {\n entity.removeAttribute(attr);\n }\n else {\n entity.setAttribute(attr, value.toString());\n }\n }\n else {\n entity[prop] = value;\n }\n }\n }\n};\n/**\n * Default metadata ('expression' field) 'type' factory: renders a `${P}-expression` field bound to the\n * given entity's `prop` attribute (or, for plain objects, the property itself), relaying value changes back\n * through {@link Functions.handleExpressionValueChange} and honoring the field's `extra.selector`/`filter`/`labeler`.\n * @param host The form field element requesting the markup.\n * @param hostRef Binding-expression reference to `host` (defaults to `:host`).\n * @param hostEntityRef Binding-expression reference to `host.entity` (defaults to `:host.entity`).\n */\nexport const EXPRESSION_METADATA_TYPE = (host, hostRef = ':host', hostEntityRef = ':host.entity') => {\n const attrs = {}, meta = host.metadata, fns = Functions, fnKeys = [];\n attrs['value'] = `{{ ${hostEntityRef} instanceof HTMLElement && ${hostEntityRef}.getAttribute('${CustomElementUtils.camelToKebab(meta.prop)}') }}`;\n attrs['on-' + PropertyChangeEventName] = `Pacem.Components.Cms.Functions.handleExpressionValueChange($event, '${meta.prop}', ${hostEntityRef})`;\n attrs['converter'] = `{{ Pacem.CustomElementUtils.getWatchedProperty(${hostEntityRef}, '${meta.prop}').config.converter }}`;\n const tagName = P + '-expression';\n let extra = (meta.extra || {});\n // selector\n if (!Utils.isNullOrEmpty(extra.selector)) {\n attrs['selector'] = extra.selector;\n }\n // filters to the selector\n if (!Utils.isNullOrEmpty(extra.filter)) {\n switch (typeof extra.filter) {\n case 'string':\n attrs['filter'] = `{{ (e) => e.constructor.name === \"${extra.filter}\" || e.localName === \"${extra.filter.toLowerCase()}\" }}`;\n break;\n case 'function':\n const fnKey = 'fn' + Utils.uniqueCode();\n fns[fnKey] = extra.filter;\n attrs['filter'] = `{{ Pacem.Components.Cms.Functions.${fnKey}, once }}`;\n // tidy-up memento\n fnKeys.push(fnKey);\n break;\n }\n }\n // labeler\n if (typeof extra.labeler === 'function') {\n const fnKey = 'fn' + Utils.uniqueCode();\n fns[fnKey] = extra.labeler;\n attrs['labeler'] = `{{ Pacem.Components.Cms.Functions.${fnKey}, once }}`;\n // tidy-up memento\n fnKeys.push(fnKey);\n }\n if (fnKeys.length > 0) {\n // tidy-up\n attrs['on-unload'] = `{{ Pacem.Components.Cms.Functions.dismiss('${fnKeys.join('\\',\\'')}') }}`;\n }\n return { tagName: tagName, attrs: attrs };\n};\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Defaults, Watch, PropertyConverters, ViewChild, Debounce, Utils } from '@pacem/pacem-core';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\n//namespace Pacem.Components.Cms {\n/**\n * Base class for form fields that let the user pick an `Element` from the current document, filtered by\n * `selector`/`filter` and displayed through `labeler`. See {@link PacemElementPickerElement} for the concrete\n * `${P}-select`-backed implementation.\n */\nexport class PacemElementPickerElementBase extends ScaffoldingComponents.Scaffolding.PacemBaseElement {\n}\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemElementPickerElementBase.prototype, \"selector\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemElementPickerElementBase.prototype, \"filter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemElementPickerElementBase.prototype, \"labeler\", void 0);\n/** Form field for picking an `Element` (identified by its `id`) among those matching `selector`/`filter`, listed in a `${P}-select`. */\nlet PacemElementPickerElement = class PacemElementPickerElement extends PacemElementPickerElementBase {\n get inputFields() {\n return [this._select];\n }\n toggleReadonlyView(readonly) {\n this._select.readonly = readonly;\n }\n onChange(_) {\n return Utils.fromResult(this.value = this._select.value);\n }\n acceptValue(val) {\n this._select.value = val;\n }\n getViewValue(value) {\n return this._select.viewValue;\n }\n convertValueAttributeToProperty(attr) {\n return PropertyConverters.Element.convert(attr);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\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 'selector':\n case 'filter':\n case 'labeler':\n this._databind();\n break;\n }\n }\n }\n _databind() {\n const project = this.labeler || (e => {\n let label = e.constructor.name;\n if (e.id) {\n label += '#' + e.id;\n }\n return label;\n });\n const retval = [];\n document.querySelectorAll(this.selector || '[pacem]').forEach((e, i, arr) => {\n if ((Utils.isNull(this.filter) || this.filter(e) === true)\n // let' say 'id' is a must-have...\n && !Utils.isNullOrEmpty(e.id)) {\n retval.push({ element: e, label: project(e) });\n }\n });\n this._select.valueProperty = 'element';\n this._select.textProperty = 'label';\n this._select.datasource = retval;\n }\n};\n__decorate([\n ViewChild(P + '-select')\n], PacemElementPickerElement.prototype, \"_select\", void 0);\n__decorate([\n Debounce(50)\n], PacemElementPickerElement.prototype, \"_databind\", null);\nPacemElementPickerElement = __decorate([\n CustomElement({\n tagName: P + '-element-picker', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-select></${P}-select>`\n })\n], PacemElementPickerElement);\nexport { PacemElementPickerElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Debounce, Utils, CustomElementUtils, RepeaterItem } from '@pacem/pacem-core';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nimport { PacemElementPickerElementBase } from './element-picker';\n//namespace Pacem.Components.Cms {\n/** The kind of value a {@link PacemExpressionElement} is currently editing, as picked in its source selector. */\nexport var ExpressionSource;\n(function (ExpressionSource) {\n ExpressionSource[\"Constant\"] = \"const\";\n ExpressionSource[\"PropertyReference\"] = \"property\";\n ExpressionSource[\"Expression\"] = \"expr\";\n})(ExpressionSource || (ExpressionSource = {}));\n/**\n * Form field for building a Pacem binding-expression string, either as a plain constant, a picked\n * element/property reference (via {@link PacemElementPickerElementBase}), or a free-hand expression typed\n * into an inner `${P}-textarea`; a live preview of the evaluated `value` is shown alongside the field.\n */\nlet PacemExpressionElement = class PacemExpressionElement extends PacemElementPickerElementBase {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'converter') {\n this._setFeedbackText(this.value);\n }\n else if (!first) {\n if (this._editing) {\n switch (name) {\n case '_source':\n switch (val) {\n case ExpressionSource.PropertyReference:\n this._picker.focus();\n break;\n default:\n this._editor.focus();\n break;\n }\n break;\n case '_propRef':\n if (!Utils.isNullOrEmpty(val)) {\n this._editor.focus();\n this._editor.value = '{{ #' + this._sourceRef.id + '.' + val + ' }}';\n }\n this.changeHandler(new Event('change'));\n break;\n }\n }\n }\n }\n get inputFields() {\n return [this._editor];\n }\n toggleReadonlyView(readonly) {\n if (readonly) {\n // ensure not editing\n this._editing = false;\n }\n }\n setPristine() {\n super.setPristine();\n this._editing = false;\n }\n onChange(_) {\n return Utils.fromResult(this.value = this._editor.value);\n }\n acceptValue(val) {\n this._view.textContent = val || '...';\n this._setFeedbackText(val);\n this._reverseStructure();\n if (val !== this._editor.value) {\n this._editor.value = val;\n }\n }\n _setFeedbackText(val = this.value) {\n const converter = this.converter;\n if (CustomElementUtils.isBindingAttribute(val) || typeof (converter && converter.convert) !== 'function') {\n this._eval.setAttribute('text', val);\n }\n else if (val === undefined) {\n this._eval.text = '<undefined>';\n }\n else {\n this._eval.text = converter.convert(val);\n }\n }\n getViewValue(value) {\n return value;\n }\n convertValueAttributeToProperty(attr) {\n return attr;\n }\n _reverseStructure() {\n let cleanup = () => {\n this._source = this._sourceRef = this._propRef = /*this.value =*/ undefined;\n };\n // dependencies?\n let expr = this.value;\n if (!Utils.isNullOrEmpty(expr)) {\n // setup the most likely form fields\n if (CustomElementUtils.isBindingAttribute(expr)) {\n const expression = CustomElementUtils.parseBindingAttribute(expr, this), deps = expression.dependencies;\n // complex or simple (one dependency) expression\n if (Utils.isNullOrEmpty(deps) || deps.length > 1 || RepeaterItem.isRepeaterItem(deps[0].element)) {\n this._source = ExpressionSource.Expression;\n }\n else {\n const dep = deps[0];\n this._source = ExpressionSource.PropertyReference;\n this._sourceRef = document.querySelector('#' + dep.element.id);\n this._propRef = dep.path;\n }\n }\n else {\n this._source = ExpressionSource.Constant;\n }\n //\n }\n else {\n cleanup();\n }\n }\n};\n__decorate([\n Watch({ emit: false })\n], PacemExpressionElement.prototype, \"converter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemExpressionElement.prototype, \"_editing\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemExpressionElement.prototype, \"_source\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemExpressionElement.prototype, \"_sourceRef\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemExpressionElement.prototype, \"_propRef\", void 0);\n__decorate([\n ViewChild(P + '-element-picker')\n], PacemExpressionElement.prototype, \"_picker\", void 0);\n__decorate([\n ViewChild(P + '-textarea')\n], PacemExpressionElement.prototype, \"_editor\", void 0);\n__decorate([\n ViewChild('span.' + PCSS + '-viewfinder')\n], PacemExpressionElement.prototype, \"_view\", void 0);\n__decorate([\n ViewChild(P + '-text')\n], PacemExpressionElement.prototype, \"_eval\", void 0);\n__decorate([\n Debounce(50)\n], PacemExpressionElement.prototype, \"_reverseStructure\", null);\nPacemExpressionElement = __decorate([\n CustomElement({\n tagName: P + '-expression', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-collapse class=\"${PCSS}-expression\" collapse=\"{{ !:host._editing }}\">\r\n <div class=\"expression-builder ${PCSS}-grid grid-tiny-rowgap grid-tiny-colgap ${PCSS}-pad pad-bottom-2\">\r\n <div class=\"${PCSS}-cell\">\r\n <${P}-select value=\"{{ :host._source, twoway }}\" class=\"display-block\">\r\n <${P}-data-item value=\"${ExpressionSource.Constant}\" label=\"constant value\"></${P}-data-item>\r\n <${P}-data-item value=\"${ExpressionSource.PropertyReference}\" label=\"property reference\"></${P}-data-item>\r\n <${P}-data-item value=\"${ExpressionSource.Expression}\" label=\"complex expression\"></${P}-data-item>\r\n </${P}-select>\r\n </div>\r\n\r\n <${P}-panel class=\"${PCSS}-cell cols-hd-6\" hide=\"{{ :host._source !== '${ExpressionSource.PropertyReference}' }}\">\r\n <${P}-element-picker value=\"{{ :host._sourceRef, twoway }}\" selector=\"{{ :host.selector }}\" filter=\"{{ :host.filter }}\" labeler=\"{{ :host.labeler }}\" class=\"display-block\"></${P}-element-picker>\r\n </${P}-panel>\r\n <${P}-panel class=\"${PCSS}-cell cols-hd-6\" hide=\"{{ :host._source !== '${ExpressionSource.PropertyReference}' }}\">\r\n <${P}-property-picker value=\"{{ :host._propRef, twoway }}\" disabled=\"{{ !:host._sourceRef }}\" target=\"{{ :host._sourceRef }}\" on-change=\"::_editor.focus()\" class=\"display-block\"></${P}-property-picker>\r\n </${P}-panel>\r\n\r\n <${P}-panel class=\"${PCSS}-cell\">\r\n <${P}-textarea class=\"display-block\" placeholder=\"{{ '{{ '+ (:host._source || '') +'... }}' }}\" change-policy=\"${ScaffoldingComponents.Scaffolding.ChangePolicy.Blur}\"></${P}-textarea>\r\n </${P}-panel>\r\n </div>\r\n</${P}-collapse>\r\n<div class=\"${PCSS}-fieldset\">\r\n <div class=\"fieldset-left\">\r\n <div class=\"${PCSS}-fieldgroup ${PCSS}-viewfinder\">\r\n <div class=\"text-truncate ${PCSS}-pad pad-x-1\"><span class=\"${PCSS}-viewfinder text-tech\">{{ :host.value || '...' }}</span></div>\r\n <${P}-panel class=\"fieldgroup-prepend\">\r\n <${P}-button class=\"flat edit ${PCSS}-pad pad-left-1\" on-click=\":host._editing = !:host._editing\" hide=\"{{ :host.readonly }}\"></${P}-button>\r\n </${P}-panel>\r\n <${P}-panel class=\"fieldgroup-append text-tech display-flex flex-middle flex-nowrap\" hide=\"{{ $pacem.isNullOrEmpty(:host.value) }}\">\r\n <i class=\"${PCSS}-icon text-primary\">keyboard_arrow_right</i>\r\n <${P}-text text=\"?\" class=\"bg-primary ${PCSS}-pad pad-left-1 pad-right-1 ${PCSS}-margin margin-right-1 text-truncate\" eval></${P}-text>\r\n </${P}-panel>\r\n </div>\r\n </div>\r\n</div>`\n })\n], PacemExpressionElement);\nexport { PacemExpressionElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Utils, CustomElementUtils, Components } from '@pacem/pacem-core';\nimport { Components as UIComponents } from '@pacem/pacem-ui';\nconst UI = UIComponents.UI;\n//namespace Pacem.Components.Cms {\nconst DEFAULT_PERMISSION_METADATA = {\n props: [\n {\n prop: 'permissions',\n // child form-fields\n type: 'array',\n display: { name: 'Permissions' },\n props: {\n display: { cssClass: [PCSS + '-cell', PCSS + '-grid', 'grid-novgap', 'grid-tiny-colgap', 'grid-nospace'], name: 'Permission' },\n props: Array.prototype.concat.apply([\n {\n prop: 'claimType', type: 'string',\n display: { cssClass: [PCSS + '-cell', 'cols-hd-4', 'cols-lg-6', 'field-stretch', 'field-minimal'], name: 'Claim type' },\n validators: [{ type: 'required', errorMessage: '!' }]\n },\n {\n prop: 'claimValue', type: 'string',\n display: { cssClass: [PCSS + '-cell', 'cols-hd-4', 'cols-lg-6', 'field-stretch', 'field-minimal'], name: 'Claim value' },\n validators: [{ type: 'required', errorMessage: '!' }]\n },\n ], ['read', 'update', 'create', 'delete'].map((p, j) => {\n return {\n prop: p,\n type: 'boolean',\n display: { cssClass: [PCSS + '-cell', 'cols-hd-1', 'cols-3', 'field-minimal', PCSS + '-pad pad-left-2'], name: p.charAt(0).toUpperCase() + p.substr(1) }\n };\n }))\n }\n }\n ]\n};\nexport const DEFAULT_METADATA = {\n display: { name: 'Widget', cssClass: [PCSS + '-grid', 'grid-novgap', 'grid-tiny-colgap', 'grid-nospace'] },\n props: [\n { prop: 'tag', type: 'string', display: { name: 'Tag', cssClass: [PCSS + '-cell'] } }\n ]\n};\nfunction cellifyMetadata(p) {\n // ensure pacem-cell cssClass\n p.display = p.display || { name: p.prop, cssClass: [] };\n const css = p.display.cssClass = Utils.isArray(p.display.cssClass) && p.display.cssClass || [];\n css.push(PCSS + '-cell');\n}\n/**\n * Adds the `${PCSS}-cell`/grid CSS classes to `metadata`'s display and to each of its properties' display,\n * so that a generated form lays its fields out as grid cells (used for the datacolumns/fetch-parameters\n * sub-grids editors, as opposed to {@link buildWidgetMetadata} which is used for a widget's own root metadata).\n * @param metadata The metadata to adapt; defaults to an empty `{ props: [] }`-like metadata when omitted.\n */\nexport function gridifyMetadata(metadata) {\n var props = metadata && metadata.props || [];\n var display = metadata && metadata.display || { name: 'Element' };\n if (!Utils.isNull(display)) {\n const css = display.cssClass = display.cssClass || [];\n Array.prototype.push.apply(css, DEFAULT_METADATA.display.cssClass);\n }\n props.forEach(cellifyMetadata);\n return { display: display, props: props };\n}\n/**\n * Merges `metadata` on top of {@link DEFAULT_METADATA} (the common `tag` property/display), cellifying every\n * resulting property's display (see `cellifyMetadata`); used by widget constructors to build their `metadata`.\n * @param metadata Widget-specific metadata to merge on top of the defaults.\n */\nexport function buildWidgetMetadata(metadata) {\n var display = Utils.extend({}, DEFAULT_METADATA.display, metadata && metadata.display || {});\n var props = Utils.clone(DEFAULT_METADATA.props);\n Array.prototype.push.apply(props, (metadata && metadata.props || []).filter(p => {\n if (p.prop === 'tag') {\n return false;\n }\n cellifyMetadata(p);\n return true;\n }));\n return { display: display, props: props };\n}\nconst WIDGET_CSS_CLASS = PCSS + '-widget';\n/** Default metadata ('expression' field) 'extra' object. */\nexport const EXPRESSION_WIDGET_METADATA_EXTRA = {\n selector: '.' + WIDGET_CSS_CLASS,\n labeler: (e) => {\n if (!Utils.isNullOrEmpty(e.tag)) {\n return e.tag;\n }\n return (e.metadata && e.metadata.display && e.metadata.display.name || '') + '#' + e.id;\n }\n};\n/** Static lookup helper for {@link PacemWidgetElement} instances in the current document. */\nexport class Widget {\n /**\n * Utility method for widget gathering.\n * @param predicate Predicate for filtering\n */\n static findAll(predicate) {\n return CustomElementUtils.findAll('.' + WIDGET_CSS_CLASS, (widget) => widget instanceof PacemWidgetElement && !Utils.isNullOrEmpty(widget.id) && (Utils.isNull(predicate) || predicate(widget)));\n }\n}\n/** Floating toolbar (edit/permissions/remove buttons), shown by a {@link PacemWidgetElement}'s balloon while `editing`, that opens the widget's core/permissions edit forms. */\nlet PacemWidgetToolbarElement = class PacemWidgetToolbarElement extends Components.PacemElement {\n /** Gets the toolbar's edit button. */\n get editButton() {\n return this._btnEdit;\n }\n /** Gets the toolbar's permimssions button. */\n get permissionsButton() {\n return this._btnPerms;\n }\n /** Gets the toolbar's remove button. */\n get removeButton() {\n return this._btnRemove;\n }\n _edit(evt) {\n const form = this._proxy.dom.find(e => 'core' in e.attributes);\n form.open(this.target, true);\n form.metadata = this.target.metadata;\n // popout\n this._popoutJustInCase();\n }\n _editPermissions(evt) {\n const form = this._proxy.dom.find(e => 'permissions' in e.attributes);\n form.open(this.target);\n form.metadata = this.target.permissionMetadata;\n // popout\n this._popoutJustInCase();\n }\n _popoutJustInCase() {\n const balloon = CustomElementUtils.findAncestorOfType(this, UI.PacemBalloonElement);\n if (!Utils.isNullOrEmpty(balloon)) {\n balloon.popout();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemWidgetToolbarElement.prototype, \"target\", void 0);\n__decorate([\n ViewChild('.buttons > div')\n], PacemWidgetToolbarElement.prototype, \"_toolbar\", void 0);\n__decorate([\n ViewChild(P + '-button[edit]')\n], PacemWidgetToolbarElement.prototype, \"_btnEdit\", void 0);\n__decorate([\n ViewChild(P + '-button[permissions]')\n], PacemWidgetToolbarElement.prototype, \"_btnPerms\", void 0);\n__decorate([\n ViewChild(P + '-button[remove]')\n], PacemWidgetToolbarElement.prototype, \"_btnRemove\", void 0);\n__decorate([\n ViewChild(P + '-shell-proxy')\n], PacemWidgetToolbarElement.prototype, \"_proxy\", void 0);\nPacemWidgetToolbarElement = __decorate([\n CustomElement({\n tagName: P + '-widget-toolbar', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-span class=\"toolbar-text\" content=\"{{ '<i class="${PCSS}-icon">'+ (::target.metadata && ::target.metadata.display && ::target.metadata.display.icon || 'widgets') +'</i> '+ (::target.tag || (::target.metadata && ::target.metadata.display && ::target.metadata.display.name || ::target.localName) +'#'+ ::target.id) }}\"></${P}-span>\r\n<div class=\"buttons ${PCSS}-buttonset ${PCSS}-pad ${PCSS}-margin pad-0 margin-left-2\">\r\n <div class=\"buttonset-left\">\r\n <${P}-button edit class=\"button edit\" on-click=\":host._edit($event)\"></${P}-button>\r\n <${P}-button permissions class=\"button\" on-click=\":host._editPermissions($event)\" css-class=\"{{ {'button-success': ::target.permissions.length > 0} }}\" icon-glyph=\"verified_user\"></${P}-button>\r\n <${P}-button remove class=\"button button-danger delete\"></${P}-button>\r\n </div>\r\n<div>\r\n<${P}-shell-proxy>\r\n <${P}-modal-form core></${P}-modal-form>\r\n <${P}-modal-form permissions></${P}-modal-form>\r\n</${P}-shell-proxy>`\n })\n], PacemWidgetToolbarElement);\nexport { PacemWidgetToolbarElement };\n/**\n * Base class for CMS widgets: assigns each instance a stable `id`, exposes an `editing`/`editable` toggle\n * backed by a hover-triggered {@link PacemWidgetToolbarElement} balloon (edit/permissions/remove actions),\n * and carries the `metadata`/`permissionMetadata`/`permissions` used to scaffold its editing forms. See\n * {@link PacemUiWidgetElement} and {@link PacemBearerWidgetElement} for further specialized bases.\n */\nexport class PacemWidgetElement extends Components.PacemElement {\n constructor(metadata, role = 'widget') {\n super(role);\n /** Gets or sets the scaffolding metadata describing the widget's permission-editing form. */\n this.permissionMetadata = DEFAULT_PERMISSION_METADATA;\n this.metadata = metadata;\n }\n connectedCallback() {\n super.connectedCallback();\n // ensure an explicit id for each widget\n if (Utils.isNullOrEmpty(this.id)) {\n this.id = 'wdg' + Utils.uniqueCode();\n }\n Utils.addClass(this, WIDGET_CSS_CLASS);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'editable':\n if (!val) {\n this._disposeBalloon();\n }\n else if (this.isReady) {\n this._ensureBalloon();\n }\n break;\n case 'editing':\n if (!Utils.isNull(this._balloon)) {\n this._balloon.disabled = !val;\n }\n (val ? Utils.addClass : Utils.removeClass).apply(this, [this, 'widget-' + name]);\n break;\n case 'metadata':\n this._assignIcon(val);\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._assignIcon();\n this._ensureBalloon();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n _assignIcon(val = this.metadata) {\n this.dataset['icon'] = (val && val.display && val.display.icon) || 'widgets';\n }\n _ensureBalloon() {\n if (Utils.isNull(this._balloon)) {\n const balloon = this._balloon = document.createElement(P + '-balloon');\n balloon.target = this;\n balloon.disabled = !this.editing;\n balloon.options = {\n behavior: UI.BalloonBehavior.Menu,\n trigger: UI.BalloonTrigger.Hover\n };\n // innerHTML before appending the balloon to the DOM.\n balloon.innerHTML = `<${P}-widget-toolbar target=\"{{ #${this.id} }}\"><${P}-widget-toolbar>`;\n // append to trigger connected/viewActivated callbacks\n CustomElementUtils.findAncestorShell(this).appendChild(balloon);\n }\n }\n _disposeBalloon() {\n if (!Utils.isNull(this._balloon)) {\n this._balloon.remove();\n this._balloon = null;\n }\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemWidgetElement.prototype, \"editing\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemWidgetElement.prototype, \"editable\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetElement.prototype, \"tag\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Json })\n], PacemWidgetElement.prototype, \"permissions\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemWidgetElement.prototype, \"metadata\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemWidgetElement.prototype, \"permissionMetadata\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PCSS, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { PacemWidgetElement, buildWidgetMetadata } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\n//namespace Pacem.Components.Cms {\nconst DATA_METADATA = {\n display: { icon: 'storage', name: 'Data', description: 'Data object widget.' },\n props: [\n {\n prop: 'model', type: EXPRESSION_METADATA_TYPE, display: {\n name: 'Model'\n }, extra: {\n selector: '.' + PCSS + '-widget'\n }\n }\n ]\n};\n/** Non-visual helper widget exposing an arbitrary `model` object, typically referenced as a data source by other widgets/expressions. */\nlet PacemWidgetDataElement = class PacemWidgetDataElement extends PacemWidgetElement {\n constructor() {\n super(buildWidgetMetadata(DATA_METADATA));\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Json })\n], PacemWidgetDataElement.prototype, \"model\", void 0);\nPacemWidgetDataElement = __decorate([\n CustomElement({\n tagName: P + '-widget-data'\n })\n], PacemWidgetDataElement);\nexport { PacemWidgetDataElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Utils, CustomElementUtils, PacemEventTarget, Net } from '@pacem/pacem-core';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { buildWidgetMetadata, gridifyMetadata } from '../types';\nimport { PacemBearerWidgetElement, ACCESS_TOKEN_METADATA } from './types';\n//namespace Pacem.Components.Cms {\nconst FETCH_PARAMETER_METADATA = {\n props: [\n { prop: 'name', type: 'string', isReadOnly: true, display: { name: 'Name', cssClass: ['cols-md-4', 'cols-lg-3', 'cols-hd-2'] } },\n { prop: 'value', type: EXPRESSION_METADATA_TYPE, display: { name: 'Value', cssClass: ['cols-md-8', 'cols-lg-9', 'cols-hd-10'] } }\n ]\n};\nconst FETCH_METADATA = {\n display: {\n icon: 'wifi', name: 'Api Fetcher', description: 'Fetching widget that retrieves data from a REST endpoint.'\n }, props: [\n {\n prop: 'manifest', type: EXPRESSION_METADATA_TYPE, isComplexType: true, display: {\n name: 'Api Manifest'\n }, extra: {\n selector: P + '-widget-apimanifest'\n }, validators: [{ type: 'required', errorMessage: 'Api Manifest is a required field.' }]\n },\n {\n prop: 'endpoint', type: 'object', isComplexType: true, display: {\n name: 'Endpoint', ui: 'oneToMany'\n }, validators: [{ type: 'required', errorMessage: 'Api Manifest is a required field.' }],\n extra: {\n source: (manifest) => manifest.endpoints.map(e => Utils.extend(e, { 'fullPath': `[${e.method.toUpperCase()}] ${e.path}` })).sort(),\n textProperty: 'fullPath', valueProperty: 'fullPath',\n dependsOn: [{ prop: 'manifest', hide: true }]\n }\n },\n {\n prop: 'parameters', type: 'array', display: {\n name: 'Parameters'\n },\n props: gridifyMetadata(FETCH_PARAMETER_METADATA),\n extra: {\n lockItems: true,\n dependsOn: [{ prop: 'endpoint', hide: true }]\n }\n },\n ACCESS_TOKEN_METADATA\n ]\n};\nconst PARAMETER_TAGNAME = P + '-widget-fetch-parameter';\n/** A single, named fetch parameter nested under a {@link PacemWidgetFetchElement}; setting `value` re-triggers the owning fetcher's `fetch()`. */\nlet PacemWidgetFetchParameterElement = class PacemWidgetFetchParameterElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val.first);\n if (name === 'value' && !Utils.isNull(this._fetcher)) {\n this._fetcher.fetch();\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const fetcher = this._fetcher = CustomElementUtils.findAncestorOfType(this, PacemWidgetFetchElement);\n if (!Utils.isNull(this._fetcher) && !Utils.isNull(this.value)) {\n this._fetcher.fetch();\n }\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemWidgetFetchParameterElement.prototype, \"required\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetFetchParameterElement.prototype, \"name\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetFetchParameterElement.prototype, \"value\", void 0);\nPacemWidgetFetchParameterElement = __decorate([\n CustomElement({ tagName: PARAMETER_TAGNAME })\n], PacemWidgetFetchParameterElement);\nexport { PacemWidgetFetchParameterElement };\n/**\n * Non-visual helper widget that fetches data from a REST endpoint chosen from a {@link PacemWidgetApiManifestElement}\n * `manifest`, using its nested {@link PacemWidgetFetchParameterElement} children (see `_parameters`) as request\n * parameters; the response is exposed as `result`.\n */\nlet PacemWidgetFetchElement = class PacemWidgetFetchElement extends PacemBearerWidgetElement {\n constructor() {\n super(buildWidgetMetadata(FETCH_METADATA));\n this._onerror = (e) => {\n this.failure = !(this.success = false);\n };\n this._onsuccess = (e) => {\n this.failure = !(this.success = true);\n };\n this._onresult = (e) => {\n this.result = e.detail;\n };\n }\n get _parameters() {\n return Array.from(this._itemsElement.children).filter(e => e.localName === PARAMETER_TAGNAME);\n }\n /** Triggers the request against `endpoint`/`url`, provided all of the endpoint's required parameters are attached and populated; otherwise does nothing. */\n fetch() {\n const fetcher = this._fetcher, parameters = this._parameters || [], endpoint = this.endpoint;\n if (!Utils.isNull(endpoint)) {\n for (let param of endpoint.parameters) {\n if (param.required && Utils.isNull(parameters.find(p => p.name === param.name))) {\n // parameters not yet aligned with the ref endpoint:\n // not all the required parameters are attached => exit\n return;\n }\n }\n }\n // build-up fetch params\n const params = {};\n for (let parameter of parameters) {\n if (!Utils.isNullOrEmpty(parameter.value)) {\n params[parameter.name] = parameter.value;\n }\n else if (parameter.required) {\n // found an empty (required) parameter => exit\n return;\n }\n }\n fetcher.url = this.url;\n fetcher.method = this.method;\n fetcher.credentials = this.fetchCredentials;\n fetcher.headers = this.fetchHeaders;\n fetcher.parameters = params;\n return fetcher.fetch();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.fetch();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'endpoint' && !Utils.isNullOrEmpty(val)) {\n this._mergeEndpoint(val);\n }\n else\n switch (name) {\n case 'parameters':\n case 'fetchHeaders':\n case 'fetchCredentials':\n case 'url':\n case 'method':\n this.fetch();\n break;\n }\n }\n _mergeEndpoint(endpoint = this.endpoint) {\n this.url = this.manifest.baseUrl + endpoint.path;\n this.method = endpoint.method;\n this.fields = endpoint.response.fields;\n const itemsElement = this._itemsElement, parameters = this._parameters;\n // remove exceeding\n for (let j = parameters.length - 1; j >= 0; j--) {\n let item = parameters[j];\n let matching = endpoint.parameters.find(p => p.name === item.name);\n if (Utils.isNull(matching)) {\n item.remove();\n }\n }\n // add missing\n for (let param of endpoint.parameters) {\n let existing = parameters.find(p => p.name === param.name);\n if (Utils.isNull(existing)) {\n let item = existing = document.createElement(PARAMETER_TAGNAME);\n item.name = param.name;\n itemsElement.appendChild(item);\n }\n existing.required = param.required;\n }\n // for editing sake\n this.parameters = parameters;\n }\n};\n__decorate([\n Watch({ reflectBack: true, emit: true /* < due to metadata 'dependsOn' */, converter: PropertyConverters.Json })\n], PacemWidgetFetchElement.prototype, \"manifest\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: true /* < due to metadata 'dependsOn' */, converter: PropertyConverters.Json })\n], PacemWidgetFetchElement.prototype, \"endpoint\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: false, converter: PropertyConverters.String })\n], PacemWidgetFetchElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: false, converter: PropertyConverters.String })\n], PacemWidgetFetchElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ reflectBack: true, emit: false, converter: PropertyConverters.Json })\n], PacemWidgetFetchElement.prototype, \"fields\", void 0);\n__decorate([\n Watch( /* just for editing sake */)\n], PacemWidgetFetchElement.prototype, \"parameters\", void 0);\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemWidgetFetchElement.prototype, \"result\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWidgetFetchElement.prototype, \"fetching\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWidgetFetchElement.prototype, \"success\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemWidgetFetchElement.prototype, \"failure\", void 0);\n__decorate([\n ViewChild(P + '-fetch')\n], PacemWidgetFetchElement.prototype, \"_fetcher\", void 0);\n__decorate([\n ViewChild('div[hidden]')\n], PacemWidgetFetchElement.prototype, \"_itemsElement\", void 0);\nPacemWidgetFetchElement = __decorate([\n CustomElement({\n tagName: P + '-widget-fetch', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-fetch autofetch=\"false\" fetching=\"{{ :host.fetching, twoway }}\" debounce=\"100\"\r\non-${Net.FetchResultEventName}=\":host._onresult($event)\" on-${Net.FetchErrorEventName}=\":host._onerror($event)\" on-${Net.FetchSuccessEventName}=\":host._onsuccess($event)\"></${P}-fetch><div hidden><${P}-content></${P}-content></div>`\n })\n], PacemWidgetFetchElement);\nexport { PacemWidgetFetchElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, Utils } from '@pacem/pacem-core';\nimport { PacemWidgetElement, EXPRESSION_WIDGET_METADATA_EXTRA } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { PacemWidgetDataElement } from './data';\nimport { PacemWidgetFetchElement } from './fetcher';\n//namespace Pacem.Components.Cms {\nexport const FETCH_CREDENTIALS_METADATA = {\n prop: 'fetchCredentials', type: 'string', dataType: 'enumeration', display: { name: 'Fetch Credentials' }, extra: {\n enum: ['same-origin', 'omit', 'include']\n }\n};\nexport const ACCESS_TOKEN_METADATA = {\n prop: 'accessToken', type: EXPRESSION_METADATA_TYPE, display: { name: 'Access Token' },\n extra: Utils.extend({}, EXPRESSION_WIDGET_METADATA_EXTRA, { filter: (e) => e instanceof PacemWidgetDataElement || e instanceof PacemWidgetFetchElement })\n};\n/**\n * Base class for widgets that authenticate their own fetch requests with a bearer `accessToken` (turned into\n * an `Authorization: Bearer ...` header on `fetchHeaders`). See {@link PacemWidgetApiManifestElement} and\n * {@link PacemWidgetFetchElement} for the concrete implementations.\n */\nexport class PacemBearerWidgetElement extends PacemWidgetElement {\n constructor() {\n super(...arguments);\n /** Gets or sets the `credentials` mode used for the widget's fetch requests. */\n this.fetchCredentials = 'same-origin';\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'accessToken') {\n if (!Utils.isNullOrEmpty(val)) {\n this.fetchHeaders = { 'Authorization': 'Bearer ' + val };\n }\n else {\n this.fetchHeaders = {};\n }\n }\n }\n}\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemBearerWidgetElement.prototype, \"fetchCredentials\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemBearerWidgetElement.prototype, \"fetchHeaders\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemBearerWidgetElement.prototype, \"accessToken\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemBearerWidgetElement.prototype, \"fetching\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P } from '@pacem/pacem-core';\nimport { PacemWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\n/** Non-visual helper widget, reserved for translation-related composition (no widget-specific behavior beyond {@link PacemWidgetElement}). */\nlet PacemWidgetTranslatorElement = class PacemWidgetTranslatorElement extends PacemWidgetElement {\n};\nPacemWidgetTranslatorElement = __decorate([\n CustomElement({\n tagName: P + '-widget-translator'\n })\n], PacemWidgetTranslatorElement);\nexport { PacemWidgetTranslatorElement };\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 } from '@pacem/pacem-core';\nimport { PacemWidgetElement, buildWidgetMetadata } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\n//namespace Pacem.Components.Cms {\nconst DATA_METADATA = {\n display: { icon: 'timer', name: 'Clock', description: 'Timer widget.' },\n props: [\n {\n prop: 'interval', type: EXPRESSION_METADATA_TYPE, display: {\n name: 'Interval (msec)'\n }, extra: {\n selector: '.' + PCSS + '-widget', step: 1000\n },\n validators: [{\n type: 'range', errorMessage: 'Negative numbers not allowed', params: { min: 0 }\n }]\n }\n ]\n};\n/** Non-visual helper widget exposing the current timestamp (`time`), refreshed every `interval` milliseconds by an internal `${P}-timer`. */\nlet PacemWidgetClockElement = class PacemWidgetClockElement extends PacemWidgetElement {\n constructor() {\n super(buildWidgetMetadata(DATA_METADATA));\n /** Gets or sets the tick interval, in milliseconds, at which `time` is refreshed. */\n this.interval = 0;\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Number })\n], PacemWidgetClockElement.prototype, \"interval\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemWidgetClockElement.prototype, \"time\", void 0);\nPacemWidgetClockElement = __decorate([\n CustomElement({\n tagName: P + '-widget-clock', template: `<${P}-timer interval=\"{{ :host.interval }}\" on-tick=\"{{ :host.time = Date.now() }}\"></${P}-timer>`\n })\n], PacemWidgetClockElement);\nexport { PacemWidgetClockElement };\n","/// <reference path=\"./swagger-types.d.ts\" />\nimport { Scaffolding } from '@pacem/pacem-scaffolding';\n//namespace Pacem.Cms.OpenApi {\nconst BAG = 'pacem:metadatabag';\n/**\n * Loads an OpenApi manifest (via the underlying {@link Scaffolding.OpenApi.OpenApiParser}) and eagerly\n * enriches every endpoint's request/response schemas into scaffolding-ready {@link Scaffolding.OpenApi.DataField}\n * metadata (fetched from each schema's absolute-url definition key, recursively for nested `$ref`s), optionally\n * caching the per-url metadata fetches through `cache`.\n */\nexport class SwaggerCmsParser {\n constructor(_openApi = new Scaffolding.OpenApi.OpenApiParser()) {\n this._openApi = _openApi;\n this._cachedMetadataUrls = [];\n }\n /**\n * Loads the OpenApi manifest at `url` and enriches every endpoint's request/response schemas with their\n * fetched field metadata (see `_enrichSchemas`).\n * @param url The OpenApi (swagger) json configuration's url.\n * @param headers Optional HTTP headers for both the manifest and the per-schema metadata fetches.\n */\n async load(url, headers) {\n let api = await this._openApi.load(url, headers);\n if (api != null) {\n api[BAG] = {};\n // greedy load of datafields\n for (let endpoint of api.endpoints) {\n await this._enrichSchemas(api, endpoint, headers);\n }\n }\n return api;\n }\n async _enrichSchemas(api, endpoint, headers) {\n const response = endpoint.response;\n if (response && response.meta) {\n response.fields = await this._fetchMetadata(api, { name: response.fullType, schema: response.meta }, headers);\n }\n // parameters?\n const parameters = endpoint.parameters;\n for (let parameter of (parameters || [])) {\n if (parameter.meta && parameter.fullType) {\n let fields = await this._fetchMetadata(api, { name: parameter.fullType, schema: parameter.meta }, headers);\n parameter.fields = fields;\n }\n }\n }\n /** Removes from `cache` every metadata entry fetched by this parser so far. */\n clearCache() {\n const cache = this.cache, keys = this._cachedMetadataUrls;\n if (cache) {\n for (let key of keys) {\n cache.removeProperty(key);\n }\n // clear keys\n keys.splice(0);\n }\n }\n /**\n *\n * @param def1\n * @param headers HTTP headers for API fetching\n */\n async _fetchMetadata(api, def0, headers) {\n let _fetch = async (def1) => {\n let cols = [];\n if (def1 && def1.name) {\n // short-circuit if already in the bag\n if (api[BAG][def1.name]) {\n return api[BAG][def1.name];\n }\n /* reserve a place for this type so that it gets not fetched again if aggressive recursion occurs */ api[BAG][def1.name] = cols;\n let meta = { props: [] }, metadataUrl;\n if (/^https?:\\/\\//.test(def1.name)) {\n // name is url? then it's the endpoint for type metadata, fetch it!\n metadataUrl = def1.name;\n }\n else {\n console.warn(`Swagger entity definition keys must appear in form of absolute url. Their response to a GET request needs to be the entity metadata itself.\\nNo other options are currently supported.`);\n return;\n }\n if (metadataUrl) {\n let retrieveFn = async () => {\n let response = await fetch(metadataUrl, { credentials: 'omit', mode: 'cors', headers: headers });\n if (response.ok) {\n return await response.json();\n }\n };\n if (this.cache) {\n // check for session cache\n meta = this.cache.getPropertyValue(metadataUrl);\n if (!meta) {\n // no cache available? then fetch...\n meta = await retrieveFn();\n this._cachedMetadataUrls.push(metadataUrl);\n this.cache.setPropertyValue(metadataUrl, meta, /* persist in session not on location */ false);\n }\n }\n else {\n // do fetch\n meta = await retrieveFn();\n }\n }\n let schema = def1.schema;\n for (let col in schema.properties) {\n let column = schema.properties[col], field = meta && meta.props.find(p => p.prop === col);\n let datafield = Object.assign({\n prop: col, type: column.type || 'text', props: undefined\n }, field || /* if there's no match, then read-only */ { isReadOnly: true });\n if (field) {\n let $ref = (column.items && column.items.$ref) || column.$ref;\n if ($ref) {\n let ref = Scaffolding.OpenApi.getOpenApiDefinition(api, $ref), key = ref.name;\n if (api[BAG][key]) {\n datafield.props = api[BAG][key];\n }\n else {\n // recursion here\n datafield.props = await _fetch(ref);\n }\n }\n }\n cols.push(datafield);\n }\n }\n return cols;\n };\n return await _fetch(def0);\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, Storage } from '@pacem/pacem-core';\nimport { buildWidgetMetadata } from '../types';\nimport { PacemBearerWidgetElement, ACCESS_TOKEN_METADATA } from './types';\nimport { SwaggerCmsParser } from '../../openapi/swagger-cms';\n//namespace Pacem.Components.Cms {\nconst APIMANIFEST_METADATA = {\n display: { icon: 'cloud_circle', name: 'Api Manifest', description: 'OpenApi parser for WebApi scaffolding.' },\n props: [\n {\n prop: 'url', type: 'text', display: {\n name: 'Url', description: 'Insert the url of the OpenApi json configuration.', cssClass: ['cols-lg-8'],\n watermark: 'https://domain.com/swagger/v1/swagger.json'\n },\n extra: { tooltip: true },\n validators: [{\n type: 'required', errorMessage: 'Url field is required.'\n }]\n },\n {\n prop: 'usecache', type: 'boolean', display: {\n name: 'Cache results', description: 'Whether to cache the manifest per-url.', cssClass: ['cols-lg-4'],\n ui: 'switcher'\n },\n extra: { tooltip: true }\n },\n ACCESS_TOKEN_METADATA\n ]\n};\n/** Non-visual helper widget that parses an OpenApi document at `url` (via {@link SwaggerCmsParser}) into a `manifest`, typically referenced by a {@link PacemWidgetFetchElement}. */\nlet PacemWidgetApiManifestElement = class PacemWidgetApiManifestElement extends PacemBearerWidgetElement {\n constructor(_openapi = new SwaggerCmsParser(), _cache = new Storage()) {\n super(buildWidgetMetadata(APIMANIFEST_METADATA));\n this._openapi = _openapi;\n this._cache = _cache;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'url':\n case 'editing':\n case 'editable':\n this._scaffold();\n break;\n case 'usecache':\n this._openapi.cache = val ? this._cache : null;\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (this.usecache) {\n this._openapi.cache = this._cache;\n }\n this._scaffold();\n }\n _scaffold() {\n if (this.editing && this.editable && !Utils.isNullOrEmpty(this.url)) {\n this.fetching = true;\n this._openapi.load(this.url).then(s => {\n this.manifest = s;\n this.fetching = false;\n }, _ => {\n this.fetching = false;\n });\n }\n }\n};\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetApiManifestElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemWidgetApiManifestElement.prototype, \"usecache\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemWidgetApiManifestElement.prototype, \"manifest\", void 0);\nPacemWidgetApiManifestElement = __decorate([\n CustomElement({ tagName: P + '-widget-apimanifest' })\n], PacemWidgetApiManifestElement);\nexport { PacemWidgetApiManifestElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, PropertyConverters, Utils, CustomElementUtils, Logging, PCSS } from '@pacem/pacem-core';\nimport { PacemWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\n/**\n * Base class for widgets that occupy a cell of a CSS grid-based layout (`column`/`row`/`colspan`/`rowspan`),\n * self-registering into the nearest ancestor {@link PacemCompositeWidgetElement} container (see `findContainer`).\n */\nexport class PacemUiWidgetElement extends PacemWidgetElement {\n constructor(metadata, colspan = 1, role) {\n super(metadata, role);\n this.colspan = colspan;\n this.rowspan = 1;\n }\n // just a flag class\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, 'ui-widget ' + PCSS + '-cell cols-xs-start-1 cols-xs-12 rows-xs-start-auto');\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'row':\n Utils.removeClass(this, `rows-start-${old + 1}`);\n Utils.addClass(this, `rows-start-${val + 1}`);\n break;\n case 'rowspan':\n Utils.removeClass(this, `rows-${old}`);\n Utils.addClass(this, `rows-${val}`);\n break;\n case 'column':\n Utils.removeClass(this, `cols-start-${old + 1}`);\n Utils.addClass(this, `cols-start-${val + 1}`);\n break;\n case 'colspan':\n Utils.removeClass(this, `cols-${old}`);\n Utils.addClass(this, `cols-${val}`);\n break;\n case 'borders':\n (this.borders ? Utils.addClass : Utils.removeClass).apply(this, [this, PCSS + '-border']);\n break;\n case 'corners':\n (this.borders ? Utils.addClass : Utils.removeClass).apply(this, [this, PCSS + '-corners']);\n break;\n }\n }\n get container() {\n return this._container;\n }\n /** @overridable */\n findContainer() {\n return CustomElementUtils.findAncestor(this, n => n instanceof PacemCompositeWidgetElement);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n let iter = this._container = this.findContainer();\n if (!Utils.isNull(iter)) {\n iter.register(this);\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._container)) {\n this._container.unregister(this);\n }\n super.disconnectedCallback();\n }\n}\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"column\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"row\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"colspan\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Number })\n], PacemUiWidgetElement.prototype, \"rowspan\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemUiWidgetElement.prototype, \"borders\", void 0);\n__decorate([\n Watch({ emit: true, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemUiWidgetElement.prototype, \"corners\", void 0);\nexport const WidgetRegisterEventName = \"widgetregister\";\nexport const WidgetUnregisterEventName = \"widgetunregister\";\nexport const LayoutChangeEventName = \"layoutchange\";\n/** Dispatched by a {@link PacemCompositeWidgetElement} right after a child widget is successfully registered into it. */\nexport class WidgetRegisterEvent extends CustomEvent {\n constructor(item, eventInit) {\n super(WidgetRegisterEventName, Utils.extend(eventInit || {}, { detail: item }));\n }\n}\n/** Dispatched by a {@link PacemCompositeWidgetElement} right after a child widget is unregistered from it. */\nexport class WidgetUnregisterEvent extends CustomEvent {\n constructor(item, eventInit) {\n super(WidgetUnregisterEventName, Utils.extend(eventInit || {}, { detail: item }));\n }\n}\n/** Base class for widgets that act as a container ({@link CompositeWidget}) for other {@link PacemUiWidgetElement} widgets. See {@link PacemGridWidgetElement} and `PacemWidgetPickerElement` for concrete implementations. */\nexport class PacemCompositeWidgetElement extends PacemUiWidgetElement {\n /** Gets the `Element` new items are appended to; defaults to this widget itself. */\n get itemsElement() {\n return this;\n }\n /** Gets whether `item` is an acceptable child of this container; overridable by subclasses to narrow the accepted item type. */\n validate(item) {\n return item instanceof PacemUiWidgetElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n Utils.addClass(this.itemsElement, PCSS + '-items-element');\n }\n /**\n * Appends a child Element to this CompositeWidget's itemsElement.\n * @param item New child element\n */\n appendItem(item) {\n this.itemsElement.appendChild(item);\n }\n /**\n * Registers a new item among the items.\n * @param item {PacemUiWidgetElement} Item to be enrolled\n */\n register(item) {\n if (!this.validate(item)) {\n this.log(Logging.LogLevel.Debug, `${(item && item.localName)} element couldn't be registered in a ${this.localName} element.`);\n return false;\n }\n let retval = false;\n const items = this.items = this.items || [];\n if (Utils.isNullOrEmpty(items)) {\n this.items = [item];\n retval = true;\n }\n else if (items.indexOf(item) === -1) {\n items.push(item);\n retval = true;\n }\n //\n if (retval) {\n this.dispatchEvent(new WidgetRegisterEvent(item));\n }\n return retval;\n }\n /**\n * Removes an existing element from the items.\n * @param item {PacemUiWidgetElement} Item to be removed\n */\n unregister(item) {\n const items = this.items, ndx = !Utils.isNullOrEmpty(items) && items.indexOf(item);\n if (ndx >= 0) {\n let item = items.splice(ndx, 1);\n this.dispatchEvent(new WidgetUnregisterEvent(item[0]));\n return true;\n }\n return false;\n }\n}\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemCompositeWidgetElement.prototype, \"items\", void 0);\n// #endregion COMPOSITE\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, Defaults, Watch, PropertyConverters } from '@pacem/pacem-core';\nimport { buildWidgetMetadata, EXPRESSION_WIDGET_METADATA_EXTRA } from '../types';\nimport { EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { PacemUiWidgetElement } from './types';\n//namespace Pacem.Components.Cms {\nconst TEXT_METADATA = buildWidgetMetadata({\n display: { icon: 'font_download', name: 'Text', description: 'Plain text widget.' },\n props: [{\n prop: 'text', type: EXPRESSION_METADATA_TYPE, display: { name: 'Text' }, extra: EXPRESSION_WIDGET_METADATA_EXTRA\n }]\n});\n/** UI widget rendering a plain (optionally expression-bound) piece of text via an inner `${P}-text`. */\nlet PacemWidgetTextElement = class PacemWidgetTextElement extends PacemUiWidgetElement {\n constructor() {\n super(TEXT_METADATA);\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.String })\n], PacemWidgetTextElement.prototype, \"text\", void 0);\nPacemWidgetTextElement = __decorate([\n CustomElement({\n tagName: P + '-widget-text', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-text text=\"{{ :host.text }}\"></${P}-text>`\n })\n], PacemWidgetTextElement);\nexport { PacemWidgetTextElement };\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, Defaults, ViewChild } from '@pacem/pacem-core';\nimport { PacemCompositeWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\n/**\n * UI widget container that eases dragdrop-based enrollment into composite widgets.\n */\nlet PacemWidgetPickerElement = class PacemWidgetPickerElement extends PacemCompositeWidgetElement {\n register(item) {\n const retval = super.register(item);\n if (retval) {\n item.hide = true;\n }\n return retval;\n }\n};\n__decorate([\n ViewChild(P + '-drag-drop')\n], PacemWidgetPickerElement.prototype, \"_dragDrop\", void 0);\nPacemWidgetPickerElement = __decorate([\n CustomElement({\n tagName: P + '-widget-picker', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-repeater datasource=\"{{ :host.items }}\">\r\n <template>\r\n <${P}-panel behaviors=\"{{ [::_dragDrop] }}\" class=\"${PCSS}-widget-itempicker display-flex flex-fill flex-middle flex-nowrap\">\r\n <i class=\"${PCSS}-icon flex-auto\" dragger>drag_indicator</i>\r\n <${P}-icon icon=\"{{ ^item.metadata.display.icon }}\" class=\"flex-auto ${PCSS}-margin margin-x-1\"></${P}-icon>\r\n <${P}-text text=\"{{ ^item.metadata.display.name }}\"></${P}-text>\r\n </${P}-panel>\r\n </template>\r\n</${P}-repeater>\r\n<${P}-drag-drop handle-selector=\"i.${PCSS}-icon[dragger]\"></${P}-drag-drop>\r\n<${P}-content></${P}-content>`\n })\n], PacemWidgetPickerElement);\nexport { PacemWidgetPickerElement };\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, Debounce, Utils, UI, PropertyChangeEventName } from '@pacem/pacem-core';\nimport { buildWidgetMetadata } from '../../types';\nimport { PacemCompositeWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\nfunction createSvgGridBox() {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.style.pointerEvents = 'none';\n svg.style.zIndex = '1000';\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'none');\n svg.setAttribute('class', 'grid-cell-wrapper');\n //svg.style.padding = '2px';\n //svg.style.boxSizing = 'border-box';\n svg.innerHTML = `<rect class=\"grid-cell\" width=\"100%\" height=\"100%\"></rect>`;\n return svg;\n}\nexport const GRID_COLUMNS = 12;\nconst FALLBACK_COLUMNS = GRID_COLUMNS;\nconst FALLBACK_ROWS = 1;\nconst GRID_METADATA = {\n display: {\n icon: 'grid_on',\n name: 'Grid',\n description: 'Composition Widget that lays out child-widgets in a grid container.'\n },\n props: [\n {\n prop: 'rows', type: 'int', display: {\n name: 'Rows', cssClass: ['cols-lg-4']\n }, validators: [\n { type: 'required', errorMessage: '' },\n {\n type: 'range', errorMessage: '', params: {\n min: 1, max: 24\n }\n }\n ]\n }, {\n prop: 'rowGap', type: 'int', display: {\n //ui: 'slider',\n name: 'Row gap', cssClass: ['cols-lg-4']\n }, validators: [\n // { type: 'required', errorMessage: '' },\n {\n type: 'range', errorMessage: '', params: {\n min: 0, max: 3, step: .25\n }\n }\n ]\n }, {\n prop: 'columnGap', type: 'int', display: {\n //ui: 'slider',\n name: 'Column gap', cssClass: ['cols-lg-4']\n }, validators: [\n // { type: 'required', errorMessage: '' },\n {\n type: 'range', errorMessage: '', params: {\n min: 0, max: 3, step: .25\n }\n }\n ]\n }\n ]\n};\n/**\n * Composition widget that lays out child {@link PacemUiWidgetElement} widgets in a CSS grid: on `register`\n * it finds a free spot (or grows the grid) for the new item's `column`/`row`/`colspan`/`rowspan`, and while\n * `editing` it enables drag-move/resize behaviors (backed by internal `${P}-drag-drop`/`${P}-rescale`\n * elements) plus an overlay of selectable grid-cell boxes.\n */\nlet PacemGridWidgetElement = class PacemGridWidgetElement extends PacemCompositeWidgetElement {\n constructor() {\n super(buildWidgetMetadata(GRID_METADATA), FALLBACK_COLUMNS, \"grid\");\n this._widgetPropertyChange = (evt) => {\n if (evt.detail.propertyName === 'row' || evt.detail.propertyName === 'rowspan') {\n const widget = evt.target;\n this.rows = Math.max(this.rows, widget.row + widget.rowspan);\n }\n };\n this._dragDropHandler = (evt) => {\n const args = evt.detail, el = args.element;\n switch (evt.type) {\n case UI.DragDropEventType.Start:\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'auto'; });\n this._initState = {\n colspan: el.colspan,\n rowspan: el.rowspan,\n col: el.column,\n row: el.row\n };\n break;\n case UI.DragDropEventType.End:\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'none'; });\n break;\n case UI.DragDropEventType.Over:\n var dropTarget = args.target;\n var col = +dropTarget.style.gridColumnStart - 1;\n var row = +dropTarget.style.gridRowStart - 1;\n const farRight = col + this._initState.colspan, farBottom = row + this._initState.rowspan;\n // check overlap\n if (!this._intersects(el, col, row, el.colspan, el.rowspan)) {\n let fireLayoutChange = false;\n //\n if (farRight <= (this.columns || FALLBACK_COLUMNS)) {\n fireLayoutChange = el.column !== col;\n el.column = col; // + '/' + (col + this._initState.colspan);\n }\n if (farBottom <= (this.rows || FALLBACK_ROWS)) {\n fireLayoutChange = fireLayoutChange || (el.row !== row);\n el.row = row; // + '/' + (row + this._initState.rowspan);\n }\n if (fireLayoutChange) {\n // attributechange should suffice\n // this.dispatchLayoutChangeEvent();\n }\n }\n break;\n }\n ;\n };\n this._resizeHandler = (evt) => {\n switch (evt.type) {\n case UI.RescaleEventType.Start:\n Utils.addClass(evt.detail.element, PCSS + '-rescaling');\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'auto'; });\n break;\n case UI.RescaleEventType.End:\n this._gridBoxes.forEach(svg => { svg.style.pointerEvents = 'none'; });\n Utils.removeClass(evt.detail.element, PCSS + '-rescaling');\n break;\n case UI.RescaleEventType.Rescale:\n evt.preventDefault();\n // check pos\n const pos = { x: evt.clientX, y: evt.clientY }, handle = evt.detail.handle;\n const dropTarget = document.elementsFromPoint(pos.x, pos.y).find(e => this._dragDrop.dropTargets.indexOf(e) >= 0);\n if (dropTarget) {\n var col = +dropTarget.style.gridColumnStart;\n var row = +dropTarget.style.gridRowStart;\n const widget = evt.detail.element, startcol = widget.column + 1, startrow = widget.row + 1;\n const colspan = 1 + col - startcol, rowspan = 1 + row - startrow;\n if (!this._intersects(widget, widget.column, widget.row, colspan, rowspan)) {\n let fireLayoutChange = false;\n //\n if (col >= startcol && handle.endsWith('right')) {\n fireLayoutChange = widget.colspan !== colspan;\n widget.colspan = colspan;\n }\n if (row >= startrow && handle.startsWith('bottom')) {\n fireLayoutChange = fireLayoutChange || widget.rowspan !== rowspan;\n widget.rowspan = rowspan;\n }\n if (fireLayoutChange) {\n // attributechange should suffice\n // this.dispatchLayoutChangeEvent();\n }\n }\n }\n break;\n }\n };\n this._gridBoxes = [];\n }\n register(item) {\n let retval = super.register(item);\n if (retval) {\n const row = item.row || 0, column = item.column || 0, colspan = item.colspan || 2, rowspan = item.rowspan || 1;\n let foundspot = !this._intersects(item, column, row, colspan, rowspan);\n if (foundspot) {\n item.row = row;\n item.column = column;\n item.colspan = colspan;\n item.rowspan = rowspan;\n }\n else {\n if (!foundspot) {\n // select a spot or create a new row\n let check = (elasticOnColspan = false) => {\n let maxColIndex = this.columns - 1;\n if (!elasticOnColspan) {\n maxColIndex = maxColIndex - colspan + 1;\n }\n for (let j = 0; j < this.rows; j++) {\n for (let i = 0; i <= maxColIndex; i++) {\n if (!this._intersects(item, i, j, colspan, rowspan)) {\n item.column = i;\n item.row = j;\n item.colspan = Math.min(maxColIndex + 1 - i, colspan);\n item.rowspan = rowspan;\n foundspot = true;\n break;\n }\n }\n if (foundspot)\n break;\n }\n };\n check();\n if (!foundspot && colspan > 1) {\n // find first avail slot conceding less colspan\n check(true);\n }\n }\n // okay, surrender and create a new row\n if (!foundspot) {\n this.rows++;\n item.row = this.rows - 1;\n item.column = 0;\n }\n }\n //\n // item.behaviors.push(this._dragDrop, this._rescaler);\n item.behaviors = [this._dragDrop, this._rescaler];\n item.addEventListener(PropertyChangeEventName, this._widgetPropertyChange, false);\n }\n //\n return retval;\n }\n unregister(item) {\n let retval = super.unregister(item);\n if (retval) {\n item.removeEventListener(PropertyChangeEventName, this._widgetPropertyChange, false);\n const ndx = item.behaviors.indexOf(this._dragDrop);\n if (ndx >= 0)\n item.behaviors.splice(ndx, 1);\n const ndx1 = item.behaviors.indexOf(this._rescaler);\n if (ndx1 >= 0)\n item.behaviors.splice(ndx1, 1);\n }\n return retval;\n }\n _intersects(who, col, row, colspan, rowspan) {\n for (let item of this.items) {\n let widget = item;\n if (widget === who) {\n continue;\n }\n if ((widget.column < (col + colspan) && (widget.column + widget.colspan) > col)\n && (widget.row < (row + rowspan) && (widget.row + widget.rowspan) > row)) {\n return true;\n }\n }\n return false;\n }\n connectedCallback() {\n super.connectedCallback();\n Utils.addClass(this, PCSS + '-grid');\n // drag-drop\n let dragDrop = this._dragDrop = document.createElement(P + '-drag-drop');\n let floater = document.createElement('div');\n document.body.appendChild(floater);\n dragDrop.floater = floater;\n dragDrop.mode = UI.DragDataMode.Alias;\n dragDrop.dropBehavior = UI.DropBehavior.None;\n dragDrop.addEventListener(UI.DragDropEventType.Start, this._dragDropHandler, false);\n dragDrop.addEventListener(UI.DragDropEventType.Over, this._dragDropHandler, false);\n dragDrop.addEventListener(UI.DragDropEventType.End, this._dragDropHandler, false);\n document.body.appendChild(dragDrop);\n // rescale\n let rescale = this._rescaler = document.createElement(P + '-rescale');\n rescale.handles = [UI.RescaleHandle.Right, UI.RescaleHandle.Bottom];\n rescale.addEventListener(UI.RescaleEventType.Start, this._resizeHandler, false);\n rescale.addEventListener(UI.RescaleEventType.Rescale, this._resizeHandler, false);\n rescale.addEventListener(UI.RescaleEventType.End, this._resizeHandler, false);\n document.body.appendChild(rescale);\n // editor\n // default configuration\n if (Utils.isNullOrEmpty(this.columns)) {\n this.columns = GRID_COLUMNS;\n }\n if (Utils.isNullOrEmpty(this.rows)) {\n this.rows = 1;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.adapt();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this.adapt();\n }\n disconnectedCallback() {\n var dragDrop = this._dragDrop, rescale = this._rescaler;\n if (!Utils.isNull(dragDrop)) {\n dragDrop.floater.remove();\n dragDrop.removeEventListener(UI.DragDropEventType.Start, this._dragDropHandler, false);\n dragDrop.removeEventListener(UI.DragDropEventType.Over, this._dragDropHandler, false);\n dragDrop.removeEventListener(UI.DragDropEventType.End, this._dragDropHandler, false);\n dragDrop.remove();\n this._dragDrop = null;\n }\n if (!Utils.isNull(rescale)) {\n rescale.removeEventListener(UI.RescaleEventType.Start, this._resizeHandler, false);\n rescale.removeEventListener(UI.RescaleEventType.Rescale, this._resizeHandler, false);\n rescale.removeEventListener(UI.RescaleEventType.End, this._resizeHandler, false);\n rescale.remove();\n this._rescaler = null;\n }\n super.disconnectedCallback();\n }\n _normalize(measure, defaultValue = 1) {\n if (typeof measure === 'string') {\n return measure;\n }\n else if (measure == null) {\n measure = defaultValue;\n }\n return this.unitPixels(measure) + 'px';\n }\n unitPixels(qty) {\n return qty * (this.unit || 8);\n }\n adapt() {\n this.style.marginTop = this.unitPixels(this.marginTop || 0) + 'px';\n this.style.marginBottom = this.unitPixels(this.marginBottom || 0) + 'px';\n //\n this.style.gridTemplateColumns = `repeat(${(this.columns || FALLBACK_COLUMNS)}, 1fr)`;\n //this.style.gridAutoRows = `minmax(${(this.minRowheight || 24)}, ${(this.rowheight || 'auto')})`;\n let minrowheight = this._normalize(this.minRowheight, 3), rowheight = this._normalize(this.rowheight || 'auto');\n this.style.gridTemplateRows = `repeat(${(this.rows || FALLBACK_ROWS)}, minmax(${minrowheight}, ${rowheight}))`;\n this.style.gridRowGap = this._normalize(this.rowGap, 1);\n this.style.gridColumnGap = this._normalize(this.columnGap, 1);\n //\n this._setGridLines();\n }\n _setGridLines() {\n var splice = 0;\n const editing = this.editing;\n if (editing) {\n const cols = this.columns || FALLBACK_COLUMNS, rows = this.rows || FALLBACK_ROWS, total = cols * rows;\n splice = total;\n for (let k = 0; k < total; k++) {\n while (this._gridBoxes.length <= k) {\n let s = createSvgGridBox();\n this.appendChild(s);\n this._gridBoxes.push(s);\n }\n let svg = this._gridBoxes[k];\n const i = k % cols, j = Math.floor(k / cols);\n svg.style.gridColumn = (i + 1).toString();\n svg.style.gridRow = (j + 1).toString();\n }\n }\n for (let svg of this._gridBoxes.splice(splice)) {\n svg.remove();\n }\n // behaviors to be synchronized\n if (!Utils.isNull(this._dragDrop) && !Utils.isNull(this._rescaler)) {\n this._dragDrop.disabled = this._rescaler.disabled\n = !editing;\n this._dragDrop.dropTargets = this._gridBoxes;\n }\n }\n};\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"unit\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"marginTop\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"marginBottom\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"columns\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"rows\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemGridWidgetElement.prototype, \"minRowheight\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemGridWidgetElement.prototype, \"rowheight\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"rowGap\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemGridWidgetElement.prototype, \"columnGap\", void 0);\n__decorate([\n Debounce(100)\n], PacemGridWidgetElement.prototype, \"adapt\", null);\nPacemGridWidgetElement = __decorate([\n CustomElement({ tagName: P + '-widget-grid' })\n], PacemGridWidgetElement);\nexport { PacemGridWidgetElement };\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, Defaults, Watch, PropertyConverters, ViewChild, Utils, Components, UI } from '@pacem/pacem-core';\nimport { Components as ScaffoldingComponents } from '@pacem/pacem-scaffolding';\nimport { Functions, EXPRESSION_METADATA_TYPE } from '../../scaffolding/types';\nimport { EXPRESSION_WIDGET_METADATA_EXTRA, gridifyMetadata } from '../types';\n//namespace Pacem.Components.Cms {\n/**\n * Default metadata ('expression' field) 'type' factory: renders a `${P}-datacolumns` field bound to the\n * given entity's `prop` (via `extra.properties`, either a property name or a factory function), used to\n * edit the field's underlying {@link DataColumn}[] value.\n * @param host The form field element requesting the markup.\n * @param hostRef Binding-expression reference to `host` (defaults to `:host`).\n * @param hostEntityRef Binding-expression reference to `host.entity` (defaults to `:host.entity`).\n */\nexport const DATACOLUMNS_METADATA_TYPE = (host, hostRef = ':host', hostEntityRef = ':host.entity') => {\n const attrs = {}, meta = host.metadata, fns = Functions, fnKeys = [];\n attrs['properties'] = `{{ Pacem.CustomElementUtils.getWatchedProperty(${hostEntityRef}, '${meta.prop}').config.converter }}`;\n const tagName = P + '-datacolumns';\n let extra = (meta.extra || {});\n // properties\n if (!Utils.isNullOrEmpty(extra.properties)) {\n switch (typeof extra.properties) {\n case 'string':\n attrs['properties'] = `{{ ${hostEntityRef}.${extra.properties} }}`;\n break;\n case 'function':\n const fnKey = 'fn' + Utils.uniqueCode();\n fns[fnKey] = extra.properties;\n attrs['properties'] = `{{ Pacem.Components.Cms.Functions.${fnKey}(${hostRef}), once }}`;\n // tidy-up memento\n fnKeys.push(fnKey);\n break;\n }\n }\n if (fnKeys.length > 0) {\n // tidy-up\n attrs['on-unload'] = `{{ Pacem.Components.Cms.Functions.dismiss('${fnKeys.join('\\',\\'')}') }}`;\n }\n return { tagName: tagName, attrs: attrs };\n};\nconst DATACOLUMN_METADATA = {\n display: { name: 'Columns' },\n props: [\n { prop: 'header', type: 'string', display: { cssClass: ['form-minimal'], name: 'Header' } },\n {\n prop: 'content', type: EXPRESSION_METADATA_TYPE, display: { name: 'Content' },\n extra: EXPRESSION_WIDGET_METADATA_EXTRA\n }\n ]\n};\n/** Single-column editor (header/content) used by {@link PacemDataColumnsElement}, self-scaffolding its inner `${P}-form` against `DATACOLUMN_METADATA`. */\nlet PacemDataColumnElement = class PacemDataColumnElement extends Components.PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'content':\n this.contentExpression = val;\n break;\n case 'contentExpression':\n this.setAttribute('content', val || '');\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._form.entity = this;\n this._form.metadata = gridifyMetadata(DATACOLUMN_METADATA);\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"header\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"content\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemDataColumnElement.prototype, \"contentExpression\", void 0);\n__decorate([\n ViewChild(P + '-form')\n], PacemDataColumnElement.prototype, \"_form\", void 0);\nPacemDataColumnElement = __decorate([\n CustomElement({\n tagName: P + '-widget-datacolumn', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<${P}-form class=\"panel-body\" autogenerate=\"true\"></${P}-form>`\n })\n], PacemDataColumnElement);\nexport { PacemDataColumnElement };\n/**\n * Form field for authoring a list of {@link DataColumn}s (`value`) by drag-dropping entries from the\n * available `properties` onto the columns strip, each rendered/edited through a nested {@link PacemDataColumnElement}.\n */\nlet PacemDataColumnsElement = class PacemDataColumnsElement extends ScaffoldingComponents.Scaffolding.PacemBaseElement {\n constructor() {\n super(...arguments);\n this._dropHandler = (e) => {\n this.changeHandler(e);\n };\n this._columnifyMetadata = (props = this.properties) => {\n return (props || []).map(p => {\n const header = typeof p.display?.name === 'function' ? /* NOT supported */ p.prop : (p.display?.name || p.prop);\n const c = {\n header,\n content: `{{ ^item.${p.prop} }}`\n };\n return c;\n }).sort((a, b) => a.header > b.header ? 1 : -1);\n };\n }\n get inputFields() {\n return [];\n }\n toggleReadonlyView(readonly) {\n // leave it all to the template bindings\n }\n onChange(evt) {\n return Utils.fromResult(this.value = this._repeater.datasource);\n }\n acceptValue(val) {\n if (!Utils.isNull(this._repeater)) {\n this._repeater.datasource = Utils.clone(val || []);\n }\n }\n getViewValue(value) {\n return /* dummy */ '[DataColumns]';\n }\n convertValueAttributeToProperty(attr) {\n return PropertyConverters.Json.convert(attr, this);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._propDragger.addEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n this._colDragger.addEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._propDragger)) {\n this._propDragger.removeEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n }\n if (!Utils.isNull(this._colDragger)) {\n this._colDragger.removeEventListener(UI.DragDropEventType.End, this._dropHandler, false);\n }\n super.disconnectedCallback();\n }\n};\n__decorate([\n ViewChild(`${P}-repeater[columns]`)\n], PacemDataColumnsElement.prototype, \"_repeater\", void 0);\n__decorate([\n ViewChild(`${P}-drag-drop[properties]`)\n], PacemDataColumnsElement.prototype, \"_propDragger\", void 0);\n__decorate([\n ViewChild(`${P}-drag-drop[columns]`)\n], PacemDataColumnsElement.prototype, \"_colDragger\", void 0);\n__decorate([\n ViewChild('div[drop-target]')\n], PacemDataColumnsElement.prototype, \"_dropTarget\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemDataColumnsElement.prototype, \"properties\", void 0);\nPacemDataColumnsElement = __decorate([\n CustomElement({\n tagName: P + '-widget-datacolumns', shadow: Defaults.USE_SHADOW_ROOT,\n template: `<div class=\"${PCSS}-datacolumns\">\r\n <div class=\"datacolumns-main display-flex flex-fill\">\r\n\r\n <${P}-drag-drop mode=\"${UI.DragDataMode.Alias}\" disabled=\"{{ :host.readonly }}\" handle-selector=\"*[handle]\"\r\n drop-behavior=\"${UI.DropBehavior.InsertChild}\" drop-targets=\"{{ [::_dropTarget] }}\" columns></${P}-drag-drop>\r\n <${P}-repeater class=\"display-flex flex-fill\" columns>\r\n <!-- columns -->\r\n <div class=\"display-flex flex-nowrap\" drop-target>\r\n <template>\r\n <${P}-panel behaviors=\"{{ [::_colDragger] }}\">\r\n <div class=\"${PCSS}-panel panel-side-left side-auto\">\r\n <div class=\"panel-side\">\r\n <${P}-button class=\"display-block button-flat icon-glyph-small\" icon-glyph=\"drag_indicator\" handle></${P}-button>\r\n <${P}-button class=\"display-block button-flat icon-glyph-small\" on-click=\":host.value.splice(^index, 1)\" icon-glyph=\"clear\"></${P}-button>\r\n </div>\r\n <div class=\"panel-heading\">\r\n <${P}-text text=\"{{ ^item.header }}\"></${P}-text>\r\n </div>\r\n <${P}-widget-datacolumn class=\"panel-body\" header=\"{{ ^item.header, twoway }}\" content-expression=\"{{ ^item.content, twoway }}\"></${P}-widget-datacolumn>\r\n </div>\r\n </${P}-panel>\r\n </template>\r\n </div>\r\n </${P}-repeater>\r\n\r\n </div>\r\n <${P}-panel class=\"datacolumns-props\" hide=\"{{ :host.readonly }}\">\r\n <${P}-drag-drop mode=\"${UI.DragDataMode.Copy}\" disabled=\"{{ :host.readonly }}\" handle-selector=\"*[handle]\"\r\n drop-behavior=\"${UI.DropBehavior.InsertChild}\" drop-targets=\"{{ [::_dropTarget] }}\" properties></${P}-drag-drop>\r\n <${P}-repeater datasource=\"{{ :host._columnifyMetadata(:host.properties) }}\">\r\n <!-- properties -->\r\n <template>\r\n <${P}-panel behaviors=\"{{ [::_propDragger] }}\" class=\"${PCSS}-panel panel-side-left side-auto panel-primary panel-filled ${PCSS}-margin margin-bottom-1\">\r\n <div class=\"panel-side\">\r\n <${P}-button class=\"display-block button-flat icon-glyph-small\" icon-glyph=\"drag_indicator\" handle></${P}-button>\r\n </div>\r\n <div class=\"text-truncate panel-body\">\r\n <${P}-span text=\"{{ ^item.header }}\"></${P}-span>\r\n </div>\r\n </${P}-panel>\r\n </template>\r\n </${P}-repeater>\r\n </${P}-panel>\r\n</div>`\n })\n], PacemDataColumnsElement);\nexport { PacemDataColumnsElement };\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, ViewChild, Utils, Components } from '@pacem/pacem-core';\nimport { EXPRESSION_METADATA_TYPE } from '../../../scaffolding/types';\nimport { EXPRESSION_WIDGET_METADATA_EXTRA, buildWidgetMetadata, gridifyMetadata } from '../../types';\nimport { PacemWidgetDataElement } from '../../helpers/data';\nimport { PacemWidgetFetchElement } from '../../helpers/fetcher';\nimport { DATACOLUMNS_METADATA_TYPE } from '../../scaffolding/datacolumns';\nimport { PacemUiWidgetElement } from '../types';\n//namespace Pacem.Components.Cms {\nconst DATACOLUMN_METADATA = {\n display: { name: 'DataColumn' },\n props: [\n { prop: \"header\", type: \"string\", display: { name: \"Header\" } },\n { prop: \"content\", type: EXPRESSION_METADATA_TYPE, display: { name: \"Content\" }, extra: EXPRESSION_WIDGET_METADATA_EXTRA },\n ]\n};\nconst DATAGRID_METADATA = buildWidgetMetadata({\n display: { icon: 'table_chart', name: 'DataGrid', description: 'DataGrid widget.' },\n props: [{\n prop: 'datasource', type: EXPRESSION_METADATA_TYPE, display: { name: 'Datasource' },\n extra: Utils.extend({}, EXPRESSION_WIDGET_METADATA_EXTRA, { filter: (e) => e instanceof PacemWidgetDataElement || e instanceof PacemWidgetFetchElement })\n },\n {\n prop: 'columns', type: DATACOLUMNS_METADATA_TYPE, display: { name: 'Columns' },\n // this will include 'datasource' as argument in the oneToMany source fn\n extra: { properties: 'datarowMetadata' },\n props: gridifyMetadata(DATACOLUMN_METADATA)\n }]\n});\nconst DATAGRID_HEADING_SEPARATOR = 'pacem-widget-datagrid-heading';\nfunction gridify(columns = []) {\n var output = '';\n for (let column of columns || []) {\n // if empty then 1fr\n const col = column.width || 1;\n if (typeof col === 'number') {\n output += col + 'fr ';\n }\n else {\n output += 'auto ';\n }\n }\n return output;\n}\nfunction datagridFragments(columns = []) {\n const fragHeading = document.createDocumentFragment(), fragBody = document.createDocumentFragment();\n let j = 1;\n for (let col of columns) {\n // heading\n const headcell = document.createElement('div');\n headcell.classList.add(PCSS + '-headcell');\n headcell.textContent = col.header;\n fragHeading.appendChild(headcell);\n // body\n const datacell = new Components.PacemSpanElement();\n datacell.classList.add(PCSS + '-datacell', 'datacell-corners');\n datacell.style.gridColumn = j.toString();\n datacell.setAttribute('css', \"{{ {'grid-row': ^index+2} }}\");\n datacell.setAttribute('content', col.content);\n fragBody.appendChild(datacell);\n j++;\n }\n const datarow = new Components.PacemPanelElement();\n datarow.classList.add(PCSS + '-datarow');\n datarow.setAttribute('css', \"{{ {'grid-row': ^index+2} }}\");\n datarow.setAttribute('css-class', \"{{ {'datarow-alt': ^index % 2 === 1} }}\");\n datarow.style.gridColumn = \"1/\" + (columns.length + 1);\n fragBody.appendChild(datarow);\n return { head: fragHeading, body: fragBody };\n}\nfunction datagridInnerHTML(id, columns = []) {\n const { head, body } = datagridFragments(columns);\n const head0 = document.createElement('div');\n head0.appendChild(head);\n const body0 = document.createElement('div');\n body0.appendChild(body);\n return `<${P}-repeater datasource=\"{{ #${id}.datasource }}\">\r\n <div class=\"${PCSS}-datatable\" style=\"grid-template-columns: ${gridify(columns)}\">\r\n ${head0.innerHTML}\r\n <template>${body0.innerHTML}</template>\r\n</div></${P}-repeater>`;\n}\n/**\n * UI widget rendering `datasource` as a CSS-grid-based data table: one `${P}-repeater`-driven row per item,\n * one head/data cell pair per `columns` entry, with `datarowMetadata` auto-extracted from the first bound\n * item (see `_extractMetadataJustInCase`) whenever it isn't supplied. Its markup is entirely (re)generated\n * as plain `innerHTML` (see `datagridInnerHTML`) whenever `columns` changes.\n */\nlet PacemWidgetDataGridElement = class PacemWidgetDataGridElement extends PacemUiWidgetElement {\n constructor() {\n super(DATAGRID_METADATA);\n /** Gets or sets the rendered columns (header + per-row content expression); reassigning rebuilds the widget's markup. */\n this.columns = [];\n /** Gets or sets the rows rendered by the grid. */\n this.datasource = [];\n /** Gets or sets the field metadata describing a `datasource` row; auto-extracted from the first bound item when left unset. */\n this.datarowMetadata = [];\n this._builtUponDatasource = false;\n }\n _gridify(columns = this.columns) {\n var output = '';\n for (let column of columns || []) {\n // if empty then 1fr\n const col = column.width || 1;\n if (typeof col === 'number') {\n output += col + 'fr ';\n }\n else {\n output += 'auto ';\n }\n }\n return output;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'columns':\n /*\n *\n * TODO: manage columns separately!\n * Create an ad-hoc editor/formfield and a dedicated form\n *\n * */\n this.innerHTML = datagridInnerHTML(this.id, val);\n break;\n case 'datasource':\n this._extractMetadataJustInCase(val);\n break;\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.innerHTML = datagridInnerHTML(this.id, this.columns);\n }\n _seekArray(ds) {\n if (Utils.isArray(ds)) {\n return ds;\n }\n if (typeof ds === 'object') {\n for (let prop in ds) {\n const arr = this._seekArray(ds[prop]);\n if (!Utils.isNull(arr)) {\n return arr;\n }\n }\n }\n return null;\n }\n _extractMetadataJustInCase(ds = this.datasource) {\n if ((Utils.isNullOrEmpty(this.datarowMetadata) || this._builtUponDatasource) && !Utils.isNullOrEmpty(ds)) {\n const arr = this._seekArray(ds);\n if (!Utils.isNullOrEmpty(arr)) {\n const props = [];\n const item = arr[0];\n for (let prop in item) {\n props.push({ prop, type: typeof item[prop] });\n }\n this.datarowMetadata = props;\n this._builtUponDatasource = true;\n }\n }\n }\n};\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Json })\n], PacemWidgetDataGridElement.prototype, \"columns\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemWidgetDataGridElement.prototype, \"datasource\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemWidgetDataGridElement.prototype, \"datarowMetadata\", void 0);\n__decorate([\n ViewChild(`.${PCSS}-datatable`)\n], PacemWidgetDataGridElement.prototype, \"_datatable\", void 0);\n__decorate([\n ViewChild('template')\n], PacemWidgetDataGridElement.prototype, \"_template\", void 0);\n__decorate([\n ViewChild(P + '-repeater')\n], PacemWidgetDataGridElement.prototype, \"_repeater\", void 0);\nPacemWidgetDataGridElement = __decorate([\n CustomElement({\n tagName: P + '-widget-datagrid'\n })\n], PacemWidgetDataGridElement);\nexport { PacemWidgetDataGridElement };\n","import { Utils } from '@pacem/pacem-core';\nexport const PermissionEditEventName = 'permissionedit';\n/** Dispatched to request permission-editing UI for the given {@link Permissible} resource. */\nexport class PermissionEditEvent extends CustomEvent {\n constructor(permissible) {\n super(PermissionEditEventName, { detail: permissible, cancelable: false, bubbles: true });\n }\n}\n/** Static, claim-based authorization checks (edit/read/add/delete/translate) against a {@link Permissible} resource's {@link Permission} list. */\nexport class Permissible {\n /** Gets whether `claims` grants edit (update) permission on `resource`. */\n static canEdit(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.update); }\n /** Gets whether `claims` grants read permission on `resource`. */\n static canRead(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.read); }\n /** Gets whether `claims` grants add (create) permission on `resource`. */\n static canAdd(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.create); }\n /** Gets whether `claims` grants delete permission on `resource`. */\n static canDelete(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.delete); }\n /** Gets whether `claims` grants translate permission on `resource`. */\n static canTranslate(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.translate); }\n /** Returns whether `claims` satisfies `predicate` for at least one of `resource.permissions`; when `resource.permissions` is empty, access is unrestricted (returns `true`). */\n static _canDoSomethingToResource(claims, resource, predicate) {\n if (Utils.isNullOrEmpty(claims) || Utils.isNull(resource)) {\n return false;\n }\n // if no permissions are set, then you're free to go!\n var editable = true;\n if (resource.permissions && resource.permissions.length > 0) {\n // check correspondence otherwise\n editable = false;\n for (let permission of resource.permissions) {\n if (predicate(permission) && claims[permission.claimType] && claims[permission.claimType].indexOf(permission.claimValue) >= 0) {\n return true;\n }\n }\n }\n // return\n return editable;\n }\n}\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["Utils","CustomElementUtils","PropertyChangeEventName","P","__decorate","this","ScaffoldingComponents","Watch","PropertyConverters","ViewChild","Debounce","CustomElement","Defaults","RepeaterItem","PCSS","UIComponents","Components","DATA_METADATA","PacemEventTarget","Net","Scaffolding","Storage","Logging","UI","DATACOLUMN_METADATA","DeepMerger"],"mappings":"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"}
|