pacem 0.20.0-harran → 0.20.0-jericho
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/css/pacem-dark-content.min.css +1 -1
- package/dist/css/pacem-dark-shell.min.css +1 -1
- package/dist/css/pacem-dark.min.css +1 -1
- package/dist/css/pacem-light-content.min.css +1 -1
- package/dist/css/pacem-light-shell.min.css +1 -1
- package/dist/css/pacem-light.min.css +1 -1
- package/dist/css/pacem-phousys-content.min.css +1 -1
- package/dist/css/pacem-phousys-shell.min.css +1 -1
- package/dist/css/pacem-phousys.min.css +1 -1
- package/dist/js/azure-maps.d.ts +1 -1
- package/dist/js/pacem-2d.d.ts +1 -1
- package/dist/js/pacem-2d.js +1 -1
- package/dist/js/pacem-2d.min.js +1 -1
- package/dist/js/pacem-3d.d.ts +1 -1
- package/dist/js/pacem-3d.js +1 -1
- package/dist/js/pacem-3d.min.js +1 -1
- package/dist/js/pacem-charts.d.ts +1 -1
- package/dist/js/pacem-charts.js +1 -1
- package/dist/js/pacem-charts.min.js +1 -1
- package/dist/js/pacem-cms.d.ts +1 -1
- package/dist/js/pacem-cms.js +1 -1
- package/dist/js/pacem-cms.min.js +1 -1
- package/dist/js/pacem-core.d.ts +1 -1
- package/dist/js/pacem-core.js +1 -1
- package/dist/js/pacem-core.min.js +1 -1
- package/dist/js/pacem-foundation.d.ts +1 -1
- package/dist/js/pacem-foundation.js +1 -1
- package/dist/js/pacem-foundation.min.js +1 -1
- package/dist/js/pacem-fx.d.ts +1 -1
- package/dist/js/pacem-fx.js +1 -1
- package/dist/js/pacem-fx.min.js +1 -1
- package/dist/js/pacem-logging.d.ts +1 -1
- package/dist/js/pacem-logging.js +1 -1
- package/dist/js/pacem-logging.min.js +1 -1
- package/dist/js/pacem-maps.d.ts +1 -1
- package/dist/js/pacem-maps.js +1 -1
- package/dist/js/pacem-maps.min.js +1 -1
- package/dist/js/pacem-networking.js +1 -1
- package/dist/js/pacem-networking.min.js +1 -1
- package/dist/js/pacem-numerical.d.ts +1 -1
- package/dist/js/pacem-numerical.js +1 -1
- package/dist/js/pacem-numerical.min.js +1 -1
- package/dist/js/pacem-plus.d.ts +9 -4
- package/dist/js/pacem-plus.js +70 -37
- package/dist/js/pacem-plus.min.js +2 -2
- package/dist/js/pacem-scaffolding.d.ts +1 -1
- package/dist/js/pacem-scaffolding.js +1 -1
- package/dist/js/pacem-scaffolding.min.js +1 -1
- package/dist/js/pacem-ui.d.ts +1 -1
- package/dist/js/pacem-ui.js +1 -1
- package/dist/js/pacem-ui.min.js +1 -1
- package/dist/js/swagger-types.d.ts +1 -1
- package/package.json +1 -1
package/dist/js/azure-maps.d.ts
CHANGED
package/dist/js/pacem-2d.d.ts
CHANGED
package/dist/js/pacem-2d.js
CHANGED
package/dist/js/pacem-2d.min.js
CHANGED
package/dist/js/pacem-3d.d.ts
CHANGED
package/dist/js/pacem-3d.js
CHANGED
package/dist/js/pacem-3d.min.js
CHANGED
package/dist/js/pacem-charts.js
CHANGED
package/dist/js/pacem-cms.d.ts
CHANGED
package/dist/js/pacem-cms.js
CHANGED
package/dist/js/pacem-cms.min.js
CHANGED
package/dist/js/pacem-core.d.ts
CHANGED
package/dist/js/pacem-core.js
CHANGED
package/dist/js/pacem-fx.d.ts
CHANGED
package/dist/js/pacem-fx.js
CHANGED
package/dist/js/pacem-fx.min.js
CHANGED
package/dist/js/pacem-logging.js
CHANGED
package/dist/js/pacem-maps.d.ts
CHANGED
package/dist/js/pacem-maps.js
CHANGED
package/dist/js/pacem-plus.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.20.0-
|
|
2
|
+
* pacem v0.20.0-jericho (https://js.pacem.it)
|
|
3
3
|
* Copyright 2021 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
@@ -170,11 +170,16 @@ declare namespace Pacem.Components.Plus {
|
|
|
170
170
|
viewActivatedCallback(): void;
|
|
171
171
|
propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
|
|
172
172
|
disconnectedCallback(): void;
|
|
173
|
-
private
|
|
174
|
-
private
|
|
173
|
+
private _setupRouterHandlers;
|
|
174
|
+
private _disposeRouterHandlers;
|
|
175
|
+
private _routerNavigatingHandler;
|
|
176
|
+
private _routerNavigateHandler;
|
|
175
177
|
private _currentBasePath;
|
|
176
178
|
private _normalizePath;
|
|
177
|
-
private
|
|
179
|
+
private _areStatesEquivalent;
|
|
180
|
+
private _updateStateFromURI;
|
|
181
|
+
private _updateURIFromState;
|
|
182
|
+
set(key: string, value: any): void;
|
|
178
183
|
}
|
|
179
184
|
}
|
|
180
185
|
declare namespace Pacem.Components.Plus {
|
package/dist/js/pacem-plus.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.20.0-
|
|
2
|
+
* pacem v0.20.0-jericho (https://js.pacem.it)
|
|
3
3
|
* Copyright 2021 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
@@ -834,48 +834,61 @@ var Pacem;
|
|
|
834
834
|
(function (Components) {
|
|
835
835
|
var Plus;
|
|
836
836
|
(function (Plus) {
|
|
837
|
-
var
|
|
837
|
+
var _RisolutoHashStateElement_locked;
|
|
838
838
|
let RisolutoHashStateElement = class RisolutoHashStateElement extends Components.PacemEventTarget {
|
|
839
839
|
constructor() {
|
|
840
840
|
super(...arguments);
|
|
841
841
|
this.state = {};
|
|
842
|
-
|
|
843
|
-
this.
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
842
|
+
_RisolutoHashStateElement_locked.set(this, void 0);
|
|
843
|
+
this._routerNavigatingHandler = (_) => {
|
|
844
|
+
__classPrivateFieldSet(this, _RisolutoHashStateElement_locked, true, "f");
|
|
845
|
+
};
|
|
846
|
+
this._routerNavigateHandler = (_) => {
|
|
847
|
+
__classPrivateFieldSet(this, _RisolutoHashStateElement_locked, false, "f");
|
|
848
|
+
this._updateStateFromURI();
|
|
848
849
|
};
|
|
849
850
|
}
|
|
850
851
|
viewActivatedCallback() {
|
|
851
852
|
super.viewActivatedCallback();
|
|
852
|
-
this.
|
|
853
|
-
|
|
854
|
-
if (!Pacem.Utils.isNull(router)) {
|
|
855
|
-
router.addEventListener(Pacem.PropertyChangeEventName, this._routerStateChangeHandler, false);
|
|
856
|
-
}
|
|
853
|
+
this._updateStateFromURI();
|
|
854
|
+
this._setupRouterHandlers(this.router);
|
|
857
855
|
}
|
|
858
856
|
propertyChangedCallback(name, old, val, first) {
|
|
859
857
|
super.propertyChangedCallback(name, old, val, first);
|
|
860
|
-
|
|
861
|
-
|
|
858
|
+
switch (name) {
|
|
859
|
+
case 'state':
|
|
860
|
+
if (!first) {
|
|
861
|
+
this._updateURIFromState();
|
|
862
|
+
}
|
|
863
|
+
break;
|
|
864
|
+
case 'disabled':
|
|
865
|
+
if (!!val) {
|
|
866
|
+
this._updateStateFromURI();
|
|
867
|
+
}
|
|
868
|
+
break;
|
|
869
|
+
case 'router':
|
|
870
|
+
if (!first) {
|
|
871
|
+
this._disposeRouterHandlers(old);
|
|
872
|
+
this._setupRouterHandlers(val);
|
|
873
|
+
}
|
|
874
|
+
break;
|
|
862
875
|
}
|
|
863
876
|
}
|
|
864
877
|
disconnectedCallback() {
|
|
865
|
-
|
|
878
|
+
this._disposeRouterHandlers();
|
|
879
|
+
super.disconnectedCallback();
|
|
880
|
+
}
|
|
881
|
+
_setupRouterHandlers(router = this.router) {
|
|
866
882
|
if (!Pacem.Utils.isNull(router)) {
|
|
867
|
-
|
|
883
|
+
window.addEventListener('navigating', this._routerNavigatingHandler, false);
|
|
884
|
+
window.addEventListener('navigate', this._routerNavigateHandler, false);
|
|
868
885
|
}
|
|
869
|
-
super.disconnectedCallback();
|
|
870
886
|
}
|
|
871
|
-
|
|
872
|
-
var state = {};
|
|
873
|
-
const router = this.router;
|
|
887
|
+
_disposeRouterHandlers(router = this.router) {
|
|
874
888
|
if (!Pacem.Utils.isNull(router)) {
|
|
875
|
-
|
|
876
|
-
|
|
889
|
+
window.removeEventListener('navigating', this._routerNavigatingHandler, false);
|
|
890
|
+
window.removeEventListener('navigate', this._routerNavigateHandler, false);
|
|
877
891
|
}
|
|
878
|
-
this.state = state;
|
|
879
892
|
}
|
|
880
893
|
_currentBasePath() {
|
|
881
894
|
const router = this.router;
|
|
@@ -895,25 +908,45 @@ var Pacem;
|
|
|
895
908
|
q !== null && q !== void 0 ? q : (q = '');
|
|
896
909
|
return path + (q.length > 0 ? ('?' + q) : '');
|
|
897
910
|
}
|
|
898
|
-
|
|
911
|
+
_areStatesEquivalent(s1, s2) {
|
|
912
|
+
const state1 = s1 || {}, state2 = s2 || {};
|
|
913
|
+
return Pacem.Utils.jsonSortStringify(state1) === Pacem.Utils.jsonSortStringify(state2);
|
|
914
|
+
}
|
|
915
|
+
_updateStateFromURI() {
|
|
916
|
+
if (this.disabled || __classPrivateFieldGet(this, _RisolutoHashStateElement_locked, "f")) {
|
|
917
|
+
return;
|
|
918
|
+
}
|
|
919
|
+
var state = {};
|
|
899
920
|
const router = this.router;
|
|
900
921
|
if (!Pacem.Utils.isNull(router)) {
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
922
|
+
Pacem.Utils.extend(state, Pacem.Utils.URIs.parseQuery(router.state && router.state.$hash || '{}'));
|
|
923
|
+
}
|
|
924
|
+
if (!this._areStatesEquivalent(this.state, state)) {
|
|
925
|
+
this.state = state;
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
_updateURIFromState(state = this.state) {
|
|
929
|
+
if (this.disabled || __classPrivateFieldGet(this, _RisolutoHashStateElement_locked, "f")) {
|
|
930
|
+
return;
|
|
931
|
+
}
|
|
932
|
+
const router = this.router;
|
|
933
|
+
if (!Pacem.Utils.isNull(router)) {
|
|
934
|
+
const actual = this._currentBasePath();
|
|
935
|
+
const currentState = Pacem.Utils.URIs.parseQuery(router.state.$hash || '{}'), targetState = state || {};
|
|
936
|
+
if (!this._areStatesEquivalent(currentState, targetState)) {
|
|
937
|
+
// checked state equivalence to avoid superfluous navigation
|
|
938
|
+
const url = Pacem.Utils.URIs.appendQuery(actual, state, false, true);
|
|
939
|
+
// navigate
|
|
940
|
+
router.path = url;
|
|
912
941
|
}
|
|
913
942
|
}
|
|
914
943
|
}
|
|
944
|
+
set(key, value) {
|
|
945
|
+
const obj = Object.defineProperty({}, key, { enumerable: true, value });
|
|
946
|
+
this.state = Pacem.Utils.extend({}, this.state || {}, obj);
|
|
947
|
+
}
|
|
915
948
|
};
|
|
916
|
-
|
|
949
|
+
_RisolutoHashStateElement_locked = new WeakMap();
|
|
917
950
|
__decorate([
|
|
918
951
|
Pacem.Watch({ emit: false, converter: Pacem.PropertyConverters.Element })
|
|
919
952
|
], RisolutoHashStateElement.prototype, "router", void 0);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.20.0-
|
|
2
|
+
* pacem v0.20.0-jericho (https://js.pacem.it)
|
|
3
3
|
* Copyright 2021 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
6
|
-
var Pacem,__decorate=this&&this.__decorate||function(e,t,a,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,a):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,a,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(i=(n<3?r(i):n>3?r(t,a,i):r(t,a))||i);return n>3&&i&&Object.defineProperty(t,a,i),i},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,a,o,r){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?r.call(e,a):r?r.value=a:t.set(e,a),a},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,a,o){if("a"===a&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===a?o:"a"===a?o.call(e):o?o.value:t.get(e)};!function(e){!function(t){!function(a){let o=class PacemCarouselElement extends t.UI.PacemAdaptedIterativeElement{constructor(){super(...arguments),this.interval=4e3}};__decorate([e.ViewChild(e.P+"-adapter")],o.prototype,"adapter",void 0),__decorate([e.ViewChild(e.P+"-slideshow")],o.prototype,"slideshow",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number})],o.prototype,"interval",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],o.prototype,"pausable",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-carousel",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-repeater datasource="{{ :host.datasource }}">\n <${e.P}-slideshow class="${e.PCSS}-carousel" adapter="{{ ::adapter }}" index="{{ :host.index, twoway }}" on-load="this.focus()">\n\n <template>\n\n <${e.P}-slide class="${e.PCSS}-carousel-item" css-class="{{ { '${e.PCSS}-carousel-previous': :host.isPrevious(^index, ::slideshow.index), '${e.PCSS}-carousel-next': :host.isNext(^index, ::slideshow.index), '${e.PCSS}-carousel-focus': ^index === ::slideshow.index } }}">\n <${e.P}-a href="{{ ^item.url }}">\n <${e.P}-img disabled="{{ !:host.isCloseTo(^index, ::slideshow.index) }}" class="${e.PCSS}-carousel-splash" adapt="cover" src="{{ ^item.image }}"></${e.P}-img>\n <div class="${e.PCSS}-carousel-content">\n <div class="${e.PCSS}-carousel-caption">\n <h3><${e.P}-text text="{{ ^item.title }}"></${e.P}-text></h3>\n <${e.P}-panel class="paragraph" content="{{ ^item.content }}"></${e.P}-panel>\n </div>\n </div>\n </${e.P}-a>\n </${e.P}-slide>\n\n </template>\n </${e.P}-slideshow>\n \n </${e.P}-repeater><${e.P}-adapter pausable="{{ :host.pausable }}" class="${e.PCSS}-carousel-adapter" interval="{{ :host.interval }}"></${e.P}-adapter>`})],o),a.PacemCarouselElement=o}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){class PacemContextMenuItemElement extends t.PacemItemElement{connectedCallback(){super.connectedCallback(),e.Utils.addClass(this,e.PCSS+"-context-menuitem")}propertyChangedCallback(e,t,a,o){super.propertyChangedCallback(e,t,a,o);const r=this.container;r instanceof n&&r.refresh()}}__decorate([e.Watch({converter:e.PropertyConverters.String})],PacemContextMenuItemElement.prototype,"iconGlyph",void 0),a.PacemContextMenuItemElement=PacemContextMenuItemElement;let o=class PacemContextMenuItemCommandElement extends PacemContextMenuItemElement{};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"commandName",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"caption",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"tooltip",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"iconGlyph",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"confirmationMessage",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],o.prototype,"confirmationDialog",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-context-menuitem-command"})],o),a.PacemContextMenuItemCommandElement=o;let r=class PacemContextMenuItemSeparatorElement extends PacemContextMenuItemElement{};r=__decorate([e.CustomElement({tagName:e.P+"-context-menuitem-separator"})],r),a.PacemContextMenuItemSeparatorElement=r;let n=class PacemContextMenuElement extends t.PacemItemsContainerElement{constructor(){super(...arguments),this._dispatchCommand=t=>{e.avoidHandler(t),this.dispatchEvent(new e.CommandEvent({commandName:t.detail.commandName,commandArgument:t.detail.commandArgument||this.commandArgument}))}}validate(e){return e instanceof PacemContextMenuItemElement}get _balloon(){return this._btns.dom[0]}get _repeater(){return this._balloon.querySelector(e.P+"-repeater")}register(e){const t=super.register(e);return t&&this._refreshRepeater(),t}unregister(e){const t=super.unregister(e);return t&&this._refreshRepeater(),t}viewActivatedCallback(){super.viewActivatedCallback(),this._balloon.addEventListener(e.CommandEventName,this._dispatchCommand,!1)}disconnectedCallback(){e.Utils.isNull(this._balloon)||this._balloon.removeEventListener(e.CommandEventName,this._dispatchCommand,!1),super.disconnectedCallback()}refresh(){this._refreshRepeater()}_refreshRepeater(){const t=this._repeater;e.Utils.isNullOrEmpty(t)||(t.datasource=this.items.map((t=>{let a={localName:t.localName};for(let o=0;o<t.attributes.length;o++){let r=t.attributes.item(o).name,n=e.CustomElementUtils.kebabToCamel(r);a[n]=t[n]}return a})))}};__decorate([e.ViewChild(e.P+"-button")],n.prototype,"_btn",void 0),__decorate([e.ViewChild(e.P+"-shell-proxy")],n.prototype,"_btns",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],n.prototype,"commandArgument",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],n.prototype,"icon",void 0),__decorate([e.Debounce(!0)],n.prototype,"_refreshRepeater",null),n=__decorate([e.CustomElement({tagName:e.P+"-context-menu",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-button class="button-flat ${e.PCSS}-margin margin-0"><${e.P}-icon icon="{{ :host.icon || 'more_horiz' }}"></${e.P}-icon></${e.P}-button>\n<${e.P}-content></${e.P}-content>\n<${e.P}-shell-proxy>\n <${e.P}-balloon target="{{ :host._btn }}" class="${e.PCSS}-contextmenu" options="{{ { trigger: 'click', position: 'x', align: 'auto' } }}">\n <${e.P}-repeater>\n <template>\n <${e.P}-if match="{{ ^item.localName === '${e.P}-context-menuitem-command' }}">\n <${e.P}-button icon-glyph="{{ ^item.iconGlyph }}" hide="{{ ^item.hide }}" disabled="{{ ^item.disabled }}"\n on-mouseup="::_balloon.popout()" tooltip="{{ ^item.tooltip }}"\n confirmation-message="{{ ^item.confirmationMessage }}" confirmation-dialog="{{ ^item.confirmationDialog }}"\n command-name="{{ ^item.commandName }}"><${e.P}-text text="{{ ^item.caption }}"></${e.P}-text></${e.P}-button>\n </${e.P}-if>\n <${e.P}-if match="{{ ^item.localName === '${e.P}-context-menuitem-separator' && !^item.hide }}">\n <hr />\n </${e.P}-if>\n </template>\n </${e.P}-repeater>\n </${e.P}-balloon>\n</${e.P}-shell-proxy>`})],n),a.PacemContextMenuElement=n}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){let o;!function(e){e.Text="text",e.Html="html",e.Image="image",e.Markdown="markdown"}(o=a.EditMode||(a.EditMode={}));let r=class PacemEditElement extends t.PacemElement{constructor(a=new e.MarkdownService){super(),this._markdown=a,this._dialogPropertyChangedHandler=e=>{this._dialogPropertyChangedCallback(e)},this._broadcastFetchRequestEventName=e=>{this.dispatchEvent(new t.Scaffolding.ImageFetchRequestEvent(e.detail))},this._innerValueChangedHandler=t=>{"value"!==t.detail.propertyName||e.Utils.isNull(this._dialog)||(this._dialog.state=t.detail.currentValue)},this._editHandler=e=>{this.edit(e)}}_addButton(){if(e.Utils.isNull(this._button)){var t=document.createElement(e.P+"-button");return t.className=e.PCSS+"-edit-button",t.addEventListener("click",this._editHandler,!1),this._target.appendChild(t),this._button=t}}_removeButton(){var t=this._button;e.Utils.isNull(t)||(t.removeEventListener("click",this._editHandler,!1),t.remove(),this._button=null)}_addDialog(){var a=document.createElement(e.P+"-dialog");return a.buttons=t.UI.DialogButtons.OkCancel,a.addEventListener(e.PropertyChangeEventName,this._dialogPropertyChangedHandler,!1),a.appendChild(this._addTextarea()),a.appendChild(this._addContenteditable()),a.appendChild(this._addEditImage()),document.body.appendChild(a),this._dialog=a}_removeDialog(){this._removeTextarea(),this._removeContenteditable(),this._removeEditImage(),e.Utils.isNull(this._dialog)||(this._dialog.removeEventListener(e.PropertyChangeEventName,this._dialogPropertyChangedHandler,!1),this._dialog.remove())}_addTextarea(){var t=document.createElement(e.P+"-textarea");t.className=e.PCSS+"-edit-text",t.addEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1);const a=this.type||o.Text;return t.hide=a!==o.Text&&a!==o.Markdown,this._textarea=t}_removeTextarea(){e.Utils.isNull(this._textarea)||this._textarea.removeEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1)}_addContenteditable(){var t=document.createElement(e.P+"-contenteditable");t.className=e.PCSS+"-edit-content",t.addEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1);const a=this.type||o.Text;return t.hide=a!==o.Html,this._contenteditable=t}_removeContenteditable(){e.Utils.isNull(this._contenteditable)||this._contenteditable.removeEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1)}_addEditImage(){var a=document.createElement(e.P+"-edit-image");a.disabled=!0,a.addEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1),a.addEventListener(t.Scaffolding.ImageFetchRequestEventName,this._broadcastFetchRequestEventName,!1);const r=this.type||o.Text;return a.hide=r!==o.Image,a.uploadUrl=this.imageUploadUrl,a.allowSnapshot=this.allowSnapshot,a.maxWidth=this.maxImageWidth,a.maxHeight=this.maxImageHeight,this._editImage=a}_removeEditImage(){e.Utils.isNull(this._editImage)||(this._editImage.removeEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1),this._editImage.removeEventListener(t.Scaffolding.ImageFetchRequestEventName,this._broadcastFetchRequestEventName,!1))}_update(t){var a=this._content;switch(this.type){case o.Html:a.innerHTML=t;break;case o.Markdown:switch(a.localName){case e.P+"-markdown":a.value=t;break;default:a.innerHTML=this._markdown.toHtml(t)}break;case o.Image:switch(a.localName){case"img":case e.P+"-img":a.src=t;break;default:a.style.backgroundImage=`url(${t})`}break;default:this._content.textContent=t}}_retrieve(){var t=this._content;switch(this.type){case o.Html:return t.innerHTML;case o.Image:switch(t.localName){case e.P+"-img":case"img":return t.src;default:let a=getComputedStyle(t).backgroundImage,o=/url\(["']?([^'"]+)["']?\)/.exec(a);return o&&o.length&&o[1]}case o.Markdown:return t.value||t.textContent;default:return t.textContent}}_setup(){this.disabled?(e.Utils.removeClass(this._target,e.PCSS+"-editing"),this._removeButton()):(e.Utils.addClass(this._target,e.PCSS+"-editing"),this._addButton())}_dialogPropertyChangedCallback(t){if("state"===t.detail.propertyName){const a=t.detail.currentValue;e.Utils.isNull(this._textarea)||(this._textarea.value=a),e.Utils.isNull(this._contenteditable)||(this._contenteditable.value=a),e.Utils.isNull(this._editImage)||(this._editImage.value=a),this._update(t.detail.currentValue)}}get _target(){var t=this.target;return e.Utils.isNull(t)&&(t=this.firstElementChild),t}connectedCallback(){super.connectedCallback(),this._addDialog()}viewActivatedCallback(){super.viewActivatedCallback(),this._addButton(),this._setup()}disconnectedCallback(){this._removeButton(),this._removeDialog(),super.disconnectedCallback()}propertyChangedCallback(t,a,r,n){switch(super.propertyChangedCallback(t,a,r,n),t){case"imageUploadUrl":e.Utils.isNull(this._editImage)||(this._editImage.uploadUrl=r);break;case"allowSnapshot":e.Utils.isNull(this._editImage)||(this._editImage.allowSnapshot=r);break;case"imageSet":e.Utils.isNull(this._editImage)||(this._editImage.imageSet=r);break;case"disabled":this._setup();break;case"type":const t=r;e.Utils.isNull(this._textarea)||(this._textarea.hide=t!==o.Text&&t!==o.Markdown),e.Utils.isNull(this._contenteditable)||(this._contenteditable.hide=t!==o.Html),e.Utils.isNull(this._editImage)||(this._editImage.hide=t!==o.Image);break;case"maxImageHeight":e.Utils.isNull(this._editImage)||(this._editImage.maxHeight=r);break;case"maxImageWidth":e.Utils.isNull(this._editImage)||(this._editImage.maxWidth=r)}}edit(a){e.avoidHandler(a);var o=this._target;if(!e.Utils.isNull(o)){this._removeButton(),this._content=o;var r=this._state=this._retrieve();e.Utils.isNull(this._editImage)||(this._editImage.disabled=!1),this._dialog.open(r).then((a=>{switch(a.button){case t.UI.DialogButton.Cancel:this._update(this._state);break;case t.UI.DialogButton.Ok:this._update(a.state),this.dispatchEvent(new CustomEvent("commit",{detail:{value:a.state}}))}this._content=null,e.Utils.isNull(this._editImage)||(this._editImage.disabled=!0),this._addButton()}))}}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],r.prototype,"key",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],r.prototype,"type",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Element})],r.prototype,"target",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],r.prototype,"imageUploadUrl",void 0),__decorate([e.Watch({emit:!1})],r.prototype,"imageSet",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],r.prototype,"maxImageWidth",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],r.prototype,"maxImageHeight",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],r.prototype,"allowSnapshot",void 0),r=__decorate([e.CustomElement({tagName:e.P+"-edit"})],r),a.PacemEditElement=r}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){let o=class PacemGalleryElement extends t.UI.PacemAdaptedIterativeElement{get adapter(){return this._adapter}async _heroAnimate(t,a){if(!e.Utils.isNull(t)){let o=document.createElement(e.P+"-img"),r=this._heroPlaceholderProxy.dom[0];const n=300;o.src=a||t.src,o.adapt="contain";let i=e.Utils.offset(r),s=e.Utils.offset(t),l=o.style;const d=getComputedStyle(r);l.border=d.border,l.width=r.clientWidth+"px",l.height=r.clientHeight+"px",l.position="absolute",l.zIndex=d.zIndex,l.top=i.top+"px",l.left=i.left+"px";const c=t.clientWidth/r.clientWidth,h=t.clientHeight/r.clientHeight,m=s.left-i.left+"px",p=s.top-i.top+"px";l.transformOrigin="0 0",l.transition=`transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${n}ms, opacity ${n}ms`,l.transform=`translate(${m}, ${p}) scale(${c}, ${h})`,document.body.appendChild(o),requestAnimationFrame((()=>{o.style.transform=""})),await e.Utils.waitForAnimationEnd(o,n),o.remove()}}open(e,t,a){this._poppingUp=!0,this._lightbox.show=!0,this._slideshow.index=e,this._heroAnimate(t,a).then((e=>{this._poppingUp=!1,this._slideshow.focus()}))}};__decorate([e.ViewChild(e.P+"-adapter")],o.prototype,"_adapter",void 0),__decorate([e.ViewChild(e.P+"-lightbox")],o.prototype,"_lightbox",void 0),__decorate([e.ViewChild(e.P+"-slideshow")],o.prototype,"_slideshow",void 0),__decorate([e.ViewChild(e.P+"-shell-proxy")],o.prototype,"_heroPlaceholderProxy",void 0),__decorate([e.Watch()],o.prototype,"_poppingUp",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-gallery",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-lightbox class="${e.PCSS}-gallery">\n <${e.P}-repeater datasource="{{ :host.datasource }}">\n <${e.P}-slideshow adapter="{{ ::_adapter }}" index="{{ :host.index, twoway }}">\n <template>\n <${e.P}-slide class="${e.PCSS}-gallery-item"\ncss-class="{{ { '${e.PCSS}-gallery-previous': :host.isPrevious(^index, ::_slideshow.index), '${e.PCSS}-gallery-next': :host.isNext(^index, ::_slideshow.index), '${e.PCSS}-gallery-focus': ^index === ::_slideshow.index } }}"\n>\n <${e.P}-img src="{{ ^item.image }}" disabled="{{ !(:host.isCloseTo(^index, ::_slideshow.index) || ^index === ::_slideshow.index) }}" \ncss="{{ {'visibility': (:host._poppingUp ? 'hidden' : ''), 'transition': (:host._poppingUp ? 'none' : '')} }}" class="${e.PCSS}-gallery-splash" adapt="contain"></${e.P}-img>\n <${e.P}-panel hide="{{ $pacem.isNullOrEmpty(^item.caption) }}" class="${e.PCSS}-gallery-caption">\n <${e.P}-span class="paragraph" text="{{ ^item.caption }}"></${e.P}-span>\n </${e.P}-panel>\n \n </${e.P}-slide>\n </template>\n </${e.P}-slideshow>\n </${e.P}-repeater>\n<${e.P}-adapter class="${e.PCSS}-gallery-adapter"></${e.P}-adapter>\n</${e.P}-lightbox>\n<${e.P}-shell-proxy><div class="${e.PCSS}-gallery-hero-target"></div></${e.P}-shell-proxy>`})],o),a.PacemGalleryElement=o}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){var o,r;let n=r=class PacemModalFormElement extends t.UI.PacemDialogBase{constructor(){super(),this.method=e.Net.HttpMethod.Post,o.set(this,!1),this._emitter=new e.Components.Scaffolding.FormEventEmitter(this)}viewActivatedCallback(){super.viewActivatedCallback();var t=this.querySelector(`.${e.PCSS}-lightbox`);t.appendChild(this._buttons=this.querySelector(`.${e.PCSS}-dialog-buttons`)),t.appendChild(this.querySelector(`.${e.PCSS}-dialog-heading`)),t.appendChild(this.querySelector(e.P+"-loader")),this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"modalButtons",currentValue:this.modalButtons})),this._emitter.start()}disconnectedCallback(){this._emitter.stop(),super.disconnectedCallback()}_submit(a){this.readonly?this.commit(t.UI.DialogButton.Ok,a):(e.avoidHandler(a),e.Utils.isNullOrEmpty(this.action)?this.commit(t.UI.DialogButton.Ok,a):this._form.submit(this._fetcher).then((e=>{this.commit(t.UI.DialogButton.Ok,a)}),(e=>{})))}_onSubmit(e){this.emit(e)}open(t,a,n=!0){if(e.Utils.isNull(t))throw`The state of a ${r} cannot be null.`;__classPrivateFieldSet(this,o,a,"f");var i=super.open(t);return n&&this._form.setPristine(),i}commit(t,a){super.commit(t,a),__classPrivateFieldGet(this,o,"f")||e.Utils.waitForAnimationEnd(this,500).then((e=>{this.state={}}))}_cancel(e){this.commit(t.UI.DialogButton.Cancel,e),this._form.reset()}_broadcast(e){this.dispatchEvent(new CustomEvent(e.type,{detail:e.detail}))}get modalButtons(){const e=this._buttons;return{ok:e&&e.firstElementChild&&e.firstElementChild.firstElementChild,cancel:e&&e.firstElementChild&&e.firstElementChild.lastElementChild}}};o=new WeakMap,__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],n.prototype,"suddenValidation",void 0),__decorate([e.Watch({reflectBack:!0,converter:e.PropertyConverters.String})],n.prototype,"okCaption",void 0),__decorate([e.Watch({reflectBack:!0,converter:e.PropertyConverters.String})],n.prototype,"cancelCaption",void 0),__decorate([e.Watch({reflectBack:!0,converter:e.PropertyConverters.String})],n.prototype,"method",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],n.prototype,"metadata",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],n.prototype,"action",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],n.prototype,"loaderType",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],n.prototype,"success",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],n.prototype,"fail",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],n.prototype,"readonly",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],n.prototype,"fetchHeaders",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],n.prototype,"fetchCredentials",void 0),__decorate([e.ViewChild(e.P+"-lightbox")],n.prototype,"lightbox",void 0),__decorate([e.ViewChild(e.P+"-form[entity]")],n.prototype,"_form",void 0),__decorate([e.ViewChild(e.P+"-fetch")],n.prototype,"_fetcher",void 0),n=r=__decorate([e.CustomElement({tagName:e.P+"-modal-form",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-lightbox modal="true" logger="{{ :host.logger }}"><${e.P}-form wrapper>\n <${e.P}-form logger="{{ :host.logger }}" on-submit=":host._onSubmit($event)" readonly="{{ :host.readonly }}" entity="{{ :host.state, twoway }}" on-success=":host._broadcast($event)" \n on-fail=":host._broadcast($event)" success="{{ :host.success, twoway }}" fail="{{ :host.fail, twoway }}" autogenerate="{{ !$pacem.isNull($this.entity) }}" metadata="{{ :host.metadata }}"\n fetch-headers="{{ :host.fetchHeaders }}" fetch-credentials="{{ :host.fetchCredentials }}" sudden-validation="{{ :host.suddenValidation }}"></${e.P}-form></${e.P}-form>\n <${e.P}-fetch logger="{{ :host.logger }}" method="{{ :host.method }}" headers="{{ :host.fetchHeaders }}" credentials="{{ :host.fetchCredentials }}" autofetch="false" url="{{ :host.action }}"></${e.P}-fetch> \n <div class="${e.PCSS}-dialog-buttons ${e.PCSS}-buttonset buttons">\n <div class="buttonset-left">\n <${e.P}-button on-click=":host._submit($event)" css-class="{{ {'buttonset-last': :host.readonly} }}"\n class="button primary button-size size-small" disabled="{{ !:host.readonly && (!(::_form.valid && ::_form.dirty) || ::_fetcher.fetching) }}"><${e.P}-text text="{{ :host.okCaption || 'OK' }}"></${e.P}-text></${e.P}-button>\n <${e.P}-button on-click=":host._cancel($event)" hide="{{ :host.readonly }}" class="button button-size size-small" disabled="{{ ::_fetcher.fetching }}"><${e.P}-text text="{{ :host.cancelCaption || 'Cancel' }}"></${e.P}-text></${e.P}-button>\n </div></div>\n <${e.P}-panel class="${e.PCSS}-dialog-heading">\n <${e.P}-content></${e.P}-content>\n </${e.P}-panel>\n <${e.P}-loader type="{{ :host.loaderType }}" class="${e.PCSS}-hover loader-primary loader-small" active="{{ ::_fetcher.fetching }}"></${e.P}-loader>\n</${e.P}-lightbox>`})],n),a.PacemModalFormElement=n}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){var o;let r=class RisolutoHashStateElement extends t.PacemEventTarget{constructor(){super(...arguments),this.state={},o.set(this,void 0),this._routerStateChangeHandler=e=>{"state"===e.detail.propertyName&&this._initState()}}viewActivatedCallback(){super.viewActivatedCallback(),this._initState();const t=this.router;e.Utils.isNull(t)||t.addEventListener(e.PropertyChangeEventName,this._routerStateChangeHandler,!1)}propertyChangedCallback(e,t,a,o){super.propertyChangedCallback(e,t,a,o),"state"!==e||o||this._persistHashState()}disconnectedCallback(){const t=this.router;e.Utils.isNull(t)||t.removeEventListener(e.PropertyChangeEventName,this._routerStateChangeHandler,!1),super.disconnectedCallback()}_initState(){var t={};const a=this.router;e.Utils.isNull(a)||(__classPrivateFieldSet(this,o,this._currentBasePath(),"f"),e.Utils.extend(t,e.Utils.URIs.parseQuery(a.state&&a.state.$hash||"{}"))),this.state=t}_currentBasePath(){const t=this.router;if(!e.Utils.isNull(t)){const e=t.state.$querystring;return this._normalizePath(document.location.pathname,e)}return null}_normalizePath(t,a){return e.Utils.isNullOrEmpty(t)?t:(t.endsWith("/")&&(t=t.substring(0,t.length-1)),null!=a||(a=""),t+(a.length>0?"?"+a:""))}_persistHashState(t=this.state){const a=this.router;if(!e.Utils.isNull(a)){const r=this._currentBasePath();if(this._normalizePath(a.state.$pathname,a.state.$querystring)===r){const r=e.Utils.URIs.parseQuery(a.state.$hash||"{}"),n=t||{};if(e.Utils.jsonSortStringify(r)!=e.Utils.jsonSortStringify(n)){const r=e.Utils.URIs.appendQuery(__classPrivateFieldGet(this,o,"f"),t,!1,!0);a.path=r}}}}};o=new WeakMap,__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],r.prototype,"router",void 0),__decorate([e.Watch()],r.prototype,"state",void 0),r=__decorate([e.CustomElement({tagName:e.P+"-router-hash-state"})],r),a.RisolutoHashStateElement=r}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){let o=class PacemSearchElement extends t.PacemElement{constructor(){super(...arguments),this.hintParameter="q"}propertyChangedCallback(e,t,a,o){if(super.propertyChangedCallback(e,t,a,o),"hint"===e){let e={};e[this.hintParameter]=a,this._fetcher.parameters=e}}};__decorate([e.ViewChild(e.P+"-fetch")],o.prototype,"_fetcher",void 0),__decorate([e.Watch()],o.prototype,"datasource",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],o.prototype,"hint",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],o.prototype,"url",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],o.prototype,"method",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"hintParameter",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-search",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-fetch debounce="800" url="{{ :host.url }}" method="{{ :host.method }}">\n</${e.P}-fetch><${e.P}-input-search value="{{ :host.hint, twoway }}"></${e.P}-input-search>\n<${e.P}-repeater datasource="{{ ::_fetch.result }}">\n <${e.P}-content></${e.P}-content>\n</${e.P}-repeater>`})],o),a.PacemSearchElement=o}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
|
|
6
|
+
var Pacem,__decorate=this&&this.__decorate||function(e,t,a,o){var r,i=arguments.length,n=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,a):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,a,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(n=(i<3?r(n):i>3?r(t,a,n):r(t,a))||n);return i>3&&n&&Object.defineProperty(t,a,n),n},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,a,o,r){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?r.call(e,a):r?r.value=a:t.set(e,a),a},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,a,o){if("a"===a&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===a?o:"a"===a?o.call(e):o?o.value:t.get(e)};!function(e){!function(t){!function(a){let o=class PacemCarouselElement extends t.UI.PacemAdaptedIterativeElement{constructor(){super(...arguments),this.interval=4e3}};__decorate([e.ViewChild(e.P+"-adapter")],o.prototype,"adapter",void 0),__decorate([e.ViewChild(e.P+"-slideshow")],o.prototype,"slideshow",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number})],o.prototype,"interval",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],o.prototype,"pausable",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-carousel",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-repeater datasource="{{ :host.datasource }}">\n <${e.P}-slideshow class="${e.PCSS}-carousel" adapter="{{ ::adapter }}" index="{{ :host.index, twoway }}" on-load="this.focus()">\n\n <template>\n\n <${e.P}-slide class="${e.PCSS}-carousel-item" css-class="{{ { '${e.PCSS}-carousel-previous': :host.isPrevious(^index, ::slideshow.index), '${e.PCSS}-carousel-next': :host.isNext(^index, ::slideshow.index), '${e.PCSS}-carousel-focus': ^index === ::slideshow.index } }}">\n <${e.P}-a href="{{ ^item.url }}">\n <${e.P}-img disabled="{{ !:host.isCloseTo(^index, ::slideshow.index) }}" class="${e.PCSS}-carousel-splash" adapt="cover" src="{{ ^item.image }}"></${e.P}-img>\n <div class="${e.PCSS}-carousel-content">\n <div class="${e.PCSS}-carousel-caption">\n <h3><${e.P}-text text="{{ ^item.title }}"></${e.P}-text></h3>\n <${e.P}-panel class="paragraph" content="{{ ^item.content }}"></${e.P}-panel>\n </div>\n </div>\n </${e.P}-a>\n </${e.P}-slide>\n\n </template>\n </${e.P}-slideshow>\n \n </${e.P}-repeater><${e.P}-adapter pausable="{{ :host.pausable }}" class="${e.PCSS}-carousel-adapter" interval="{{ :host.interval }}"></${e.P}-adapter>`})],o),a.PacemCarouselElement=o}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){class PacemContextMenuItemElement extends t.PacemItemElement{connectedCallback(){super.connectedCallback(),e.Utils.addClass(this,e.PCSS+"-context-menuitem")}propertyChangedCallback(e,t,a,o){super.propertyChangedCallback(e,t,a,o);const r=this.container;r instanceof i&&r.refresh()}}__decorate([e.Watch({converter:e.PropertyConverters.String})],PacemContextMenuItemElement.prototype,"iconGlyph",void 0),a.PacemContextMenuItemElement=PacemContextMenuItemElement;let o=class PacemContextMenuItemCommandElement extends PacemContextMenuItemElement{};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"commandName",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"caption",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"tooltip",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"iconGlyph",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"confirmationMessage",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],o.prototype,"confirmationDialog",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-context-menuitem-command"})],o),a.PacemContextMenuItemCommandElement=o;let r=class PacemContextMenuItemSeparatorElement extends PacemContextMenuItemElement{};r=__decorate([e.CustomElement({tagName:e.P+"-context-menuitem-separator"})],r),a.PacemContextMenuItemSeparatorElement=r;let i=class PacemContextMenuElement extends t.PacemItemsContainerElement{constructor(){super(...arguments),this._dispatchCommand=t=>{e.avoidHandler(t),this.dispatchEvent(new e.CommandEvent({commandName:t.detail.commandName,commandArgument:t.detail.commandArgument||this.commandArgument}))}}validate(e){return e instanceof PacemContextMenuItemElement}get _balloon(){return this._btns.dom[0]}get _repeater(){return this._balloon.querySelector(e.P+"-repeater")}register(e){const t=super.register(e);return t&&this._refreshRepeater(),t}unregister(e){const t=super.unregister(e);return t&&this._refreshRepeater(),t}viewActivatedCallback(){super.viewActivatedCallback(),this._balloon.addEventListener(e.CommandEventName,this._dispatchCommand,!1)}disconnectedCallback(){e.Utils.isNull(this._balloon)||this._balloon.removeEventListener(e.CommandEventName,this._dispatchCommand,!1),super.disconnectedCallback()}refresh(){this._refreshRepeater()}_refreshRepeater(){const t=this._repeater;e.Utils.isNullOrEmpty(t)||(t.datasource=this.items.map((t=>{let a={localName:t.localName};for(let o=0;o<t.attributes.length;o++){let r=t.attributes.item(o).name,i=e.CustomElementUtils.kebabToCamel(r);a[i]=t[i]}return a})))}};__decorate([e.ViewChild(e.P+"-button")],i.prototype,"_btn",void 0),__decorate([e.ViewChild(e.P+"-shell-proxy")],i.prototype,"_btns",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],i.prototype,"commandArgument",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],i.prototype,"icon",void 0),__decorate([e.Debounce(!0)],i.prototype,"_refreshRepeater",null),i=__decorate([e.CustomElement({tagName:e.P+"-context-menu",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-button class="button-flat ${e.PCSS}-margin margin-0"><${e.P}-icon icon="{{ :host.icon || 'more_horiz' }}"></${e.P}-icon></${e.P}-button>\n<${e.P}-content></${e.P}-content>\n<${e.P}-shell-proxy>\n <${e.P}-balloon target="{{ :host._btn }}" class="${e.PCSS}-contextmenu" options="{{ { trigger: 'click', position: 'x', align: 'auto' } }}">\n <${e.P}-repeater>\n <template>\n <${e.P}-if match="{{ ^item.localName === '${e.P}-context-menuitem-command' }}">\n <${e.P}-button icon-glyph="{{ ^item.iconGlyph }}" hide="{{ ^item.hide }}" disabled="{{ ^item.disabled }}"\n on-mouseup="::_balloon.popout()" tooltip="{{ ^item.tooltip }}"\n confirmation-message="{{ ^item.confirmationMessage }}" confirmation-dialog="{{ ^item.confirmationDialog }}"\n command-name="{{ ^item.commandName }}"><${e.P}-text text="{{ ^item.caption }}"></${e.P}-text></${e.P}-button>\n </${e.P}-if>\n <${e.P}-if match="{{ ^item.localName === '${e.P}-context-menuitem-separator' && !^item.hide }}">\n <hr />\n </${e.P}-if>\n </template>\n </${e.P}-repeater>\n </${e.P}-balloon>\n</${e.P}-shell-proxy>`})],i),a.PacemContextMenuElement=i}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){let o;!function(e){e.Text="text",e.Html="html",e.Image="image",e.Markdown="markdown"}(o=a.EditMode||(a.EditMode={}));let r=class PacemEditElement extends t.PacemElement{constructor(a=new e.MarkdownService){super(),this._markdown=a,this._dialogPropertyChangedHandler=e=>{this._dialogPropertyChangedCallback(e)},this._broadcastFetchRequestEventName=e=>{this.dispatchEvent(new t.Scaffolding.ImageFetchRequestEvent(e.detail))},this._innerValueChangedHandler=t=>{"value"!==t.detail.propertyName||e.Utils.isNull(this._dialog)||(this._dialog.state=t.detail.currentValue)},this._editHandler=e=>{this.edit(e)}}_addButton(){if(e.Utils.isNull(this._button)){var t=document.createElement(e.P+"-button");return t.className=e.PCSS+"-edit-button",t.addEventListener("click",this._editHandler,!1),this._target.appendChild(t),this._button=t}}_removeButton(){var t=this._button;e.Utils.isNull(t)||(t.removeEventListener("click",this._editHandler,!1),t.remove(),this._button=null)}_addDialog(){var a=document.createElement(e.P+"-dialog");return a.buttons=t.UI.DialogButtons.OkCancel,a.addEventListener(e.PropertyChangeEventName,this._dialogPropertyChangedHandler,!1),a.appendChild(this._addTextarea()),a.appendChild(this._addContenteditable()),a.appendChild(this._addEditImage()),document.body.appendChild(a),this._dialog=a}_removeDialog(){this._removeTextarea(),this._removeContenteditable(),this._removeEditImage(),e.Utils.isNull(this._dialog)||(this._dialog.removeEventListener(e.PropertyChangeEventName,this._dialogPropertyChangedHandler,!1),this._dialog.remove())}_addTextarea(){var t=document.createElement(e.P+"-textarea");t.className=e.PCSS+"-edit-text",t.addEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1);const a=this.type||o.Text;return t.hide=a!==o.Text&&a!==o.Markdown,this._textarea=t}_removeTextarea(){e.Utils.isNull(this._textarea)||this._textarea.removeEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1)}_addContenteditable(){var t=document.createElement(e.P+"-contenteditable");t.className=e.PCSS+"-edit-content",t.addEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1);const a=this.type||o.Text;return t.hide=a!==o.Html,this._contenteditable=t}_removeContenteditable(){e.Utils.isNull(this._contenteditable)||this._contenteditable.removeEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1)}_addEditImage(){var a=document.createElement(e.P+"-edit-image");a.disabled=!0,a.addEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1),a.addEventListener(t.Scaffolding.ImageFetchRequestEventName,this._broadcastFetchRequestEventName,!1);const r=this.type||o.Text;return a.hide=r!==o.Image,a.uploadUrl=this.imageUploadUrl,a.allowSnapshot=this.allowSnapshot,a.maxWidth=this.maxImageWidth,a.maxHeight=this.maxImageHeight,this._editImage=a}_removeEditImage(){e.Utils.isNull(this._editImage)||(this._editImage.removeEventListener(e.PropertyChangeEventName,this._innerValueChangedHandler,!1),this._editImage.removeEventListener(t.Scaffolding.ImageFetchRequestEventName,this._broadcastFetchRequestEventName,!1))}_update(t){var a=this._content;switch(this.type){case o.Html:a.innerHTML=t;break;case o.Markdown:switch(a.localName){case e.P+"-markdown":a.value=t;break;default:a.innerHTML=this._markdown.toHtml(t)}break;case o.Image:switch(a.localName){case"img":case e.P+"-img":a.src=t;break;default:a.style.backgroundImage=`url(${t})`}break;default:this._content.textContent=t}}_retrieve(){var t=this._content;switch(this.type){case o.Html:return t.innerHTML;case o.Image:switch(t.localName){case e.P+"-img":case"img":return t.src;default:let a=getComputedStyle(t).backgroundImage,o=/url\(["']?([^'"]+)["']?\)/.exec(a);return o&&o.length&&o[1]}case o.Markdown:return t.value||t.textContent;default:return t.textContent}}_setup(){this.disabled?(e.Utils.removeClass(this._target,e.PCSS+"-editing"),this._removeButton()):(e.Utils.addClass(this._target,e.PCSS+"-editing"),this._addButton())}_dialogPropertyChangedCallback(t){if("state"===t.detail.propertyName){const a=t.detail.currentValue;e.Utils.isNull(this._textarea)||(this._textarea.value=a),e.Utils.isNull(this._contenteditable)||(this._contenteditable.value=a),e.Utils.isNull(this._editImage)||(this._editImage.value=a),this._update(t.detail.currentValue)}}get _target(){var t=this.target;return e.Utils.isNull(t)&&(t=this.firstElementChild),t}connectedCallback(){super.connectedCallback(),this._addDialog()}viewActivatedCallback(){super.viewActivatedCallback(),this._addButton(),this._setup()}disconnectedCallback(){this._removeButton(),this._removeDialog(),super.disconnectedCallback()}propertyChangedCallback(t,a,r,i){switch(super.propertyChangedCallback(t,a,r,i),t){case"imageUploadUrl":e.Utils.isNull(this._editImage)||(this._editImage.uploadUrl=r);break;case"allowSnapshot":e.Utils.isNull(this._editImage)||(this._editImage.allowSnapshot=r);break;case"imageSet":e.Utils.isNull(this._editImage)||(this._editImage.imageSet=r);break;case"disabled":this._setup();break;case"type":const t=r;e.Utils.isNull(this._textarea)||(this._textarea.hide=t!==o.Text&&t!==o.Markdown),e.Utils.isNull(this._contenteditable)||(this._contenteditable.hide=t!==o.Html),e.Utils.isNull(this._editImage)||(this._editImage.hide=t!==o.Image);break;case"maxImageHeight":e.Utils.isNull(this._editImage)||(this._editImage.maxHeight=r);break;case"maxImageWidth":e.Utils.isNull(this._editImage)||(this._editImage.maxWidth=r)}}edit(a){e.avoidHandler(a);var o=this._target;if(!e.Utils.isNull(o)){this._removeButton(),this._content=o;var r=this._state=this._retrieve();e.Utils.isNull(this._editImage)||(this._editImage.disabled=!1),this._dialog.open(r).then((a=>{switch(a.button){case t.UI.DialogButton.Cancel:this._update(this._state);break;case t.UI.DialogButton.Ok:this._update(a.state),this.dispatchEvent(new CustomEvent("commit",{detail:{value:a.state}}))}this._content=null,e.Utils.isNull(this._editImage)||(this._editImage.disabled=!0),this._addButton()}))}}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],r.prototype,"key",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],r.prototype,"type",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Element})],r.prototype,"target",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],r.prototype,"imageUploadUrl",void 0),__decorate([e.Watch({emit:!1})],r.prototype,"imageSet",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],r.prototype,"maxImageWidth",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],r.prototype,"maxImageHeight",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],r.prototype,"allowSnapshot",void 0),r=__decorate([e.CustomElement({tagName:e.P+"-edit"})],r),a.PacemEditElement=r}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){let o=class PacemGalleryElement extends t.UI.PacemAdaptedIterativeElement{get adapter(){return this._adapter}async _heroAnimate(t,a){if(!e.Utils.isNull(t)){let o=document.createElement(e.P+"-img"),r=this._heroPlaceholderProxy.dom[0];const i=300;o.src=a||t.src,o.adapt="contain";let n=e.Utils.offset(r),s=e.Utils.offset(t),l=o.style;const d=getComputedStyle(r);l.border=d.border,l.width=r.clientWidth+"px",l.height=r.clientHeight+"px",l.position="absolute",l.zIndex=d.zIndex,l.top=n.top+"px",l.left=n.left+"px";const c=t.clientWidth/r.clientWidth,h=t.clientHeight/r.clientHeight,m=s.left-n.left+"px",p=s.top-n.top+"px";l.transformOrigin="0 0",l.transition=`transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${i}ms, opacity ${i}ms`,l.transform=`translate(${m}, ${p}) scale(${c}, ${h})`,document.body.appendChild(o),requestAnimationFrame((()=>{o.style.transform=""})),await e.Utils.waitForAnimationEnd(o,i),o.remove()}}open(e,t,a){this._poppingUp=!0,this._lightbox.show=!0,this._slideshow.index=e,this._heroAnimate(t,a).then((e=>{this._poppingUp=!1,this._slideshow.focus()}))}};__decorate([e.ViewChild(e.P+"-adapter")],o.prototype,"_adapter",void 0),__decorate([e.ViewChild(e.P+"-lightbox")],o.prototype,"_lightbox",void 0),__decorate([e.ViewChild(e.P+"-slideshow")],o.prototype,"_slideshow",void 0),__decorate([e.ViewChild(e.P+"-shell-proxy")],o.prototype,"_heroPlaceholderProxy",void 0),__decorate([e.Watch()],o.prototype,"_poppingUp",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-gallery",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-lightbox class="${e.PCSS}-gallery">\n <${e.P}-repeater datasource="{{ :host.datasource }}">\n <${e.P}-slideshow adapter="{{ ::_adapter }}" index="{{ :host.index, twoway }}">\n <template>\n <${e.P}-slide class="${e.PCSS}-gallery-item"\ncss-class="{{ { '${e.PCSS}-gallery-previous': :host.isPrevious(^index, ::_slideshow.index), '${e.PCSS}-gallery-next': :host.isNext(^index, ::_slideshow.index), '${e.PCSS}-gallery-focus': ^index === ::_slideshow.index } }}"\n>\n <${e.P}-img src="{{ ^item.image }}" disabled="{{ !(:host.isCloseTo(^index, ::_slideshow.index) || ^index === ::_slideshow.index) }}" \ncss="{{ {'visibility': (:host._poppingUp ? 'hidden' : ''), 'transition': (:host._poppingUp ? 'none' : '')} }}" class="${e.PCSS}-gallery-splash" adapt="contain"></${e.P}-img>\n <${e.P}-panel hide="{{ $pacem.isNullOrEmpty(^item.caption) }}" class="${e.PCSS}-gallery-caption">\n <${e.P}-span class="paragraph" text="{{ ^item.caption }}"></${e.P}-span>\n </${e.P}-panel>\n \n </${e.P}-slide>\n </template>\n </${e.P}-slideshow>\n </${e.P}-repeater>\n<${e.P}-adapter class="${e.PCSS}-gallery-adapter"></${e.P}-adapter>\n</${e.P}-lightbox>\n<${e.P}-shell-proxy><div class="${e.PCSS}-gallery-hero-target"></div></${e.P}-shell-proxy>`})],o),a.PacemGalleryElement=o}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){var o,r;let i=r=class PacemModalFormElement extends t.UI.PacemDialogBase{constructor(){super(),this.method=e.Net.HttpMethod.Post,o.set(this,!1),this._emitter=new e.Components.Scaffolding.FormEventEmitter(this)}viewActivatedCallback(){super.viewActivatedCallback();var t=this.querySelector(`.${e.PCSS}-lightbox`);t.appendChild(this._buttons=this.querySelector(`.${e.PCSS}-dialog-buttons`)),t.appendChild(this.querySelector(`.${e.PCSS}-dialog-heading`)),t.appendChild(this.querySelector(e.P+"-loader")),this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"modalButtons",currentValue:this.modalButtons})),this._emitter.start()}disconnectedCallback(){this._emitter.stop(),super.disconnectedCallback()}_submit(a){this.readonly?this.commit(t.UI.DialogButton.Ok,a):(e.avoidHandler(a),e.Utils.isNullOrEmpty(this.action)?this.commit(t.UI.DialogButton.Ok,a):this._form.submit(this._fetcher).then((e=>{this.commit(t.UI.DialogButton.Ok,a)}),(e=>{})))}_onSubmit(e){this.emit(e)}open(t,a,i=!0){if(e.Utils.isNull(t))throw`The state of a ${r} cannot be null.`;__classPrivateFieldSet(this,o,a,"f");var n=super.open(t);return i&&this._form.setPristine(),n}commit(t,a){super.commit(t,a),__classPrivateFieldGet(this,o,"f")||e.Utils.waitForAnimationEnd(this,500).then((e=>{this.state={}}))}_cancel(e){this.commit(t.UI.DialogButton.Cancel,e),this._form.reset()}_broadcast(e){this.dispatchEvent(new CustomEvent(e.type,{detail:e.detail}))}get modalButtons(){const e=this._buttons;return{ok:e&&e.firstElementChild&&e.firstElementChild.firstElementChild,cancel:e&&e.firstElementChild&&e.firstElementChild.lastElementChild}}};o=new WeakMap,__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],i.prototype,"suddenValidation",void 0),__decorate([e.Watch({reflectBack:!0,converter:e.PropertyConverters.String})],i.prototype,"okCaption",void 0),__decorate([e.Watch({reflectBack:!0,converter:e.PropertyConverters.String})],i.prototype,"cancelCaption",void 0),__decorate([e.Watch({reflectBack:!0,converter:e.PropertyConverters.String})],i.prototype,"method",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],i.prototype,"metadata",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],i.prototype,"action",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],i.prototype,"loaderType",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],i.prototype,"success",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],i.prototype,"fail",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],i.prototype,"readonly",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],i.prototype,"fetchHeaders",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],i.prototype,"fetchCredentials",void 0),__decorate([e.ViewChild(e.P+"-lightbox")],i.prototype,"lightbox",void 0),__decorate([e.ViewChild(e.P+"-form[entity]")],i.prototype,"_form",void 0),__decorate([e.ViewChild(e.P+"-fetch")],i.prototype,"_fetcher",void 0),i=r=__decorate([e.CustomElement({tagName:e.P+"-modal-form",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-lightbox modal="true" logger="{{ :host.logger }}"><${e.P}-form wrapper>\n <${e.P}-form logger="{{ :host.logger }}" on-submit=":host._onSubmit($event)" readonly="{{ :host.readonly }}" entity="{{ :host.state, twoway }}" on-success=":host._broadcast($event)" \n on-fail=":host._broadcast($event)" success="{{ :host.success, twoway }}" fail="{{ :host.fail, twoway }}" autogenerate="{{ !$pacem.isNull($this.entity) }}" metadata="{{ :host.metadata }}"\n fetch-headers="{{ :host.fetchHeaders }}" fetch-credentials="{{ :host.fetchCredentials }}" sudden-validation="{{ :host.suddenValidation }}"></${e.P}-form></${e.P}-form>\n <${e.P}-fetch logger="{{ :host.logger }}" method="{{ :host.method }}" headers="{{ :host.fetchHeaders }}" credentials="{{ :host.fetchCredentials }}" autofetch="false" url="{{ :host.action }}"></${e.P}-fetch> \n <div class="${e.PCSS}-dialog-buttons ${e.PCSS}-buttonset buttons">\n <div class="buttonset-left">\n <${e.P}-button on-click=":host._submit($event)" css-class="{{ {'buttonset-last': :host.readonly} }}"\n class="button primary button-size size-small" disabled="{{ !:host.readonly && (!(::_form.valid && ::_form.dirty) || ::_fetcher.fetching) }}"><${e.P}-text text="{{ :host.okCaption || 'OK' }}"></${e.P}-text></${e.P}-button>\n <${e.P}-button on-click=":host._cancel($event)" hide="{{ :host.readonly }}" class="button button-size size-small" disabled="{{ ::_fetcher.fetching }}"><${e.P}-text text="{{ :host.cancelCaption || 'Cancel' }}"></${e.P}-text></${e.P}-button>\n </div></div>\n <${e.P}-panel class="${e.PCSS}-dialog-heading">\n <${e.P}-content></${e.P}-content>\n </${e.P}-panel>\n <${e.P}-loader type="{{ :host.loaderType }}" class="${e.PCSS}-hover loader-primary loader-small" active="{{ ::_fetcher.fetching }}"></${e.P}-loader>\n</${e.P}-lightbox>`})],i),a.PacemModalFormElement=i}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){var o;let r=class RisolutoHashStateElement extends t.PacemEventTarget{constructor(){super(...arguments),this.state={},o.set(this,void 0),this._routerNavigatingHandler=e=>{__classPrivateFieldSet(this,o,!0,"f")},this._routerNavigateHandler=e=>{__classPrivateFieldSet(this,o,!1,"f"),this._updateStateFromURI()}}viewActivatedCallback(){super.viewActivatedCallback(),this._updateStateFromURI(),this._setupRouterHandlers(this.router)}propertyChangedCallback(e,t,a,o){switch(super.propertyChangedCallback(e,t,a,o),e){case"state":o||this._updateURIFromState();break;case"disabled":a&&this._updateStateFromURI();break;case"router":o||(this._disposeRouterHandlers(t),this._setupRouterHandlers(a))}}disconnectedCallback(){this._disposeRouterHandlers(),super.disconnectedCallback()}_setupRouterHandlers(t=this.router){e.Utils.isNull(t)||(window.addEventListener("navigating",this._routerNavigatingHandler,!1),window.addEventListener("navigate",this._routerNavigateHandler,!1))}_disposeRouterHandlers(t=this.router){e.Utils.isNull(t)||(window.removeEventListener("navigating",this._routerNavigatingHandler,!1),window.removeEventListener("navigate",this._routerNavigateHandler,!1))}_currentBasePath(){const t=this.router;if(!e.Utils.isNull(t)){const e=t.state.$querystring;return this._normalizePath(document.location.pathname,e)}return null}_normalizePath(t,a){return e.Utils.isNullOrEmpty(t)?t:(t.endsWith("/")&&(t=t.substring(0,t.length-1)),null!=a||(a=""),t+(a.length>0?"?"+a:""))}_areStatesEquivalent(t,a){const o=t||{},r=a||{};return e.Utils.jsonSortStringify(o)===e.Utils.jsonSortStringify(r)}_updateStateFromURI(){if(this.disabled||__classPrivateFieldGet(this,o,"f"))return;var t={};const a=this.router;e.Utils.isNull(a)||e.Utils.extend(t,e.Utils.URIs.parseQuery(a.state&&a.state.$hash||"{}")),this._areStatesEquivalent(this.state,t)||(this.state=t)}_updateURIFromState(t=this.state){if(this.disabled||__classPrivateFieldGet(this,o,"f"))return;const a=this.router;if(!e.Utils.isNull(a)){const o=this._currentBasePath(),r=e.Utils.URIs.parseQuery(a.state.$hash||"{}"),i=t||{};if(!this._areStatesEquivalent(r,i)){const r=e.Utils.URIs.appendQuery(o,t,!1,!0);a.path=r}}}set(t,a){const o=Object.defineProperty({},t,{enumerable:!0,value:a});this.state=e.Utils.extend({},this.state||{},o)}};o=new WeakMap,__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],r.prototype,"router",void 0),__decorate([e.Watch()],r.prototype,"state",void 0),r=__decorate([e.CustomElement({tagName:e.P+"-router-hash-state"})],r),a.RisolutoHashStateElement=r}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(a){let o=class PacemSearchElement extends t.PacemElement{constructor(){super(...arguments),this.hintParameter="q"}propertyChangedCallback(e,t,a,o){if(super.propertyChangedCallback(e,t,a,o),"hint"===e){let e={};e[this.hintParameter]=a,this._fetcher.parameters=e}}};__decorate([e.ViewChild(e.P+"-fetch")],o.prototype,"_fetcher",void 0),__decorate([e.Watch()],o.prototype,"datasource",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],o.prototype,"hint",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],o.prototype,"url",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],o.prototype,"method",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"hintParameter",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-search",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-fetch debounce="800" url="{{ :host.url }}" method="{{ :host.method }}">\n</${e.P}-fetch><${e.P}-input-search value="{{ :host.hint, twoway }}"></${e.P}-input-search>\n<${e.P}-repeater datasource="{{ ::_fetch.result }}">\n <${e.P}-content></${e.P}-content>\n</${e.P}-repeater>`})],o),a.PacemSearchElement=o}(t.Plus||(t.Plus={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
|
package/dist/js/pacem-ui.d.ts
CHANGED
package/dist/js/pacem-ui.js
CHANGED
package/dist/js/pacem-ui.min.js
CHANGED
package/package.json
CHANGED