@pacem/pacem-ui 1.0.0-abel

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/LICENSE +191 -0
  2. package/NOTICE +4 -0
  3. package/dist/browser/pacem-ui.js +6343 -0
  4. package/dist/browser/pacem-ui.js.map +1 -0
  5. package/dist/browser/pacem-ui.min.js +2 -0
  6. package/dist/browser/pacem-ui.min.js.map +1 -0
  7. package/dist/bundle/pacem-ui.min.mjs +168 -0
  8. package/dist/bundle/pacem-ui.mjs +6276 -0
  9. package/dist/bundle/pacem-ui.mjs.map +7 -0
  10. package/dist/esm/adapter.js +360 -0
  11. package/dist/esm/anchor.js +149 -0
  12. package/dist/esm/balloon.js +583 -0
  13. package/dist/esm/binder.js +678 -0
  14. package/dist/esm/blade.js +31 -0
  15. package/dist/esm/bottom-sheet.js +277 -0
  16. package/dist/esm/button.js +100 -0
  17. package/dist/esm/buttonset.js +41 -0
  18. package/dist/esm/calendar.js +662 -0
  19. package/dist/esm/collapse.js +72 -0
  20. package/dist/esm/dialog-abstractions.js +61 -0
  21. package/dist/esm/dialog.js +102 -0
  22. package/dist/esm/divider.js +48 -0
  23. package/dist/esm/icon.js +131 -0
  24. package/dist/esm/image.js +109 -0
  25. package/dist/esm/index-components-ui.js +41 -0
  26. package/dist/esm/index-components.js +1 -0
  27. package/dist/esm/index-iife.js +3 -0
  28. package/dist/esm/index.js +1 -0
  29. package/dist/esm/infinite-scroller.js +137 -0
  30. package/dist/esm/iterative.js +45 -0
  31. package/dist/esm/lightbox-abstractions.js +6 -0
  32. package/dist/esm/lightbox.js +203 -0
  33. package/dist/esm/loader.js +100 -0
  34. package/dist/esm/markdown-svc.js +235 -0
  35. package/dist/esm/markdown.js +35 -0
  36. package/dist/esm/marquee.js +87 -0
  37. package/dist/esm/media-query.js +85 -0
  38. package/dist/esm/menu.js +165 -0
  39. package/dist/esm/pager.js +111 -0
  40. package/dist/esm/picture.js +157 -0
  41. package/dist/esm/progressbar.js +54 -0
  42. package/dist/esm/sidebar.js +60 -0
  43. package/dist/esm/slideshow.js +27 -0
  44. package/dist/esm/social-twitter.js +39 -0
  45. package/dist/esm/sticky-header.js +113 -0
  46. package/dist/esm/tabs.js +187 -0
  47. package/dist/esm/ticker.js +78 -0
  48. package/dist/esm/toast.js +171 -0
  49. package/dist/esm/toc.js +171 -0
  50. package/dist/esm/tuner.js +200 -0
  51. package/dist/esm/types.js +7 -0
  52. package/dist/esm/vibration.js +33 -0
  53. package/dist/esm/view.js +206 -0
  54. package/dist/esm/window.js +181 -0
  55. package/package.json +38 -0
  56. package/typings/index.d.ts +1165 -0
@@ -0,0 +1,360 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { P, PCSS, Defaults, CustomElement, ViewChild, Watch, Utils, PropertyConverters, Debounce, avoidHandler, Throttle } from '@pacem/pacem-core';
8
+ import { Components, UI } from '@pacem/pacem-core';
9
+ const { PacemElement, RepeaterItemCreateEventName, ItemRegisterEventName, ItemUnregisterEventName } = Components;
10
+ //namespace Pacem.Components.UI {
11
+ export var AdapterOrientation;
12
+ (function (AdapterOrientation) {
13
+ AdapterOrientation["Vertical"] = "vertical";
14
+ AdapterOrientation["Horizontal"] = "horizontal";
15
+ })(AdapterOrientation || (AdapterOrientation = {}));
16
+ export const AdapterPageButtonRefreshEventName = 'pagerefresh';
17
+ export class AdapterPageButtonRefreshEvent extends CustomEvent {
18
+ constructor(args) {
19
+ super(AdapterPageButtonRefreshEventName, { detail: args, bubbles: false, cancelable: false });
20
+ }
21
+ }
22
+ let PacemAdapterElement = class PacemAdapterElement extends Components.PacemAdapter {
23
+ constructor() {
24
+ super(...arguments);
25
+ this._itemCreatedHandler = (evt) => {
26
+ const index = evt.detail.index;
27
+ this._pageMap.set(index, evt.detail.dom[0].firstElementChild);
28
+ this._fireAdapterPageRefreshCallback(index, evt.detail.item);
29
+ };
30
+ this._pageMap = new Map();
31
+ this.interactive = true;
32
+ /** Gets or sets whether swipe gesture is enabled for navigation (also depends on the 'interactive' flag being set to 'true') */
33
+ this.swipeEnabled = true;
34
+ this.loop = true;
35
+ this.labelCallback = (item, index) => (index + 1).toString();
36
+ this._itemRegisterHandler = (evt) => {
37
+ let item = evt.detail;
38
+ if (!Utils.isNull(this._swiper) && item instanceof PacemElement && item.behaviors.indexOf(this._swiper) == -1)
39
+ item.behaviors.push(this._swiper);
40
+ };
41
+ this._itemUnregisterHandler = (evt) => {
42
+ let item = evt.detail, index;
43
+ if (!Utils.isNull(this._swiper) && item instanceof PacemElement && (index = item.behaviors.indexOf(this._swiper)) >= 0)
44
+ item.behaviors.splice(index, 1);
45
+ };
46
+ this._keydownHandler = (evt) => {
47
+ if (!this.interactive) {
48
+ return;
49
+ }
50
+ switch (this.orientation) {
51
+ case AdapterOrientation.Vertical:
52
+ switch (evt.keyCode) {
53
+ case 40: // down
54
+ this._next(evt);
55
+ break;
56
+ case 38: // up
57
+ this._previous(evt);
58
+ break;
59
+ }
60
+ break;
61
+ default:
62
+ // horizontal
63
+ switch (evt.keyCode) {
64
+ case 39: // right
65
+ this._next(evt);
66
+ break;
67
+ case 37: // left
68
+ this._previous(evt);
69
+ break;
70
+ }
71
+ break;
72
+ }
73
+ };
74
+ }
75
+ masterPropertyChangedCallback(name, old, val, first) {
76
+ super.masterPropertyChangedCallback(name, old, val, first);
77
+ switch (name) {
78
+ case 'items':
79
+ this._syncViewWithItems();
80
+ break;
81
+ case 'index':
82
+ this._index = val;
83
+ break;
84
+ }
85
+ }
86
+ viewActivatedCallback() {
87
+ super.viewActivatedCallback();
88
+ this._repeater.addEventListener(RepeaterItemCreateEventName, this._itemCreatedHandler, false);
89
+ this._syncViewWithItems();
90
+ }
91
+ disconnectedCallback() {
92
+ if (this._repeater) {
93
+ this._repeater.removeEventListener(RepeaterItemCreateEventName, this._itemCreatedHandler, false);
94
+ }
95
+ super.disconnectedCallback();
96
+ }
97
+ initializeCallback() {
98
+ super.initializeCallback();
99
+ this.addEventListener('keydown', this._keydownHandler, false);
100
+ const el = this.master;
101
+ //
102
+ if (!Utils.isNull(el)) {
103
+ const tab = this._previousTabIndex = el.tabIndex;
104
+ if (!tab || tab < 0)
105
+ el.tabIndex = 0;
106
+ el.addEventListener('keydown', this._keydownHandler, false);
107
+ el.addEventListener(ItemRegisterEventName, this._itemRegisterHandler, false);
108
+ el.addEventListener(ItemUnregisterEventName, this._itemUnregisterHandler, false);
109
+ }
110
+ //
111
+ this._syncViewWithItems();
112
+ }
113
+ destroyCallback() {
114
+ this.removeEventListener('keydown', this._keydownHandler, false);
115
+ const el = this.master;
116
+ if (!Utils.isNull(el)) {
117
+ el.removeEventListener('keydown', this._keydownHandler, false);
118
+ el.removeEventListener(ItemRegisterEventName, this._itemRegisterHandler, false);
119
+ el.removeEventListener(ItemUnregisterEventName, this._itemUnregisterHandler, false);
120
+ if (!Utils.isNullOrEmpty(el.items)) {
121
+ for (let item of el.items) {
122
+ const behaviors = item.behaviors, ndx = behaviors.indexOf(this._swiper);
123
+ if (ndx >= 0) {
124
+ behaviors.splice(ndx, 1);
125
+ }
126
+ }
127
+ }
128
+ el.tabIndex = this._previousTabIndex;
129
+ }
130
+ super.destroyCallback();
131
+ }
132
+ itemPropertyChangedCallback(index, name, old, val, first) {
133
+ super.itemPropertyChangedCallback(index, name, old, val, first);
134
+ // tick overall version
135
+ this._tickVersion();
136
+ this._fireAdapterPageRefreshCallback(index);
137
+ }
138
+ _fireAdapterPageRefreshCallback(index, item) {
139
+ item = item || this.master.items[index];
140
+ var hide = item.hide || false, disable = item.disabled || false, caption = this._labelCallback(item, index);
141
+ const evt = new AdapterPageButtonRefreshEvent({ index: index, hide: hide, disabled: disable, content: caption });
142
+ this.dispatchEvent(evt);
143
+ // receive/accept changes
144
+ hide = this._isHidden(item, index, evt.detail.hide);
145
+ disable = this._isDisabled(item, index, evt.detail.disabled);
146
+ caption = evt.detail.content;
147
+ // pick target button
148
+ const pagers = this._pageMap;
149
+ if (pagers.has(index)) {
150
+ const pager = pagers.get(index), span = pager.firstElementChild;
151
+ let fn = (e) => {
152
+ if (e) {
153
+ pager.removeEventListener('load', fn, false);
154
+ }
155
+ pager.hide = hide;
156
+ pager.disabled = disable;
157
+ span.content = caption;
158
+ };
159
+ // *careful here*: TODO: TO BE STUDIED
160
+ // if setting the property before it's connected
161
+ // the @Watch configuration and the get+set injection gets lost!
162
+ if (pager.isReady) {
163
+ // does not work for properties(?)...
164
+ fn();
165
+ }
166
+ else {
167
+ pager.addEventListener('load', fn, false);
168
+ }
169
+ }
170
+ }
171
+ _tickVersion() {
172
+ this._v = Date.now();
173
+ }
174
+ propertyChangedCallback(name, old, val, first) {
175
+ super.propertyChangedCallback(name, old, val, first);
176
+ switch (name) {
177
+ case 'interval':
178
+ this._resetTimer(val);
179
+ break;
180
+ case 'swipeEnabled':
181
+ this._swiper.disabled = !val || !this.interactive;
182
+ break;
183
+ case 'interactive':
184
+ this.hidden = !val;
185
+ this._swiper.disabled = !val || !this.swipeEnabled;
186
+ break;
187
+ case 'pausable':
188
+ if (val == true)
189
+ this._liPause.removeAttribute('hidden');
190
+ else
191
+ this._liPause.setAttribute('hidden', 'hidden');
192
+ break;
193
+ }
194
+ }
195
+ _syncViewWithItems() {
196
+ if (!this.isReady
197
+ || Utils.isNull(this.master)
198
+ || Utils.isNull(this._prevBtn)
199
+ || Utils.isNull(this._nextBtn)
200
+ || Utils.isNull(this._repeater))
201
+ return;
202
+ var val = this.master.items;
203
+ this._prevBtn.hide = this._nextBtn.hide = this._panel.hide = !(val && val.length > 1);
204
+ this._panel.hide = Utils.isNullOrEmpty(val);
205
+ this._repeater.datasource = val;
206
+ this._index = this.master.index;
207
+ if (!Utils.isNullOrEmpty(val)) {
208
+ for (let item of val) {
209
+ if (item instanceof PacemElement && item.behaviors.indexOf(this._swiper) == -1)
210
+ item.behaviors.push(this._swiper);
211
+ }
212
+ }
213
+ }
214
+ _toggle(evt) {
215
+ const p = this._paused = !this._paused;
216
+ if (p) {
217
+ avoidHandler(evt);
218
+ this._resetTimer(0);
219
+ }
220
+ else {
221
+ this._next(evt);
222
+ }
223
+ }
224
+ _resetTimer(val) {
225
+ clearInterval(this._handle);
226
+ if (val > 0)
227
+ this._handle = window.setInterval(() => {
228
+ super.next();
229
+ }, val);
230
+ }
231
+ _next(evt) {
232
+ if (evt.type !== UI.SwipeEventType.SwipeLeft)
233
+ avoidHandler(evt);
234
+ this._resetTimer(this.interval);
235
+ super.next(this.loop);
236
+ }
237
+ _previous(evt) {
238
+ if (evt.type !== UI.SwipeEventType.SwipeRight)
239
+ avoidHandler(evt);
240
+ this._resetTimer(this.interval);
241
+ super.previous(this.loop);
242
+ }
243
+ _select(ndx, evt) {
244
+ avoidHandler(evt);
245
+ this._resetTimer(this.interval);
246
+ if (!this.deselectable || ndx !== this._index) {
247
+ super.select(ndx);
248
+ }
249
+ else {
250
+ this.master.index = this._index = -1;
251
+ }
252
+ }
253
+ _isDisabled(item, index, disabled, v) {
254
+ return this._disableOrHide(item, index, disabled);
255
+ }
256
+ _isHidden(item, index, hide, v) {
257
+ return this._disableOrHide(item, index, hide);
258
+ }
259
+ _disableOrHide(item, index, disabledOrHidden) {
260
+ const retval = item instanceof PacemElement && disabledOrHidden === true;
261
+ if ((this._index === -1 && retval === false) || (retval === true && index === this._index)) {
262
+ if (this.deselectable) {
263
+ this.master.index = this._index = -1;
264
+ }
265
+ else {
266
+ super.select(index);
267
+ }
268
+ }
269
+ return retval;
270
+ }
271
+ _labelCallback(item, index, v) {
272
+ return this.labelCallback(item, index);
273
+ }
274
+ };
275
+ __decorate([
276
+ ViewChild(P + '-repeater')
277
+ ], PacemAdapterElement.prototype, "_repeater", void 0);
278
+ __decorate([
279
+ ViewChild(P + '-button.' + PCSS + '-adapter-previous')
280
+ ], PacemAdapterElement.prototype, "_prevBtn", void 0);
281
+ __decorate([
282
+ ViewChild(P + '-button.' + PCSS + '-adapter-next')
283
+ ], PacemAdapterElement.prototype, "_nextBtn", void 0);
284
+ __decorate([
285
+ ViewChild(P + '-panel')
286
+ ], PacemAdapterElement.prototype, "_panel", void 0);
287
+ __decorate([
288
+ ViewChild(P + '-swipe')
289
+ ], PacemAdapterElement.prototype, "_swiper", void 0);
290
+ __decorate([
291
+ ViewChild('.' + PCSS + '-adapter-dashboard > li[pacem]')
292
+ ], PacemAdapterElement.prototype, "_liPause", void 0);
293
+ __decorate([
294
+ Debounce()
295
+ ], PacemAdapterElement.prototype, "_tickVersion", null);
296
+ __decorate([
297
+ Watch({ converter: PropertyConverters.Boolean })
298
+ ], PacemAdapterElement.prototype, "pausable", void 0);
299
+ __decorate([
300
+ Watch({ emit: false, converter: PropertyConverters.Number })
301
+ ], PacemAdapterElement.prototype, "interval", void 0);
302
+ __decorate([
303
+ Watch({ emit: false, converter: PropertyConverters.String })
304
+ ], PacemAdapterElement.prototype, "orientation", void 0);
305
+ __decorate([
306
+ Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })
307
+ ], PacemAdapterElement.prototype, "interactive", void 0);
308
+ __decorate([
309
+ Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })
310
+ ], PacemAdapterElement.prototype, "swipeEnabled", void 0);
311
+ __decorate([
312
+ Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })
313
+ ], PacemAdapterElement.prototype, "deselectable", void 0);
314
+ __decorate([
315
+ Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })
316
+ ], PacemAdapterElement.prototype, "loop", void 0);
317
+ __decorate([
318
+ Watch({ emit: false })
319
+ ], PacemAdapterElement.prototype, "labelCallback", void 0);
320
+ __decorate([
321
+ Watch()
322
+ ], PacemAdapterElement.prototype, "_index", void 0);
323
+ __decorate([
324
+ Watch()
325
+ ], PacemAdapterElement.prototype, "_paused", void 0);
326
+ __decorate([
327
+ Watch()
328
+ ], PacemAdapterElement.prototype, "_v", void 0);
329
+ __decorate([
330
+ Throttle(333)
331
+ ], PacemAdapterElement.prototype, "_next", null);
332
+ __decorate([
333
+ Throttle(333)
334
+ ], PacemAdapterElement.prototype, "_previous", null);
335
+ PacemAdapterElement = __decorate([
336
+ CustomElement({
337
+ tagName: P + '-adapter', shadow: Defaults.USE_SHADOW_ROOT,
338
+ template: `<${P}-button class="${PCSS}-adapter-previous" on-click=":host._previous($event)">&lt;</${P}-button>
339
+ <${P}-button class="${PCSS}-adapter-next" on-click=":host._next($event)">&gt;</${P}-button>
340
+ <${P}-swipe on-swipeleft=":host._next($event)" on-swiperight=":host._previous($event)"></${P}-swipe>
341
+ <${P}-panel tabindex="0">
342
+ <${P}-repeater>
343
+ <ol class="${PCSS}-adapter-dashboard">
344
+ <li pacem hidden>
345
+ <${P}-button class="${PCSS}-play-pause"
346
+ css-class="{{ {'paused' : :host._paused, 'playing': !:host._paused } }}"
347
+ disabled="{{ !:host.pausable }}" on-click=":host._toggle($event)"></${P}-button>
348
+ </li>
349
+ <template>
350
+ <li>
351
+ <${P}-button on-click=":host._select(^index, $event)" class="${PCSS}-adapter-page" css-class="{{ { '${PCSS}-adapter-active': ^index === :host._index } }}">
352
+ <${P}-span></${P}-span>
353
+ </${P}-button>
354
+ </li>
355
+ </template>
356
+ </ol></${P}-repeater></${P}-panel>`
357
+ })
358
+ ], PacemAdapterElement);
359
+ export { PacemAdapterElement };
360
+ //}
@@ -0,0 +1,149 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { P, PCSS, CustomElement, Watch, Utils, PropertyConverters, Components, PropertyChangeEvent } from '@pacem/pacem-core';
8
+ //namespace Pacem.Components.UI {
9
+ // TODO: shadow-ize and reuse native <a> element.
10
+ let PacemAnchorElement = class PacemAnchorElement extends Components.PacemElement {
11
+ constructor() {
12
+ super('link');
13
+ this._fetching = false;
14
+ }
15
+ ///
16
+ get fetching() {
17
+ return this._fetching;
18
+ }
19
+ connectedCallback() {
20
+ super.connectedCallback();
21
+ if (!this.hasAttribute('tab-order')) {
22
+ this.tabOrder = 0;
23
+ }
24
+ }
25
+ propertyChangedCallback(name, old, val, first) {
26
+ super.propertyChangedCallback(name, old, val, first);
27
+ switch (name) {
28
+ case 'target':
29
+ (Utils.isNullOrEmpty(val) ? Utils.removeClass : Utils.addClass)(this, 'a-target');
30
+ break;
31
+ case 'href':
32
+ (Utils.isNull(val) ? Utils.removeClass : Utils.addClass)(this, 'a-url');
33
+ break;
34
+ case 'download':
35
+ (Utils.isNullOrEmpty(val) ? Utils.removeClass : Utils.addClass)(this, 'a-download');
36
+ break;
37
+ }
38
+ }
39
+ emit(evt) {
40
+ super.emit(evt);
41
+ if (this.disabled) {
42
+ return;
43
+ }
44
+ switch (evt.type) {
45
+ case 'mousedown':
46
+ Utils.addClass(this, PCSS + '-active');
47
+ break;
48
+ case 'keydown':
49
+ if (evt.key === 'Enter') {
50
+ evt.preventDefault();
51
+ Utils.addClass(this, PCSS + '-active');
52
+ }
53
+ break;
54
+ case 'blur':
55
+ case 'mouseup':
56
+ Utils.removeClass(this, PCSS + '-active');
57
+ break;
58
+ case 'keyup':
59
+ if (evt.key === 'Enter') {
60
+ this.click();
61
+ Utils.removeClass(this, PCSS + '-active');
62
+ }
63
+ break;
64
+ }
65
+ const href = this.href, target = this.target, router = this.router, filename = this.download;
66
+ const url = () => {
67
+ return Utils.isNull(router) ? href : Utils.URIs.format(href, router.state);
68
+ };
69
+ if (!Utils.isNull(href) && !evt.defaultPrevented) {
70
+ if ((evt.type === 'click' && evt.ctrlKey) || (evt.type === 'mousedown' && evt.button === 1)) {
71
+ // 1. middle-click or ctrl+click
72
+ window.open(url(), '_blank');
73
+ }
74
+ else if (evt.type === 'click') {
75
+ // 2. download
76
+ if (filename === true) {
77
+ this._download(url());
78
+ }
79
+ else if (typeof filename === 'string' && !Utils.isNullOrEmpty(filename)) {
80
+ this._download(url(), filename);
81
+ }
82
+ // 3. targeting other window
83
+ else if (!Utils.isNullOrEmpty(target)) {
84
+ window.open(url(), target);
85
+ }
86
+ // 4. routed navigation
87
+ else if (!Utils.isNull(router)) {
88
+ // old implementation memento: Pacem.preventDefaultHandler(evt);
89
+ // trigger router `navigate()`
90
+ router.path = href;
91
+ }
92
+ // 5. standard behavior
93
+ else {
94
+ location.assign(href);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ async _download(url, filename) {
100
+ this.dispatchEvent(new PropertyChangeEvent({
101
+ propertyName: 'fetching', oldValue: this._fetching, currentValue: this._fetching = true
102
+ }));
103
+ try {
104
+ await Utils.download(url, { credentials: this.fetchCredentials, headers: this.fetchHeaders, filename: filename });
105
+ }
106
+ finally {
107
+ this.dispatchEvent(new PropertyChangeEvent({
108
+ propertyName: 'fetching', oldValue: this._fetching, currentValue: this._fetching = false
109
+ }));
110
+ }
111
+ }
112
+ };
113
+ __decorate([
114
+ Watch({ emit: false, converter: PropertyConverters.String })
115
+ ], PacemAnchorElement.prototype, "fetchCredentials", void 0);
116
+ __decorate([
117
+ Watch({ emit: false, converter: PropertyConverters.Json })
118
+ ], PacemAnchorElement.prototype, "fetchHeaders", void 0);
119
+ __decorate([
120
+ Watch({ reflectBack: true, converter: PropertyConverters.String })
121
+ ], PacemAnchorElement.prototype, "href", void 0);
122
+ __decorate([
123
+ Watch({ reflectBack: true, converter: PropertyConverters.String })
124
+ ], PacemAnchorElement.prototype, "target", void 0);
125
+ __decorate([
126
+ Watch({
127
+ reflectBack: false, converter: {
128
+ convert: (attr) => {
129
+ switch (attr) {
130
+ case 'true':
131
+ return true;
132
+ case 'false':
133
+ return false;
134
+ default:
135
+ return attr;
136
+ }
137
+ }, convertBack: (prop) => prop
138
+ }
139
+ })
140
+ ], PacemAnchorElement.prototype, "download", void 0);
141
+ __decorate([
142
+ Watch({ reflectBack: false, converter: PropertyConverters.Element })
143
+ ], PacemAnchorElement.prototype, "router", void 0);
144
+ PacemAnchorElement = __decorate([
145
+ CustomElement({
146
+ tagName: P + '-a'
147
+ })
148
+ ], PacemAnchorElement);
149
+ export { PacemAnchorElement };