@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.
- package/LICENSE +191 -0
- package/NOTICE +4 -0
- package/dist/browser/pacem-ui.js +6343 -0
- package/dist/browser/pacem-ui.js.map +1 -0
- package/dist/browser/pacem-ui.min.js +2 -0
- package/dist/browser/pacem-ui.min.js.map +1 -0
- package/dist/bundle/pacem-ui.min.mjs +168 -0
- package/dist/bundle/pacem-ui.mjs +6276 -0
- package/dist/bundle/pacem-ui.mjs.map +7 -0
- package/dist/esm/adapter.js +360 -0
- package/dist/esm/anchor.js +149 -0
- package/dist/esm/balloon.js +583 -0
- package/dist/esm/binder.js +678 -0
- package/dist/esm/blade.js +31 -0
- package/dist/esm/bottom-sheet.js +277 -0
- package/dist/esm/button.js +100 -0
- package/dist/esm/buttonset.js +41 -0
- package/dist/esm/calendar.js +662 -0
- package/dist/esm/collapse.js +72 -0
- package/dist/esm/dialog-abstractions.js +61 -0
- package/dist/esm/dialog.js +102 -0
- package/dist/esm/divider.js +48 -0
- package/dist/esm/icon.js +131 -0
- package/dist/esm/image.js +109 -0
- package/dist/esm/index-components-ui.js +41 -0
- package/dist/esm/index-components.js +1 -0
- package/dist/esm/index-iife.js +3 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/infinite-scroller.js +137 -0
- package/dist/esm/iterative.js +45 -0
- package/dist/esm/lightbox-abstractions.js +6 -0
- package/dist/esm/lightbox.js +203 -0
- package/dist/esm/loader.js +100 -0
- package/dist/esm/markdown-svc.js +235 -0
- package/dist/esm/markdown.js +35 -0
- package/dist/esm/marquee.js +87 -0
- package/dist/esm/media-query.js +85 -0
- package/dist/esm/menu.js +165 -0
- package/dist/esm/pager.js +111 -0
- package/dist/esm/picture.js +157 -0
- package/dist/esm/progressbar.js +54 -0
- package/dist/esm/sidebar.js +60 -0
- package/dist/esm/slideshow.js +27 -0
- package/dist/esm/social-twitter.js +39 -0
- package/dist/esm/sticky-header.js +113 -0
- package/dist/esm/tabs.js +187 -0
- package/dist/esm/ticker.js +78 -0
- package/dist/esm/toast.js +171 -0
- package/dist/esm/toc.js +171 -0
- package/dist/esm/tuner.js +200 -0
- package/dist/esm/types.js +7 -0
- package/dist/esm/vibration.js +33 -0
- package/dist/esm/view.js +206 -0
- package/dist/esm/window.js +181 -0
- package/package.json +38 -0
- package/typings/index.d.ts +1165 -0
|
@@ -0,0 +1,137 @@
|
|
|
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, Debounce, CustomElement, Watch, Utils, PropertyConverters, PacemEventTarget } from '@pacem/pacem-core';
|
|
8
|
+
//namespace Pacem.Components.UI {
|
|
9
|
+
let PacemInfiniteScrollerElement = class PacemInfiniteScrollerElement extends PacemEventTarget {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this._scrollDelegate = () => this._doScroll();
|
|
13
|
+
this._enabled = true;
|
|
14
|
+
this._viewportHeight = 0;
|
|
15
|
+
this._innerHeight = 0;
|
|
16
|
+
this._isDocument = false;
|
|
17
|
+
this._container = null;
|
|
18
|
+
this._viewport = null;
|
|
19
|
+
this._scroller = null;
|
|
20
|
+
this._bottomGap = 10;
|
|
21
|
+
this._container = this;
|
|
22
|
+
this._viewport = this;
|
|
23
|
+
this._scroller = this;
|
|
24
|
+
}
|
|
25
|
+
viewActivatedCallback() {
|
|
26
|
+
super.viewActivatedCallback();
|
|
27
|
+
this.setInfiniteScrollContainer(this._container);
|
|
28
|
+
}
|
|
29
|
+
disconnectedCallback() {
|
|
30
|
+
if (!Utils.isNull(this._scroller))
|
|
31
|
+
this._scroller.removeEventListener('scroll', this._scrollDelegate, false);
|
|
32
|
+
super.disconnectedCallback();
|
|
33
|
+
}
|
|
34
|
+
propertyChangedCallback(name, old, val, first) {
|
|
35
|
+
super.propertyChangedCallback(name, old, val, first);
|
|
36
|
+
switch (name) {
|
|
37
|
+
case 'container':
|
|
38
|
+
this.setInfiniteScrollContainer(val);
|
|
39
|
+
break;
|
|
40
|
+
case 'disabled':
|
|
41
|
+
if (this._enabled = !val)
|
|
42
|
+
this._doScroll();
|
|
43
|
+
break;
|
|
44
|
+
case 'threshold':
|
|
45
|
+
this._bottomGap = val || 0;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
setInfiniteScrollContainer(v = '$document') {
|
|
50
|
+
var cont = v;
|
|
51
|
+
var isDoc = this._isDocument = cont === '$document' || cont === document.body || cont === document.documentElement;
|
|
52
|
+
this._container = isDoc ? (document.body || document.documentElement) : ((typeof v === 'string') ?
|
|
53
|
+
document.querySelector(cont)
|
|
54
|
+
:
|
|
55
|
+
cont);
|
|
56
|
+
this._viewport = isDoc ? window : this._container;
|
|
57
|
+
if (this._scroller)
|
|
58
|
+
this._scroller.removeEventListener('scroll', this._scrollDelegate, false);
|
|
59
|
+
this._scroller = isDoc ? window.document : this._container;
|
|
60
|
+
this._scroller.addEventListener('scroll', this._scrollDelegate, false);
|
|
61
|
+
if (this._enabled)
|
|
62
|
+
this._doScroll();
|
|
63
|
+
}
|
|
64
|
+
//ngOnChanges(changes: SimpleChanges) {
|
|
65
|
+
//}
|
|
66
|
+
_emitFetchMore() {
|
|
67
|
+
/**
|
|
68
|
+
* on-fetchmore => must toggle `enabled` while fetching...
|
|
69
|
+
*/
|
|
70
|
+
var evt = new CustomEvent('fetchmore');
|
|
71
|
+
this.dispatchEvent(evt);
|
|
72
|
+
}
|
|
73
|
+
_doScroll() {
|
|
74
|
+
if (!this._enabled)
|
|
75
|
+
return;
|
|
76
|
+
if (!this._computeHeight()) {
|
|
77
|
+
var scrollTop = this._scroller instanceof Document ? window.pageYOffset : this._scroller.scrollTop;
|
|
78
|
+
var viewportHeight = this._viewportHeight, innerHeight = this._innerHeight;
|
|
79
|
+
var threshold = innerHeight - (scrollTop + viewportHeight);
|
|
80
|
+
if (threshold < this._bottomGap /* pixels */
|
|
81
|
+
|| innerHeight <= viewportHeight) {
|
|
82
|
+
// fire fetchMore()
|
|
83
|
+
this._emitFetchMore();
|
|
84
|
+
window.requestAnimationFrame(() => {
|
|
85
|
+
if (this._enabled)
|
|
86
|
+
this._doScroll();
|
|
87
|
+
});
|
|
88
|
+
} //else computeHeight();
|
|
89
|
+
}
|
|
90
|
+
else
|
|
91
|
+
this._doScroll();
|
|
92
|
+
}
|
|
93
|
+
_computeHeight() {
|
|
94
|
+
if (!this._container)
|
|
95
|
+
return;
|
|
96
|
+
var cont = this._container;
|
|
97
|
+
var topOffset = Number.MAX_VALUE, bottomOffset = 0, totalHeight = 0, _innerHeight;
|
|
98
|
+
if (this._isDocument) {
|
|
99
|
+
var d = cont;
|
|
100
|
+
_innerHeight = Math.max(d.scrollHeight, d.offsetHeight, d.clientHeight);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
for (var i = 0; i < cont.children.length; i++) {
|
|
104
|
+
var e = cont.children.item(i);
|
|
105
|
+
var eTopOffset = e.offsetTop, eHeight = e.offsetHeight, eBottomOffset = eTopOffset + eHeight;
|
|
106
|
+
totalHeight += eHeight;
|
|
107
|
+
if (eTopOffset < topOffset) {
|
|
108
|
+
topOffset = eTopOffset;
|
|
109
|
+
}
|
|
110
|
+
if (eBottomOffset > bottomOffset) {
|
|
111
|
+
bottomOffset = eBottomOffset;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
_innerHeight = Math.round(bottomOffset - topOffset);
|
|
115
|
+
}
|
|
116
|
+
var _viewportHeight = this._viewport instanceof Window ? Utils.windowSize.height : this._viewport.offsetHeight;
|
|
117
|
+
if (_innerHeight != this._innerHeight || _viewportHeight != this._viewportHeight) {
|
|
118
|
+
this._innerHeight = _innerHeight;
|
|
119
|
+
this._viewportHeight = _viewportHeight;
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
__decorate([
|
|
126
|
+
Watch({ converter: PropertyConverters.String })
|
|
127
|
+
], PacemInfiniteScrollerElement.prototype, "container", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
Watch({ reflectBack: true, converter: PropertyConverters.Number })
|
|
130
|
+
], PacemInfiniteScrollerElement.prototype, "threshold", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
Debounce(100)
|
|
133
|
+
], PacemInfiniteScrollerElement.prototype, "_doScroll", null);
|
|
134
|
+
PacemInfiniteScrollerElement = __decorate([
|
|
135
|
+
CustomElement({ tagName: P + '-infinite-scroller' })
|
|
136
|
+
], PacemInfiniteScrollerElement);
|
|
137
|
+
export { PacemInfiniteScrollerElement };
|
|
@@ -0,0 +1,45 @@
|
|
|
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 { Watch, Utils, PropertyConverters, Components } from '@pacem/pacem-core';
|
|
8
|
+
//namespace Pacem.Components.UI {
|
|
9
|
+
export class PacemAdaptedIterativeElement extends Components.PacemElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.index = 0;
|
|
13
|
+
}
|
|
14
|
+
isCloseTo(ndx, focusndx) {
|
|
15
|
+
if (Utils.isNull(this.datasource) || this.datasource.length == 0)
|
|
16
|
+
return false;
|
|
17
|
+
return /*this.adapter.isClose(ndx) ||*/ this._isCloseToCore(ndx, focusndx, this.datasource.length);
|
|
18
|
+
}
|
|
19
|
+
isPrevious(ndx, focusndx) {
|
|
20
|
+
if (Utils.isNull(this.datasource) || this.datasource.length == 0)
|
|
21
|
+
return false;
|
|
22
|
+
return /*this.adapter.isPrevious(ndx) ||*/ this._isPreviousCore(ndx, focusndx, this.datasource.length);
|
|
23
|
+
}
|
|
24
|
+
isNext(ndx, focusndx) {
|
|
25
|
+
if (Utils.isNull(this.datasource) || this.datasource.length == 0)
|
|
26
|
+
return false;
|
|
27
|
+
return /*this.adapter.isNext(ndx) ||*/ this._isNextCore(ndx, focusndx, this.datasource.length);
|
|
28
|
+
}
|
|
29
|
+
_isNextCore(ndx, focusndx, count) {
|
|
30
|
+
return ((focusndx + 1) % count) === ndx;
|
|
31
|
+
}
|
|
32
|
+
_isPreviousCore(ndx, focusndx, count) {
|
|
33
|
+
return ((focusndx - 1 + count) % count) === ndx;
|
|
34
|
+
}
|
|
35
|
+
_isCloseToCore(ndx, focusndx, count) {
|
|
36
|
+
return (((focusndx + count) % count) == ((ndx + count) % count))
|
|
37
|
+
|| this._isNextCore(ndx, focusndx, count) || this._isPreviousCore(ndx, focusndx, count);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
__decorate([
|
|
41
|
+
Watch({ converter: PropertyConverters.Number })
|
|
42
|
+
], PacemAdaptedIterativeElement.prototype, "index", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
Watch()
|
|
45
|
+
], PacemAdaptedIterativeElement.prototype, "datasource", void 0);
|
|
@@ -0,0 +1,203 @@
|
|
|
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, stopPropagationHandler, ViewChild, avoidHandler } from '@pacem/pacem-core';
|
|
8
|
+
import { LightboxBehavior } from './lightbox-abstractions';
|
|
9
|
+
import { PacemButtonElement } from './button';
|
|
10
|
+
//namespace Pacem.Components.UI {
|
|
11
|
+
// TODO: shadow-ize lightbox (slots, parts, ...) in the next version 0.5x.x.
|
|
12
|
+
let PacemLightboxElement = class PacemLightboxElement extends Components.PacemElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this._keyupHandler = (evt) => {
|
|
16
|
+
if (evt.keyCode === 27 /* ESC */ && this.show && !this.modal) {
|
|
17
|
+
this.show = false;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
this._wrapperMousedownHandler = (evt) => {
|
|
21
|
+
if (this.modal || this.behavior === LightboxBehavior.ExplicitClose) {
|
|
22
|
+
stopPropagationHandler(evt);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.show = false;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
this._slotchangeHandler = (evt) => {
|
|
29
|
+
this._resetLayout();
|
|
30
|
+
};
|
|
31
|
+
this._closeHandler = (evt) => {
|
|
32
|
+
this._close(evt);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
_resetLayout() {
|
|
36
|
+
this._disposeButton();
|
|
37
|
+
const btn = this._ensureButton();
|
|
38
|
+
if (!Utils.isNull(btn)) {
|
|
39
|
+
btn.addEventListener('click', this._closeHandler, false);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
_toggleCloseVisibility() {
|
|
43
|
+
const closer = this._closeWrapper;
|
|
44
|
+
if (!Utils.isNull(closer)) {
|
|
45
|
+
closer.hidden = this.modal;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
viewActivatedCallback() {
|
|
49
|
+
super.viewActivatedCallback();
|
|
50
|
+
this._toggleCloseVisibility();
|
|
51
|
+
var wrapper = this._wrapperElement;
|
|
52
|
+
var container = this._container;
|
|
53
|
+
wrapper.addEventListener('mousedown', this._wrapperMousedownHandler, false);
|
|
54
|
+
container.addEventListener('mousedown', stopPropagationHandler, false);
|
|
55
|
+
document.body.removeEventListener('scroll', avoidHandler, true);
|
|
56
|
+
window.addEventListener('keyup', this._keyupHandler, false);
|
|
57
|
+
this._resetLayout();
|
|
58
|
+
this._slot.addEventListener('slotchange', this._slotchangeHandler, false);
|
|
59
|
+
}
|
|
60
|
+
propertyChangedCallback(name, old, val, first) {
|
|
61
|
+
super.propertyChangedCallback(name, old, val, first);
|
|
62
|
+
if (first) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
switch (name) {
|
|
66
|
+
case 'show':
|
|
67
|
+
const wrap = this._wrapperElement;
|
|
68
|
+
const container = this._container;
|
|
69
|
+
if (!!val) {
|
|
70
|
+
this.inert = false;
|
|
71
|
+
this.dispatchEvent(new Event('open', { bubbles: true, cancelable: false }));
|
|
72
|
+
wrap.style.display = '';
|
|
73
|
+
wrap.hidden = false;
|
|
74
|
+
window.requestAnimationFrame(() => {
|
|
75
|
+
Utils.addPart(wrap, 'lightbox-wrapper-shown');
|
|
76
|
+
Utils.addPart(container, 'lightbox-shown');
|
|
77
|
+
});
|
|
78
|
+
var scroller = this.querySelector('.' + PCSS + '-scrollable');
|
|
79
|
+
if (scroller) {
|
|
80
|
+
window.requestAnimationFrame(() => scroller.scrollTop = 0);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (!!old) {
|
|
84
|
+
this.inert = true;
|
|
85
|
+
this.dispatchEvent(new Event('close', { bubbles: true, cancelable: false }));
|
|
86
|
+
//
|
|
87
|
+
Utils.removePart(wrap, 'lightbox-wrapper-shown');
|
|
88
|
+
Utils.removePart(container, 'lightbox-shown');
|
|
89
|
+
Utils.addAnimationEndCallback(wrap, (e) => {
|
|
90
|
+
e.hidden = true;
|
|
91
|
+
e.style.display = 'none';
|
|
92
|
+
}, 500);
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
case 'modal':
|
|
96
|
+
this._toggleCloseVisibility();
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
disconnectedCallback() {
|
|
101
|
+
if (this.show) {
|
|
102
|
+
this._close();
|
|
103
|
+
}
|
|
104
|
+
var wrapper = this._wrapperElement;
|
|
105
|
+
var container = this._container;
|
|
106
|
+
document.body.removeEventListener('scroll', avoidHandler, true);
|
|
107
|
+
if (!Utils.isNull(wrapper)) {
|
|
108
|
+
wrapper.removeEventListener('mousedown', this._wrapperMousedownHandler, false);
|
|
109
|
+
}
|
|
110
|
+
if (!Utils.isNull(container)) {
|
|
111
|
+
container.removeEventListener('mousedown', stopPropagationHandler, false);
|
|
112
|
+
}
|
|
113
|
+
window.removeEventListener('keyup', this._keyupHandler, false);
|
|
114
|
+
this._disposeButton();
|
|
115
|
+
this._disposeSlot();
|
|
116
|
+
super.disconnectedCallback();
|
|
117
|
+
}
|
|
118
|
+
_disposeButton() {
|
|
119
|
+
this.#btn?.removeEventListener('click', this._closeHandler);
|
|
120
|
+
this.#btn = null;
|
|
121
|
+
}
|
|
122
|
+
_disposeSlot() {
|
|
123
|
+
this._slot?.removeEventListener('slotchange', this._slotchangeHandler, false);
|
|
124
|
+
}
|
|
125
|
+
_close(evt) {
|
|
126
|
+
if (!Utils.isNull(evt)) {
|
|
127
|
+
avoidHandler(evt);
|
|
128
|
+
}
|
|
129
|
+
this.show = false;
|
|
130
|
+
}
|
|
131
|
+
#btn;
|
|
132
|
+
_ensureButton() {
|
|
133
|
+
if (!Utils.isNull(this.#btn)) {
|
|
134
|
+
return this.#btn;
|
|
135
|
+
}
|
|
136
|
+
const btnSlot = this._slot;
|
|
137
|
+
if (Utils.isNull(btnSlot)) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const found = this._lookForAButton();
|
|
141
|
+
if (!Utils.isNull(found)) {
|
|
142
|
+
return this.#btn = found;
|
|
143
|
+
}
|
|
144
|
+
const retval = new PacemButtonElement();
|
|
145
|
+
retval.setAttribute('slot', 'close');
|
|
146
|
+
retval.className = `${PCSS}-margin margin-0 ${PCSS}-rise rise--2 button-circle circle-smaller`;
|
|
147
|
+
retval.iconGlyph = 'close';
|
|
148
|
+
this.appendChild(retval);
|
|
149
|
+
return this.#btn = retval;
|
|
150
|
+
}
|
|
151
|
+
_lookForAButton() {
|
|
152
|
+
const btnSlot = this._slot;
|
|
153
|
+
if (Utils.isNull(btnSlot)) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
const buttons = btnSlot.assignedElements({ flatten: true });
|
|
157
|
+
if (Utils.isNullOrEmpty(buttons)) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return buttons[0];
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
__decorate([
|
|
164
|
+
Watch({ converter: PropertyConverters.Boolean })
|
|
165
|
+
], PacemLightboxElement.prototype, "show", void 0);
|
|
166
|
+
__decorate([
|
|
167
|
+
Watch({ converter: PropertyConverters.Boolean })
|
|
168
|
+
], PacemLightboxElement.prototype, "modal", void 0);
|
|
169
|
+
__decorate([
|
|
170
|
+
Watch({ emit: false, converter: PropertyConverters.String })
|
|
171
|
+
], PacemLightboxElement.prototype, "behavior", void 0);
|
|
172
|
+
__decorate([
|
|
173
|
+
ViewChild('.' + PCSS + '-lightbox-wrapper')
|
|
174
|
+
], PacemLightboxElement.prototype, "_wrapperElement", void 0);
|
|
175
|
+
__decorate([
|
|
176
|
+
ViewChild('.' + PCSS + '-lightbox')
|
|
177
|
+
], PacemLightboxElement.prototype, "_container", void 0);
|
|
178
|
+
__decorate([
|
|
179
|
+
ViewChild('slot[name=close]')
|
|
180
|
+
], PacemLightboxElement.prototype, "_slot", void 0);
|
|
181
|
+
__decorate([
|
|
182
|
+
ViewChild('div[part=close]')
|
|
183
|
+
], PacemLightboxElement.prototype, "_closeWrapper", void 0);
|
|
184
|
+
PacemLightboxElement = __decorate([
|
|
185
|
+
CustomElement({
|
|
186
|
+
tagName: P + '-lightbox',
|
|
187
|
+
shadow: true,
|
|
188
|
+
template: `<div class="${PCSS}-lightbox-wrapper" part="lightbox-wrapper" hidden>
|
|
189
|
+
<div class="${PCSS}-lightbox" part="lightbox">
|
|
190
|
+
<div part="top"><slot name="top"></slot></div>
|
|
191
|
+
<div class="${PCSS}-scrollable" part="scrollable">
|
|
192
|
+
<slot></slot>
|
|
193
|
+
</div>
|
|
194
|
+
<div part="bottom"><slot name="bottom"></slot></div>
|
|
195
|
+
<div part="close">
|
|
196
|
+
<slot name="close"></slot>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
</div>`
|
|
200
|
+
})
|
|
201
|
+
], PacemLightboxElement);
|
|
202
|
+
export { PacemLightboxElement };
|
|
203
|
+
//}
|
|
@@ -0,0 +1,100 @@
|
|
|
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, ViewChild, Utils, PropertyConverters, Components, Defaults } from '@pacem/pacem-core';
|
|
8
|
+
//namespace Pacem.Components.UI {
|
|
9
|
+
export var LoaderType;
|
|
10
|
+
(function (LoaderType) {
|
|
11
|
+
LoaderType["Spinner"] = "spin";
|
|
12
|
+
LoaderType["Pacem"] = "pacem";
|
|
13
|
+
LoaderType["Custom"] = "custom";
|
|
14
|
+
})(LoaderType || (LoaderType = {}));
|
|
15
|
+
;
|
|
16
|
+
let PacemLoaderElement = class PacemLoaderElement extends Components.PacemElement {
|
|
17
|
+
viewActivatedCallback() {
|
|
18
|
+
super.viewActivatedCallback();
|
|
19
|
+
var id = '_' + Utils.uniqueCode();
|
|
20
|
+
this._svgSpinner.innerHTML = `<defs>
|
|
21
|
+
<mask id="hole${id}">
|
|
22
|
+
<rect width="100%" height="100%" fill="white" />
|
|
23
|
+
<circle cx="36" cy="36" r="12"></circle>
|
|
24
|
+
<path d="M18,0 L32,16 H40 L54,0 Z" fill="#000"></path>
|
|
25
|
+
<g transform="rotate(120,36,36)">
|
|
26
|
+
<path d="M18,0 L32,16 H40 L54,0 Z" fill="#000"></path>
|
|
27
|
+
</g>
|
|
28
|
+
</mask>
|
|
29
|
+
</defs>
|
|
30
|
+
|
|
31
|
+
<circle class="circle1" cx="36" cy="36" r="34" stroke-width="4" fill="none"></circle>
|
|
32
|
+
<g class="gear">
|
|
33
|
+
<circle cx="36" cy="36" r="25" mask="url(#hole${id})"></circle>
|
|
34
|
+
</g>
|
|
35
|
+
<circle class="circle2" cx="36" cy="36" r="8" stroke-width="2" fill="none"></circle>
|
|
36
|
+
|
|
37
|
+
<g class="bounds">
|
|
38
|
+
<path d="M8,0 H0 V8 M64,0 H71 V8 M71,63 V71 H64 M8,71 H0 V63" stroke-width="2"></path>
|
|
39
|
+
</g>`;
|
|
40
|
+
}
|
|
41
|
+
propertyChangedCallback(name, old, val, first) {
|
|
42
|
+
super.propertyChangedCallback(name, old, val, first);
|
|
43
|
+
if (!Utils.isNull(this._container)) {
|
|
44
|
+
switch (name) {
|
|
45
|
+
case 'active':
|
|
46
|
+
case 'disabled':
|
|
47
|
+
if (this.active === true && !this.disabled) {
|
|
48
|
+
Utils.addClass(this._container, 'active');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
Utils.removeClass(this._container, 'active');
|
|
52
|
+
}
|
|
53
|
+
break;
|
|
54
|
+
case 'type':
|
|
55
|
+
this._svgSpinner.setAttribute('hidden', 'hidden');
|
|
56
|
+
this._spinner.setAttribute('hidden', 'hidden');
|
|
57
|
+
switch (val) {
|
|
58
|
+
case LoaderType.Pacem:
|
|
59
|
+
this._svgSpinner.removeAttribute('hidden');
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
this._spinner.removeAttribute('hidden');
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
__decorate([
|
|
71
|
+
ViewChild('div.' + PCSS + '-spinner')
|
|
72
|
+
], PacemLoaderElement.prototype, "_spinner", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
ViewChild('div.' + PCSS + '-loader')
|
|
75
|
+
], PacemLoaderElement.prototype, "_container", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
ViewChild('svg')
|
|
78
|
+
], PacemLoaderElement.prototype, "_svgSpinner", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
Watch({ converter: PropertyConverters.Boolean })
|
|
81
|
+
], PacemLoaderElement.prototype, "active", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
Watch({ converter: PropertyConverters.String })
|
|
84
|
+
], PacemLoaderElement.prototype, "type", void 0);
|
|
85
|
+
PacemLoaderElement = __decorate([
|
|
86
|
+
CustomElement({
|
|
87
|
+
tagName: P + '-loader', shadow: Defaults.USE_SHADOW_ROOT,
|
|
88
|
+
template: `<div class="${PCSS}-loader" pacem>
|
|
89
|
+
<div class="${PCSS}-spinner" pacem>
|
|
90
|
+
<div></div>
|
|
91
|
+
<div></div>
|
|
92
|
+
</div>
|
|
93
|
+
<svg class="${PCSS}-spinner" pacem hidden xmlns="http://www.w3.org/2000/svg"
|
|
94
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
95
|
+
viewBox="-18,-18,108,108" preserveAspectRatio="xMidYMid">
|
|
96
|
+
</svg>
|
|
97
|
+
</div>`
|
|
98
|
+
})
|
|
99
|
+
], PacemLoaderElement);
|
|
100
|
+
export { PacemLoaderElement };
|