tosijs-ui 1.0.0
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 +21 -0
- package/README.md +165 -0
- package/dist/ab-test.d.ts +14 -0
- package/dist/ab-test.js +116 -0
- package/dist/babylon-3d.d.ts +53 -0
- package/dist/babylon-3d.js +292 -0
- package/dist/bodymovin-player.d.ts +32 -0
- package/dist/bodymovin-player.js +172 -0
- package/dist/bp-loader.d.ts +1 -0
- package/dist/bp-loader.js +26 -0
- package/dist/carousel.d.ts +113 -0
- package/dist/carousel.js +308 -0
- package/dist/code-editor.d.ts +27 -0
- package/dist/code-editor.js +102 -0
- package/dist/color-input.d.ts +41 -0
- package/dist/color-input.js +112 -0
- package/dist/data-table.d.ts +79 -0
- package/dist/data-table.js +774 -0
- package/dist/drag-and-drop.d.ts +2 -0
- package/dist/drag-and-drop.js +386 -0
- package/dist/editable-rect.d.ts +97 -0
- package/dist/editable-rect.js +450 -0
- package/dist/filter-builder.d.ts +64 -0
- package/dist/filter-builder.js +468 -0
- package/dist/float.d.ts +18 -0
- package/dist/float.js +170 -0
- package/dist/form.d.ts +68 -0
- package/dist/form.js +466 -0
- package/dist/gamepad.d.ts +34 -0
- package/dist/gamepad.js +115 -0
- package/dist/icon-data.d.ts +312 -0
- package/dist/icon-data.js +308 -0
- package/dist/icon-types.d.ts +7 -0
- package/dist/icon-types.js +1 -0
- package/dist/icons.d.ts +17 -0
- package/dist/icons.js +374 -0
- package/dist/iife.js +69 -0
- package/dist/iife.js.map +49 -0
- package/dist/index-iife.d.ts +1 -0
- package/dist/index-iife.js +4 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +47 -0
- package/dist/live-example.d.ts +63 -0
- package/dist/live-example.js +611 -0
- package/dist/localize.d.ts +46 -0
- package/dist/localize.js +381 -0
- package/dist/make-sorter.d.ts +3 -0
- package/dist/make-sorter.js +119 -0
- package/dist/make-sorter.test.d.ts +1 -0
- package/dist/make-sorter.test.js +48 -0
- package/dist/mapbox.d.ts +24 -0
- package/dist/mapbox.js +161 -0
- package/dist/markdown-viewer.d.ts +17 -0
- package/dist/markdown-viewer.js +173 -0
- package/dist/match-shortcut.d.ts +9 -0
- package/dist/match-shortcut.js +13 -0
- package/dist/match-shortcut.test.d.ts +1 -0
- package/dist/match-shortcut.test.js +194 -0
- package/dist/menu.d.ts +60 -0
- package/dist/menu.js +614 -0
- package/dist/notifications.d.ts +106 -0
- package/dist/notifications.js +308 -0
- package/dist/password-strength.d.ts +35 -0
- package/dist/password-strength.js +302 -0
- package/dist/playwright.config.d.ts +9 -0
- package/dist/playwright.config.js +73 -0
- package/dist/pop-float.d.ts +10 -0
- package/dist/pop-float.js +231 -0
- package/dist/rating.d.ts +62 -0
- package/dist/rating.js +192 -0
- package/dist/rich-text.d.ts +35 -0
- package/dist/rich-text.js +296 -0
- package/dist/segmented.d.ts +80 -0
- package/dist/segmented.js +298 -0
- package/dist/select.d.ts +43 -0
- package/dist/select.js +427 -0
- package/dist/side-nav.d.ts +36 -0
- package/dist/side-nav.js +106 -0
- package/dist/size-break.d.ts +18 -0
- package/dist/size-break.js +118 -0
- package/dist/sizer.d.ts +34 -0
- package/dist/sizer.js +92 -0
- package/dist/src/ab-test.d.ts +14 -0
- package/dist/src/babylon-3d.d.ts +53 -0
- package/dist/src/bodymovin-player.d.ts +32 -0
- package/dist/src/bp-loader.d.ts +0 -0
- package/dist/src/carousel.d.ts +113 -0
- package/dist/src/code-editor.d.ts +27 -0
- package/dist/src/color-input.d.ts +41 -0
- package/dist/src/data-table.d.ts +79 -0
- package/dist/src/drag-and-drop.d.ts +2 -0
- package/dist/src/editable-rect.d.ts +97 -0
- package/dist/src/filter-builder.d.ts +64 -0
- package/dist/src/float.d.ts +18 -0
- package/dist/src/form.d.ts +68 -0
- package/dist/src/gamepad.d.ts +34 -0
- package/dist/src/icon-data.d.ts +309 -0
- package/dist/src/icon-types.d.ts +7 -0
- package/dist/src/icons.d.ts +17 -0
- package/dist/src/index.d.ts +37 -0
- package/dist/src/live-example.d.ts +51 -0
- package/dist/src/localize.d.ts +30 -0
- package/dist/src/make-sorter.d.ts +3 -0
- package/dist/src/mapbox.d.ts +24 -0
- package/dist/src/markdown-viewer.d.ts +15 -0
- package/dist/src/match-shortcut.d.ts +9 -0
- package/dist/src/menu.d.ts +60 -0
- package/dist/src/notifications.d.ts +106 -0
- package/dist/src/password-strength.d.ts +35 -0
- package/dist/src/pop-float.d.ts +10 -0
- package/dist/src/rating.d.ts +62 -0
- package/dist/src/rich-text.d.ts +28 -0
- package/dist/src/segmented.d.ts +80 -0
- package/dist/src/select.d.ts +43 -0
- package/dist/src/side-nav.d.ts +36 -0
- package/dist/src/size-break.d.ts +18 -0
- package/dist/src/sizer.d.ts +34 -0
- package/dist/src/tab-selector.d.ts +91 -0
- package/dist/src/tag-list.d.ts +37 -0
- package/dist/src/track-drag.d.ts +5 -0
- package/dist/src/version.d.ts +1 -0
- package/dist/src/via-tag.d.ts +2 -0
- package/dist/tab-selector.d.ts +91 -0
- package/dist/tab-selector.js +326 -0
- package/dist/tag-list.d.ts +37 -0
- package/dist/tag-list.js +375 -0
- package/dist/track-drag.d.ts +5 -0
- package/dist/track-drag.js +143 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +1 -0
- package/dist/via-tag.d.ts +2 -0
- package/dist/via-tag.js +102 -0
- package/package.json +58 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Component as WebComponent, elements } from 'xinjs';
|
|
2
|
+
const { slot } = elements;
|
|
3
|
+
/*#
|
|
4
|
+
# size-break
|
|
5
|
+
|
|
6
|
+
While we wait for enough browsers to implement [container-queries](https://www.w3.org/TR/css-contain-3/),
|
|
7
|
+
and in any event when you simply want to do different things at different sizes (e.g. in the project I'm
|
|
8
|
+
working on right now, a row of buttons turns into a menu at narrow widths) there's `<xin-sizebreak>`.
|
|
9
|
+
|
|
10
|
+
Note that the sizes referred to are of the `<xin-sizebreak>`'s `.offsetParent`, and it watches for
|
|
11
|
+
the window's `resize` events and its own (via `ResizeObserver`).
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<div class="container">
|
|
15
|
+
<xin-sizebreak min-width="300" min-height="150">
|
|
16
|
+
<h1>BIG!</h1>
|
|
17
|
+
<i slot="small">little</i>
|
|
18
|
+
</xin-sizebreak>
|
|
19
|
+
<xin-sizer></xin-sizer>
|
|
20
|
+
</div>
|
|
21
|
+
```
|
|
22
|
+
```css
|
|
23
|
+
.preview {
|
|
24
|
+
touch-action: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.preview xin-sizebreak {
|
|
28
|
+
width: 100%;
|
|
29
|
+
height: 100%;
|
|
30
|
+
background: #fff8;
|
|
31
|
+
border: 1px solid #aaa;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.preview xin-sizebreak * {
|
|
35
|
+
position: absolute;
|
|
36
|
+
top: 50%;
|
|
37
|
+
left: 50%;
|
|
38
|
+
transform: translateX(-50%) translateY(-50%);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.preview .container {
|
|
42
|
+
position: relative;
|
|
43
|
+
min-width: 100px;
|
|
44
|
+
min-height: 40px;
|
|
45
|
+
max-height: 100%;
|
|
46
|
+
width: 400px;
|
|
47
|
+
height: 100px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.preview .sizer {
|
|
51
|
+
position: absolute;
|
|
52
|
+
width: 24px;
|
|
53
|
+
height: 24px;
|
|
54
|
+
line-height: 24px;
|
|
55
|
+
text-align: center;
|
|
56
|
+
background: #0002;
|
|
57
|
+
bottom: 0;
|
|
58
|
+
right: 0;
|
|
59
|
+
cursor: nwse-resize;
|
|
60
|
+
opacity: 0.5;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.preview .sizer:hover {
|
|
64
|
+
opacity: 1.0;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`<xin-sizebreak>` supports both `min-width` and/or `min-height`, and you can of course target only one
|
|
69
|
+
of the slots if you like. The demo site uses them to hide the [bundlejs](https://bundlejs.com/) badge when
|
|
70
|
+
space is tight.
|
|
71
|
+
*/
|
|
72
|
+
export class SizeBreak extends WebComponent {
|
|
73
|
+
minWidth = 0;
|
|
74
|
+
minHeight = 0;
|
|
75
|
+
value = 'normal';
|
|
76
|
+
content = [slot({ part: 'normal' }), slot({ part: 'small', name: 'small' })];
|
|
77
|
+
static styleSpec = {
|
|
78
|
+
':host': {
|
|
79
|
+
display: 'inline-block',
|
|
80
|
+
position: 'relative',
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
constructor() {
|
|
84
|
+
super();
|
|
85
|
+
this.initAttributes('minWidth', 'minHeight');
|
|
86
|
+
}
|
|
87
|
+
onResize = () => {
|
|
88
|
+
const { normal, small } = this.parts;
|
|
89
|
+
const parent = this.offsetParent;
|
|
90
|
+
if (!(parent instanceof HTMLElement)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
else if (parent.offsetWidth < this.minWidth ||
|
|
94
|
+
parent.offsetHeight < this.minHeight) {
|
|
95
|
+
normal.hidden = true;
|
|
96
|
+
small.hidden = false;
|
|
97
|
+
this.value = 'small';
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
normal.hidden = false;
|
|
101
|
+
small.hidden = true;
|
|
102
|
+
this.value = 'normal';
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
// TODO trigger a resize event when an ancestor element
|
|
106
|
+
// is inserted or moved into the DOM.
|
|
107
|
+
connectedCallback() {
|
|
108
|
+
super.connectedCallback();
|
|
109
|
+
globalThis.addEventListener('resize', this.onResize);
|
|
110
|
+
}
|
|
111
|
+
disconnectedCallback() {
|
|
112
|
+
super.disconnectedCallback();
|
|
113
|
+
globalThis.removeEventListener('resize', this.onResize);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export const sizeBreak = SizeBreak.elementCreator({
|
|
117
|
+
tag: 'xin-sizebreak',
|
|
118
|
+
});
|
package/dist/sizer.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component as XinComponent, ElementCreator } from 'tosijs';
|
|
2
|
+
export declare class XinSizer extends XinComponent {
|
|
3
|
+
target?: HTMLElement | null;
|
|
4
|
+
static styleSpec: {
|
|
5
|
+
':host': {
|
|
6
|
+
_resizeIconFill: string;
|
|
7
|
+
display: string;
|
|
8
|
+
position: string;
|
|
9
|
+
bottom: number;
|
|
10
|
+
right: number;
|
|
11
|
+
padding: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
opacity: number;
|
|
15
|
+
transition: string;
|
|
16
|
+
};
|
|
17
|
+
':host(:hover)': {
|
|
18
|
+
opacity: number;
|
|
19
|
+
};
|
|
20
|
+
':host svg': {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
stroke: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
content: SVGElement;
|
|
27
|
+
get minSize(): {
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
};
|
|
31
|
+
resizeTarget: (event: Event) => void;
|
|
32
|
+
connectedCallback(): void;
|
|
33
|
+
}
|
|
34
|
+
export declare const xinSizer: ElementCreator<XinSizer>;
|
package/dist/sizer.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*#
|
|
2
|
+
# sizer
|
|
3
|
+
|
|
4
|
+
This is a super-simple component that you can put in a fixed size element allowing it to be resized
|
|
5
|
+
from the bottom-right.
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<div>
|
|
9
|
+
<xin-sizer></xin-sizer>
|
|
10
|
+
</div>
|
|
11
|
+
```
|
|
12
|
+
```css
|
|
13
|
+
.preview div {
|
|
14
|
+
position: absolute;
|
|
15
|
+
top: 10px;
|
|
16
|
+
left: 10px;
|
|
17
|
+
width: 200px;
|
|
18
|
+
height: 100px;
|
|
19
|
+
background: #ff02;
|
|
20
|
+
border: 1px solid #555;
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
<xin-css-var-editor element-selector="xin-sizer"></xin-css-var-editor>
|
|
25
|
+
*/
|
|
26
|
+
import { Component as XinComponent, vars } from 'xinjs';
|
|
27
|
+
import { icons } from './icons';
|
|
28
|
+
import { trackDrag } from './track-drag';
|
|
29
|
+
export class XinSizer extends XinComponent {
|
|
30
|
+
target = null;
|
|
31
|
+
static styleSpec = {
|
|
32
|
+
':host': {
|
|
33
|
+
_resizeIconFill: '#222',
|
|
34
|
+
display: 'block',
|
|
35
|
+
position: 'absolute',
|
|
36
|
+
bottom: -7,
|
|
37
|
+
right: -7,
|
|
38
|
+
padding: 14,
|
|
39
|
+
width: 44,
|
|
40
|
+
height: 44,
|
|
41
|
+
opacity: 0.25,
|
|
42
|
+
transition: 'opacity 0.25s ease-out',
|
|
43
|
+
},
|
|
44
|
+
':host(:hover)': {
|
|
45
|
+
opacity: 0.5,
|
|
46
|
+
},
|
|
47
|
+
':host svg': {
|
|
48
|
+
width: 16,
|
|
49
|
+
height: 16,
|
|
50
|
+
stroke: vars.resizeIconFill,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
content = icons.resize();
|
|
54
|
+
get minSize() {
|
|
55
|
+
const { minWidth, minHeight } = getComputedStyle(this.target);
|
|
56
|
+
return {
|
|
57
|
+
width: parseFloat(minWidth) || 32,
|
|
58
|
+
height: parseFloat(minHeight) || 32,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
resizeTarget = (event) => {
|
|
62
|
+
const { target } = this;
|
|
63
|
+
if (!target)
|
|
64
|
+
return;
|
|
65
|
+
const w = target.offsetWidth;
|
|
66
|
+
const h = target.offsetHeight;
|
|
67
|
+
target.style.left = target.offsetLeft + 'px';
|
|
68
|
+
target.style.top = target.offsetTop + 'px';
|
|
69
|
+
target.style.bottom = '';
|
|
70
|
+
target.style.right = '';
|
|
71
|
+
const { minSize } = this;
|
|
72
|
+
trackDrag(event, (dx, dy, event) => {
|
|
73
|
+
target.style.width = Math.max(minSize.width, w + dx) + 'px';
|
|
74
|
+
target.style.height = Math.max(minSize.height, h + dy) + 'px';
|
|
75
|
+
if (event.type === 'mouseup') {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
}, 'nwse-resize');
|
|
79
|
+
};
|
|
80
|
+
connectedCallback() {
|
|
81
|
+
super.connectedCallback();
|
|
82
|
+
if (!this.target) {
|
|
83
|
+
this.target = this.parentElement;
|
|
84
|
+
}
|
|
85
|
+
const PASSIVE = { passive: true };
|
|
86
|
+
this.addEventListener('mousedown', this.resizeTarget, PASSIVE);
|
|
87
|
+
this.addEventListener('touchstart', this.resizeTarget, PASSIVE);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export const xinSizer = XinSizer.elementCreator({
|
|
91
|
+
tag: 'xin-sizer',
|
|
92
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component } from 'xinjs';
|
|
2
|
+
export declare class AbTest extends Component {
|
|
3
|
+
static set conditions(context: {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
});
|
|
6
|
+
condition: string;
|
|
7
|
+
not: boolean;
|
|
8
|
+
static instances: Set<AbTest>;
|
|
9
|
+
constructor();
|
|
10
|
+
connectedCallback(): void;
|
|
11
|
+
disconnectedCallback(): void;
|
|
12
|
+
render(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare const abTest: any;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component as WebComponent, ElementCreator } from 'xinjs';
|
|
2
|
+
type B3dCallback = ((element: B3d, BABYLON: any) => void) | ((element: B3d, BABYLON: any) => Promise<void>);
|
|
3
|
+
interface B3dUIOptions {
|
|
4
|
+
snippetId?: string;
|
|
5
|
+
jsonUrl?: string;
|
|
6
|
+
data?: any;
|
|
7
|
+
size?: number;
|
|
8
|
+
}
|
|
9
|
+
type MeshProcessCallback = (meshes: any[]) => void;
|
|
10
|
+
export declare class B3d extends WebComponent {
|
|
11
|
+
babylonReady: Promise<any>;
|
|
12
|
+
BABYLON?: any;
|
|
13
|
+
static styleSpec: {
|
|
14
|
+
':host': {
|
|
15
|
+
display: string;
|
|
16
|
+
position: string;
|
|
17
|
+
};
|
|
18
|
+
':host canvas': {
|
|
19
|
+
width: string;
|
|
20
|
+
height: string;
|
|
21
|
+
};
|
|
22
|
+
':host .babylonVRicon': {
|
|
23
|
+
height: number;
|
|
24
|
+
width: number;
|
|
25
|
+
backgroundColor: string;
|
|
26
|
+
filter: string;
|
|
27
|
+
backgroundImage: string;
|
|
28
|
+
backgroundPosition: string;
|
|
29
|
+
backgroundRepeat: string;
|
|
30
|
+
border: string;
|
|
31
|
+
borderRadius: number;
|
|
32
|
+
borderStyle: string;
|
|
33
|
+
outline: string;
|
|
34
|
+
transition: string;
|
|
35
|
+
};
|
|
36
|
+
':host .babylonVRicon:hover': {
|
|
37
|
+
transform: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
content: any;
|
|
41
|
+
constructor();
|
|
42
|
+
scene: any;
|
|
43
|
+
engine: any;
|
|
44
|
+
sceneCreated: B3dCallback;
|
|
45
|
+
update: B3dCallback;
|
|
46
|
+
private _update;
|
|
47
|
+
onResize(): void;
|
|
48
|
+
loadScene: (path: string, file: string, processCallback?: MeshProcessCallback) => Promise<void>;
|
|
49
|
+
loadUI: (options: B3dUIOptions) => Promise<any>;
|
|
50
|
+
connectedCallback(): void;
|
|
51
|
+
}
|
|
52
|
+
export declare const b3d: ElementCreator<B3d>;
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component as WebComponent, ElementCreator } from 'xinjs';
|
|
2
|
+
export interface LottieConfig {
|
|
3
|
+
container?: HTMLElement | ShadowRoot;
|
|
4
|
+
renderer: 'svg' | 'canvas' | 'html';
|
|
5
|
+
loop: boolean;
|
|
6
|
+
autoplay: boolean;
|
|
7
|
+
animationData?: string;
|
|
8
|
+
path?: string;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}
|
|
11
|
+
export declare class BodymovinPlayer extends WebComponent {
|
|
12
|
+
content: any;
|
|
13
|
+
src: string;
|
|
14
|
+
json: string;
|
|
15
|
+
config: LottieConfig;
|
|
16
|
+
static bodymovinAvailable?: Promise<any>;
|
|
17
|
+
animation: any;
|
|
18
|
+
static styleSpec: {
|
|
19
|
+
':host': {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
display: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
private _loading;
|
|
26
|
+
get loading(): boolean;
|
|
27
|
+
constructor();
|
|
28
|
+
private readonly doneLoading;
|
|
29
|
+
private readonly load;
|
|
30
|
+
render(): void;
|
|
31
|
+
}
|
|
32
|
+
export declare const bodymovinPlayer: ElementCreator<BodymovinPlayer>;
|
|
File without changes
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Component as WebComponent, ElementCreator } from 'xinjs';
|
|
2
|
+
export declare class XinCarousel extends WebComponent {
|
|
3
|
+
arrows: boolean;
|
|
4
|
+
dots: boolean;
|
|
5
|
+
loop: boolean;
|
|
6
|
+
maxVisibleItems: number;
|
|
7
|
+
snapDelay: number;
|
|
8
|
+
snapDuration: number;
|
|
9
|
+
auto: number;
|
|
10
|
+
private lastAutoAdvance;
|
|
11
|
+
private interval?;
|
|
12
|
+
private autoAdvance;
|
|
13
|
+
private _page;
|
|
14
|
+
get page(): number;
|
|
15
|
+
set page(p: number);
|
|
16
|
+
get visibleItems(): HTMLElement[];
|
|
17
|
+
get lastPage(): number;
|
|
18
|
+
static styleSpec: {
|
|
19
|
+
':host': {
|
|
20
|
+
display: string;
|
|
21
|
+
flexDirection: string;
|
|
22
|
+
position: string;
|
|
23
|
+
};
|
|
24
|
+
':host svg': {
|
|
25
|
+
height: any;
|
|
26
|
+
};
|
|
27
|
+
':host button': {
|
|
28
|
+
outline: string;
|
|
29
|
+
border: string;
|
|
30
|
+
boxShadow: string;
|
|
31
|
+
background: string;
|
|
32
|
+
color: any;
|
|
33
|
+
padding: number;
|
|
34
|
+
};
|
|
35
|
+
':host::part(back), :host::part(forward)': {
|
|
36
|
+
position: string;
|
|
37
|
+
top: number;
|
|
38
|
+
bottom: number;
|
|
39
|
+
width: any;
|
|
40
|
+
zIndex: number;
|
|
41
|
+
};
|
|
42
|
+
':host::part(back)': {
|
|
43
|
+
left: number;
|
|
44
|
+
};
|
|
45
|
+
':host::part(forward)': {
|
|
46
|
+
right: number;
|
|
47
|
+
};
|
|
48
|
+
':host button:disabled': {
|
|
49
|
+
opacity: number;
|
|
50
|
+
pointerEvents: string;
|
|
51
|
+
};
|
|
52
|
+
':host button:hover': {
|
|
53
|
+
color: any;
|
|
54
|
+
};
|
|
55
|
+
':host button:active': {
|
|
56
|
+
color: any;
|
|
57
|
+
};
|
|
58
|
+
':host::part(pager)': {
|
|
59
|
+
position: string;
|
|
60
|
+
};
|
|
61
|
+
':host::part(scroller)': {
|
|
62
|
+
overflow: string;
|
|
63
|
+
position: string;
|
|
64
|
+
};
|
|
65
|
+
':host::part(grid)': {
|
|
66
|
+
display: string;
|
|
67
|
+
justifyItems: string;
|
|
68
|
+
};
|
|
69
|
+
':host *::-webkit-scrollbar, *::-webkit-scrollbar-thumb': {
|
|
70
|
+
display: string;
|
|
71
|
+
};
|
|
72
|
+
':host .dot': {
|
|
73
|
+
background: any;
|
|
74
|
+
borderRadius: any;
|
|
75
|
+
height: any;
|
|
76
|
+
width: any;
|
|
77
|
+
transition: any;
|
|
78
|
+
};
|
|
79
|
+
':host .dot:not(.current):hover': {
|
|
80
|
+
background: any;
|
|
81
|
+
height: any;
|
|
82
|
+
width: any;
|
|
83
|
+
margin: any;
|
|
84
|
+
};
|
|
85
|
+
':host .dot:not(.current):active': {
|
|
86
|
+
background: any;
|
|
87
|
+
};
|
|
88
|
+
':host .dot.current': {
|
|
89
|
+
background: any;
|
|
90
|
+
};
|
|
91
|
+
':host::part(progress)': {
|
|
92
|
+
display: string;
|
|
93
|
+
gap: any;
|
|
94
|
+
justifyContent: string;
|
|
95
|
+
padding: any;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
easing: (t: number) => number;
|
|
99
|
+
indicateCurrent: () => void;
|
|
100
|
+
snapPosition: () => void;
|
|
101
|
+
back: () => void;
|
|
102
|
+
forward: () => void;
|
|
103
|
+
handleDotClick: (event: Event) => void;
|
|
104
|
+
private snapTimer;
|
|
105
|
+
private animationFrame;
|
|
106
|
+
animateScroll(position: number, startingPosition?: number, timestamp?: number): void;
|
|
107
|
+
content: () => any[];
|
|
108
|
+
constructor();
|
|
109
|
+
connectedCallback(): void;
|
|
110
|
+
disconnectedCallback(): void;
|
|
111
|
+
render(): void;
|
|
112
|
+
}
|
|
113
|
+
export declare const xinCarousel: ElementCreator<XinCarousel>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component as WebComponent, ElementCreator } from 'xinjs';
|
|
2
|
+
export declare class CodeEditor extends WebComponent {
|
|
3
|
+
private source;
|
|
4
|
+
get value(): string;
|
|
5
|
+
set value(text: string);
|
|
6
|
+
mode: string;
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
role: string;
|
|
9
|
+
get editor(): any;
|
|
10
|
+
private _editor;
|
|
11
|
+
private _editorPromise;
|
|
12
|
+
options: any;
|
|
13
|
+
theme: string;
|
|
14
|
+
static styleSpec: {
|
|
15
|
+
':host': {
|
|
16
|
+
display: string;
|
|
17
|
+
position: string;
|
|
18
|
+
width: string;
|
|
19
|
+
height: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
constructor();
|
|
23
|
+
onResize(): void;
|
|
24
|
+
connectedCallback(): void;
|
|
25
|
+
render(): void;
|
|
26
|
+
}
|
|
27
|
+
export declare const codeEditor: ElementCreator<CodeEditor>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, ElementCreator, PartsMap } from 'xinjs';
|
|
2
|
+
interface ColorParts extends PartsMap {
|
|
3
|
+
rgb: HTMLInputElement;
|
|
4
|
+
alpha: HTMLInputElement;
|
|
5
|
+
css: HTMLInputElement;
|
|
6
|
+
}
|
|
7
|
+
declare class ColorInput extends Component<ColorParts> {
|
|
8
|
+
value: any;
|
|
9
|
+
color: any;
|
|
10
|
+
static styleSpec: {
|
|
11
|
+
':host': {
|
|
12
|
+
_gap: number;
|
|
13
|
+
_swatchSize: number;
|
|
14
|
+
_cssWidth: number;
|
|
15
|
+
_alphaWidth: number;
|
|
16
|
+
display: string;
|
|
17
|
+
gap: any;
|
|
18
|
+
alignItems: string;
|
|
19
|
+
};
|
|
20
|
+
':host input[type="color"]': {
|
|
21
|
+
border: number;
|
|
22
|
+
width: any;
|
|
23
|
+
height: any;
|
|
24
|
+
background: string;
|
|
25
|
+
};
|
|
26
|
+
':host::part(alpha)': {
|
|
27
|
+
width: any;
|
|
28
|
+
};
|
|
29
|
+
':host::part(css)': {
|
|
30
|
+
width: any;
|
|
31
|
+
fontFamily: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
content: any[];
|
|
35
|
+
private valueChanged;
|
|
36
|
+
update: (event: Event) => void;
|
|
37
|
+
connectedCallback(): void;
|
|
38
|
+
render(): void;
|
|
39
|
+
}
|
|
40
|
+
export declare const colorInput: ElementCreator<ColorInput>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component as WebComponent, ElementCreator } from 'xinjs';
|
|
2
|
+
import { SortCallback } from './make-sorter';
|
|
3
|
+
export interface ColumnOptions {
|
|
4
|
+
name?: string;
|
|
5
|
+
prop: string;
|
|
6
|
+
width: number;
|
|
7
|
+
visible?: boolean;
|
|
8
|
+
align?: string;
|
|
9
|
+
sort?: false | 'ascending' | 'descending';
|
|
10
|
+
headerCell?: (options: ColumnOptions) => HTMLElement;
|
|
11
|
+
dataCell?: (options: ColumnOptions) => HTMLElement;
|
|
12
|
+
}
|
|
13
|
+
export interface TableData {
|
|
14
|
+
columns?: ColumnOptions[] | null;
|
|
15
|
+
array: any[];
|
|
16
|
+
filter?: ArrayFilter | null;
|
|
17
|
+
}
|
|
18
|
+
export type ArrayFilter = (array: any[]) => any[];
|
|
19
|
+
export type SelectCallback = (selected: any[]) => void;
|
|
20
|
+
export declare class DataTable extends WebComponent {
|
|
21
|
+
select: boolean;
|
|
22
|
+
multiple: boolean;
|
|
23
|
+
nosort: boolean;
|
|
24
|
+
nohide: boolean;
|
|
25
|
+
noreorder: boolean;
|
|
26
|
+
selectionChanged: SelectCallback;
|
|
27
|
+
localized: boolean;
|
|
28
|
+
private selectedKey;
|
|
29
|
+
private selectBinding;
|
|
30
|
+
pinnedTop: number;
|
|
31
|
+
pinnedBottom: number;
|
|
32
|
+
maxVisibleRows: number;
|
|
33
|
+
get value(): TableData;
|
|
34
|
+
set value(data: TableData);
|
|
35
|
+
private rowData;
|
|
36
|
+
private _array;
|
|
37
|
+
private _columns;
|
|
38
|
+
private _filter;
|
|
39
|
+
charWidth: number;
|
|
40
|
+
rowHeight: number;
|
|
41
|
+
minColumnWidth: number;
|
|
42
|
+
get virtual(): {
|
|
43
|
+
height: number;
|
|
44
|
+
} | undefined;
|
|
45
|
+
constructor();
|
|
46
|
+
get array(): any[];
|
|
47
|
+
set array(newArray: any[]);
|
|
48
|
+
get filter(): ArrayFilter;
|
|
49
|
+
set filter(filterFunc: ArrayFilter);
|
|
50
|
+
get sort(): SortCallback | undefined;
|
|
51
|
+
set sort(sortFunc: ArrayFilter);
|
|
52
|
+
get columns(): ColumnOptions[];
|
|
53
|
+
set columns(newColumns: ColumnOptions[]);
|
|
54
|
+
get visibleColumns(): ColumnOptions[];
|
|
55
|
+
content: any;
|
|
56
|
+
getColumn(event: any): ColumnOptions | undefined;
|
|
57
|
+
private setCursor;
|
|
58
|
+
private resizeColumn;
|
|
59
|
+
selectRow(row: any, select?: boolean): void;
|
|
60
|
+
selectRows(rows?: any[], select?: boolean): void;
|
|
61
|
+
deSelect(rows?: any[]): void;
|
|
62
|
+
private rangeStart?;
|
|
63
|
+
private updateSelection;
|
|
64
|
+
connectedCallback(): void;
|
|
65
|
+
setColumnWidths(): void;
|
|
66
|
+
sortByColumn: (columnOptions: ColumnOptions, direction?: "ascending" | "descending" | "auto") => void;
|
|
67
|
+
popColumnMenu: (target: HTMLElement, options: ColumnOptions) => void;
|
|
68
|
+
get captionSpan(): ElementCreator;
|
|
69
|
+
headerCell: (options: ColumnOptions) => any;
|
|
70
|
+
dataCell: (options: ColumnOptions) => any;
|
|
71
|
+
get visibleRows(): any[];
|
|
72
|
+
get visibleSelectedRows(): any[];
|
|
73
|
+
get selectedRows(): any[];
|
|
74
|
+
rowTemplate(columns: ColumnOptions[]): HTMLTemplateElement;
|
|
75
|
+
private draggedColumn?;
|
|
76
|
+
private dropColumn;
|
|
77
|
+
render(): void;
|
|
78
|
+
}
|
|
79
|
+
export declare const dataTable: ElementCreator<DataTable>;
|